@font-face{font-family:Poiret One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poiret-one-latin-400-normal-DaD3Ke7k.woff2)format("woff2"),url(/assets/poiret-one-latin-400-normal-DeDrWLAw.woff)format("woff")}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/crimson-pro-latin-400-normal-B4SlG4wx.woff2)format("woff2"),url(/assets/crimson-pro-latin-400-normal-BzhyrSeK.woff)format("woff")}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/crimson-pro-latin-600-normal-vJ8oEdKU.woff2)format("woff2"),url(/assets/crimson-pro-latin-600-normal-Ca4fy0Cf.woff)format("woff")}@font-face{font-family:Besley Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-ext-wght-normal-Dt3OBXk7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Besley Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-wght-normal-IX-hlgPH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Besley Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-ext-wght-italic-Djtdc7fW.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Besley Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-wght-italic-CVKtkS9L.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Josefin Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/josefin-sans-latin-400-normal-Bw73c5y2.woff2)format("woff2"),url(/assets/josefin-sans-latin-400-normal-OLNf33Pm.woff)format("woff")}@font-face{font-family:Josefin Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/josefin-sans-latin-600-normal-DXjG1Gv0.woff2)format("woff2"),url(/assets/josefin-sans-latin-600-normal-CcMFZ0n5.woff)format("woff")}:root{--ink:#141414;--paper:#fcfbf8;--panel:#fff;--surface:#f1efe9;--surface-line:#d8d5ce;--line:#d8d5ce;--line-quiet:#e4e1d8;--line-dashed:#b9b4a9;--muted:#6e6a62;--verdigris:#6f8f68;--chart-track:#edebe4;--suit-s:#141414;--suit-h:#c22f21;--suit-d:#9e6a00;--suit-c:#00775a;--text-body:var(--ink);--text-muted:var(--muted);--surface-page:var(--paper);--surface-card:var(--panel);--surface-inset:var(--surface);--accent:#c22f21;--positive:#00775a;--negative:#c22f21;--border-structural:1px solid var(--ink);--border-quiet:1px solid var(--line);--border-hairline:1px solid var(--line-quiet);--border-sealed:1px dashed var(--line-dashed);--btn-primary-bg:var(--ink);--btn-primary-fg:#fff;--onprimary-suit-s:#fff;--onprimary-suit-h:#ff9d94;--onprimary-suit-d:#ffd34d;--onprimary-suit-c:#8fe3a1;--card-shadow:0 1px 2px #00000024;--ticket-shadow:3px 3px 0 #1414141f;--cardface:#fff;--cardface-ink:#141414;--cardface-line:#b9b4a9;--cardface-suit-s:#141414;--cardface-suit-h:#c22f21;--cardface-suit-d:#9e6a00;--cardface-suit-c:#00775a}[data-theme=night]{--ink:#ece7dc;--paper:#171512;--panel:#1f1c18;--surface:#262220;--surface-line:#3b362f;--line:#35312a;--line-quiet:#2b2823;--line-dashed:#5c564c;--muted:#a29a8d;--verdigris:#8cab84;--chart-track:#2a2621;--suit-s:#ece7dc;--suit-h:#df8069;--suit-d:#c49b52;--suit-c:#55b896;--accent:#df8069;--positive:#55b896;--negative:#df8069;--btn-primary-bg:#ece7dc;--btn-primary-fg:#171512;--onprimary-suit-s:var(--cardface-suit-s);--onprimary-suit-h:var(--cardface-suit-h);--onprimary-suit-d:var(--cardface-suit-d);--onprimary-suit-c:var(--cardface-suit-c);--card-shadow:0 2px 6px #0000008c;--ticket-shadow:3px 3px 0 #00000080;--cardface:#f6f2e9}@media (prefers-color-scheme:dark){:root:not([data-theme]){--ink:#ece7dc;--paper:#171512;--panel:#1f1c18;--surface:#262220;--surface-line:#3b362f;--line:#35312a;--line-quiet:#2b2823;--line-dashed:#5c564c;--muted:#a29a8d;--verdigris:#8cab84;--chart-track:#2a2621;--suit-s:#ece7dc;--suit-h:#df8069;--suit-d:#c49b52;--suit-c:#55b896;--accent:#df8069;--positive:#55b896;--negative:#df8069;--btn-primary-bg:#ece7dc;--btn-primary-fg:#171512;--onprimary-suit-s:var(--cardface-suit-s);--onprimary-suit-h:var(--cardface-suit-h);--onprimary-suit-d:var(--cardface-suit-d);--onprimary-suit-c:var(--cardface-suit-c);--card-shadow:0 2px 6px #0000008c;--ticket-shadow:3px 3px 0 #00000080;--cardface:#f6f2e9}}[data-theme=night] body{-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){html:not([data-theme]) body{-webkit-font-smoothing:antialiased}}:root{--font-display:"Poiret One", cursive;--font-body:"Crimson Pro", serif;--font-label:"Besley Variable", "Besley", serif;--font-stamp:"Josefin Sans", sans-serif;--text-wordmark:17px;--text-title:21px;--text-heading:17px;--text-body-size:16px;--text-caption:13.5px;--text-label:10px;--track-wordmark:.14em;--track-label:.2em;--track-wide:.3em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-panel:0;--radius-btn:2px;--radius-chip:3px;--radius-card:4px;--screen-w:390px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-body);font-size:var(--text-body-size);color:var(--text-body);background:var(--surface-page);line-height:1.5}a{color:var(--ink)}a:hover{color:var(--accent)}button{font:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:none;padding:0}button:disabled{cursor:default}input{font:inherit}.shell{background:var(--paper);flex-direction:column;max-width:430px;min-height:100dvh;margin:0 auto;display:flex;position:relative}@media (width>=640px){.shell{border-left:var(--border-hairline);border-right:var(--border-hairline)}}.num{font-variant-numeric:normal}.label-caps{font-family:var(--font-label);font-weight:700;font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}.positive{color:var(--positive)}.negative{color:var(--negative)}.loading{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 16px;animation:1.4s ease-in-out infinite nb-pulse;display:flex}@keyframes nb-pulse{0%,to{opacity:1}50%{opacity:.35}}.notice-error{background:var(--panel);border:1px solid var(--negative);flex-direction:column;gap:8px;margin:24px 16px;padding:12px 14px 12px 24px;font-size:14.5px;display:flex;position:relative}.notice-error:before{content:"";border-left:1.5px dashed var(--negative);position:absolute;top:0;bottom:0;left:7px}.notice{text-align:center;color:var(--muted);padding:12px 16px;font-size:13.5px;font-style:italic}.empty-note{text-align:center;color:var(--muted);padding:20px 16px;font-size:13.5px;font-style:italic}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.splash{background:var(--paper);flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:100dvh;padding-bottom:130px;display:flex;position:relative;overflow:hidden}.splash-auto{z-index:30;cursor:pointer;min-height:0;animation:.6s 2.5s forwards nbSplashFade;position:absolute;inset:0}.splash-stack{text-align:center;flex-direction:column;align-items:center;gap:24px;padding:0 24px;display:flex}.splash-auto .splash-stack{animation:.55s ease-in 2.1s forwards nbSplashOut}.splash-word{font-family:var(--font-display);letter-spacing:.16em;color:var(--ink);font-size:32px;animation:.9s ease-out both nbWordIn}.splash-sub{font-family:var(--font-label);letter-spacing:.42em;color:var(--ink);font-size:10.5px;animation:.6s ease-out .5s both nbSubIn}.splash-cta{flex-direction:column;gap:10px;width:min(280px,100%);animation:.6s ease-out .8s both nbSubIn;display:flex}.splash-pitch{max-width:300px;color:var(--muted);margin:0;font-size:14.5px;line-height:1.45;animation:.6s ease-out 1.1s both nbSubIn}.splash-bridge{animation:.9s cubic-bezier(.2,.7,.2,1) both nbBridgeRise;position:absolute;bottom:0;left:0;right:0}.splash-auto .splash-bridge{animation:.9s cubic-bezier(.2,.7,.2,1) both nbBridgeRise,.6s ease-in 2.1s forwards nbBridgeOut}.splash-bridge img{object-fit:cover;object-position:bottom;width:100%;height:146px;display:block}.splash-bridge img.night-scene,[data-theme=night] .splash-bridge img.day-scene{display:none}[data-theme=night] .splash-bridge img.night-scene{display:block}@media (prefers-color-scheme:dark){html:not([data-theme]) .splash-bridge img.day-scene{display:none}html:not([data-theme]) .splash-bridge img.night-scene{display:block}}@keyframes nbWordIn{0%{opacity:0;letter-spacing:.34em}to{opacity:1;letter-spacing:.16em}}@keyframes nbSubIn{0%{opacity:0}to{opacity:1}}@keyframes nbBridgeRise{0%{transform:translateY(150px)}to{transform:translateY(0)}}@keyframes nbSplashOut{to{opacity:0;transform:translateY(-26px)}}@keyframes nbBridgeOut{to{transform:translateY(170px)}}@keyframes nbSplashFade{to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){.splash,.splash *{animation-duration:.01ms!important;animation-delay:.01ms!important}}.auth-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-title{font-family:var(--font-body);margin:28px 0 0;font-size:24px;font-weight:600}.auth-copy{max-width:320px;color:var(--muted);margin:10px 0 0;font-size:14.5px;line-height:1.45}.auth-actions{text-align:left;flex-direction:column;gap:10px;width:min(280px,100%);margin-top:22px;display:flex}.notfound-page{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:18px;min-height:100dvh;padding:24px;display:flex}.notfound-title{font-family:var(--font-body);margin:0;font-size:21px;font-weight:600}.notfound-hint{max-width:300px;color:var(--muted);margin:0;font-size:14px;font-style:italic;line-height:1.5}.notfound-actions{width:min(280px,100%);margin-top:4px}.ds-btn{text-align:center;width:100%;font-family:var(--font-label);letter-spacing:.06em;border-radius:var(--radius-btn);background:var(--btn-primary-bg);color:var(--btn-primary-fg);-webkit-user-select:none;user-select:none;padding:13px;font-size:15px;font-weight:800;text-decoration:none;display:block}a.ds-btn:hover{color:var(--btn-primary-fg)}.ds-btn:disabled{opacity:.4}.ds-btn-secondary{background:var(--panel);color:var(--ink);border:1px solid var(--ink);padding:11px;font-size:13px;font-weight:700}a.ds-btn-secondary:hover{color:var(--ink)}.chip{border:1px solid var(--ink);color:var(--ink);font-family:var(--font-label);border-radius:var(--radius-chip);white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.chip-quiet{border-color:var(--line);color:var(--muted);font-weight:600}.chip-colored{border:1.5px solid var(--chip-color);color:var(--chip-color);letter-spacing:.1em;font-size:10.5px;font-weight:800}.chip.chip-gf{border-color:var(--accent);color:var(--accent)}.ds-input{flex-direction:column;gap:6px;display:flex}.ds-input input{border:1px solid var(--ink);border-radius:var(--radius-btn);background:var(--panel);font-size:16px;font-family:var(--font-body);color:var(--ink);padding:12px}.ds-input input:focus{outline:2px solid var(--ink);outline-offset:1px}.ds-input-error{color:var(--negative);font-size:13.5px}.sheet-layer{z-index:20;position:fixed;inset:0}.sheet-scrim{background:#14141457;position:absolute;inset:0}.sheet{background:var(--panel);border-top:2px solid var(--ink);max-width:430px;max-height:80dvh;margin:0 auto;padding:10px 16px 18px;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.sheet-grip{background:var(--line);border-radius:2px;width:40px;height:4px;margin:0 auto 12px}.sheet-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.sheet-title{font-family:var(--font-label);color:var(--ink);font-size:19px;font-weight:800}.sheet-close{font-family:var(--font-label);color:var(--muted);margin:-4px -8px;padding:4px 8px;font-size:16px;font-weight:700}.sheet-body{font-family:var(--font-body);color:var(--ink)}.toast{background:var(--panel);border:1.5px solid var(--ink);box-shadow:var(--ticket-shadow);align-items:center;gap:12px;padding:10px 14px;display:flex;position:relative}.toast:before{content:"";border-left:1.5px dashed var(--ink);position:absolute;top:0;bottom:0;left:7px}.toast-body{color:var(--ink);flex:1;padding-left:8px;font-size:14.5px}.perf-panel{border:1px solid var(--ink);background:var(--panel);padding:12px 14px 12px 20px;position:relative}.perf-panel:before{content:"";border-left:1.5px dashed var(--ink);position:absolute;top:0;bottom:0;left:7px}.perf-panel-dashed{border:1px dashed var(--line-dashed);color:var(--muted)}.perf-panel-dashed:before{border-left-color:var(--line-dashed)}.perf-panel-heading{margin-bottom:8px}.ink-stamp{border:2px solid var(--stamp-color,var(--ink));transform:rotate(var(--stamp-rotate,-5deg));font-family:var(--font-stamp);letter-spacing:.22em;color:var(--stamp-color,var(--ink));white-space:nowrap;border-radius:50%;padding:4px 11px;font-size:10px;font-weight:600;display:inline-block}.ink-stamp-fade-right{-webkit-mask-image:linear-gradient(105deg,#000 50%,#00000073 100%);mask-image:linear-gradient(105deg,#000 50%,#00000073 100%)}.ink-stamp-fade-left{-webkit-mask-image:linear-gradient(75deg,#0000008c 0%,#000 45%);mask-image:linear-gradient(75deg,#0000008c 0%,#000 45%)}.postmark{align-items:center;display:flex;transform:rotate(-4deg);-webkit-mask-image:linear-gradient(100deg,#000 50%,#0006 100%);mask-image:linear-gradient(100deg,#000 50%,#0006 100%)}.postmark-waves{margin-left:-8px}.flipdigits{gap:3px;display:flex}.flipdigit{background:var(--btn-primary-bg);color:var(--btn-primary-fg);font-family:var(--font-label);border-radius:3px;justify-content:center;align-items:center;font-weight:800;display:flex;position:relative;overflow:hidden}.flipdigit-seam{background:#ffffff59;height:1.5px;position:absolute;top:50%;left:0;right:0}.flipdigit-suffix{background:var(--panel);color:var(--ink);border:2px solid var(--ink)}.stargrade{letter-spacing:2px;color:var(--ink);white-space:nowrap}.stargrade-rest{color:var(--line)}.stargrade-x{color:var(--negative);font-weight:700}.appheader,.screenheader{border-bottom:1px solid var(--ink);background:var(--paper);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.appheader-brand{align-items:center;gap:9px;text-decoration:none;display:flex}.appheader-brand:hover{color:var(--ink)}.wordmark{font-family:var(--font-display);font-size:var(--text-wordmark);letter-spacing:var(--track-wordmark);color:var(--ink)}.appheader-context{font-family:var(--font-label);letter-spacing:var(--track-wide);color:var(--muted);text-align:right;font-size:8.5px}.screenheader{padding:12px 16px}.screenheader-lead{align-items:baseline;gap:10px;display:flex}.screenheader-back{font-family:var(--font-label);margin:-8px -4px -8px -12px;padding:8px 12px;font-size:18px;font-weight:700}.screenheader-title{font-family:var(--font-label);color:var(--ink);font-size:13.5px;font-weight:700}.screenheader-caption{color:var(--muted);font-size:12.5px}.tabbar{border-top:1px solid var(--ink);background:var(--paper);margin-top:auto;display:flex;position:sticky;bottom:0}.tabbar a{text-align:center;font-family:var(--font-label);letter-spacing:.16em;color:var(--muted);flex:1;padding:15px 0;font-size:9.5px;font-weight:700;text-decoration:none}.tabbar a.tab-active{color:var(--ink);box-shadow:inset 0 3px 0 var(--ink)}.sparkline-plot{position:relative}.sparkline-hits{display:flex;position:absolute;inset:0}.sparkline-hits button{opacity:0;flex:1}.sparkline-captions{font-family:var(--font-label);color:var(--muted);justify-content:space-between;gap:8px;margin-top:4px;font-size:9.5px;display:flex}.sparkline-ref-label{color:var(--accent)}.sparkline-detail{text-align:center;margin-top:6px;font-size:12.5px}.pctbar{background:var(--chart-track);vertical-align:middle;width:52px;height:6px;display:inline-block;position:relative}.pctbar-fill{background:var(--ink);position:absolute;inset:0}.hcp-badge{background:var(--btn-primary-bg);color:var(--btn-primary-fg);font-family:var(--font-label);white-space:nowrap;border-radius:3px;padding:2px 9px;font-size:12px;font-weight:800;display:inline-block}:root{--card-h:clamp(56px, calc((min(100vw, 430px) - 92px) * .2586), 82.5px);--card-w:calc(var(--card-h) * 46 / 66)}.pcard{width:var(--card-w);height:var(--card-h);background:var(--cardface);border:1px solid var(--cardface-line);border-radius:var(--radius-card);box-shadow:var(--card-shadow);padding:calc(var(--card-h) * 3 / 66) 0 0 calc(var(--card-h) * 5 / 66);font-family:var(--font-label);flex:none;font-weight:800}.pcard .rank{font-size:calc(var(--card-h) * 15 / 66);line-height:1}.pcard .rank.ten{letter-spacing:-.09em}.pcard .suit{font-size:calc(var(--card-h) * 14 / 66);line-height:1.2}.pcard.small{width:calc(var(--card-w) * .8);height:calc(var(--card-h) * .8)}.pcard.small .rank{font-size:calc(var(--card-h) * 12 / 66)}.pcard.small .suit{font-size:calc(var(--card-h) * 11 / 66)}.pcard.selected{border:2px solid var(--cardface-ink);box-shadow:0 3px 6px #0003}.pcard.suit-s{color:var(--cardface-suit-s)}.pcard.suit-h{color:var(--cardface-suit-h)}.pcard.suit-d{color:var(--cardface-suit-d)}.pcard.suit-c{color:var(--cardface-suit-c)}.pcard.dimmed .rank,.pcard.dimmed .suit{opacity:.4}.pcard-placeholder{width:var(--card-w);height:var(--card-h);border:1.5px dashed var(--line-dashed);border-radius:3px;flex:none}.pcard-placeholder.small{width:calc(var(--card-w) * .8);height:calc(var(--card-h) * .8)}.suit-s{color:var(--suit-s)}.suit-h{color:var(--suit-h)}.suit-d{color:var(--suit-d)}.suit-c{color:var(--suit-c)}.suit-nt{color:var(--ink)}.handfan{justify-content:center;align-items:flex-end;padding:14px 8px 2px;display:flex}.handfan .cardbtn{isolation:isolate;padding:0;transition:transform .12s;position:relative}.handfan .cardbtn.selected{transform:translateY(calc(var(--card-h) * -12 / 66))}.auction{border:1px solid var(--ink);background:var(--paper);margin:12px 12px 0;padding:2px}.auction-inner{border:1px solid var(--ink);padding:10px 12px 12px}.auction-scroll{max-height:216px;padding-bottom:6px;overflow-y:auto}.auction table{border-collapse:collapse;text-align:center;width:100%}.auction th{font-family:var(--font-label);letter-spacing:.14em;color:var(--muted);border-bottom:1px solid var(--line);background:var(--panel);padding-bottom:6px;font-size:10.5px;font-weight:700;position:sticky;top:0}.auction th.auction-me{color:var(--ink)}.auction-inner{background:var(--panel)}.auction td{padding:5px 0 2px;font-size:15px;font-weight:600}.auction td button{min-height:30px;padding:2px 5px}.auction td button.has-meaning{border-bottom:2px dotted var(--ink)}.auction-pending{outline:1.5px solid var(--ink);outline-offset:2px;padding:0 5px;font-weight:800;display:inline-block}.auction-hint{color:var(--muted);text-align:center;letter-spacing:.06em;margin-top:9px;font-size:10.5px}.meaning-panel{border:1px solid var(--ink);background:var(--panel);margin:10px 12px 0;padding:11px 14px 12px 20px;font-size:13.5px;position:relative}.meaning-panel:before{content:"";border-left:1.5px dashed var(--ink);position:absolute;top:0;bottom:0;left:7px}.meaning-panel-placeholder{border-color:var(--line);color:var(--muted)}.meaning-panel-placeholder:before{border-left-color:var(--line-dashed)}.mtitle{font-size:14.5px;font-weight:800;font-family:var(--font-body)}.meaning-chips{flex-wrap:wrap;gap:6px;margin:6px 0 7px;display:flex}.meaning-body{line-height:1.5}.meaning-caveat{color:var(--muted);margin-top:8px;font-size:12.5px;font-style:italic}.bidbox-wrap{padding:12px 12px 16px}.bidbox .grid{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.bidbox .grid+.grid{margin-top:5px}.bidbox button.bid{border:1px solid var(--ink);background:var(--panel);min-height:44px;font-family:var(--font-label);border-radius:var(--radius-btn);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.bidbox button.bid:disabled{border-color:var(--line);opacity:.25}.bidbox button.bid.selected{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-fg);font-weight:800}.bidbox button.bid.selected .suit-s,.bidbox button.bid.selected .suit-nt,.ds-btn.btn-primary .suit-s,.ds-btn.btn-primary .suit-nt{color:var(--onprimary-suit-s)}.bidbox button.bid.selected .suit-h,.ds-btn.btn-primary .suit-h{color:var(--onprimary-suit-h)}.bidbox button.bid.selected .suit-d,.ds-btn.btn-primary .suit-d{color:var(--onprimary-suit-d)}.bidbox button.bid.selected .suit-c,.ds-btn.btn-primary .suit-c{color:var(--onprimary-suit-c)}.bidbox-fold{text-align:center;width:100%;font-family:var(--font-label);color:var(--muted);letter-spacing:.08em;padding:8px 0 4px;font-size:11px;display:block}.bidbox .callrow{grid-template-columns:2fr 1fr 1fr;gap:5px;margin-top:5px;display:grid}.bidbox .callrow button.bid{font-size:15px}.bidbox button.bid.bid-x:not(.selected):not(:disabled){color:var(--suit-h)}.confirm-row{margin-top:12px}.board-page.bidding-dock{flex:none;height:100dvh;padding-bottom:0;overflow:hidden}.bid-phase{flex-direction:column;flex:1;min-height:0;display:flex}.bid-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.bid-decision{padding-bottom:var(--space-3);margin-top:auto}.bid-dock{border-top:1px solid var(--ink);background:var(--surface);flex-shrink:0}.bid-dock .notice{margin:0}.grade-toast{margin:10px 12px 0}.grade-toast.excellent{border-color:var(--positive)}.grade-toast.excellent:before{border-left-color:var(--positive)}.grade-toast.fair{border-color:var(--suit-d)}.grade-toast.fair:before{border-left-color:var(--suit-d)}.grade-toast.poor{border-color:var(--negative)}.grade-toast.poor:before{border-left-color:var(--negative)}.trick{background:var(--surface);height:max(230px, calc(var(--card-h) * 1.6 + 110px));margin:4px 0 0;position:relative}.seatpos{flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute}.seatpos.n{top:10px;left:50%;transform:translate(-50%)}.seatpos.s{flex-direction:column-reverse;bottom:10px;left:50%;transform:translate(-50%)}.seatpos.e{top:50%;right:14px;transform:translateY(-50%)}.seatpos.w{top:50%;left:14px;transform:translateY(-50%)}.seat-label{font-family:var(--font-label);letter-spacing:.12em;color:var(--muted);white-space:nowrap;font-size:10px;font-weight:700}.trick-slot{width:calc(var(--card-w) * .8);height:calc(var(--card-h) * .8);justify-content:center;align-items:center;display:flex}.pcard-flight{z-index:90;pointer-events:none;transform-origin:0 0;will-change:transform;margin:0;position:fixed;box-shadow:0 3px 8px #0000002e}.trick-meter{text-align:center;width:118px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.trick-meter-num{font-family:var(--font-label);margin-bottom:6px;font-size:17px;font-weight:800}.trick-meter-side{color:var(--muted)}.trick-meter-side.mine{color:var(--ink)}.trick-meter-dash{color:var(--line-dashed);margin:0 3px;font-weight:600}.trick-meter-side.stamp{animation:.42s cubic-bezier(.3,1.6,.4,1) stamp-pop;display:inline-block}@keyframes stamp-pop{0%{transform:scale(1)rotate(0)}35%{transform:scale(1.45)rotate(-9deg)}to{transform:scale(1)rotate(0)}}.trick-meter-track{background:var(--chart-track);border:1px solid var(--ink);height:9px;position:relative}.trick-meter-fill{background:repeating-linear-gradient(-45deg, var(--ink), var(--ink) 1px, transparent 1px, transparent 1.5px);transition:width .25s,background .25s;position:absolute;top:0;bottom:0}.trick-meter-fill.left{left:0}.trick-meter-fill.right{right:0}.trick-meter-fill.mine{background:var(--ink)}.trick-meter-fill.mine.made{background:var(--verdigris)}.trick-meter-fill.theirs.failed{background:var(--accent)}.trick-meter-fill.theirs.left.capped{border-right:1px solid var(--ink)}.trick-meter-fill.theirs.right.capped{border-left:1px solid var(--ink)}.trick-meter-post{border-left:1px solid var(--ink);position:absolute;top:-3px;bottom:-3px}.play-row{align-items:stretch;gap:0;display:flex}.play-row .trick{min-width:0;height:auto;min-height:max(230px, calc(var(--card-h) * 1.6 + 110px));flex:1}.dummy-rail{background:var(--panel);flex-direction:column;flex-shrink:0;gap:6px;width:96px;padding:10px 10px 10px 14px;display:flex}.dummy-rail-left{order:-1;padding:10px 14px 10px 10px}.dummy-rail-head{text-align:center;border-bottom:1px dashed var(--line-quiet);flex-direction:column;align-items:center;gap:3px;padding-bottom:5px;display:flex}.dummy-rail-seat{font-family:var(--font-label);letter-spacing:.1em;color:var(--muted);font-size:10.5px;font-weight:700}.dummy-rail-role{font-family:var(--font-label);letter-spacing:.12em;color:var(--muted);font-size:9px;font-weight:700}.dummy-rail-row{font-family:var(--font-label);align-items:baseline;gap:5px;font-size:12px;font-weight:700;display:flex}.dummy-rail-ranks{letter-spacing:.03em}.deal-diagram{border:1px solid var(--ink);background:var(--panel);margin:12px 12px 0;padding:14px}.deal-head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.deal-conditions{color:var(--muted);font-size:11px}.deal-grid{grid-template-columns:1fr 1fr 1fr;gap:4px;font-size:11.5px;line-height:1.55;display:grid}.deal-hand{border:1px solid var(--line);padding:6px 8px}.deal-hand.deal-mine{border:1.5px solid var(--ink)}.deal-hand-label{font-family:var(--font-label);letter-spacing:.1em;color:var(--muted);font-size:10px}.deal-mine .deal-hand-label{color:var(--ink)}.deal-compass{justify-content:center;align-items:center;display:flex}.board-row{border:1px solid var(--ink);background:var(--panel);color:var(--ink);align-items:stretch;text-decoration:none;display:flex}a.board-row:hover{color:var(--ink)}.board-row-live{box-shadow:var(--ticket-shadow);border-width:1.5px}.board-row-sealed{border:1px dashed var(--line-dashed);color:var(--muted);background:0 0}.board-row-counter{border-right:2px dashed var(--ink);flex-direction:column;flex:none;justify-content:center;align-items:center;width:74px;padding:10px 0;display:flex}.board-row-sealed .board-row-counter{border-right-color:var(--line-dashed)}.board-row-counter-label{font-family:var(--font-label);letter-spacing:.18em;color:var(--muted);font-size:9px;font-weight:700}.board-row-counter-no{font-family:var(--font-label);font-size:22px;font-weight:800}.board-row-main{flex:1;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}.board-row-text{flex:1;min-width:0}.board-row-title{font-size:15px;font-weight:600}.board-row-sub{color:var(--muted);font-size:12.5px}.board-row-sealed-text{flex:1;font-size:14px;font-style:italic}.home{flex-direction:column;flex:1;display:flex}.home-greeting{padding:20px 16px 0}.home-hello{font-size:21px;font-weight:600}.home-sub{color:var(--muted);margin-top:2px;font-size:14.5px}.home-current{background:var(--surface);border:1px solid var(--surface-line);flex-direction:column;gap:12px;margin:16px 16px 0;padding:16px 14px;display:flex}.home-current-row{align-items:center;gap:12px;display:flex}.home-current-text{flex:1;font-size:14.5px;line-height:1.45}.home-current-sub{color:var(--muted);font-size:13px}.home-gate{padding:14px 16px 0}.home-tolls{padding:20px 16px 24px}.home-tolls .tolls-panel{margin-top:10px;padding:2px 14px 2px 20px}.tolls-row{color:var(--ink);grid-template-columns:26px 1fr auto auto;align-items:center;gap:0 12px;font-size:14.5px;text-decoration:none;display:grid}.tolls-row>*{border-bottom:1px solid var(--line-quiet);padding:10px 0}.tolls-row:last-child>*{border-bottom:none}.tolls-no{font-family:var(--font-label);font-size:12px}.tolls-rank{font-family:var(--font-label);text-align:right;font-size:11px;font-weight:700}.tolls-rank.quiet{color:var(--muted)}.home-tolls-note{color:var(--muted);text-align:center;margin-top:10px;font-size:12.5px;font-style:italic}.rankings{flex-direction:column;flex:1;padding-bottom:24px;display:flex}.rank-head{justify-content:space-between;align-items:baseline;gap:12px;padding:18px 16px 0;display:flex}.rank-title{font-size:19px;font-weight:600}.rankings .rank-panel{margin:12px 16px 0;padding:6px 14px 6px 20px}.rank-row{color:var(--ink);grid-template-columns:26px 1fr auto auto;align-items:center;gap:0 12px;font-size:14.5px;text-decoration:none;display:grid}.rank-row>*{border-bottom:1px solid var(--line-quiet);padding:9px 0}.rank-row:last-child>*{border-bottom:none}.rank-row-you{background:var(--surface);margin:0 -12px 0 -6px;padding-left:6px;padding-right:12px}.rank-row-you .rank-name{font-weight:600}.rank-no{font-family:var(--font-label);font-size:12px}.rank-move{font-family:var(--font-label);text-align:right;min-width:26px;font-size:11px;font-weight:700}.rank-move.quiet{color:var(--muted)}.rank-foot{background:var(--surface);border:1px solid var(--surface-line);align-items:center;gap:12px;margin:12px 16px 0;padding:12px 14px;display:flex}.rank-foot-text{font-size:13.5px;line-height:1.45}.rank-foot-quiet{color:var(--muted)}.stats-page{flex-direction:column;flex:1;padding-bottom:24px;display:flex}.stats-hero{flex-direction:column;align-items:center;padding:20px 16px 0;display:flex}.stats-who{align-items:center;gap:12px;margin-bottom:16px;display:flex}.stats-avatar{border:1px solid var(--ink);object-fit:cover;border-radius:50%;width:44px;height:44px}.stats-avatar-fallback{font-family:var(--font-label);background:var(--surface);justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.stats-handle{font-size:19px;font-weight:600}.stats-since{color:var(--muted);font-size:13px}.stats-rating-line{align-items:baseline;gap:8px;margin-top:8px;display:flex}.stats-rating-label{letter-spacing:.18em}.stats-delta{font-family:var(--font-label);font-size:12px;font-weight:700}.chart-panel{border:1px solid var(--ink);background:var(--panel);margin:16px 16px 0;padding:14px}.chart-panel+.chart-panel{margin-top:12px}.chart-panel-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.chart-panel-head .label-caps{letter-spacing:.16em}.chart-panel-figure{font-family:var(--font-label);white-space:nowrap;font-size:14px;font-weight:800}.stats-page .stats-bidding,.stats-page .stats-appearance{margin:12px 16px 0}.stats-grades{flex-direction:column;gap:7px;display:flex}.stats-grade-row{grid-template-columns:52px 1fr auto;align-items:center;gap:12px;font-size:13.5px;display:grid}.stats-grade-row .pctbar{width:100%;height:8px}.stats-bidding-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.stats-bidding-toggle:disabled{cursor:default}.stats-bidding-hint{color:var(--muted);margin-top:9px;font-size:12.5px;font-style:italic}.stats-bidding-toggle:hover:not(:disabled) .stats-bidding-hint{text-decoration:underline}.stats-bidtypes{border-top:1px solid var(--ink);grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px 12px;margin-top:11px;padding-top:11px;font-size:13.5px;display:grid}.stats-bidtypes-head{grid-column:1/-1}.stats-bidtype-row{display:contents}.stats-bidtype-label{color:var(--ink);white-space:nowrap;font-size:10px}.stats-bidtype-row .pctbar{width:100%;height:8px}.stats-bidtype-count{color:var(--muted);justify-self:end;font-size:12px}.stats-bidtypes-note{color:var(--muted);grid-column:1/-1;font-size:12.5px;font-style:italic}.stats-tiles{grid-template-columns:1fr 1fr;gap:10px;margin:12px 16px 0;display:grid}.stat-tile{border:1px solid var(--ink);background:var(--panel);padding:12px 14px}.stat-tile-label{letter-spacing:.16em;font-size:9.5px}.stat-tile-value{font-family:var(--font-label);margin-top:4px;font-size:21px;font-weight:800}.stat-tile-sub{color:var(--muted);font-size:12px}.stats-page .stats-versus{margin:12px 16px 0}.stats-versus-row{grid-template-columns:52px 64px 1fr;align-items:center;gap:12px;padding:4px 0;font-size:13.5px;display:grid}.stats-versus-note{color:var(--muted);font-size:12.5px}.stats-footer{margin:20px 16px 0}.theme-switch{gap:6px;display:flex}.theme-switch button{border:1px solid var(--ink);background:var(--panel);color:var(--ink);min-height:40px;font-family:var(--font-label);letter-spacing:.14em;border-radius:var(--radius-btn);flex:1;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.theme-switch button.active{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-fg)}.tourney-page{flex-direction:column;flex:1;padding-bottom:18px;display:flex}.tourney-sheet{flex-direction:column;gap:10px;padding:14px 16px 0;display:flex}.tourney-page .tourney-field{margin:14px 16px 0}.tourney-field-row{grid-template-columns:22px 1fr auto;align-items:baseline;gap:6px 12px;padding:3px 0;font-size:14px;display:grid}.tourney-field-rank{font-family:var(--font-label);font-size:12px}.tourney-field-you{background:var(--surface);margin:0 -12px;padding-left:12px;padding-right:12px}.tourney-field-you .tourney-field-name{font-weight:600}.tourney-field-name a{text-decoration:none}.tourney-field-progress{color:var(--muted);font-size:12.5px}.tourney-field-house .tourney-field-name a{color:var(--muted);font-style:italic}.tourney-field-house .tourney-field-rank,.fieldtable tr.house td{color:var(--muted)}.house-tag{font-family:var(--font-label);letter-spacing:.12em;color:var(--muted);border:1px solid var(--line);vertical-align:1.5px;white-space:nowrap;border-radius:3px;margin-left:6px;padding:0 4px 1px;font-size:9px;font-style:normal;font-weight:700}.tourney-actions{flex-direction:column;gap:8px;margin-top:auto;padding:14px 16px 0;display:flex}.tourney-result-hero{flex-direction:column;align-items:center;padding:22px 16px 0;display:flex}.tourney-pct{margin-top:16px}.tourney-rank{letter-spacing:.16em;margin-top:8px;font-size:11px}.tourney-rating{align-items:baseline;gap:8px;margin-top:10px;display:flex}.tourney-rating .label-caps{letter-spacing:.18em}.tourney-rating b{font-family:var(--font-label);font-size:16px;font-weight:800}.tourney-rating-delta{font-family:var(--font-label);font-size:13px;font-weight:700}.tourney-page .tourney-boards{grid-template-columns:18px 1fr auto auto;align-items:center;gap:7px 12px;margin:16px 16px 0;font-size:13.5px;display:grid}.tourney-page .tourney-boards .perf-panel-heading{grid-column:1/-1}.tourney-board-line{display:contents}.tourney-board-no{font-family:var(--font-label);font-size:12px}.tourney-board-score{color:var(--muted);text-align:right}.tourney-board-pct{align-items:center;gap:6px;display:flex}.board-page{flex-direction:column;flex:1;padding-bottom:16px;display:flex}.board-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 16px;display:flex}.board-head .ticket-stub{flex-shrink:0}.board-head-mid{flex:1;min-width:0}.board-head-name{font-size:13.5px;font-weight:700;font-family:var(--font-label);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.board-head-sub{color:var(--muted);font-size:12px}.board-head-sub b{color:var(--ink);font-family:var(--font-label)}.board-vul{letter-spacing:.12em;white-space:nowrap;font-weight:800;position:relative}.board-vul-pulse:before{content:"";opacity:0;pointer-events:none;border-radius:calc(var(--radius-chip) + 2px);border:1.5px solid var(--chip-color,var(--ink));position:absolute;inset:-3px}@media (prefers-reduced-motion:no-preference){.board-vul-pulse:before{animation:.5s cubic-bezier(.2,.7,.2,1) 2 forwards vul-ring-pulse}}@keyframes vul-ring-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.board-fan{padding:10px 8px 0}.seat-line{font-family:var(--font-label);letter-spacing:.14em;color:var(--muted);justify-content:center;align-items:center;gap:8px;padding:8px 16px 0;font-size:11px;font-weight:700;display:flex}.seat-line-active{color:var(--ink)}.board-hint{text-align:center;color:var(--muted);padding:8px 16px 4px;font-size:13px;font-style:italic}.board-page .flip-note{margin:10px 16px 0}.board-page .toast,.board-page .grade-toast{margin-left:16px;margin-right:16px}.board-page .meaning-panel{margin:10px 12px 0}.board-page .auction{margin:12px 12px 0}.board-page .trick,.board-page .play-row{margin:8px 0 0}.board-page .play-row .trick{margin:0}.claim-banner{background:var(--panel);border:1.5px solid var(--ink);box-shadow:var(--ticket-shadow);text-align:center;margin:10px 16px 0;padding:12px 16px;position:relative}.claim-banner:before{content:"";border-left:1.5px dashed var(--ink);position:absolute;top:0;bottom:0;left:7px}.claim-banner-side{font-family:var(--font-label);letter-spacing:.05em;color:var(--ink);font-size:15.5px;font-weight:800}.claim-banner-sub{color:var(--muted);margin-top:4px;font-size:12.5px;font-style:italic}@media (prefers-reduced-motion:no-preference){.claim-banner{opacity:0;animation:.5s cubic-bezier(.2,.7,.2,1) forwards claim-banner-in}}@keyframes claim-banner-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.board-actions{flex-direction:column;gap:8px;margin-top:auto;padding:14px 12px 4px;display:flex}.result-hero{text-align:center;padding:20px 16px 0}.result-contract{font-family:var(--font-label);font-size:23px;font-weight:800}.result-score{color:var(--muted);margin-top:2px;font-size:13.5px}.pct-big{justify-content:center;margin-top:14px;display:flex}.pct-big.low .flipdigit{background:var(--negative)}.result-sub{letter-spacing:.16em;margin-top:8px;font-size:11px}.result .result-field{margin:14px 12px 0}.fieldtable{border-collapse:collapse;width:100%;font-size:13px}.fieldtable td{vertical-align:baseline;padding:3px 0}.fieldtable-name{font-weight:400}.fieldtable tr.me .fieldtable-name{font-weight:800}.fieldtable tr.me td{background:var(--surface)}.fieldtable tr.me td:first-child{padding-left:6px}.fieldtable tr.house .fieldtable-name{color:var(--muted);font-style:italic}.fieldtable-contract{color:var(--muted);padding-right:14px}.fieldtable-pct{text-align:right;white-space:nowrap}.fieldtable-pctnum{text-align:right;min-width:24px;display:inline-block}.result-bidding{border:1px solid var(--ink);background:var(--panel);margin:12px 12px 0;padding:14px}.result-bidding-head{letter-spacing:.16em;margin-bottom:8px;font-size:11px}.result-bid-row{align-items:baseline;gap:10px;padding:3.5px 0;font-size:13px;display:flex}.result-bid-call{min-width:38px;font-family:var(--font-label)}.receipt{flex-direction:column;flex:1;display:flex}.receipt-panel{margin:18px 12px 0}.receipt-row{padding-top:7px}.receipt-row-main{align-items:baseline;gap:8px;display:flex}.receipt-label{color:var(--ink)}.receipt-detail{color:var(--muted);font-size:12px}.receipt-amount{font-family:var(--font-label);margin-left:auto;font-size:15px;font-weight:800}.receipt-caption{color:var(--muted);margin-top:1px;font-size:13px;font-style:italic;line-height:1.4}.receipt-rule{border-top:1.5px dashed var(--ink);margin:12px -14px 2px -20px}.receipt-total .receipt-label{font-size:11px}.receipt-total .receipt-amount{font-size:18px}.receipt-postmark{justify-content:center;margin-top:18px;display:flex}.receipt-link{cursor:pointer;text-underline-offset:3px;background:0 0;border:0;margin-top:12px;padding:6px 4px;text-decoration:underline;display:inline-block}@media (prefers-reduced-motion:no-preference){.receipt-row,.receipt-rule,.receipt-postmark{opacity:0;animation:.5s cubic-bezier(.2,.7,.2,1) forwards receipt-print;animation-delay:calc(.25s + var(--i,0) * .4s)}.receipt-postmark{animation-name:receipt-stamp;animation-duration:.45s}}@keyframes receipt-print{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes receipt-stamp{0%{opacity:0;transform:scale(1.55)}65%{opacity:1;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.exhibit{flex-direction:column;flex:1;gap:16px;padding-bottom:40px;display:flex}.exhibit-head{padding:20px 16px 0}.exhibit-title{font-family:var(--font-body);margin:4px 0 0;font-size:24px;font-weight:600}.exhibit-hint{color:var(--muted);margin:8px 0 0;font-size:13.5px;font-style:italic;line-height:1.45}.exhibit-panel{margin:0 16px}.exhibit-row{flex-direction:column;align-items:stretch;gap:10px;padding:14px 0;display:flex}.exhibit-row .ds-btn{align-self:flex-end}.exhibit-row+.exhibit-row{border-top:var(--border-hairline)}.exhibit-row-text{flex-direction:column;flex:1;gap:3px;font-size:14.5px;line-height:1.4;display:flex}.exhibit-row-desc{color:var(--muted);font-size:12.5px;font-style:italic}.exhibit-reset-armed{border-color:var(--negative);color:var(--negative)}.exhibit-foot{color:var(--muted);text-align:center;font-size:13.5px;font-style:italic}.exhibit-overlay{z-index:40;background:var(--paper);position:fixed;inset:0;overflow-y:auto}.exhibit-overlay-close{z-index:41;background:var(--panel);border:1px solid var(--ink);color:var(--ink);cursor:pointer;padding:8px 12px;position:fixed;top:12px;right:12px}
