@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: #f8f6f1;--ink: #111111;--muted: #706f6a;--line: #d8d4cc;--board-line: #1a1a1a;--edge-fill: #e0e0e0;--tile: #fffdf8;--selected: #f8e7a2;--selected-soft: #fff6d3;--note: #41727b;--error: #f2b8aa;--error-soft: #fde8e2;--cage-error: #d8c5ec;--cage-error-soft: #efe5f7;--success: #2f7041;--board-font: "Libre Franklin", Arial, Helvetica, sans-serif;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.35;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%;min-height:0;margin:0}button{color:inherit;font:inherit}body{background:var(--paper);overflow:hidden}.app-shell{--shell-gap: 12px;display:grid;gap:var(--shell-gap);grid-template-rows:auto minmax(0,1fr);height:100dvh;margin:0 auto;max-width:940px;min-height:0;overflow:hidden;padding:12px 8px 14px}.game-header{display:grid;gap:10px}.header-actions{align-items:center;display:flex;gap:8px}.quiet-icon{align-items:center;background:transparent;border:0;border-radius:999px;cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.quiet-icon:hover{background:#ece8df}.quiet-icon:disabled:hover{background:transparent}.quiet-icon:focus,.mode-tab:focus,.login-button:focus,.avatar-button:focus,.provider-button:focus,.account-menu button:focus,.number-pad button:focus,.tool-button:focus{outline:none}.quiet-icon:focus-visible,.mode-tab:focus-visible,.login-button:focus-visible,.avatar-button:focus-visible,.provider-button:focus-visible,.account-menu button:focus-visible,.number-pad button:focus-visible,.tool-button:focus-visible{outline:3px solid #f3c930;outline-offset:-3px;position:relative;z-index:5}.quiet-icon:focus-visible{outline-offset:2px}.title-row{align-items:end;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.title-block{min-width:0}.title-stack{align-items:center;display:flex;gap:12px;min-width:0}h1{font-family:Georgia,Times New Roman,serif;font-size:3rem;letter-spacing:0;line-height:.95;margin:0}.active-timer{align-items:center;background:#ece7dd;border:1px solid #cbc5ba;border-radius:7px;color:#2a2926;display:inline-flex;font-family:var(--board-font);font-size:1rem;font-variant-numeric:tabular-nums;font-weight:900;height:34px;justify-content:center;line-height:1;min-width:8.6ch;padding:0 10px}.title-row p{color:var(--muted);font-size:.95rem;margin:4px 0 0}.status-chip{align-items:center;background:var(--ink);border:1px solid var(--ink);border-radius:999px;color:#fff;display:inline-flex;font-size:.82rem;font-weight:800;height:34px;justify-content:center;min-width:76px;padding:0 14px}.status-idle{background:transparent;color:var(--muted)}.status-wrong{background:#b44a33;border-color:#b44a33}.status-offline{background:#5a5a5a;border-color:#5a5a5a}.login-button{align-items:center;background:#fff;border:1px solid #c9c4b9;border-radius:999px;box-shadow:0 1px #0000000f;cursor:pointer;display:inline-flex;font-size:.86rem;font-weight:900;height:34px;justify-content:center;line-height:1;min-width:64px;padding:0 13px}.login-button:hover{background:#f3f0e8}.account-control{position:relative}.avatar-button{align-items:center;background:#fff;border:1px solid #c9c4b9;border-radius:999px;box-shadow:0 1px #0000000f;cursor:pointer;display:inline-flex;height:34px;justify-content:center;overflow:hidden;padding:0;width:34px}.avatar-button img{display:block;height:100%;object-fit:cover;width:100%}.avatar-button span{align-items:center;background:#2f7041;color:#fff;display:flex;font-size:.72rem;font-weight:900;height:100%;justify-content:center;width:100%}.account-menu{background:#fffdf8;border:1px solid #c9c4b9;border-radius:7px;box-shadow:0 12px 28px #1f1c1429;display:grid;gap:4px;min-width:160px;padding:6px;position:absolute;right:0;top:calc(100% + 7px);z-index:20}.account-name{color:#2a2926;font-size:.82rem;font-weight:900;overflow:hidden;padding:7px 8px 5px;text-overflow:ellipsis;white-space:nowrap}.account-menu button{align-items:center;background:transparent;border:0;border-radius:6px;cursor:pointer;display:flex;font-size:.84rem;font-weight:850;gap:7px;min-height:34px;padding:0 8px;text-align:left}.account-menu button:hover{background:#f1ede4}.modal-backdrop{align-items:center;background:#16161638;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:20px;position:fixed;z-index:50}.auth-dialog{background:#fffdf8;border:1px solid #c9c4b9;border-radius:8px;box-shadow:0 18px 48px #1f1c1433;display:grid;gap:14px;max-width:360px;padding:14px;width:min(100%,360px)}.auth-dialog-header{align-items:center;display:flex;justify-content:space-between}.auth-dialog h2{font-family:Georgia,Times New Roman,serif;font-size:1.65rem;letter-spacing:0;line-height:1;margin:0}.auth-provider-list{display:grid;gap:8px}.google-signin-slot{align-items:center;color:var(--muted);display:flex;font-size:.84rem;font-weight:850;justify-content:center;min-height:44px}.google-signin-slot.is-loading:before{content:"Loading Google"}.google-signin-slot.is-authenticating{opacity:.55;pointer-events:none}.provider-button{align-items:center;background:#fff;border:1px solid #c9c4b9;border-radius:7px;box-shadow:0 1px #0000000f;cursor:pointer;display:inline-flex;font-weight:900;gap:9px;justify-content:center;min-height:46px;padding:0 12px}.provider-button:hover{background:#f3f0e8}.auth-error{color:#9f321f;font-size:.84rem;font-weight:850;margin:0}.mode-tabs{background:#e9e4da;border:1px solid #cbc5ba;border-radius:7px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.mode-tab{align-items:center;background:transparent;border:0;border-right:1px solid #cbc5ba;cursor:pointer;display:grid;gap:2px 6px;grid-template-columns:16px minmax(0,1fr);min-height:46px;padding:6px 10px;text-align:left}.mode-tab:last-child{border-right:0}.mode-tab[aria-selected=true]{background:#fff}.tab-check{color:var(--success);opacity:0}.mode-tab.is-complete .tab-check{opacity:1}.tab-label-row{align-items:center;display:flex;gap:8px;min-width:0}.tab-label{font-weight:850;line-height:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.mode-tab small{color:var(--muted);font-size:.72rem;grid-column:2}.tab-finished-time{color:var(--success);flex:0 0 auto;font-family:var(--board-font);font-size:.78rem;font-variant-numeric:tabular-nums;font-weight:900;line-height:1;margin-left:auto;white-space:nowrap}.game-stack{--game-stack-gap: 8px;--reserved-stack-height: 0px;align-items:center;container-type:size;display:flex;flex-direction:column;gap:var(--game-stack-gap);justify-content:center;justify-self:center;min-height:0;overflow:hidden;width:100%}.game-stack.has-keypad{--reserved-stack-height: 108px}.play-surface{--game-size: min(100cqw, calc(100cqh - var(--reserved-stack-height)), 860px);align-items:center;display:flex;flex:0 0 auto;height:max(0px,var(--game-size));justify-content:center;min-height:0;overflow:hidden;width:max(0px,var(--game-size))}.board-placeholder{align-items:center;aspect-ratio:1;background:var(--tile);border:1px solid var(--line);border-radius:7px;color:var(--muted);display:flex;font-weight:800;height:100%;justify-content:center;width:100%}.mathsudoku-board{--cell-count: 5;--cell-size: calc(var(--game-size) / var(--cell-count));--edge-band: calc(var(--cell-size) * 16 / 316);--edge-overlap: calc(var(--cell-size) * 13 / 316);--clue-size: calc(var(--cell-size) * .253);--entry-size: calc(var(--cell-size) * .553);--note-size: calc(var(--cell-size) * .209);aspect-ratio:1;background:var(--edge-fill);border:0;border-radius:7px;display:grid;gap:0;grid-auto-columns:minmax(0,1fr);grid-auto-rows:minmax(0,1fr);grid-template-columns:repeat(var(--cell-count),minmax(0,1fr));grid-template-rows:repeat(var(--cell-count),minmax(0,1fr));height:100%;justify-items:stretch;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-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:center;background:transparent;border: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-visible{outline:3px solid #f3c930;outline-offset:-5px;z-index:3}.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}.cell-fill{background:var(--tile);bottom:0;display:block;left:var(--edge-band);position:absolute;right:0;top:var(--edge-band);z-index:1}.board-cell.is-group-selected .cell-fill{background:var(--selected-soft)}.board-cell.is-selected .cell-fill{background:var(--selected)}.board-cell.has-duplicate .cell-fill{background:var(--error-soft)}.board-cell.has-cage-error .cell-fill{background:var(--cage-error-soft)}.board-cell.is-selected.has-duplicate .cell-fill{background:var(--error)}.board-cell.is-selected.has-cage-error .cell-fill{background:var(--cage-error)}.legacy-edge,.board-edge{display:block;position:absolute;z-index:2}.legacy-edge.is-dark,.board-edge{background:var(--board-line)}.legacy-edge.is-light{background:var(--edge-fill)}.legacy-corner{height:var(--edge-band);left:0;top:0;width:var(--edge-band)}.legacy-top{height:var(--edge-band);right:0;top:0}.legacy-top.is-light{left:var(--edge-band)}.legacy-top.is-dark{left:var(--edge-overlap)}.legacy-left{bottom:0;left:0;width:var(--edge-band)}.legacy-left.is-light{top:var(--edge-band)}.legacy-left.is-dark{top:var(--edge-overlap)}.board-edge{pointer-events:none;z-index:4}.board-edge-right{bottom:0;right:0;top:0;width:var(--edge-band)}.board-edge-bottom{bottom:0;height:var(--edge-band);left:0;right:0}.clue{display:block;font-family:var(--board-font);font-size:var(--clue-size);font-variant-numeric:tabular-nums;font-weight:800;left:8%;line-height:1;pointer-events:none;position:absolute;top:8%;z-index:4}.entry{display:block;font-family:var(--board-font);font-size:var(--entry-size);font-variant-numeric:tabular-nums;font-weight:900;height:1em;left:52.5%;line-height:1;pointer-events:none;position:absolute;text-align:center;top:62%;transform:translate(-50%,-50%);width:1em;z-index:5}.notes-grid{bottom:var(--edge-band);color:var(--note);display:grid;font-family:var(--board-font);font-variant-numeric:tabular-nums;font-weight:900;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));left:var(--edge-band);line-height:1;overflow:hidden;pointer-events:none;position:absolute;right:0;top:calc(8% + var(--clue-size) + var(--cell-size) * .035);z-index:3}.note-slot{align-items:center;display:flex;font-size:var(--note-size);justify-content:center;min-height:0;min-width:0;overflow:hidden}.solved-checkmark{align-items:center;color:var(--success);display:flex;inset:calc(var(--cell-size) * .05);justify-content:center;pointer-events:none;position:absolute;z-index:7}.mathsudoku-board.is-solved:after{background:#96969624;content:"";top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:6}.solved-checkmark-svg{filter:drop-shadow(0 calc(var(--cell-size) * .025) calc(var(--cell-size) * .04) rgba(255,255,255,.76));height:100%;opacity:.82;overflow:visible;width:100%}.solved-checkmark-svg path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:15}.keypad{--game-size: min(100cqw, calc(100cqh - var(--reserved-stack-height)), 860px);display:grid;flex:0 0 auto;gap:8px;justify-self:center;max-width:100%;width:max(0px,var(--game-size))}.number-pad{display:grid;gap:7px}.number-pad button,.tool-button{align-items:center;background:#fff;border:1px solid #c9c4b9;border-radius:7px;box-shadow:0 1px #0000000f;cursor:pointer;display:inline-flex;font-weight:900;gap:7px;justify-content:center;min-height:46px;padding:0 10px}.number-pad button{font-family:var(--board-font);font-size:1.25rem;font-variant-numeric:tabular-nums}.number-pad button:hover,.tool-button:hover{background:#f3f0e8}.number-pad button.is-noted{background:#dfeef0;border-color:#8eb2b8;color:var(--note)}.tool-row{display:grid;gap:7px;grid-template-columns:repeat(4,minmax(0,1fr))}.tool-button{color:#242424;font-size:.86rem}.tool-button.is-active{background:var(--ink);border-color:var(--ink);color:#fff}button:disabled{cursor:not-allowed;opacity:.42}@media(max-width:680px){.app-shell{--shell-gap: 10px;padding:8px 6px 10px}h1{font-size:2.35rem}.game-stack.has-keypad{--reserved-stack-height: 104px}.mode-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-tab:nth-child(2){border-right:0}.mode-tab:nth-child(-n+2){border-bottom:1px solid #cbc5ba}}@media(max-width:430px){.title-row{align-items:start;grid-template-columns:minmax(0,1fr) auto}.header-actions,.title-stack{gap:6px}h1{font-size:1.72rem}.quiet-icon{height:30px;width:30px}.active-timer{font-size:.88rem;height:30px;padding:0 7px}.status-chip{display:none}.login-button{min-width:58px;padding:0 10px}.number-pad{gap:6px}.number-pad button,.tool-button{font-size:.78rem;min-height:44px}}
