@font-face{font-family:Supreme;src:url(/fonts/Supreme-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}strong{font-weight:400}:root{--canvas:#0a0a0a;--canvas-soft:#1a1c20;--canvas-card:#191919;--canvas-mid:#363a3f;--hairline:#212327;--ink:#fff;--ink-hover:#fafaf7;--body:#dadbdf;--body-mid:#7d8187;--body-mid-on-surface:#8b8f95;--primary:#fff;--on-primary:#0a0a0a;--pill-border:#ffffff40;--pill-border-hover:#ffffff80;--pill-border-disabled:#ffffff1f;--focus-ring:#ffffffb3;--sunset:#ff7a17;--sunset-soft:#ffc285;--dusk:#7c3aed;--twilight:#c4b5fd;--breeze:#a0c3ec;--midnight:#0d1726;--sunset-border:#ff7a1766;--su2ko-name-color-gold:#e0b84c;--su2ko-name-color-crimson:#e0546c;--own:var(--breeze);--opponent-color:var(--twilight);--mistake:var(--sunset);--font-sans:"Supreme", "Inter", -apple-system, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--t-display-xl-size:96px;--t-display-xl-lh:96px;--t-display-xl-ls:-2.4px;--t-display-lg-size:72px;--t-display-lg-lh:72px;--t-display-lg-ls:-1.8px;--t-display-lg-mobile-size:48px;--t-display-lg-mobile-lh:48px;--t-display-lg-mobile-ls:-1.2px;--t-display-md-size:48px;--t-display-md-lh:48px;--t-display-md-ls:-1.2px;--t-display-sm-size:32px;--t-display-sm-lh:36px;--t-display-sm-ls:-.6px;--t-display-xs-size:20px;--t-display-xs-lh:28px;--t-display-xs-ls:0px;--t-body-lg-size:18px;--t-body-lg-lh:28px;--t-body-lg-ls:0px;--t-body-md-size:16px;--t-body-md-lh:24px;--t-body-md-ls:0px;--t-body-sm-size:14px;--t-body-sm-lh:20px;--t-body-sm-ls:0px;--t-caption-mono-size:14px;--t-caption-mono-lh:20px;--t-caption-mono-ls:1.4px;--t-caption-mono-sm-size:12px;--t-caption-mono-sm-lh:16px;--t-caption-mono-sm-ls:1.2px;--t-button-md-size:14px;--t-button-md-lh:20px;--t-button-md-ls:0px;--t-board-digit-size:32px;--t-board-digit-size-mobile:20px;--t-board-note-size:12px;--t-board-note-size-mobile:10px;--space-quarter:2px;--space-half:4px;--space-1:8px;--space-1-5:12px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-8:64px;--content-max:960px;--home-max:1200px;--r-card:8px;--r-nav:8px;--r-pill:9999px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;overflow-x:hidden}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--canvas)}body{background:var(--canvas);color:var(--ink);font:400 var(--t-body-md-size) / var(--t-body-md-lh) var(--font-sans);letter-spacing:var(--t-body-md-ls);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex}button{font-family:inherit}button,a{-webkit-tap-highlight-color:transparent}.numeric{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0}.muted{color:var(--body-mid)}a{color:var(--ink)}.eyebrow-mono{font-family:var(--font-mono);font-size:var(--t-caption-mono-size);line-height:var(--t-caption-mono-lh);letter-spacing:var(--t-caption-mono-ls);text-transform:uppercase;color:var(--ink)}.caption-mono-sm{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase}.divider-hairline{border:none;border-top:1px solid var(--hairline);margin:0}.card-content{background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);color:var(--ink);padding:var(--space-3)}.tag{margin-left:var(--space-half);font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;color:var(--body-mid);border:1px solid var(--pill-border);padding:1px var(--space-1);border-radius:var(--r-pill);background:0 0;align-items:center;display:inline-flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100%;left:var(--space-1);z-index:100;padding:var(--space-1) var(--space-2);background:var(--ink);color:var(--on-primary);border-radius:var(--r-pill);border:1px solid var(--ink);text-decoration:none;position:absolute}.skip-link:focus{top:0}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app-shell{flex-direction:column;min-height:100dvh;display:flex}#main-content{flex-direction:column;flex:1;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-2);min-height:56px;padding:var(--space-1-5) var(--space-3);padding-left:max(var(--space-3), env(safe-area-inset-left));padding-right:max(var(--space-3), env(safe-area-inset-right));background:var(--canvas);border-bottom:1px solid var(--hairline);flex-wrap:wrap;display:flex}.app-title-link{align-items:center;gap:var(--space-1);color:var(--ink);text-decoration:none;display:inline-flex}.app-title-link .icon{color:var(--ink)}.app-title{font-size:var(--t-display-xs-size);line-height:var(--t-display-xs-lh);margin:0;font-weight:400}.app-nav{align-self:stretch;align-items:stretch;gap:var(--space-3);margin-block:calc(-1 * var(--space-1-5));margin-left:var(--space-4);margin-right:auto;display:flex}.app-nav-link{color:var(--body-mid);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);-webkit-tap-highlight-color:transparent;align-items:center;text-decoration:none;transition:color .12s;display:inline-flex;position:relative}.app-nav-link:hover,.app-nav-link[aria-current=page]{color:var(--ink)}.app-nav-link[aria-current=page]:after{content:"";background:var(--ink);height:1px;position:absolute;bottom:-1px;left:0;right:0}@media (width<=719px){.app-nav{display:none}}body[data-screen=game] .app-nav{display:none}@media (width>=720px) and (width<=959px){.app-nav{gap:var(--space-1-5);margin-left:var(--space-2)}}.online-count{align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;color:var(--body-mid);white-space:nowrap;display:inline-flex}.online-count .numeric{color:var(--ink)}.online-count-dot{background:var(--breeze);border-radius:50%;flex:none;width:6px;height:6px}.app-nav-online{margin-left:var(--space-1);align-self:center;display:none}@media (width>=960px){.app-nav-online{display:inline-flex}}.app-header-right{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.user-badge{align-items:center;gap:var(--space-1);flex:0 auto;min-width:0;display:inline-flex}.user-badge-link{align-items:center;gap:var(--space-1);box-sizing:border-box;min-width:0;min-height:36px;color:var(--ink);border:1px solid var(--pill-border);border-radius:var(--r-pill);padding:var(--space-half) var(--space-1-5);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);text-decoration:none;display:inline-flex}.user-badge-link:hover{border-color:var(--pill-border-hover);background:var(--canvas-soft)}.user-badge-link .icon{color:var(--body-mid);flex:none}.icon-success{color:var(--ink)}.icon-danger{color:var(--sunset)}.user-badge-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:40vw;overflow:hidden}.user-badge-rating{color:var(--body-mid);flex-shrink:0}.user-badge-coins{color:var(--body-mid);flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.match-clock{box-sizing:border-box;min-height:36px;padding:0 var(--space-1-5);border:1px solid var(--pill-border);border-radius:var(--r-pill);color:var(--ink);align-items:center;display:inline-flex}.match-clock.low{color:var(--sunset)}.match-clock-link{gap:var(--space-1);color:var(--ink);font-family:var(--font-sans);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);-webkit-tap-highlight-color:transparent;text-decoration:none}.match-clock-link:hover{border-color:var(--pill-border-hover);background:var(--canvas-soft)}.match-clock-link .icon{color:var(--body-mid)}.match-clock-label{color:var(--ink)}.match-clock-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.match-clock.low .match-clock-time{color:var(--sunset)}.mute-toggle{border-radius:var(--r-pill);border:1px solid var(--pill-border);min-width:36px;min-height:36px;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.mute-toggle:hover{border-color:var(--pill-border-hover);background:var(--canvas-soft)}@media (width<=480px){.mute-toggle{min-width:44px;min-height:44px}}.connection-indicator{align-items:center;gap:var(--space-1);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body-mid);display:inline-flex}.connection-indicator-dot{background:var(--body-mid);border-radius:50%;width:8px;height:8px}.connection-indicator-dot.status-open{background:var(--ink)}.connection-indicator-dot.status-connecting{background:var(--body-mid)}@media (width<=719px){.app-header{min-height:56px;padding-top:env(safe-area-inset-top);padding-bottom:0;padding-left:max(var(--space-2), env(safe-area-inset-left));padding-right:max(var(--space-2), env(safe-area-inset-right));flex-wrap:nowrap}.app-header-right{gap:var(--space-1);flex-wrap:nowrap}.match-clock,.mute-toggle,.connection-indicator{flex-shrink:0}.match-clock{padding:0 var(--space-1)}.match-clock-label{display:none}.user-badge-link{padding:var(--space-half) var(--space-1)}.user-badge-name{max-width:120px}.user-badge-rating,.user-badge-coins{font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh)}:is(.app-header-right:has(.match-clock) .user-badge-rating,.app-header-right:has(.match-clock) .user-badge-coins){display:none}.app-header-right:has(.match-clock) .user-badge-name{display:none}.app-header-right:has(.match-clock) .user-badge-link{justify-content:center;min-width:36px}.user-badge-action{border-radius:var(--r-pill);justify-content:center;min-width:36px;min-height:36px}.user-badge-action-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.connection-indicator-label{display:none}}@media (width<=419px){.user-badge-rating,.user-badge-coins{display:none}}.global-error{padding:var(--space-1) var(--space-3);color:var(--sunset);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);background:var(--canvas-soft);border-bottom:1px solid var(--sunset-border);justify-content:space-between;align-items:center;gap:var(--space-1-5);margin:0;display:flex}.global-error-dismiss{min-width:36px;min-height:36px;color:inherit;cursor:pointer;padding:0 var(--space-half);background:0 0;border:none;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}@media (width<=480px){.global-error-dismiss{min-width:44px;min-height:44px}}.restart-banner{padding:var(--space-1) var(--space-3);color:var(--body);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);background:var(--canvas-soft);margin:0}.crash-page,.not-found-page{justify-content:center;align-items:center;gap:var(--space-1-5);padding:var(--space-3);text-align:center;flex-direction:column;flex:1;display:flex}.crash-card{align-items:center;gap:var(--space-1-5);flex-direction:column;max-width:420px;display:flex}.crash-card h1,.not-found-page h1{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.crash-card p,.not-found-page p{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body);margin:0}.route-loading{padding:var(--space-3);text-align:center}.primary-button,.secondary-button{min-height:36px;padding:var(--space-1) var(--space-2);border-radius:var(--r-pill);font-size:var(--t-button-md-size);line-height:var(--t-button-md-lh);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-1);font-weight:400;text-decoration:none;display:inline-flex}.primary-button{background:var(--primary);color:var(--on-primary);border:1px solid var(--primary)}.primary-button:hover:not(:disabled){background:var(--ink-hover);border-color:var(--ink-hover)}.secondary-button{color:var(--ink);border:1px solid var(--pill-border);background:0 0}.secondary-button:hover:not(:disabled){border-color:var(--pill-border-hover);background:var(--canvas-soft)}.secondary-button:disabled,.primary-button:disabled{color:var(--body-mid);border-color:var(--pill-border-disabled);cursor:not-allowed;background:0 0}.destructive-button{color:var(--sunset);border-color:var(--sunset-border)}.destructive-button:hover:not(:disabled){border-color:var(--sunset);background:var(--canvas-soft)}.button-sm{min-height:28px;padding:var(--space-half) var(--space-1-5)}.link-button{color:var(--ink);font-size:inherit;line-height:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.soon-hint{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);color:var(--body-mid);text-transform:uppercase}.text-input{min-height:44px;padding:var(--space-1-5) var(--space-2);border-radius:var(--r-card);border:1px solid var(--hairline);background:var(--canvas-soft);color:var(--ink);font:400 var(--t-body-md-size) / var(--t-body-md-lh) var(--font-sans);letter-spacing:var(--t-body-md-ls)}.text-input::placeholder{color:var(--body-mid)}.text-input:focus-visible{border-color:var(--pill-border-hover)}.home-page{flex-direction:column;flex:1;align-items:center;width:100%;display:flex}.home-hero{width:100%;max-width:var(--home-max);padding:var(--space-8) var(--space-3);gap:var(--space-4);grid-template-columns:1fr;margin:0 auto;display:grid}.home-hero-copy{align-items:flex-start;gap:var(--space-2);text-align:left;flex-direction:column;display:flex}.home-hero-board-col{padding:var(--space-3) 0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}@media (width<=959px){.home-hero-board-col{height:320px;padding:0}}@media (width<=719px){.home-hero-board-col{height:210px}.hero-board-css-layer{justify-content:center;align-items:center;height:100%;display:flex}}@media (width>=960px){.home-hero{max-width:1440px;min-height:calc(100svh - 56px);padding-right:0;padding-left:calc(max(var(--space-3), calc((min(100%, 1440px) - 528px) * .073)) + 88px);flex:1;grid-template-columns:minmax(0,440px) minmax(0,1fr);align-content:center;align-items:center;gap:0}.home-hero-board-col{aspect-ratio:1.3;width:min(100%,832px,130svh - 245.7px);min-height:0;padding:var(--space-3);justify-self:end;translate:0 -10.5%}}.home-eyebrow-row{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.home-eyebrow{margin:0}.home-hero-online{display:none}@media (width<=959px){.home-hero-online{display:inline-flex}}.home-hero-title{font-size:var(--t-display-lg-size);line-height:var(--t-display-lg-lh);letter-spacing:var(--t-display-lg-ls);max-width:900px;margin:0;font-weight:400}.home-hero-lead{font-size:var(--t-body-lg-size);line-height:var(--t-body-lg-lh);color:var(--body);max-width:640px;margin:0}.home-hero-lead .numeric{color:var(--ink)}.home-nav{gap:var(--space-1-5);margin-top:var(--space-1);flex-wrap:wrap;justify-content:flex-start;display:flex}@media (width<=719px){.home-hero{padding:var(--space-3) var(--space-2);gap:var(--space-2)}.home-hero-copy{gap:var(--space-1-5)}.home-hero-title{font-size:var(--t-display-lg-mobile-size);line-height:var(--t-display-lg-mobile-lh);letter-spacing:var(--t-display-lg-mobile-ls)}.home-nav{gap:var(--space-1);grid-template-columns:1fr;width:100%;margin-top:0;display:grid}.home-nav .primary-button,.home-nav .secondary-button{width:100%}.home-nav .primary-button{min-height:48px}.home-nav .secondary-button{min-height:44px;padding:0 var(--space-1);white-space:nowrap}}.home-nav .icon{flex:none}.home-nav .primary-button,.home-nav .secondary-button,.home-join-form button,.home-links a,.home-code-toggle{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.home-play-caption{font-family:var(--font-sans);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);letter-spacing:var(--t-body-sm-ls);color:var(--body-mid);text-align:left;margin:0}.home-links{display:none}@media (width<=719px){.home-links{gap:var(--space-3);display:flex}.home-links a{min-height:44px;color:var(--ink);font-size:var(--t-body-md-size);line-height:var(--t-body-md-lh);text-decoration:underline;-webkit-text-decoration-color:var(--pill-border);text-decoration-color:var(--pill-border);text-underline-offset:4px;align-items:center;display:inline-flex}}.home-join{align-items:center;min-height:38px;display:flex}.home-code-toggle{color:var(--body-mid);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);-webkit-text-decoration-color:var(--pill-border);text-decoration-color:var(--pill-border);text-underline-offset:4px;padding-block:var(--space-1);margin-block:calc(-1 * var(--space-1));align-self:flex-start}.home-code-toggle:hover{color:var(--ink)}@media (width<=719px){.home-code-toggle{padding-block:var(--space-1-5);margin-block:calc(-1 * var(--space-1-5))}}.home-join-form{align-items:center;gap:var(--space-1);display:flex}.home-join-input{min-height:36px;padding:0 var(--space-1-5);border-radius:var(--r-card);border:1px solid var(--hairline);background:var(--canvas-soft);color:var(--ink);font:400 var(--t-body-sm-size) / var(--t-body-sm-lh) var(--font-mono);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;appearance:none;width:176px}.home-join-input::-webkit-search-decoration{-webkit-appearance:none;display:none}.home-join-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.home-join-input::-webkit-search-results-button{-webkit-appearance:none;display:none}.home-join-input::-webkit-search-results-decoration{-webkit-appearance:none;display:none}.home-join-input::placeholder{color:var(--body-mid);font-family:var(--font-sans);text-transform:none}@media (width<=719px){.home-join-input{min-width:0;min-height:44px;font-size:var(--t-body-md-size);line-height:var(--t-body-md-lh);flex:1}.home-join-form button{min-height:44px}.home-join-form{width:100%}.home-join{width:100%;min-height:44px}}.home-code-cancel{color:var(--body-mid);font-size:var(--t-body-sm-size);padding:0 var(--space-1);text-decoration:none}.home-code-cancel:hover{color:var(--ink)}.room-page{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;flex-direction:column;flex:1;display:flex}.room-eyebrow{margin:0}.room-code{font-family:var(--font-mono);font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:0;margin:0;font-weight:400}.room-link-row{gap:var(--space-1);flex-wrap:wrap;width:min(100%,420px);display:flex}.room-link-field{min-width:0;min-height:36px;padding:0 var(--space-1-5);border-radius:var(--r-card);border:1px solid var(--hairline);background:var(--canvas-soft);color:var(--body);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);flex:200px}.room-link-actions{gap:var(--space-1);flex:auto;display:flex}.room-link-actions .secondary-button{white-space:nowrap;-webkit-tap-highlight-color:transparent;flex:1}@media (width<=719px){.room-link-row{flex-direction:column;align-items:stretch}.room-link-field{flex:none;min-height:44px}.room-link-actions .secondary-button{min-height:44px}}.room-players{gap:var(--space-1);flex-direction:column;width:min(100%,320px);margin:0;padding:0;list-style:none;display:flex}.room-player{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-1-5) var(--space-2);background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);font-size:var(--t-body-md-size);line-height:var(--t-body-md-lh);display:flex}.room-player .icon{color:var(--body-mid)}.room-player-waiting{border-style:dashed}@media (width<=719px){.room-start-button{min-height:44px;padding:0 var(--space-3);width:min(100%,320px)}}.game-page{gap:var(--space-2);padding:var(--space-2);flex-direction:column;flex:1;width:100%;max-width:1100px;margin:0 auto;display:flex}.practice-loading{color:var(--body-mid);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.game-panels{gap:var(--space-1-5);flex-direction:column;order:2;display:flex}.game-board-area{order:1;justify-content:center;display:flex;position:relative}.number-pad{order:3}@media (width<=719px){body[data-screen=game] .app-shell{height:100dvh}body[data-screen=game] #main-content{flex-direction:column;flex:1;min-height:0;display:flex}.game-page{min-height:0;padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom));flex:1;overflow:hidden}.game-panels{order:1}.game-board-area{flex:1;order:2;align-items:center;min-height:0;container-type:size}.number-pad{width:100%}}@media (width>=720px){.game-page{place-content:center;align-items:start;gap:var(--space-3);grid-template-columns:minmax(320px,600px) 256px;grid-template-areas:"board panels""board pad";display:grid}.game-board-area{grid-area:board}.game-panels{grid-area:panels}.number-pad{grid-area:pad}}.board{aspect-ratio:1;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-card);grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);gap:1px;width:min(92vw,62vh);max-width:560px;display:grid;overflow:hidden}@media (width<=719px){.board{width:min(100cqw,100cqh)}}.board-cell{background:var(--canvas-card);cursor:pointer;color:var(--ink);font-family:var(--font-sans);font-size:var(--t-board-digit-size);font-variant-numeric:tabular-nums;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:none;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;display:flex;position:relative}@media (width<=719px){.board-cell{font-size:var(--t-board-digit-size-mobile)}}.board-cell.border-right{border-right:1.5px solid var(--pill-border)}.board-cell.border-bottom{border-bottom:1.5px solid var(--pill-border)}.board-cell .cell-value{font-family:var(--font-sans)}.board-cell.given{color:var(--ink)}.board-cell.solved{color:var(--breeze)}.board-cell.pending{color:var(--body-mid)}.board-cell.wrong{color:var(--sunset)}.board-cell.revealed{color:var(--body-mid)}.board-cell.peer{background:#141414}.board-cell.same-digit:not(.wrong){color:var(--breeze)}.board-cell.selected{background:var(--canvas-mid);outline:1px solid var(--breeze);outline-offset:-1px}@media (width<=719px){.board-cell.selected{outline-width:2px}}.board-cell:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.cell-notes{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;display:grid}.cell-note{font-family:var(--font-mono);font-size:var(--t-board-note-size);color:var(--body-mid-on-surface);justify-content:center;align-items:center;line-height:1;display:flex}@media (width<=719px){.cell-note{font-size:var(--t-board-note-size-mobile)}}.countdown-overlay{border-radius:var(--r-card);background:#0a0a0ab8;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.countdown-number{font-family:var(--font-mono);font-size:var(--t-display-md-size);line-height:var(--t-display-md-lh);letter-spacing:var(--t-display-md-ls);color:var(--ink);justify-content:center;align-items:center;display:inline-flex}.end-screen-backdrop{z-index:50;padding:var(--space-2);padding-top:calc(var(--space-2) + env(safe-area-inset-top));padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0ab8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.end-screen-card{background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);padding:var(--space-3);width:min(420px, calc(100% - 2 * var(--space-2)));max-height:calc(100vh - 2 * var(--space-2));max-height:calc(100dvh - 2 * var(--space-2));gap:var(--space-2);text-align:center;flex-direction:column;display:flex;overflow-y:auto}.end-screen-eyebrow{margin:0}.end-screen-title{justify-content:center;align-items:center;gap:var(--space-1);font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400;display:flex}.end-screen-stats-cols{align-items:center;gap:var(--space-1) var(--space-1-5);text-align:left;grid-template-columns:auto 1fr 1fr;display:grid}.end-stat-col-header{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);color:var(--body-mid-on-surface);text-transform:uppercase;text-align:center}.end-stat-label{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);color:var(--body-mid-on-surface);text-transform:uppercase}.end-stat-value{font-size:var(--t-body-md-size);line-height:var(--t-body-md-lh);color:var(--ink);text-align:center;justify-content:center;align-items:center;gap:var(--space-quarter);display:inline-flex}.end-stat-trend-up{color:var(--breeze)}.end-stat-trend-down{color:var(--sunset)}.end-screen-actions{gap:var(--space-1-5);display:flex}.end-screen-actions .primary-button,.end-screen-actions .secondary-button{flex:1}.end-screen-replay-link{margin-top:var(--space-half);align-self:center}.number-pad{align-items:center;gap:var(--space-1-5);flex-direction:column;display:flex}.number-pad-digits{gap:var(--space-1);grid-template-columns:repeat(3,44px);grid-auto-rows:44px;display:grid}.number-pad-actions{gap:var(--space-1);display:flex}.pad-button{border:1px solid var(--pill-border);color:var(--ink);font-size:var(--t-button-md-size);line-height:var(--t-button-md-lh);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;justify-content:center;align-items:center;display:flex}.pad-button:hover:not(:disabled){border-color:var(--pill-border-hover);background:var(--canvas-soft)}.pad-button:disabled{color:var(--body-mid);border-color:var(--pill-border-disabled);cursor:not-allowed}.number-pad-digits .pad-button{border-radius:50%;width:44px;height:44px;padding:0}.number-pad-digits .pad-button .numeric{font-size:var(--t-body-md-size)}.number-pad-digits .pad-button.complete{color:var(--body-mid);border-color:var(--pill-border-disabled);cursor:default}@keyframes digit-check-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.digit-check{animation:.18s ease-out digit-check-in}@media (prefers-reduced-motion:reduce){.digit-check{animation:none}}@media (width<=719px){.number-pad{gap:var(--space-1);width:100%}.number-pad-digits{gap:var(--space-half);grid-template-columns:repeat(9,1fr);grid-auto-rows:48px;width:100%}.number-pad-digits .pad-button{border-radius:10px;width:100%;height:100%;min-height:48px}.number-pad-digits .pad-button .numeric{font-size:var(--t-display-xs-size)}.number-pad-digits .pad-button .digit-check{width:22px;height:22px}}.number-pad-actions .pad-button{border-radius:50%;flex:none;width:44px;height:44px;min-height:0}.number-pad-actions .forfeit-button{color:var(--sunset);border-color:var(--sunset-border)}.number-pad-actions .forfeit-button:hover:not(:disabled){border-color:var(--sunset);background:var(--canvas-soft)}.number-pad-actions .forfeit-button:disabled{color:var(--body-mid);border-color:var(--pill-border-disabled)}.action-button.active{background:var(--canvas-mid);color:var(--ink);border-color:var(--ink)}@media (width>=720px){.number-pad-digits{grid-template-columns:repeat(3,48px);grid-auto-rows:48px}.number-pad-digits .pad-button,.number-pad-actions .pad-button{width:48px;height:48px}}.player-panel,.opponent-panel{background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);padding:var(--space-1-5) var(--space-2);gap:var(--space-1);flex-direction:column;transition:border-color .3s;display:flex}.opponent-panel.active-pulse{border-color:var(--twilight)}.opponent-panel.danger{border-color:var(--sunset)}.opponent-panel.danger .progress-fill.opponent{background:var(--sunset)}@media (prefers-reduced-motion:reduce){.player-panel,.opponent-panel{transition:none}}.panel-eyebrow{display:block}.reconnecting-label{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);color:var(--sunset);text-transform:uppercase;margin:0}.panel-row{justify-content:space-between;align-items:center;gap:var(--space-1);display:flex}.panel-name{font-size:var(--t-display-xs-size);line-height:var(--t-display-xs-lh);color:var(--ink);font-weight:400}.panel-rating{color:var(--body-mid);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh)}.panel-progress-label{font-size:var(--t-caption-mono-sm-size);color:var(--body-mid-on-surface);justify-content:flex-end}.connection-dot{background:var(--body-mid);border-radius:50%;width:8px;height:8px}.connection-dot.connected{background:var(--ink)}.progress-track{border-radius:var(--r-pill);background:var(--hairline);height:2px;overflow:hidden}.progress-fill{background:var(--breeze);height:100%;transition:width .2s}.progress-fill.opponent{background:var(--twilight)}.mistake-pips{align-items:center;gap:var(--space-half);display:inline-flex}.pip{border:1px solid var(--hairline);background:0 0;border-radius:50%;width:8px;height:8px}.pip.filled{background:var(--sunset);border-color:var(--sunset)}.mistake-pips.shake{animation:.42s pip-shake}@keyframes pip-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@media (prefers-reduced-motion:reduce){.mistake-pips.shake{animation:none}}@media (width<=719px),(width>=720px) and (height<=520px){.game-panels{gap:var(--space-half) var(--space-1);grid-template-columns:1fr 1fr;grid-template-areas:"you opp""lead lead";display:grid}.player-panel{grid-area:you}.opponent-panel{grid-area:opp}.lead-bar{grid-area:lead}.player-panel,.opponent-panel{align-items:center;gap:var(--space-half) var(--space-1);padding:var(--space-half) var(--space-1-5);grid-template-columns:auto 1fr auto;grid-template-areas:"header header header""pips track pct";display:grid}.opponent-panel:has(.reconnecting-label){grid-template-areas:"header header header""reconnect reconnect reconnect""pips track pct"}.panel-eyebrow{display:none}.panel-row{grid-area:pips}.panel-header{grid-area:header;min-width:0}.reconnecting-label{grid-area:reconnect;margin:0}.panel-name{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.progress-track{grid-area:track}.panel-progress-label{grid-area:pct}}@media (width>=720px) and (height<=520px){.game-page{grid-template-columns:minmax(260px,1fr) minmax(200px,240px) auto;grid-template-areas:"board panels pad"}.board{width:min(60vw,100dvh - 90px)}.game-panels{grid-template-columns:1fr;grid-template-areas:"you""opp""lead"}}@media (width<=719px) and (height<=520px){.game-page{grid-template:"board panels""board pad"1fr/auto minmax(0,1fr);align-items:start;display:grid}.game-board-area{flex:none;grid-area:board;align-self:center;container-type:normal}.board{width:min(100dvh - 88px,55vw)}.game-panels{grid-area:panels}.number-pad{grid-area:pad;align-self:end;width:100%}}.lead-bar{gap:var(--space-half);flex-direction:column;align-items:center;display:flex}.lead-bar-track{border-radius:var(--r-pill);background:var(--hairline);width:100%;height:2px;position:relative;overflow:hidden}.lead-bar-mid{background:var(--pill-border);width:1px;position:absolute;top:0;bottom:0;left:50%}.lead-bar-fill{position:absolute;top:0;bottom:0}.lead-bar-fill.you{background:var(--breeze)}.lead-bar-fill.opponent{background:var(--twilight)}.lead-bar-label{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);color:var(--body-mid);text-transform:uppercase}@media (width<=719px){.lead-bar{gap:var(--space-quarter)}}.toast{background:var(--canvas-soft);color:var(--ink);border:1px solid var(--hairline);padding:var(--space-1-5) var(--space-2);border-radius:var(--r-card);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);z-index:50;text-align:center;max-width:min(90vw,420px);position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@media (width<=719px){.toast{top:calc(64px + env(safe-area-inset-top));bottom:auto}}.queue-page,.found-page,.cancelled-page{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;flex-direction:column;flex:1;display:flex}.queue-card,.found-card,.cancelled-card{align-items:center;gap:var(--space-2);flex-direction:column;width:min(100%,380px);display:flex}.queue-heading{align-items:center;gap:var(--space-1);font-size:var(--t-display-xs-size);line-height:var(--t-display-xs-lh);margin:0;display:inline-flex}.queue-dots{gap:var(--space-half);display:inline-flex}.queue-dot{background:var(--ink);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite queue-dot-bounce}.queue-dot:nth-child(2){animation-delay:.15s}.queue-dot:nth-child(3){animation-delay:.3s}@keyframes queue-dot-bounce{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.queue-dot{opacity:.7;animation:none}}.queue-wait{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);margin:0;font-weight:400}.queue-meta{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body);margin:0}.found-title{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.found-opponent-row{align-items:center;gap:var(--space-1);margin:0;display:inline-flex}.found-starting{align-items:center;gap:var(--space-half);margin:0;display:inline-flex}.cancelled-actions{gap:var(--space-1-5);display:flex}.cancelled-title{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.cancelled-hint{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body);margin:0}.leaderboard-page{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);width:100%;max-width:var(--content-max);flex-direction:column;flex:1;margin:0 auto;display:flex}.leaderboard-title{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.leaderboard-rank-line{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);margin:0}.leaderboard-table-wrap{background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);width:100%;padding:var(--space-half) var(--space-1);overflow-x:auto}.leaderboard-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh)}.leaderboard-table th,.leaderboard-table td{padding:var(--space-1) var(--space-1-5);text-align:left;border-bottom:1px solid var(--hairline);overflow:hidden}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-table th{color:var(--body-mid-on-surface);font-family:var(--font-mono);font-weight:400;font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase}.leaderboard-table td.numeric,.leaderboard-table th:first-child{text-align:right}.leaderboard-table td.numeric{white-space:nowrap}.leaderboard-table th:first-child,.leaderboard-table td:first-child{width:10%}.leaderboard-table th:nth-child(3),.leaderboard-table td:nth-child(3){width:18%}.leaderboard-table th:nth-child(4),.leaderboard-table td:nth-child(4){width:16%}.leaderboard-table th:nth-child(5),.leaderboard-table td:nth-child(5){width:22%}.leaderboard-name-wrap{align-items:center;gap:var(--space-half);min-width:0;display:flex}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=719px){.leaderboard-table th:nth-child(4),.leaderboard-table td:nth-child(4){display:none}.leaderboard-table th:first-child,.leaderboard-table td:first-child{width:12%}.leaderboard-table th:nth-child(3),.leaderboard-table td:nth-child(3){width:22%}.leaderboard-table th:nth-child(5),.leaderboard-table td:nth-child(5){width:26%}}.leaderboard-row-you{background:var(--canvas-soft)}.user-badge-action{margin-left:var(--space-1);min-height:36px;padding:var(--space-half) var(--space-1-5);border:1px solid var(--pill-border);border-radius:var(--r-pill);color:var(--ink);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);cursor:pointer;align-items:center;gap:var(--space-half);background:0 0;text-decoration:none;display:inline-flex}.user-badge-action:hover{border-color:var(--pill-border-hover);background:var(--canvas-soft)}.home-register-hint{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);white-space:nowrap}.account-page{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;flex-direction:column;flex:1;width:100%;max-width:380px;margin:0 auto;display:flex}.account-title{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.account-hint{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);margin:0}.account-tabs{gap:var(--space-half);border:1px solid var(--pill-border);border-radius:var(--r-pill);width:100%;padding:var(--space-half);background:0 0;display:flex}.account-tab{border-radius:var(--r-pill);min-height:32px;color:var(--body-mid);cursor:pointer;font-size:var(--t-button-md-size);line-height:var(--t-button-md-lh);background:0 0;border:none;flex:1}.account-tab:hover:not(.active){background:var(--canvas-soft)}.account-tab.active{background:var(--canvas-mid);color:var(--ink);border:1px solid var(--pill-border-hover)}.account-form{gap:var(--space-1-5);width:100%;padding:var(--space-2);background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);text-align:left;flex-direction:column;display:flex}.account-field{gap:var(--space-half);font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);color:var(--body-mid-on-surface);text-transform:uppercase;flex-direction:column;display:flex}.account-field input{min-height:44px;padding:0 var(--space-1-5);border-radius:var(--r-card);border:1px solid var(--hairline);background:var(--canvas-soft);color:var(--ink);font:400 var(--t-body-md-size) / var(--t-body-md-lh) var(--font-sans);letter-spacing:var(--t-body-md-ls);text-transform:none}.account-field input:focus-visible{border-color:var(--pill-border-hover)}.account-error{color:var(--sunset);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);margin:0}.account-home-link{width:100%}.profile-page{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);width:100%;max-width:var(--content-max);flex-direction:column;flex:1;margin:0 auto;display:flex}.profile-name{align-items:center;gap:var(--space-1);font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);overflow-wrap:anywhere;flex-wrap:wrap;margin:0;font-weight:400;display:flex}.profile-stats-card{gap:var(--space-1-5);width:100%;padding:var(--space-2);background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=719px){.profile-stats-card{grid-template-columns:repeat(2,1fr)}}.profile-stat{align-items:center;gap:var(--space-half);flex-direction:column;display:flex}.profile-stat .icon{color:var(--body-mid)}.profile-stat-label{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;color:var(--body-mid-on-surface)}.profile-stat-value{font-family:var(--font-mono);font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:0}.profile-history-title{font-size:var(--t-display-xs-size);line-height:var(--t-display-xs-lh);align-self:flex-start;margin:0;font-weight:400}.profile-history-list{gap:var(--space-1);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.profile-history-row{justify-content:space-between;align-items:center;gap:var(--space-1);padding:var(--space-1-5);background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);flex-wrap:wrap;display:flex}.profile-history-main{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.profile-history-opponent{overflow-wrap:anywhere}.profile-result{padding:1px var(--space-1);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;border:1px solid var(--pill-border);background:0 0;display:inline-block}.profile-result-won{color:var(--ink);border-color:var(--ink)}.profile-result-lost{color:var(--body-mid);border-color:var(--body-mid)}.profile-result-draw{color:var(--body-mid);border-color:var(--hairline)}.profile-history-meta{align-items:center;gap:var(--space-1-5);display:flex}.profile-history-opponent-rating{font-size:var(--t-caption-mono-sm-size);margin-left:2px}.rating-up{color:var(--breeze)}.rating-down{color:var(--sunset)}.rating-flat{color:var(--body-mid)}.profile-home-link{margin-top:var(--space-half)}.match-page{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);flex-direction:column;flex:1;width:100%;max-width:1100px;margin:0 auto;display:flex}.match-title{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.match-summary-card{gap:var(--space-1-5);width:100%;padding:var(--space-2);background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);grid-template-columns:1fr 1fr;display:grid}.match-summary-player{gap:var(--space-half);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);flex-direction:column;display:flex}.match-summary-player-name{font-size:var(--t-display-xs-size);line-height:var(--t-display-xs-lh);align-items:center;gap:var(--space-1);display:flex}.match-winner-tag{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);border-radius:var(--r-pill);padding:1px var(--space-1);background:0 0;display:inline-block}.match-reason-line{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);align-self:flex-start;margin:0}.match-replay-layout{gap:var(--space-3);grid-template-columns:1fr;width:100%;display:grid}@media (width>=900px){.match-replay-layout{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) minmax(320px,440px);align-items:start}.match-replay-chart-col{grid-area:1/1}.match-replay-controls{grid-area:2/1}.match-replay-board-col{grid-area:1/2/span 2}}.match-replay-controls,.match-replay-chart-col{align-items:center;gap:var(--space-1-5);flex-direction:column;width:100%;min-width:0;display:flex}.match-replay-board-col{justify-content:center;width:100%;display:flex}.match-chart-section{width:100%}.replay-chart{width:100%;height:auto;display:block}.replay-chart-grid{stroke:var(--hairline);stroke-width:1px}.replay-chart-axis-label{fill:var(--body-mid);font-family:var(--font-mono);text-transform:uppercase;font-size:12px}.replay-chart-line{fill:none;stroke-width:2.5px}.replay-legend{gap:var(--space-half) var(--space-2);margin-bottom:var(--space-half);font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;color:var(--body-mid);flex-wrap:wrap;padding-left:32px;display:flex}.replay-legend-item{align-items:center;gap:var(--space-half);display:inline-flex}.replay-legend-dot{border-radius:50%;flex:none;width:8px;height:8px}.match-stepper-toggle{gap:var(--space-1);width:100%;max-width:420px;display:flex}.match-stepper-toggle button{border:1px solid var(--pill-border);border-radius:var(--r-pill);min-height:36px;color:var(--body-mid);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;flex:1}.match-stepper-toggle button:hover:not(.active){border-color:var(--pill-border-hover);background:var(--canvas-soft)}.match-stepper-toggle button.active{background:var(--canvas-mid);color:var(--ink);border-color:var(--pill-border-hover)}.board-cell.replay-cell{cursor:default}.replay-board{width:100%;max-width:440px}@media (width<=899px){.replay-board{width:min(100%,62vh)}}.match-stepper-controls{gap:var(--space-1);display:flex}.match-stepper-controls button{-webkit-tap-highlight-color:transparent;width:44px;height:44px;padding:0}.match-stepper-slider{width:100%;max-width:420px;accent-color:var(--ink);touch-action:pan-y;-webkit-tap-highlight-color:transparent}.match-stepper-slider::-webkit-slider-thumb{appearance:none;background:var(--ink);cursor:pointer;border-radius:50%;width:28px;height:28px}.match-stepper-slider::-moz-range-thumb{background:var(--ink);cursor:pointer;border:none;border-radius:50%;width:28px;height:28px}.match-stepper-time{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body);margin:0}.match-actions{gap:var(--space-1-5);margin-top:var(--space-half);display:flex}#main-content:focus,#main-content:focus-visible{outline:none}.hero-board-wrap{--hero-board-scale:.92;pointer-events:none;justify-content:center;align-items:center;width:100%;display:flex}@media (hover:hover) and (pointer:fine){.hero-board-wrap{pointer-events:auto}}@media (width<=719px),(hover:none){.hero-board-wrap{--hero-board-scale:.55}}.hero-board-stage{perspective:1400px;transform-style:preserve-3d}@media (hover:hover) and (pointer:fine){.hero-board-stage{animation:9s ease-in-out infinite hero-board-float}.hero-board-wrap.is-active .hero-board-stage{animation:none}}@media (prefers-reduced-motion:reduce){.hero-board-stage{animation:none}}@keyframes hero-board-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.hero-board{--rx:52deg;--rz:-34deg;aspect-ratio:1;background:var(--hairline);border-radius:var(--r-card);width:396px;transform-style:preserve-3d;transform:scale(var(--hero-board-scale)) rotateX(var(--rx)) rotateZ(var(--rz));will-change:transform;border:1px solid #ffffff47;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);gap:1px;transition:transform .6s;display:grid;overflow:hidden}.hero-board.is-tilting{transition:transform .22s}@media (prefers-reduced-motion:reduce){.hero-board{transition:none}}.hero-cell{--lift:0px;background:var(--canvas-card);transform-style:preserve-3d;transform:translateZ(var(--lift));justify-content:center;align-items:center;display:flex;position:relative}@media (prefers-reduced-motion:no-preference){.hero-cell{transition:transform .15s,outline-color .15s}}.hero-cell.border-right{border-right:1.5px solid #ffffff47}.hero-cell.border-bottom{border-bottom:1.5px solid #ffffff47}.hero-cell.given{--lift:10px;color:var(--ink)}.hero-cell.entry{--lift:14px;color:var(--breeze)}.hero-cell.wrong{--lift:14px;color:var(--sunset)}.hero-cell.has-digit:before{content:"";border:1px solid var(--hairline);border-radius:inherit;background:#ffffff0d;position:absolute;inset:0;transform:translateZ(-6px)}.hero-cell.is-peer{background:#a0c3ec14}.hero-cell.is-hovered{outline:1px solid var(--breeze);outline-offset:-1px}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.hero-cell.is-hovered{transform:translateZ(30px)}}@media (prefers-reduced-motion:no-preference){.hero-cell.has-content{animation:hero-digit-in .48s ease-out var(--intro-delay,0s) backwards}.hero-cell.has-digit:before{animation:hero-face-in .48s ease-out var(--intro-delay,0s) backwards}.hero-cell.has-content .hero-cell-digit,.hero-cell.has-content .hero-cell-notes{animation:hero-digit-content-in .5s ease-out var(--intro-delay,0s) backwards}}@keyframes hero-digit-in{0%{opacity:0;transform:translateZ(-8px)}to{opacity:1;transform:translateZ(var(--lift))}}@keyframes hero-face-in{0%{opacity:0}to{opacity:1}}@keyframes hero-digit-content-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.hero-cell-digit{font-family:var(--font-sans);font-size:var(--t-display-xs-size);font-variant-numeric:tabular-nums;line-height:1}.hero-cell-notes{justify-content:center;align-items:center;gap:2px;display:flex}.hero-cell-note{font-family:var(--font-mono);font-size:var(--t-board-note-size-mobile);color:var(--body-mid);line-height:1}.hero-board-switch{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hero-board-3d{opacity:0;pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.hero-board-3d{transition:opacity .3s}}.hero-board-3d.is-visible{opacity:1}.hero-board-3d-host{width:100%;height:100%;display:block;position:relative}.hero-board-3d-canvas{display:block;position:absolute;top:0;left:0}.home-about{width:100%;max-width:720px;padding:var(--space-8) var(--space-3);border-top:1px solid var(--hairline);margin-inline:auto}.home-about h2{margin:0 0 var(--space-2);font-family:var(--font-sans);font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);font-weight:400}.home-about>p{margin:0 0 var(--space-3);max-width:65ch;color:var(--body);line-height:1.6}.home-steps{margin:0 0 var(--space-4);gap:var(--space-2);counter-reset:home-step;flex-direction:column;padding:0;list-style:none;display:flex}.home-steps li{max-width:65ch;color:var(--body);counter-increment:home-step;padding-left:var(--space-4);line-height:1.6;position:relative}.home-steps li:before{content:counter(home-step) ".";font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--body-mid);position:absolute;left:0}.home-steps li strong{color:var(--ink)}.home-faq{margin-top:var(--space-4)}.home-faq h3{margin:var(--space-3) 0 var(--space-1);color:var(--ink);font-size:18px;font-weight:400;line-height:1.4}.home-faq h3:first-of-type{margin-top:0}.home-faq p{max-width:65ch;color:var(--body);margin:0;line-height:1.6}.home-about-cta{margin:var(--space-4) 0 0;gap:var(--space-1-5);flex-wrap:wrap;display:flex}@media (width<=719px){.home-about{padding:var(--space-6) var(--space-2)}.home-about h2{font-size:26px;line-height:32px}}.ssr-fallback{max-width:720px;color:var(--body);line-height:1.6;font-family:var(--font-sans);margin:0 auto;padding:48px 24px}.ssr-fallback h1{color:var(--ink);margin:0 0 var(--space-2);font-size:36px;font-weight:400;line-height:1.15}.ssr-fallback h2{color:var(--ink);margin:var(--space-4) 0 var(--space-2);font-size:26px;font-weight:400;line-height:1.15}.ssr-fallback h3{color:var(--ink);margin:var(--space-3) 0 var(--space-1);font-size:18px;font-weight:400}.ssr-fallback p{margin:0 0 var(--space-2);max-width:65ch}.ssr-fallback ol{margin:0 0 var(--space-2);padding-left:var(--space-3)}.ssr-fallback nav a{color:var(--ink);margin-right:var(--space-2)}.leaderboard-name-link,.match-player-link,.profile-opponent-link{color:inherit;text-decoration:none}.leaderboard-name-link:hover,.leaderboard-name-link:focus-visible,.match-player-link:hover,.match-player-link:focus-visible,.profile-opponent-link:hover,.profile-opponent-link:focus-visible{text-decoration:underline}.queue-heading{font-weight:400}.app-footer{border-top:1px solid var(--hairline);padding:var(--space-4) var(--space-3);text-align:center}.app-footer-tagline{margin:0 0 var(--space-1-5);color:var(--body-mid);font-size:13px;line-height:1.5}.app-footer-nav{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.app-footer-nav a{color:var(--body-mid);font-size:13px;line-height:1.5;text-decoration:none}.app-footer-nav a:hover,.app-footer-nav a:focus-visible{color:var(--ink);text-decoration:underline}body[data-screen=game] .app-footer{display:none}.privacy-page{width:100%;max-width:640px;padding:var(--space-4) var(--space-3);gap:var(--space-3);flex-direction:column;flex:1;margin:0 auto;display:flex}.privacy-page h1{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.privacy-page section{gap:var(--space-1);flex-direction:column;display:flex}.privacy-page h2{font-size:var(--t-display-xs-size);line-height:var(--t-display-xs-lh);margin:0;font-weight:400}.privacy-page p{max-width:65ch;color:var(--body);margin:0;line-height:1.6}.privacy-page .secondary-button{align-self:flex-start}.end-rewards{gap:var(--space-1);padding:var(--space-1-5) var(--space-2);background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-card);text-align:left;flex-direction:column;display:flex}.end-rewards-headline{font-size:var(--t-body-lg-size);line-height:var(--t-body-lg-lh);color:var(--ink);margin:0}.end-rewards-xp{color:var(--body-mid-on-surface);font-size:var(--t-body-sm-size)}.end-rewards-ledger{gap:var(--space-half);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.end-rewards-ledger li{justify-content:space-between;align-items:baseline;gap:var(--space-1);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body);display:flex}.end-rewards-levelup{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--breeze);margin:0}.end-rewards-cap-note{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body-mid-on-surface);margin:0}.end-rewards-achievements{gap:var(--space-half);font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--ink);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.end-guest-prompt{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--body);text-decoration:underline;-webkit-text-decoration-color:var(--pill-border);text-decoration-color:var(--pill-border);text-underline-offset:2px;display:block}.end-guest-prompt:hover{color:var(--ink);-webkit-text-decoration-color:var(--pill-border-hover);text-decoration-color:var(--pill-border-hover)}.end-room-waiting{flex:1;justify-content:center;align-items:center;margin:0;display:flex}.home-double-down{align-items:flex-start;gap:var(--space-half);flex-direction:column;display:flex}.home-double-down-pill-armed{color:var(--breeze);border-color:var(--breeze)}.home-double-down-pill-locked{color:var(--body-mid)}.home-double-down-hint{font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);color:var(--body-mid-on-surface);margin:0}@media (width<=719px){.home-nav .home-double-down{align-items:stretch}.home-double-down-hint{text-align:center}}.end-screen-room-rematch{align-items:center;gap:var(--space-1-5);flex-direction:column;display:flex}.room-options{gap:var(--space-1);flex-direction:column;width:min(100%,320px);display:flex}.room-option-row{justify-content:space-between;align-items:center;gap:var(--space-1-5);display:flex}.room-option-label{color:var(--body-mid-on-surface)}.room-option-group{gap:var(--space-half);border:1px solid var(--pill-border);border-radius:var(--r-pill);background:0 0;padding:2px;display:flex}.room-option-pill{min-width:44px;min-height:44px;padding:0 var(--space-1);border-radius:var(--r-pill);color:var(--body-mid);font-family:var(--font-sans);font-size:var(--t-button-md-size);line-height:var(--t-button-md-lh);cursor:pointer;background:0 0;border:none}.room-option-pill:hover:not(:disabled):not(.active){background:var(--canvas-soft)}.room-option-pill.active{background:var(--canvas-mid);color:var(--ink)}.room-option-pill:disabled{cursor:default}.room-option-pill.active:disabled{color:var(--ink);opacity:.85}.match-summary-replay-stats{margin-top:var(--space-half)}.replay-cell.replay-cell-assisted{outline:1.5px dashed var(--twilight);outline-offset:-1.5px}.shop-nav-link{border-radius:var(--r-pill);border:1px solid var(--pill-border);min-width:36px;min-height:36px;color:var(--ink);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.shop-nav-link:hover{border-color:var(--pill-border-hover);background:var(--canvas-soft)}@media (width<=719px){.app-header-right:has(.match-clock) .shop-nav-link{display:none}}@media (width<=480px){.shop-nav-link{min-width:44px;min-height:44px}}.shop-page{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);width:100%;max-width:var(--content-max);flex-direction:column;flex:1;margin:0 auto;display:flex}.shop-header{justify-content:space-between;align-items:center;gap:var(--space-1-5);width:100%;display:flex}.shop-title{font-size:var(--t-display-sm-size);line-height:var(--t-display-sm-lh);letter-spacing:var(--t-display-sm-ls);margin:0;font-weight:400}.shop-balance-pill{align-items:center;gap:var(--space-half);padding:var(--space-half) var(--space-1-5);border:1px solid var(--pill-border);border-radius:var(--r-pill);color:var(--sunset-soft);font-size:var(--t-body-sm-size);flex-shrink:0;display:inline-flex}.shop-guest-banner{align-items:center;gap:var(--space-1-5);width:100%;padding:var(--space-1-5) var(--space-2);background:var(--canvas-card);border:1px solid var(--sunset-border);border-radius:var(--r-card);flex-wrap:wrap;display:flex}.shop-caption{width:100%;font-size:var(--t-body-sm-size);margin:0}.shop-layout,.shop-catalogue{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.shop-showroom-col{order:-1;width:100%}@media (width>=1024px){.shop-layout{align-items:start;gap:var(--space-3);grid-template-columns:minmax(0,11fr) minmax(0,9fr);display:grid}.shop-catalogue{grid-column:1}.shop-showroom-col{order:0;grid-column:2}.shop-catalogue .shop-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}.shop-section{gap:var(--space-1);flex-direction:column;width:100%;display:flex}.shop-section-head{justify-content:space-between;align-items:flex-start;gap:var(--space-1-5);display:flex}.shop-section-title{font-size:var(--t-display-xs-size);line-height:var(--t-display-xs-lh);margin:0;font-weight:400}.shop-section-description{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);margin:0}.shop-section-status{font-size:var(--t-caption-mono-sm-size);white-space:nowrap;flex-shrink:0}.shop-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}@media (width<=719px){.shop-grid{grid-template-columns:repeat(2,1fr)}}.shop-card{align-items:flex-start;gap:var(--space-1);padding:var(--space-1-5);background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);flex-direction:column;transition:transform .15s ease-out,border-color .15s ease-out;display:flex}@media (prefers-reduced-motion:no-preference){.shop-card:hover,.shop-card:focus-within{transform:translateY(-2px)}.shop-card:hover:not(.is-equipped),.shop-card:focus-within:not(.is-equipped){border-color:var(--pill-border-hover)}}.shop-card.is-equipped{border-color:var(--own)}.shop-card.is-equipped[data-tint=breeze]{border-color:var(--breeze)}.shop-card.is-equipped[data-tint=twilight]{border-color:var(--twilight)}.shop-card.is-equipped[data-tint=sunset]{border-color:var(--sunset)}.shop-card.is-equipped[data-tint=gold]{border-color:var(--su2ko-name-color-gold,#e0b84c)}.shop-card.is-equipped[data-tint=crimson]{border-color:var(--su2ko-name-color-crimson,#e0546c)}.shop-card.is-equipped[data-tint=azure]{border-color:var(--su2ko-name-color-azure,var(--breeze))}.shop-card-preview{aspect-ratio:16/10;width:100%;padding:var(--space-1);background:var(--canvas-soft);border-radius:var(--r-card);justify-content:center;align-items:center;display:flex;overflow:hidden}.shop-preview-board{grid-template-columns:repeat(3,1fr);gap:2px;width:100%;height:100%;display:grid}.shop-preview-cell{background:var(--canvas-card);font-family:var(--font-mono);font-size:var(--t-body-sm-size);color:var(--body-mid);border-radius:2px;justify-content:center;align-items:center;display:flex}.shop-preview-cell.is-selected{outline:2px solid var(--pill-border);outline-offset:-2px;color:var(--ink)}.shop-preview-cell.is-same-digit{color:var(--ink)}.shop-preview-board[data-highlight=breeze] .shop-preview-cell.is-selected{outline-color:var(--breeze)}.shop-preview-board[data-highlight=breeze] .shop-preview-cell.is-same-digit{color:var(--breeze)}.shop-preview-board[data-highlight=twilight] .shop-preview-cell.is-selected{outline-color:var(--twilight)}.shop-preview-board[data-highlight=twilight] .shop-preview-cell.is-same-digit{color:var(--twilight)}.shop-preview-board[data-highlight=sunset] .shop-preview-cell.is-selected{outline-color:var(--sunset)}.shop-preview-board[data-highlight=sunset] .shop-preview-cell.is-same-digit{color:var(--sunset)}.shop-preview-digits{justify-content:center;align-items:center;gap:var(--space-1-5);color:var(--ink);font-size:var(--t-body-lg-size);display:flex}.shop-preview-digits[data-digits=serif]{font-family:Georgia,Times New Roman,serif}.shop-preview-digits[data-digits=mono]{font-family:var(--font-mono)}.shop-preview-name-row{align-items:center;gap:var(--space-1);font-size:var(--t-caption-mono-sm-size);color:var(--body-mid);display:flex}.shop-preview-name-sep{color:var(--pill-border)}.shop-preview-name{color:var(--ink)}.shop-preview-flourish{justify-content:center;align-items:center;display:flex}.shop-preview-flourish-title{font-size:var(--t-body-sm-size);color:var(--sunset-soft);text-shadow:0 0 12px var(--sunset-border)}@media (prefers-reduced-motion:no-preference){.shop-card:hover .shop-preview-flourish-title,.shop-card:focus-within .shop-preview-flourish-title{animation:1.6s ease-out victory-flourish-glow}}.shop-preview-streak{justify-content:center;align-items:center;gap:var(--space-half);color:var(--ink);display:flex}.shop-card-name{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh)}.shop-card-price{align-items:center;gap:var(--space-half);color:var(--sunset-soft);font-size:var(--t-caption-mono-sm-size);display:inline-flex}.shop-card-action{gap:var(--space-half);flex-direction:column;width:100%;margin-top:auto;display:flex}.shop-card-cta{width:100%;min-height:44px}.shop-card-locked{color:var(--body-mid)}.shop-card-caption{font-size:var(--t-caption-mono-sm-size);margin:0}.shop-card-error{color:var(--sunset);font-size:var(--t-caption-mono-sm-size);margin:0}.shop-home-link{margin-top:var(--space-half)}.profile-progression{align-items:center;gap:var(--space-1);flex-direction:column;width:100%;display:flex}.profile-level-row{align-items:center;gap:var(--space-1);align-self:flex-start;display:flex}.profile-level-title{font-size:var(--t-body-md-size);line-height:var(--t-body-md-lh)}.xp-bar{border-radius:var(--r-pill);background:var(--canvas-mid);width:100%;height:8px;overflow:hidden}.xp-bar-fill{background:var(--breeze);border-radius:var(--r-pill);height:100%;transition:width .3s ease-out}.xp-bar-caption{font-size:var(--t-caption-mono-sm-size);align-self:flex-start;margin:0}.profile-progression-stats{margin-top:var(--space-1)}.achievements-grid{gap:var(--space-1-5);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));width:100%;display:grid}.achievement-card{gap:var(--space-half);padding:var(--space-1-5);background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);color:var(--ink);flex-direction:column;display:flex}.achievement-card .icon{color:var(--breeze)}.achievement-card.locked,.achievement-card.locked .icon{color:var(--body-mid)}.achievement-card-title{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh)}.achievement-card-rule{font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh)}.achievement-card-meta{font-size:var(--t-caption-mono-sm-size)}.leaderboard-player-title{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);text-transform:uppercase}.board[data-highlight=breeze] .board-cell.selected{outline-color:var(--breeze)}.board[data-highlight=breeze] .board-cell.same-digit:not(.wrong){color:var(--breeze)}.board[data-highlight=twilight] .board-cell.selected{outline-color:var(--twilight)}.board[data-highlight=twilight] .board-cell.same-digit:not(.wrong){color:var(--twilight)}.board[data-highlight=sunset] .board-cell.selected{outline-color:var(--sunset)}.board[data-highlight=sunset] .board-cell.same-digit:not(.wrong){color:var(--sunset)}.board[data-digits=serif] .cell-value{font-family:Georgia,Times New Roman,serif}.board[data-digits=mono] .cell-value{font-family:var(--font-mono)}.name-color-gold{color:var(--su2ko-name-color-gold,#e0b84c)}.name-color-crimson{color:var(--su2ko-name-color-crimson,#e0546c)}.name-color-azure{color:var(--su2ko-name-color-azure,var(--breeze))}.end-screen-title.victory-flourish{color:var(--sunset-soft);text-shadow:0 0 12px var(--sunset-border)}@media (prefers-reduced-motion:no-preference){.end-screen-title.victory-flourish{animation:1.6s ease-out victory-flourish-glow}}@keyframes victory-flourish-glow{0%{text-shadow:0 0 28px var(--sunset)}to{text-shadow:0 0 12px var(--sunset-border)}}.shop-showroom{align-items:center;gap:var(--space-1);flex-direction:column;width:100%;height:100%;display:flex}.shop-showroom-col{z-index:1;pointer-events:none;position:sticky;top:0}.shop-showroom-panel{aspect-ratio:16/9;background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--r-card);pointer-events:auto;width:100%;max-height:420px;position:relative;overflow:hidden}.shop-showroom-caption{font-family:var(--font-mono);font-size:var(--t-caption-mono-sm-size);line-height:var(--t-caption-mono-sm-lh);letter-spacing:var(--t-caption-mono-sm-ls);text-transform:uppercase;color:var(--body-mid);margin:0}@media (width>=1024px){.shop-showroom-col{top:var(--space-2);align-self:start}.shop-showroom-panel{aspect-ratio:16/10;max-height:calc(100vh - 2 * var(--space-2));max-height:calc(100dvh - 2 * var(--space-2))}}@media (width<=1023px){.shop-showroom-col{background:var(--canvas);border-bottom:1px solid var(--hairline);overflow:hidden}.shop-showroom{position:relative}.shop-showroom-panel{height:100%;aspect-ratio:unset;background:0 0;border:none;border-radius:0;max-height:none}.shop-showroom-caption{right:var(--space-1-5);bottom:var(--space-half);max-width:calc(100% - 2 * var(--space-1-5));text-overflow:ellipsis;white-space:nowrap;position:absolute;overflow:hidden}}@media (width<=719px){.shop-showroom-col{height:160px}}@media (width>=720px) and (width<=1023px){.shop-showroom-col{height:220px}}.shop-showroom-3d{opacity:0;pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.shop-showroom-3d{transition:opacity .3s}}.shop-showroom-3d.is-visible{opacity:1}.shop-showroom-3d-host{width:100%;height:100%;display:block;position:relative}.shop-showroom-3d-canvas{display:block;position:absolute;top:0;left:0}.shop-showroom-css-layer{padding:var(--space-2);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.shop-showroom-css-board{aspect-ratio:1;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-nav);grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);gap:1px;height:100%;display:grid;overflow:hidden;container-type:inline-size}.shop-showroom-css-cell{background:var(--canvas-card);color:var(--ink);font-family:var(--font-sans);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:3.6cqi;display:flex;position:relative}.shop-showroom-css-cell.border-right{border-right:1.5px solid var(--pill-border)}.shop-showroom-css-cell.border-bottom{border-bottom:1.5px solid var(--pill-border)}.shop-showroom-css-cell.given{color:var(--ink)}.shop-showroom-css-cell.entry{color:var(--breeze)}.shop-showroom-css-cell.wrong{color:var(--sunset)}.shop-showroom-css-notes{color:var(--body-mid);font-family:var(--font-mono);gap:2px;font-size:1.6cqi;display:flex}.shop-showroom-css-cell.is-selected{background:var(--canvas-mid);outline:1px solid var(--breeze);outline-offset:-1px}.shop-showroom-css-cell.is-same-digit:not(.wrong){color:var(--breeze)}.shop-showroom-css-board[data-highlight=twilight] .shop-showroom-css-cell.is-selected{outline-color:var(--twilight)}.shop-showroom-css-board[data-highlight=twilight] .shop-showroom-css-cell.is-same-digit:not(.wrong){color:var(--twilight)}.shop-showroom-css-board[data-highlight=sunset] .shop-showroom-css-cell.is-selected{outline-color:var(--sunset)}.shop-showroom-css-board[data-highlight=sunset] .shop-showroom-css-cell.is-same-digit:not(.wrong){color:var(--sunset)}.shop-showroom-css-board[data-digits=serif] .shop-showroom-css-cell:not(.notes){font-family:Georgia,Times New Roman,serif}.shop-showroom-css-board[data-digits=mono] .shop-showroom-css-cell:not(.notes){font-family:var(--font-mono)}.number-pad-wrap{order:3;position:relative}.assist-backdrop{z-index:40;background:#0a0a0a8c;position:fixed;inset:0}.assist-sheet{z-index:41;gap:var(--space-1-5);background:var(--canvas-card);border:1px solid var(--hairline);border-top-left-radius:var(--r-card);border-top-right-radius:var(--r-card);max-height:70vh;padding:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom));border-bottom:none;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.assist-sheet-header{justify-content:space-between;align-items:center;display:flex}.assist-sheet-close{color:var(--body-mid);cursor:pointer;padding:var(--space-half);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.assist-sheet-close:hover{color:var(--ink)}.assist-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.assist-item-button{align-items:center;gap:var(--space-1);border:1px solid var(--pill-border);border-radius:var(--r-card);width:100%;color:var(--ink);padding:var(--space-1-5) var(--space-2);cursor:pointer;text-align:left;touch-action:manipulation;background:0 0;display:flex}.assist-item-button:hover:not(:disabled){border-color:var(--pill-border-hover);background:var(--canvas-soft)}.assist-item-button:disabled{color:var(--body-mid);border-color:var(--pill-border-disabled);cursor:not-allowed}.assist-item-name{flex:1}.assist-charge{color:var(--body-mid-on-surface);font-size:var(--t-caption-mono-sm-size)}.assist-item-reveal{gap:var(--space-half);flex-direction:column;display:flex}.assist-item-hint{color:var(--body-mid-on-surface);font-size:var(--t-caption-mono-sm-size);padding:0 var(--space-2)}.assist-item-scan{border:1px solid var(--pill-border);border-radius:var(--r-card);padding:var(--space-1-5) var(--space-2);gap:var(--space-1);flex-direction:column;display:flex}.assist-item-label{align-items:center;gap:var(--space-1);display:flex}.assist-scan-digits{gap:var(--space-half);grid-template-columns:repeat(5,1fr);display:grid}.assist-scan-digit{border:1px solid var(--pill-border);color:var(--ink);border-radius:var(--r-card);cursor:pointer;touch-action:manipulation;background:0 0;min-height:44px}.assist-scan-digit:hover:not(:disabled){border-color:var(--pill-border-hover);background:var(--canvas-soft)}.assist-scan-digit:disabled{color:var(--body-mid);border-color:var(--pill-border-disabled);cursor:not-allowed}@media (width>=720px){.assist-backdrop{background:0 0}.assist-sheet{left:50%;top:calc(100% + var(--space-1));border-bottom:1px solid var(--hairline);border-radius:var(--r-card);width:320px;max-height:none;position:absolute;bottom:auto;transform:translate(-50%)}}.assist-button.armed{color:var(--breeze);border-color:var(--breeze)}.streak-flame{color:var(--breeze);margin-left:var(--space-half);vertical-align:-2px}.opponent-powerup-pip{color:var(--twilight);margin-left:var(--space-half)}.mistake-pips-unlimited{color:var(--body-mid-on-surface);font-size:var(--t-caption-mono-sm-size)}.board-cell.assisted{color:var(--twilight);background:#c4b5fd1a}.board-cell.assisted:before{content:"";background:var(--twilight);border-radius:50%;width:4px;height:4px;position:absolute;top:3px;right:3px}.board-cell.scan-hit{background:#a0c3ec29}
