@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-latin-400-normal-DNAyL8lK.woff2) format("woff2"),url(/assets/libre-franklin-latin-400-normal-B5qoBLOl.woff) format("woff")}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/libre-franklin-latin-700-normal-TBBKpXzk.woff2) format("woff2"),url(/assets/libre-franklin-latin-700-normal-CP58KLQO.woff) format("woff")}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/libre-franklin-latin-800-normal-IoztdYMZ.woff2) format("woff2"),url(/assets/libre-franklin-latin-800-normal-C1oVkKH1.woff) format("woff")}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/libre-franklin-latin-900-normal-DYdohSdn.woff2) format("woff2"),url(/assets/libre-franklin-latin-900-normal-DLxS-yoc.woff) format("woff")}:root{--paper: #151814;--surface: #1d211c;--surface-raised: #252a24;--surface-muted: #2c312a;--ink: #f1f2ec;--muted: #b7bcb2;--line: #3d443a;--line-strong: #667064;--board-line: #e0e4dc;--edge-fill: #383e37;--tile: var(--surface);--accent: #8bc6bb;--accent-hover: #a3d6cc;--accent-soft: #28413b;--accent-ink: #10231f;--selected: #426f65;--selected-soft: #263f39;--selected-ink: #f1f2ec;--note: #91cad2;--error: #e68d7f;--error-soft: #4a2b26;--error-ink: #ffb4a8;--cage-error: #c4a3e1;--cage-error-soft: #3a2e46;--cage-error-ink: #dbbbf4;--success: #86c799;--success-soft: #243b2a;--focus: #78a9ff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 22px 64px rgba(0, 0, 0, .44);--tab-selected: color-mix(in srgb, var(--surface-muted) 58%, transparent);--display-font: Georgia, "Times New Roman", serif;--board-font: "Libre Franklin", Arial, Helvetica, sans-serif;background:var(--paper);color:var(--ink);color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.35;text-rendering:optimizeLegibility}:root[data-theme=light]{--paper: #f3f0e8;--surface: #fffdf8;--surface-raised: #ffffff;--surface-muted: #e8e4da;--ink: #20231f;--muted: #666b64;--line: #d2ccbf;--line-strong: #999286;--board-line: #292b27;--edge-fill: #d8d3c9;--accent: #35675f;--accent-hover: #2b5851;--accent-soft: #dbe9e4;--accent-ink: #ffffff;--selected: #b8d8cf;--selected-soft: #e2eee9;--selected-ink: #193b35;--note: #336c76;--error: #e9aa9a;--error-soft: #f8dfd8;--error-ink: #7d3329;--cage-error: #cdb8df;--cage-error-soft: #ede3f3;--cage-error-ink: #5e4675;--success: #397249;--success-soft: #dfede2;--focus: #5366a1;--shadow-sm: 0 1px 2px rgba(35, 33, 28, .08);--shadow-md: 0 22px 58px rgba(35, 33, 28, .17);--tab-selected: #e2ece8;color-scheme:light}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}html,body,#root{height:100%;min-height:0;margin:0}button{color:inherit;font:inherit;-webkit-user-select:none;user-select:none}button:focus:not(:focus-visible),[role=tab]:focus:not(:focus-visible){outline:none}body{background:var(--paper);overflow:hidden}img,svg{-webkit-user-select:none;user-select:none}.app-shell{-webkit-user-select:none;--shell-gap: 12px;display:grid;gap:var(--shell-gap);grid-template-rows:auto minmax(0,1fr);height:100dvh;margin:0 auto;max-width:1180px;min-height:0;overflow:hidden;padding:12px 12px 14px;user-select:none}.game-header{display:grid;gap:10px}.title-row{align-items:center;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) auto}.title-block{min-width:0}h1{font-family:var(--display-font);font-size:clamp(1.9rem,3vw,2.65rem);font-weight:600;letter-spacing:-.035em;line-height:.95;margin:0}.title-row p{color:var(--muted);font-size:.78rem;font-weight:650;letter-spacing:.035em;margin:6px 0 0;max-width:30ch;text-wrap:pretty}.header-actions,.puzzle-context-meta{align-items:center;display:flex;gap:8px}.nav-action,.quiet-icon{align-items:center;background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:720;gap:7px;justify-content:center;min-height:44px;padding:0 13px;transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;white-space:nowrap}.quiet-icon{height:44px;padding:0;width:44px}.theme-toggle{color:var(--muted);flex:0 0 44px}.theme-toggle[aria-pressed=true]{background:var(--surface-raised);border-color:var(--line);box-shadow:var(--shadow-sm);color:var(--accent)}.nav-action{color:var(--muted)}.nav-action.is-active{background:var(--surface-raised);border-color:var(--line);box-shadow:var(--shadow-sm);color:var(--ink)}button:focus-visible{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--focus);outline:0;position:relative;z-index:20}.mode-tabs{border:1px solid var(--line);border-radius:6px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:48px;overflow:hidden}.mode-tab{display:block;min-height:48px;position:relative}.mode-tab+.mode-tab{border-left:1px solid var(--line)}.mode-tab:after{background:transparent;bottom:-1px;content:"";height:3px;left:0;position:absolute;right:0}.mode-tab.is-selected:after{background:var(--accent)}.mode-tab.is-selected{background:var(--surface-raised)}.mode-tab:not(.is-selected):not(.is-disabled){cursor:pointer}.mode-tab-select{background:transparent;border:0;cursor:pointer;display:block;height:100%;min-width:0;padding:5px 10px;text-align:left;width:100%}.mode-tab-select:disabled{cursor:not-allowed}.tab-copy{align-self:center;display:grid;column-gap:3px;grid-template-columns:17px minmax(0,1fr);row-gap:2px;min-width:0}.tab-label{font-size:.83rem;font-weight:760;grid-column:2;grid-row:1;line-height:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.mode-tab-select small{color:var(--muted);font-size:.65rem;font-variant-numeric:tabular-nums;font-weight:600;grid-column:2;grid-row:2;line-height:1;white-space:nowrap}.tab-check-slot{align-items:center;color:var(--success);display:flex;grid-column:1;grid-row:1;justify-content:flex-end}.tab-check{opacity:0}.mode-tab.is-complete .tab-check{opacity:1}.orientation-lock{align-content:center;background:var(--paper);color:var(--ink);display:none;gap:10px;top:0;right:0;bottom:0;left:0;justify-items:center;padding:24px;position:fixed;text-align:center;z-index:100}.orientation-lock h2{font-family:var(--display-font);font-size:2rem;font-weight:600;line-height:1;margin:0}.orientation-lock p{color:var(--muted);font-size:1rem;font-weight:700;margin:0}.game-stack{--game-stack-gap: 8px;--reserved-stack-height: 82px;--game-size: min(100cqw, calc(100cqh - var(--reserved-stack-height)), 760px);align-content:start;container-type:size;display:grid;gap:var(--game-stack-gap);grid-template-areas:"context" "board" "controls";grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;height:100%;justify-items:center;min-height:0;overflow:hidden;width:100%}.game-stack.has-keypad{--reserved-stack-height: 238px}.game-stack.has-victory-toggle{--reserved-stack-height: 154px}.game-stack.is-size-9.has-keypad{--reserved-stack-height: 293px}.game-stack.is-leaderboard-mode{--game-size: min(100cqw, 100cqh, 760px);--reserved-stack-height: 0px;grid-template-areas:"board";grid-template-columns:minmax(0,1fr);grid-template-rows:auto}.game-stack.is-leaderboard-mode .play-surface{grid-row:auto}.puzzle-context{align-items:start;border-bottom:1px solid var(--line);display:grid;gap:3px 10px;grid-area:context;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:0 2px 4px;width:max(0px,var(--game-size))}.puzzle-context-heading{align-items:start;display:flex;gap:10px;justify-content:space-between;min-width:0}.puzzle-context-heading>div{display:grid;gap:1px;min-width:0}.puzzle-context-kicker,.how-to-kicker{color:var(--accent);font-size:.63rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.puzzle-context-heading strong{font-family:var(--board-font);font-size:.9rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.puzzle-timer{align-items:center;background:var(--surface-raised);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);color:var(--ink);display:inline-flex;font-family:var(--board-font);font-size:.96rem;font-variant-numeric:tabular-nums;font-weight:800;gap:8px;min-height:46px;padding:0 12px;transition:background .14s ease,border-color .14s ease,transform .14s ease;white-space:nowrap}.puzzle-timer:not(.is-static){cursor:pointer}.puzzle-timer:disabled{cursor:not-allowed;opacity:.46}.puzzle-timer.is-paused{background:var(--accent-soft);border-color:var(--accent)}.puzzle-timer.is-complete{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 42%,var(--line));color:var(--success)}.puzzle-timer-value{min-width:3.2ch;text-align:right}.puzzle-timer-divider{background:var(--line);height:20px;width:1px}.context-reset{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--muted);cursor:pointer;display:inline-flex;font-size:.76rem;font-weight:700;gap:6px;justify-content:center;min-height:46px;padding:0 8px;transition:background .14s ease,color .14s ease,transform .14s ease}.context-reset:disabled{cursor:not-allowed;opacity:.4}.game-feedback{color:var(--muted);font-size:.72rem;font-weight:650;grid-column:1 / -1;line-height:1.35;margin:0}.game-feedback.is-attention{color:var(--error-ink)}.game-feedback.is-empty{display:none}.play-surface{align-items:center;display:flex;grid-area:board;height:max(0px,var(--game-size));justify-content:center;min-height:0;overflow:hidden;position:relative;width:max(0px,var(--game-size))}.play-panel{height:100%;top:0;right:0;bottom:0;left:0;position:absolute;transition:opacity .24s ease,transform .24s ease;width:100%}.game-board-panel{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.victory-leaderboard-panel{opacity:0;pointer-events:none;transform:translateY(10px) scale(.992)}.play-surface.is-showing-leaderboard .game-board-panel{opacity:0;pointer-events:none;transform:translateY(-8px) scale(.992)}.play-surface.is-showing-leaderboard .victory-leaderboard-panel{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.puzzle-controls{grid-area:controls;min-height:0;overflow:visible;width:max(0px,var(--game-size))}.board-placeholder{align-items:center;aspect-ratio:1;background:var(--surface);border:1px solid var(--line);color:var(--muted);display:flex;font-weight:720;height:100%;justify-content:center;width:100%}.pause-overlay{align-items:center;background:var(--paper);color:var(--ink);display:flex;font-family:var(--display-font);font-size:clamp(2rem,12cqw,5rem);height:100%;top:0;right:0;bottom:0;left:0;justify-content:center;letter-spacing:-.03em;pointer-events:none;position:absolute;width:100%;z-index:12}.puzzle-controls .victory-toggle-controls{display:grid;height:72px;width:100%}.victory-toggle-button{font-size:.92rem;gap:9px;height:100%;width:100%}.how-to-backdrop{align-items:center;animation:dialog-backdrop-in .16s ease-out both;background:#1a1d195c;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:20px;position:fixed;z-index:60}.how-to-dialog{animation:dialog-in .18s cubic-bezier(.2,.8,.2,1) both;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-md);display:grid;gap:16px;max-height:min(720px,calc(100dvh - 40px));max-width:540px;overflow:auto;padding:24px;width:min(100%,540px)}.how-to-dialog:focus{outline:0}.how-to-header{align-items:start;display:flex;gap:20px;justify-content:space-between}.how-to-header>div{display:grid;gap:5px}.how-to-dialog h2{font-family:var(--display-font);font-size:clamp(1.8rem,5vw,2.2rem);font-weight:600;letter-spacing:-.03em;line-height:1;margin:0}.how-to-dialog>p{color:var(--muted);line-height:1.55;margin:0}.how-to-rules{display:grid;gap:12px;list-style:none;margin:0;padding:0}.how-to-rules li{align-items:start;display:grid;gap:12px;grid-template-columns:28px minmax(0,1fr)}.how-to-rules li>span{align-items:center;background:var(--surface-muted);border-radius:999px;display:flex;font-family:var(--board-font);font-size:.78rem;font-weight:800;height:28px;justify-content:center;width:28px}.how-to-rules p{line-height:1.45;margin:3px 0 0}.how-to-feedback{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;gap:9px;padding:13px 0}.how-to-feedback h3{font-size:.78rem;margin:0 0 2px}.how-to-feedback>div{align-items:center;color:var(--muted);display:grid;font-size:.79rem;gap:10px;grid-template-columns:34px minmax(0,1fr)}.feedback-mark{display:block;height:14px;width:32px}.feedback-mark.is-duplicate{background:var(--error-soft);border:1px solid var(--error)}.feedback-mark.is-cage{background:var(--cage-error-soft);border:1px solid var(--cage-error)}.how-to-note{font-size:.76rem}@keyframes dialog-backdrop-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}}@media(hover:hover)and (pointer:fine){.nav-action:not(:disabled):hover,.quiet-icon:not(:disabled):hover{background:var(--surface-muted);color:var(--ink)}.puzzle-timer:not(.is-static):not(:disabled):hover{background:var(--accent-soft);border-color:var(--accent)}.context-reset:not(:disabled):hover{background:var(--surface-muted);color:var(--ink)}.mode-tab:not(.is-selected):not(.is-disabled):hover{background:color-mix(in srgb,var(--surface-muted) 62%,transparent)}}.nav-action:active:not(:disabled),.context-reset:active:not(:disabled),.puzzle-timer:active:not(:disabled),.quiet-icon:active:not(:disabled){transform:translateY(1px)}@media(max-width:899px){.game-stack.has-keypad,.game-stack.is-size-9.has-keypad{--reserved-stack-height: 188px}}@media(min-width:900px){.game-stack{--desktop-rail-width: 300px;--game-size: min(calc(100cqw - var(--desktop-rail-width) - 24px), 100cqh, 760px);align-content:start;align-items:start;column-gap:24px;grid-template-areas:"board context" "board controls";grid-template-columns:max-content var(--desktop-rail-width);grid-template-rows:auto minmax(0,1fr);justify-content:center;justify-items:stretch;row-gap:14px}.puzzle-context,.puzzle-controls{width:100%}.puzzle-context{align-self:start;grid-template-columns:minmax(0,1fr);padding:4px 0 12px}.puzzle-context-meta{justify-content:space-between}.puzzle-controls{align-self:start;overflow:auto}.play-surface{align-self:start;grid-row:1 / 3}}@media(max-width:680px){.app-shell{--shell-gap: 8px;padding:8px 6px 10px}.game-header,.title-row{gap:8px}h1{font-size:1.65rem}.title-row p{font-size:.69rem;margin-top:3px}.header-actions{gap:4px}.nav-action{height:44px;padding:0;width:44px}.nav-action span{display:none}.mode-tab-select{padding:5px 5px 5px 7px}.tab-copy{grid-template-columns:15px minmax(0,1fr)}.tab-label{font-size:.77rem}.mode-tab-select small{font-size:.61rem}.tab-check{height:15px;width:15px}}@media(max-width:430px){.app-shell{padding-left:4px;padding-right:4px}.game-stack{--game-stack-gap: 6px}.puzzle-context{gap:3px 8px}.puzzle-context-kicker{font-size:.58rem}.puzzle-context-heading strong{font-size:.8rem}.puzzle-timer{min-height:44px;padding-inline:10px}.context-reset{min-height:44px;padding:0;width:44px}.context-reset span{display:none}.game-feedback{font-size:.68rem}.how-to-backdrop{padding:10px}.how-to-dialog{border-radius:14px;gap:14px;max-height:calc(100dvh - 20px);padding:18px}}@media(max-width:350px){h1{font-size:1.32rem}.title-row p{font-size:.63rem}.tab-label{font-size:.72rem}.mode-tab-select{padding-left:5px;padding-right:3px}}@media(orientation:landscape)and (min-width:700px)and (max-width:899px)and (max-height:600px){.app-shell{--shell-gap: 7px;padding:6px 8px 8px}.game-header{gap:5px}.title-row p{display:none}h1{font-size:1.55rem}.mode-tabs,.mode-tab{min-height:44px}.game-stack{--landscape-rail-width: 260px;--game-size: min(calc(100cqw - var(--landscape-rail-width) - 16px), 100cqh, 520px);align-content:start;align-items:start;column-gap:16px;grid-template-areas:"board context" "board controls";grid-template-columns:max-content var(--landscape-rail-width);grid-template-rows:auto minmax(0,1fr);justify-content:center;justify-items:stretch;row-gap:8px}.puzzle-context,.puzzle-controls{width:100%}.puzzle-context{grid-template-columns:minmax(0,1fr);padding-bottom:5px}.puzzle-context-kicker,.game-feedback.is-empty{display:none}.puzzle-context-meta{justify-content:space-between}.puzzle-controls{align-self:stretch;overflow:auto}.play-surface{grid-row:1 / 3}}@media(orientation:landscape)and (max-width:960px)and (max-height:520px){.orientation-lock{display:grid}}@media(prefers-reduced-motion:reduce){.nav-action,.context-reset,.puzzle-timer,.quiet-icon,.play-panel,.how-to-backdrop,.how-to-dialog{animation:none;transition:none}}.login-button{align-items:center;background:var(--surface-raised, #fff);border:1px solid var(--line, #d7d1c6);border-radius:999px;box-shadow:var(--shadow-sm, 0 1px 2px rgba(25, 27, 25, .08));cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:780;height:44px;justify-content:center;letter-spacing:.01em;line-height:1;min-width:72px;padding:0 16px;transition:background .14s ease,border-color .14s ease,transform .14s ease}.login-button-icon{display:none}.account-control{position:relative}.avatar-button{align-items:center;background:var(--surface-raised, #fff);border:1px solid var(--line, #d7d1c6);border-radius:999px;box-shadow:var(--shadow-sm, 0 1px 2px rgba(25, 27, 25, .08));cursor:pointer;display:inline-flex;height:44px;justify-content:center;overflow:hidden;padding:0;transition:border-color .14s ease,transform .14s ease;width:44px}.avatar-button img{display:block;height:100%;object-fit:cover;width:100%}.avatar-button span{align-items:center;background:var(--accent, #356b63);color:var(--accent-ink, #fff);display:flex;font-size:.72rem;font-weight:800;height:100%;justify-content:center;letter-spacing:.04em;width:100%}.account-menu{animation:account-menu-in .14s ease-out both;background:var(--surface, #fffdf9);border:1px solid var(--line, #d7d1c6);border-radius:12px;box-shadow:var(--shadow-md, 0 16px 36px rgba(25, 27, 25, .16));display:grid;gap:5px;min-width:208px;padding:7px;position:absolute;right:0;top:calc(100% + 8px);transform-origin:top right;z-index:20}.account-menu-identity{display:grid;gap:2px;min-width:0;padding:9px 10px 8px}.account-menu-kicker{color:var(--muted, #676b66);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.account-name{color:var(--ink, #191b19);font-size:.88rem;font-weight:760;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu button{align-items:center;background:transparent;border:0;border-radius:8px;cursor:pointer;display:flex;font-size:.84rem;font-weight:720;gap:8px;min-height:44px;padding:0 10px;text-align:left;transition:background .12s ease}.account-menu button:disabled{cursor:wait;opacity:.58}.account-menu-error{border-top:1px solid var(--line, #d7d1c6);margin-top:2px;padding:9px 10px 5px}.modal-backdrop{align-items:center;animation:auth-backdrop-in .16s ease-out both;background:#191b195c;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;overflow:auto;padding:20px;position:fixed;z-index:50}.auth-dialog{animation:auth-dialog-in .18s cubic-bezier(.2,.8,.2,1) both;background:var(--surface, #fffdf9);border:1px solid var(--line, #d7d1c6);border-radius:18px;box-shadow:var(--shadow-md, 0 24px 64px rgba(25, 27, 25, .2));display:grid;gap:18px;max-width:400px;max-height:calc(100dvh - 40px);overflow:auto;padding:24px;width:min(100%,400px)}.auth-dialog:focus,.google-signin-slot:focus{outline:0}.auth-dialog-header{align-items:start;display:flex;gap:20px;justify-content:space-between}.auth-dialog-title{display:grid;gap:5px}.auth-dialog-title>span{color:var(--accent, #356b63);font-size:.68rem;font-weight:780;letter-spacing:.11em;text-transform:uppercase}.auth-dialog h2{font-family:var(--display-font, Georgia, "Times New Roman", serif);font-size:clamp(1.8rem,5vw,2.1rem);font-weight:600;letter-spacing:-.025em;line-height:1;margin:0}.auth-dialog .quiet-icon{flex:0 0 auto;margin:-6px -6px 0 0}.auth-dialog-description{color:var(--muted, #676b66);font-size:.94rem;line-height:1.55;margin:-7px 0 0;max-width:34ch}.auth-provider-list{display:grid;gap:10px}.google-signin-container{align-items:center;color:var(--muted, #676b66);display:grid;font-size:.84rem;font-weight:720;justify-content:center;min-height:48px;overflow:hidden}.google-signin-slot,.google-signin-status{grid-area:1 / 1}.google-signin-slot{align-items:center;display:flex;justify-content:center;max-width:100%}.google-signin-slot>div,.google-signin-slot iframe{max-width:100%}.google-signin-container.is-loading{background:var(--surface-muted, #ebe7dd);border:1px solid var(--line, #d7d1c6);border-radius:10px}.google-signin-status{padding:0 12px}.google-signin-container.is-authenticating{opacity:.55;pointer-events:none}.provider-button{align-items:center;background:var(--surface-raised, #fff);border:1px solid var(--line-strong, #aaa398);border-radius:10px;box-shadow:var(--shadow-sm, 0 1px 2px rgba(25, 27, 25, .08));cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:740;gap:9px;justify-content:center;min-height:48px;padding:0 14px;transition:background .14s ease,border-color .14s ease,transform .14s ease}.provider-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.5}.auth-error{color:var(--error-ink, #842f25);font-size:.82rem;font-weight:680;line-height:1.4;margin:0}.auth-dialog-error{background:var(--error-soft, #f8e2dc);border:1px solid var(--error, #c55a49);border-radius:9px;padding:10px 12px}.auth-privacy-note{color:var(--muted, #676b66);font-size:.72rem;line-height:1.4;margin:-4px 0 0;text-align:center}@keyframes auth-backdrop-in{0%{opacity:0}}@keyframes auth-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}}@keyframes account-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}@media(hover:hover)and (pointer:fine){.login-button:hover,.provider-button:not(:disabled):hover{background:var(--accent-soft, #dceae6);border-color:var(--accent, #356b63)}.avatar-button:hover{border-color:var(--accent, #356b63)}.account-menu button:not(:disabled):hover{background:var(--surface-muted, #ebe7dd)}}.login-button:active,.avatar-button:active,.provider-button:not(:disabled):active{transform:translateY(1px)}@media(prefers-reduced-motion:reduce){.account-menu,.auth-dialog,.modal-backdrop{animation:none}}@media(max-width:430px){.login-button{min-width:44px;padding:0;width:44px}.login-button-icon{display:block}.login-button span{display:none}.auth-dialog{border-radius:16px;gap:16px;padding:20px}}@media(max-height:520px){.modal-backdrop{align-items:flex-start;padding-block:10px}.auth-dialog{max-height:calc(100dvh - 20px)}}.stats-surface{align-content:start;display:grid;gap:22px;justify-self:center;max-width:780px;min-height:0;overflow:auto;padding:2px 4px 16px;width:100%}.stats-difficulty-tabs{border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.stats-difficulty-tabs button{background:transparent;border:0;color:var(--muted);cursor:pointer;display:grid;font-size:.82rem;font-weight:700;gap:1px;justify-items:center;min-height:50px;padding:6px 8px 9px;position:relative}.stats-difficulty-tabs button:after{background:transparent;bottom:-1px;content:"";height:2px;left:14px;position:absolute;right:14px}.stats-difficulty-tabs button small{color:inherit;font-size:.64rem;font-variant-numeric:tabular-nums;font-weight:600}.stats-difficulty-tabs button[aria-selected=true]{background:var(--tab-selected);color:var(--ink)}.stats-difficulty-tabs button[aria-selected=true]:after{background:var(--accent)}.stats-panel{display:grid;gap:16px;padding-top:4px}.stats-panel-header{align-items:end;display:flex;gap:20px;justify-content:space-between;min-width:0;padding:0 0 18px}.stats-panel-header>div:first-child,.victory-leaderboard-title{align-items:baseline;display:flex;gap:10px;min-width:0}.stats-panel-header h2,.stats-login-panel h2,.victory-login-card h2{font-family:var(--display-font);font-weight:600;letter-spacing:-.025em;margin:0}.stats-panel-header h2{font-size:clamp(1.8rem,4vw,2.35rem);line-height:1}.stats-panel-header>div>span,.stats-panel-header time,.victory-leaderboard-title time{color:var(--muted);font-size:.76rem;font-weight:620;white-space:nowrap}.stats-eyebrow,.stats-login-eyebrow{color:var(--muted);font-size:.66rem;font-weight:720;letter-spacing:.08em;text-transform:uppercase}.stat-grid{background:var(--surface);border:1px solid var(--line);border-radius:4px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-tile{border-right:1px solid var(--line);display:grid;gap:18px;min-width:0;padding:22px 18px}.stat-tile:last-child{border-right:0}.stat-tile span{color:var(--muted);font-size:.7rem;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.stat-tile strong{font-family:var(--board-font);font-size:clamp(1.45rem,3vw,2rem);font-variant-numeric:tabular-nums;line-height:1;overflow-wrap:anywhere}.stats-inline-status{align-items:center;border-bottom:1px solid var(--line);color:var(--muted);display:flex;font-size:.78rem;gap:14px;justify-content:space-between;padding:10px 0}.stats-retry-button{background:transparent;border:0;border-bottom:1px solid currentColor;color:var(--ink);cursor:pointer;flex:0 0 auto;font-size:.78rem;font-weight:720;min-height:44px;padding:0 4px}.stats-retry-button:focus-visible{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--focus);outline:0}.stats-placeholder{align-items:center;border-bottom:1px solid var(--line);border-top:1px solid var(--line);color:var(--muted);display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:180px;padding:24px;text-align:center}.stats-placeholder strong{color:var(--ink);font-size:.9rem}.stats-placeholder>span:last-child{font-size:.78rem;line-height:1.4}.stats-placeholder.is-error svg{color:var(--error-ink)}.stats-loading-mark{animation:stats-loading .75s linear infinite;border:2px solid var(--line);border-radius:999px;border-top-color:var(--accent);height:22px;width:22px}.stats-login-surface{align-content:center;justify-items:center}.stats-login-panel,.victory-login-card{display:grid;gap:14px;max-width:440px;padding:28px 0;text-align:center}.stats-login-panel{border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.stats-login-panel h2,.victory-login-card h2{font-size:clamp(1.85rem,5vw,2.4rem);line-height:1}.stats-login-panel p,.victory-login-card p{color:var(--muted);line-height:1.5;margin:0 auto;max-width:38ch}.stats-login-panel small{color:var(--muted);font-size:.7rem}.leaderboard-login-button{align-items:center;background:var(--ink);border:1px solid var(--ink);border-radius:4px;color:var(--surface-raised);cursor:pointer;display:inline-flex;font-size:.86rem;font-weight:720;justify-content:center;justify-self:center;min-height:44px;padding:0 18px}.victory-login-panel,.victory-leaderboard-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;height:100%;width:100%}.victory-login-panel{align-items:center;display:flex;justify-content:center;padding:20px;position:relative}.victory-login-card{justify-items:center}.victory-login-icon{color:var(--accent);display:inline-flex;justify-self:center}.victory-leaderboard-card{display:grid;gap:0;grid-template-rows:auto minmax(0,1fr);overflow:hidden;padding:0 14px 14px}.victory-leaderboard-header{align-items:center;border-bottom:1px solid var(--line);padding:12px 2px 13px}.victory-leaderboard-title{align-items:start;display:grid;gap:3px}.victory-leaderboard-title h2{font-family:var(--display-font);font-size:1.05rem;font-weight:600;letter-spacing:0;line-height:1.25;overflow-wrap:anywhere}.victory-leaderboard-title p{color:var(--muted);font-size:.8rem;font-weight:620;line-height:1.25;margin:0}.victory-leaderboard-title time{color:inherit;font:inherit;white-space:nowrap}.victory-leaderboard-card .victory-inline-toggle-button,.victory-login-panel .victory-inline-toggle-button{gap:0;min-height:44px;padding:0;width:44px}.victory-login-game-button{position:absolute;right:14px;top:14px}.victory-leaderboard-body{min-height:0;overflow:auto}.leaderboard-table{border-collapse:collapse;font-size:.86rem;table-layout:fixed;width:100%}.leaderboard-table th,.leaderboard-table td{border-bottom:1px solid var(--line);padding:11px 8px;text-align:left}.leaderboard-table th:first-child,.leaderboard-table td:first-child{width:46px}.leaderboard-table th:last-child,.leaderboard-table td:last-child{text-align:right;width:76px}.leaderboard-table td:first-child,.leaderboard-table td:last-child{font-family:var(--board-font);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.leaderboard-table tr.is-current-user td{background:var(--accent-soft);font-weight:700}.leaderboard-table tr.is-current-user td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.leaderboard-player-name{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.leaderboard-rank-separator td{color:var(--muted);font-size:.65rem;letter-spacing:.15em;padding-block:4px;text-align:center}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@keyframes stats-loading{to{transform:rotate(360deg)}}@media(hover:hover)and (pointer:fine){.stats-difficulty-tabs button:not([aria-selected=true]):hover{color:var(--ink)}.leaderboard-login-button:hover{background:var(--accent);border-color:var(--accent)}}@media(max-width:680px){.stats-surface{gap:18px;padding-inline:0}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-tile:nth-child(2){border-right:0}.stat-tile:nth-child(n+3){border-top:1px solid var(--line)}}@media(max-width:430px){.stats-difficulty-tabs button{font-size:.76rem;min-height:46px;padding-inline:3px}.stats-panel-header{align-items:start;display:grid;gap:8px}.stats-panel-header h2{font-size:1.75rem}.victory-leaderboard-header{grid-template-columns:minmax(0,1fr) auto}.victory-leaderboard-title h2{font-size:.9rem}.stat-tile{gap:14px;min-height:92px;padding:18px 14px}.stat-tile strong{font-size:1.35rem}.stats-inline-status{align-items:start}.victory-leaderboard-card{padding:0 9px 9px}.leaderboard-table{font-size:.78rem}.leaderboard-table th,.leaderboard-table td{padding:7px 5px}}@media(prefers-reduced-motion:reduce){.stats-loading-mark{animation:none}}.mathsudoku-board{--board-playable-size: 100%;--cell-count: 5;--cell-size: calc(var(--game-size) / var(--cell-count));aspect-ratio:1;background:var(--edge-fill);border:0;border-radius:0;display:block;height:100%;overflow:hidden;position:relative;width:100%}.board-size-5{--cell-count: 5}.board-size-6{--cell-count: 6}.board-size-7{--cell-count: 7}.board-size-9{--cell-count: 9}.board-svg{display:block;height:100%;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;width:100%;z-index:1}.board-visual-cell-group{--spin-perspective: 20000px;transform-box:view-box;transform-origin:0 0 0}.board-visual-cell-group.is-spinning{will-change:transform}.board-spin-depth-side,.board-far-spin-layer,.board-near-spin-layer,.svg-spin-outline{pointer-events:none}.board-far-spin-layer,.board-near-spin-layer{overflow:visible}.board-spin-depth-side{visibility:hidden}.svg-spin-outline{fill:none;stroke:var(--board-line);stroke-linecap:square;stroke-linejoin:miter;stroke-width:4}.board-hit-grid{display:grid;gap:0;grid-template-columns:repeat(var(--cell-count),minmax(0,1fr));grid-template-rows:repeat(var(--cell-count),minmax(0,1fr));height:var(--board-playable-size);left:0;position:absolute;top:0;width:var(--board-playable-size);z-index:5}.svg-cell-fill{fill:var(--tile)}.board-visual-cell.is-group-selected .svg-cell-fill{fill:var(--selected-soft)}.board-visual-cell.is-selected .svg-cell-fill{fill:var(--selected)}.board-visual-cell.is-group-selected:not(.has-duplicate):not(.has-cage-error) .svg-clue,.board-visual-cell.is-group-selected:not(.has-duplicate):not(.has-cage-error) .svg-entry,.board-visual-cell.is-group-selected:not(.has-duplicate):not(.has-cage-error) .svg-note{fill:var(--selected-ink)}.board-visual-cell.has-duplicate .svg-cell-fill{fill:var(--error-soft)}.board-visual-cell.has-cage-error .svg-cell-fill{fill:var(--cage-error-soft)}.board-visual-cell.is-selected.has-duplicate .svg-cell-fill{fill:var(--error)}.board-visual-cell.is-selected.has-cage-error .svg-cell-fill{fill:var(--cage-error)}.board-spin-back-face.board-spin-back-face .board-visual-cell .svg-cell-fill,.board-spin-back-face.board-spin-back-face .board-visual-cell .svg-edge-light,.svg-edge-light{fill:var(--edge-fill)}.svg-board-edge,.svg-edge-dark{fill:var(--board-line)}.reset-board-overlay{align-items:center;animation:reset-overlay-in .14s ease-out both;background:color-mix(in srgb,var(--paper) 78%,transparent);display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:clamp(12px,4cqw,28px);position:absolute;z-index:30}.reset-board-dialog{animation:reset-dialog-in .17s cubic-bezier(.2,.8,.2,1) both;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow-md);display:grid;gap:18px 14px;grid-template-columns:42px minmax(0,1fr);max-height:calc(100% - 20px);max-width:420px;overflow:auto;padding:clamp(18px,4.5cqw,28px);width:100%}.reset-board-dialog:focus{outline:0}.reset-board-dialog-mark{align-items:center;background:var(--error-soft);border:1px solid var(--error);border-radius:6px;color:var(--error-ink);display:flex;height:42px;justify-content:center;width:42px}.reset-board-dialog-copy{display:grid;gap:5px;min-width:0}.reset-board-dialog-copy>span{color:var(--error-ink);font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.reset-board-dialog h2{font-family:var(--display-font);font-size:clamp(1.45rem,7cqw,2rem);font-weight:600;letter-spacing:-.025em;line-height:1;margin:0}.reset-board-dialog p{color:var(--muted);font-size:clamp(.74rem,2.7cqw,.86rem);line-height:1.45;margin:2px 0 0}.reset-board-dialog-actions{display:grid;gap:10px;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.reset-board-dialog-actions button{border-radius:5px;cursor:pointer;font-size:.8rem;font-weight:780;min-height:46px;padding:0 12px}.reset-board-cancel{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}.reset-board-confirm{background:var(--error-ink);border:1px solid var(--error-ink);color:var(--paper)}.reset-board-dialog-actions button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 24%,transparent);outline:2px solid var(--focus);outline-offset:2px}@keyframes reset-overlay-in{0%{opacity:0}}@keyframes reset-dialog-in{0%{opacity:0;transform:translateY(6px) scale(.985)}}.svg-clue,.svg-entry,.svg-note{font-family:var(--board-font);font-variant-numeric:tabular-nums;pointer-events:none}.svg-clue{fill:var(--ink);font-weight:800}.svg-entry{fill:var(--ink);font-weight:900}.svg-note{fill:var(--note);font-weight:900}.board-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:0;cursor:pointer;display:block;height:100%;line-height:1;min-height:0;min-width:0;overflow:hidden;padding:0;position:relative;width:100%}.board-cell:focus{box-shadow:none;outline:0}.mathsudoku-board.is-locked .board-cell,.mathsudoku-board.is-solved .board-cell{cursor:default}.mathsudoku-board.is-locked .board-cell:disabled,.mathsudoku-board.is-solved .board-cell:disabled{opacity:1}.board-celebration-spin-layer{cursor:grab;height:var(--board-playable-size);left:0;position:absolute;top:0;touch-action:none;width:var(--board-playable-size);z-index:8}.board-celebration-spin-layer:active{cursor:grabbing}.victory-checkmark{align-items:center;color:var(--success);display:flex;inset:clamp(14px,4%,34px);justify-content:center;pointer-events:none;position:absolute;z-index:18}.victory-checkmark.is-fading-out{animation:fade-solved-check 1.8s ease both}.mathsudoku-board.is-solved:after{background:#96969624;content:"";top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:6}.mathsudoku-board.is-solved.has-celebration-spin:after{content:none}.victory-checkmark-svg{filter:drop-shadow(0 calc(var(--cell-size) * .025) calc(var(--cell-size) * .04) rgba(33,78,45,.18));height:100%;opacity:.94;overflow:visible;width:100%}.victory-checkmark-svg path{animation:draw-solved-check .86s cubic-bezier(.44,.04,.2,1) 80ms both;fill:none;stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round;stroke-linejoin:round}.victory-checkmark-shadow{opacity:.72;stroke:var(--surface);stroke-width:17}.victory-checkmark-stroke{stroke:currentColor;stroke-width:12}@keyframes draw-solved-check{0%{opacity:0;stroke-dashoffset:100;transform:translate(1px,1px) rotate(-1deg)}18%{opacity:1}72%{stroke-dashoffset:0}to{opacity:1;stroke-dashoffset:0;transform:translate(0) rotate(0)}}@keyframes fade-solved-check{0%,58%{opacity:1}to{opacity:0}}.keypad{--game-size: min(100cqw, calc(100cqh - var(--reserved-stack-height)), 860px);display:grid;flex:0 0 auto;gap:4px;justify-self:center;max-width:100%;width:max(0px,var(--game-size))}.number-pad{display:grid;gap:7px;grid-template-columns:repeat(var(--number-count),minmax(0,1fr))}.keypad[data-size="9"] .number-pad{grid-template-columns:repeat(5,minmax(0,1fr))}.number-pad button,.tool-button{align-items:center;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:7px;box-shadow:var(--shadow-sm);cursor:pointer;display:inline-flex;font-weight:900;gap:7px;justify-content:center;min-height:48px;padding:0 10px}.number-pad button{font-family:var(--board-font);font-size:1.25rem;font-variant-numeric:tabular-nums}.number-pad button.is-noted{background:color-mix(in srgb,var(--note) 14%,var(--surface-raised));border-color:color-mix(in srgb,var(--note) 52%,var(--line));color:var(--note)}.tool-row{display:grid;gap:3px 7px;grid-template-columns:repeat(6,minmax(0,1fr))}.keypad.is-rail{--game-size: auto;align-self:stretch;gap:10px;width:100%}.keypad.is-rail .number-pad{grid-template-columns:repeat(3,minmax(0,1fr))}.keypad.is-rail .tool-row{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-button{color:var(--ink);font-size:.86rem}.tool-button.is-active{background:var(--accent, var(--ink));border-color:var(--accent, var(--ink));color:var(--accent-ink)}.number-pad button:focus-visible,.tool-button:focus-visible{box-shadow:inset 0 0 0 2px var(--focus, #1f6feb);outline:0;position:relative;z-index:1}.number-pad button:active:not(:disabled),.tool-button:active:not(:disabled){box-shadow:inset 0 1px 2px #191b1929;transform:translateY(1px)}.number-pad button:disabled,.tool-button:disabled{cursor:not-allowed;opacity:.46}@media(hover:hover)and (pointer:fine){.number-pad button:not(.is-noted):hover,.tool-button:not(.is-active):hover{background:var(--surface-muted)}.reset-board-cancel:hover{background:var(--surface-muted)}.reset-board-confirm:hover{background:color-mix(in srgb,var(--error-ink) 88%,var(--ink))}}@media(max-width:899px){.keypad.is-rail .number-pad{grid-template-columns:repeat(var(--number-count),minmax(0,1fr))}.keypad.is-rail.without-pause .tool-row{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(orientation:landscape)and (min-width:700px)and (max-width:899px)and (max-height:600px){.keypad.is-rail .number-pad{gap:4px}.keypad.is-rail[data-size="5"] .number-pad{grid-template-columns:repeat(5,minmax(0,1fr))}.keypad.is-rail[data-size="6"] .number-pad{grid-template-columns:repeat(3,minmax(0,1fr))}.keypad.is-rail[data-size="7"] .number-pad{grid-template-columns:repeat(4,minmax(0,1fr))}.keypad.is-rail[data-size="9"] .number-pad{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:680px){.keypad.is-rail .number-pad{grid-template-columns:repeat(var(--number-count),minmax(0,1fr))}.keypad.is-rail.without-pause .tool-row{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:430px){.keypad,.number-pad,.tool-row{gap:6px}.number-pad button,.tool-button{font-size:.78rem;min-height:44px}.tool-button{gap:0;padding:0}.tool-button-label{display:none}.reset-board-overlay{padding:10px}.reset-board-dialog{gap:15px 12px;grid-template-columns:38px minmax(0,1fr);padding:16px}.reset-board-dialog-mark{height:38px;width:38px}.reset-board-dialog-actions{gap:8px}.reset-board-dialog-actions button{font-size:.76rem;min-height:44px;padding-inline:8px}}@media(prefers-reduced-motion:reduce){.board-visual-cell-group,.reset-board-dialog,.reset-board-overlay,.victory-checkmark,.victory-checkmark-svg path{animation:none!important;transition:none!important}.victory-checkmark-svg path{opacity:1;stroke-dashoffset:0}.victory-checkmark.is-fading-out{opacity:0}.number-pad button:active:not(:disabled),.tool-button:active:not(:disabled){transform:none}}button:disabled{cursor:not-allowed;opacity:.42}
