@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-ext-400-normal.DRk46D-x.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-ext-400-normal.Bbz-b3yf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-400-normal.BrHNak5F.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-400-normal.BbWidj28.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-ext-700-normal.BoVPHkS0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-ext-700-normal.CKkU2Dpt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-700-normal.GZI4o3u0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-700-normal.BK6Glc0m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-ext-400-normal.DRk46D-x.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-ext-400-normal.Bbz-b3yf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-400-normal.BrHNak5F.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-400-normal.BbWidj28.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-ext-700-normal.BoVPHkS0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-ext-700-normal.CKkU2Dpt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-700-normal.GZI4o3u0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-700-normal.BK6Glc0m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#20242b;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f5ef;font-family:Atkinson Hyperlegible,system-ui,sans-serif}*{box-sizing:border-box;touch-action:manipulation}html,body{background:#f7f5ef;width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,a{font:inherit}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #b7791f}.app-shell{grid-template-rows:auto auto minmax(0,1fr) auto auto;width:100%;height:100svh;min-height:0;display:grid;overflow:hidden}.shell-header{grid-row:1}.app-warning{grid-row:2}main{grid-row:3}.primary-nav{grid-row:4}footer{grid-row:5}.shell-header{background:#fffdf8;border-bottom:1px solid #dedcd4;justify-content:space-between;align-items:center;min-height:72px;padding:12px 20px;display:flex}.brand{color:#20242b;align-items:center;gap:11px;min-height:44px;font-size:1.45rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{border:2px solid #4654a3;border-radius:5px;grid-template-columns:repeat(3,5px);gap:2px;padding:5px;display:grid}.brand-mark i{background:#4654a3;border-radius:1px;width:5px;height:5px}.device-status{color:#62656b;white-space:nowrap;align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.device-status>span{background:#2f9e67;border-radius:50%;width:10px;height:10px}.device-status>span.warning{background:#b7791f}.app-warning{z-index:5;color:#754c16;background:#fff0cf;border-bottom:1px solid #e6c77d;gap:2px;padding:10px 18px;font-size:.84rem;display:grid}.app-warning strong{color:#5d3a0d}main{place-items:start center;min-width:0;min-height:0;padding:18px;display:grid;overflow:hidden}.hero-card{background:#fffdf8;border:1px solid #d7d5cd;border-radius:22px;grid-template-columns:minmax(160px,.78fr) minmax(0,1.22fr);align-items:center;gap:clamp(24px,5vw,52px);width:min(100%,780px);padding:clamp(24px,5vw,48px);display:grid}.puzzle-preview{aspect-ratio:1;background:#fff;border:3px solid #343840;grid-template-columns:repeat(9,1fr);width:min(100%,268px);display:grid}.puzzle-preview span{color:#30343a;border-bottom:1px solid #d4d5d8;border-right:1px solid #d4d5d8;place-items:center;min-width:0;font-weight:700;display:grid}.puzzle-preview span:nth-child(3n){border-right:2px solid #343840}.puzzle-preview span:nth-child(n+19):nth-child(-n+27),.puzzle-preview span:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #343840}.eyebrow{color:#4654a3;letter-spacing:.08em;text-transform:uppercase;margin:0 0 7px;font-size:.8rem;font-weight:700}h1{color:#20242b;letter-spacing:-.035em;margin:0;font-size:clamp(2rem,5vw,3.15rem);line-height:1}.introduction{color:#565a62;margin:16px 0;font-size:1rem;line-height:1.45}.proof-list{flex-wrap:wrap;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.proof-list li,.puzzle-facts span{color:#3f477d;background:#f0f1fa;border:1px solid #d8daf0;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:5px 9px;font-size:.8rem;font-weight:700;display:inline-flex}.difficulty-picker{border:0;min-width:0;margin:0 0 8px;padding:0}.difficulty-picker legend{color:#565a62;margin-bottom:5px;font-size:.76rem;font-weight:700}.difficulty-picker>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.difficulty-picker button{color:#565a62;cursor:pointer;background:#fffdf8;border:1px solid #c8c7c2;border-radius:8px;place-content:center;gap:1px;min-width:0;min-height:52px;padding:4px;display:grid;overflow:hidden}.difficulty-picker button strong{font-size:clamp(.7rem,1.4vw,.8rem)}.difficulty-picker button small{color:#777a80;white-space:nowrap;font-size:.64rem}.difficulty-picker button[aria-pressed=true]{color:#303a7d;background:#eceefa;border-color:#4654a3;box-shadow:inset 0 0 0 1px #4654a3}.difficulty-picker button[aria-pressed=true] small{color:#4654a3}.level-summary{color:#62656b;min-height:20px;margin:0 0 8px;font-size:.78rem}.level-summary strong{color:#303a7d}.generation-panel{min-width:0;display:grid}.primary-action{color:#fff;cursor:pointer;background:#4654a3;border:0;border-radius:11px;width:100%;min-height:50px;font-weight:700}.primary-action:disabled{cursor:progress;background:#7f86b5}.local-note,.generation-error{color:#777a80;text-align:center;margin:9px 0 0;font-size:.82rem}.generation-error{color:#b42318}.photo-import-card{background:#f0f1fa;border:1px solid #b9bedf;border-radius:12px;justify-content:space-between;align-items:center;gap:22px;padding:16px 18px;display:flex}.photo-import-card h2{color:#303a7d;margin:0 0 4px;font-size:1.12rem}.photo-import-card p:last-child{color:#565a62;max-width:48ch;margin:0;font-size:.84rem;line-height:1.35}.photo-import-card button{color:#fff;cursor:pointer;background:#4654a3;border:1px solid #4654a3;border-radius:9px;flex:none;min-height:46px;padding:7px 14px;font-weight:700}.incoming-card{text-align:center;background:#fffdf8;border:1px solid #d7d5cd;border-radius:18px;justify-items:center;gap:10px;width:min(100%,560px);padding:clamp(20px,5vw,38px);display:grid}.incoming-card .dialog-symbol{margin-bottom:0}.incoming-card .dialog-symbol.valid{color:#257653;background:#e4f4ec}.incoming-card .dialog-symbol.invalid{color:#9b2c24;background:#fff0ee}.incoming-card h1{font-size:clamp(1.7rem,5vw,2.6rem)}.incoming-card>p:not(.eyebrow,.dialog-symbol,.incoming-warning){color:#62656b;max-width:46ch;margin:0;line-height:1.4}.incoming-facts{grid-template-columns:repeat(3,1fr);gap:6px;width:100%;margin:4px 0;display:grid}.incoming-facts div{background:#f0f1fa;border:1px solid #d8daf0;border-radius:9px;min-width:0;padding:9px 5px}.incoming-facts dt{color:#62656b;font-size:.7rem}.incoming-facts dd{color:#303a7d;text-overflow:ellipsis;margin:2px 0 0;font-size:.9rem;font-weight:700;overflow:hidden}.incoming-facts.work-facts{grid-template-columns:repeat(3,1fr)}.incoming-warning{color:#754c16;text-align:left;background:#fff0cf;border-radius:9px;margin:0;padding:10px;font-size:.84rem}.incoming-actions{grid-template-columns:1fr 1fr;gap:7px;width:100%;display:grid}.incoming-actions button{color:#4654a3;cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-radius:9px;min-height:48px;padding:6px 10px;font-weight:700}.incoming-actions button.confirm{color:#fff;background:#4654a3;border-color:#4654a3}.play-view{gap:14px;width:min(100%,940px);display:grid}.puzzle-heading{justify-content:space-between;align-items:end;gap:18px;width:100%;display:flex}.puzzle-heading h1{font-size:clamp(1.75rem,4vw,2.6rem)}.puzzle-facts{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.session-status{align-items:center;gap:8px;display:flex}.timer{color:#343840;font-variant-numeric:tabular-nums;text-align:center;min-width:62px;font-size:1.12rem;font-weight:700}.pause-action{color:#4654a3;cursor:pointer;background:#fffdf8;border:1px solid #c8c7c2;border-radius:9px;min-width:76px;min-height:44px;font-weight:700}.game-workspace{grid-template-columns:minmax(0,600px) minmax(250px,290px);align-items:start;gap:24px;min-width:0;display:grid}.board-column{justify-items:center;gap:10px;min-width:0;display:grid}.paused-cover{aspect-ratio:1;color:#565a62;width:min(100%,600px);font:inherit;text-align:center;cursor:pointer;background:repeating-linear-gradient(135deg,#f3f2ed,#f3f2ed 12px,#eeede8 12px 24px);border:3px solid #343840;place-content:center;justify-items:center;gap:8px;padding:0;display:grid}.paused-cover:disabled{cursor:not-allowed}.paused-cover .pause-icon{color:#4654a3;background:#e1e4f7;border-radius:50%;place-items:center;width:50px;height:50px;font-size:1.4rem;font-weight:700;display:grid}.paused-cover strong{color:#20242b;font-size:1.35rem}.paused-cover small{font-size:.9rem}.sudoku-board{aspect-ratio:1;background:#fff;border:3px solid #343840;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));align-self:start;width:min(100%,600px);height:auto;display:grid;position:relative}.sudoku-row{display:contents}.sudoku-cell{color:#4654a3;font-variant-numeric:tabular-nums;cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-top:0;border-left:0;border-radius:0;place-items:center;min-width:0;padding:0;font-size:clamp(1.25rem,5vw,2.15rem);display:grid;position:relative;container-type:size}.sudoku-cell.given{color:#20242b;background:#fffdf8;font-weight:700}.sudoku-cell.peer{background:#f1f2f7}.sudoku-cell.matching{background:#e1e4f7}.sudoku-cell.number-peer{background:#fde8ef}.sudoku-cell.number-match{background:#f5bfd2}.sudoku-cell.selected{z-index:1;background:#eceefa;box-shadow:inset 0 0 0 3px #4654a3}.sudoku-cell.conflict{z-index:2;color:#b42318;box-shadow:inset 0 0 0 3px #b42318}.sudoku-cell.mistake{color:#b42318;background:#fff0ee}.sudoku-cell:focus-visible{z-index:3;outline-offset:-4px;outline:3px solid #b7791f}.sudoku-cell.box-right{border-right:3px solid #343840}.sudoku-cell.box-bottom{border-bottom:3px solid #343840}.sudoku-cell.last-column{border-right:0}.sudoku-cell.last-row{border-bottom:0}.cell-notes{color:#343840;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;font-size:min(22cqw,22cqh);font-style:normal;line-height:1;display:grid}.sudoku-board[data-notes-bold=true] .cell-notes{font-weight:700}.sudoku-board[data-notes-large=true] .cell-notes{font-size:min(30cqw,30cqh)}.cell-notes i{place-items:center;min-width:0;min-height:0;font-style:normal;display:grid}.cell-notes i.matching-note{color:#303a7d;background:#cfd4f3;border-radius:2px;font-weight:700}.conflict-mark{font-size:.68rem;font-weight:700;position:absolute;top:2px;right:3px}.mistake-mark{color:#b42318;font-size:.8rem;font-weight:700;position:absolute;top:1px;right:3px}.hint-mark{color:#b7791f;font-size:.48rem;position:absolute;bottom:2px;left:3px}.sudoku-cell.hinted{background:#fff8e8}.stripe-overlay{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sudoku-cell.walkthrough-context{background:#e8f2ef}.sudoku-cell.walkthrough-target{z-index:2;background:#fff0cf;box-shadow:inset 0 0 0 3px #b7791f}.sudoku-cell:disabled{opacity:1;cursor:default}.cell-value,.cell-notes{z-index:2;position:relative}.conflict-mark,.mistake-mark,.hint-mark{z-index:2}.stripe-source-mark{z-index:3;background:#fffdf8e6;border:1px solid;border-radius:50%;place-items:center;width:1.05rem;height:1.05rem;font-size:.58rem;font-weight:700;line-height:1;display:grid;position:absolute;bottom:2px}.stripe-source-mark.even{color:#4654a3;left:2px}.stripe-source-mark.odd{color:#8a5818;right:2px}.board-caption{color:#62656b;text-align:center;margin:0;font-size:.84rem}.board-validation{color:#3f477d;background:#f0f1fa;border:1px solid #d8daf0;border-radius:999px;align-items:center;min-height:28px;margin-bottom:-6px;padding:4px 9px;font-size:.76rem;font-weight:700;display:inline-flex}.play-controls{gap:12px;min-width:0;display:grid}.mode-switch{background:#efeee9;border:1px solid #c8c7c2;border-radius:10px;grid-template-columns:repeat(3,1fr);padding:3px;display:grid}.mode-switch button{color:#62656b;cursor:pointer;background:0 0;border:0;border-radius:7px;min-height:44px;font-weight:700}.mode-switch button.active{color:#4654a3;background:#fffdf8;box-shadow:0 1px 3px #0002}.mode-switch button:nth-child(2).active{color:#8a5818;box-shadow:inset 0 0 0 2px #b7791f}.mode-switch button:nth-child(3).active{color:#2b6f6a;box-shadow:inset 0 0 0 2px #438d86}.mode-switch button:disabled,.number-pad button:disabled{cursor:not-allowed;opacity:.55}.number-pad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.number-pad button{color:#4654a3;cursor:pointer;background:#fffdf8;border:1px solid #c8c7c2;border-radius:8px;place-items:center;min-width:44px;min-height:52px;padding:3px;display:grid}.number-pad button.complete-number:disabled{opacity:1;color:#777a80;background:#efeee9;border-color:#d7d5cd}.number-pad button.complete-number:disabled small{color:#777a80}.number-pad button.selected-number{color:#fff;background:#4654a3;box-shadow:0 0 0 2px #fff,0 0 0 4px #4654a3}.number-pad button.selected-number small{color:#fff}.number-pad button.all-notes{color:#8a5818;background:#fff8e8;border-color:#d3a157;font-weight:700}.number-pad strong{font-size:1.35rem;line-height:1}.number-pad small{color:#666970;font-size:.66rem;line-height:1}.stripe-tools{gap:6px;display:grid}.stripe-status{background:#fffdf8;border:1px solid #c8c7c2;border-radius:9px;align-items:center;gap:10px;min-height:58px;padding:7px 10px;display:flex}.stripe-status>span{background-color:#fff;border:1px solid #d7d5cd;border-radius:7px;flex:0 0 34px;height:34px}.stripe-status>span.even{background-image:repeating-linear-gradient(135deg,#4654a38c 0 1px,#0000 1px 16px)}.stripe-status>span.odd{background-image:repeating-linear-gradient(135deg,#0000 0 8px,#b7791f8c 8px 9px,#0000 9px 16px)}.stripe-status p{color:#343840;min-width:0;margin:0;font-size:.86rem;display:grid}.stripe-status small{color:#62656b;font-size:.72rem}.stripe-tools button{color:#4654a3;cursor:pointer;background:#fffdf8;border:1px solid #c8c7c2;border-radius:8px;min-height:44px;font-weight:700}.stripe-tools button:disabled{color:#999;cursor:not-allowed;background:#f1f0ec}.utility-actions{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.utility-actions button{background:#fffdf8;border:1px solid #d7d5cd;border-radius:8px;min-height:44px}.utility-actions button:disabled{color:#999;background:#f1f0ec}.game-management{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.game-management button{color:#62656b;cursor:pointer;background:0 0;border:1px solid #d7d5cd;border-radius:8px;min-height:44px}.game-management button:last-child{color:#9b2c24}.completion-panel{background:#f0f1fa;border:1px solid #b9bedf;border-radius:12px;padding:14px}.completion-panel h2{color:#303a7d;margin:0;font-size:1.2rem}.completion-panel p{color:#565a62;margin:5px 0 12px;font-size:.88rem}.completion-panel div{grid-template-columns:1fr 1fr;gap:6px;display:grid}.completion-panel button{color:#303a7d;cursor:pointer;background:#fff;border:1px solid #aeb4d8;border-radius:8px;min-height:44px;font-weight:700}.game-log{background:#fffdf8;border:1px solid #d7d5cd;border-radius:12px;min-height:0;padding:8px 10px}.log-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.log-heading h2{margin:0;font-size:1rem}.log-heading span{color:#666970;font-size:.75rem}.game-log ol{margin:3px 0 0;padding:0;list-style:none}.game-log li{color:#565a62;text-overflow:ellipsis;white-space:nowrap;border-top:1px solid #eceae4;min-width:0;padding:3px 0 0;font-size:.8rem;overflow:hidden}.game-log li:first-child{color:#20242b;font-weight:700}.game-log li:nth-child(n+2){display:none}.game-log.covered{color:#777a80;background:#f1f0ec}.log-paused{color:#777a80;text-align:center;margin:16px 0 6px;font-size:.82rem}.sr-live{clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;position:fixed;overflow:hidden}.dialog-backdrop{z-index:20;background:#20242b99;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{text-align:center;background:#fffdf8;border-radius:16px;width:min(100%,390px);padding:24px;box-shadow:0 18px 60px #0004}.dialog-symbol{color:#8a5818;background:#fff0cf;border-radius:50%;place-items:center;width:44px;height:44px;margin:0 auto 10px;display:grid}.confirm-dialog h2{margin:0;font-size:1.5rem}.confirm-dialog>p:not(.dialog-symbol){color:#62656b;margin:8px 0 20px}.confirm-dialog div{grid-template-columns:1fr 1fr;gap:8px;display:grid}.confirm-dialog button{cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-radius:9px;min-height:46px;font-weight:700}.confirm-dialog button.confirm{color:#fff;background:#4654a3;border-color:#4654a3}.confirm-dialog button.danger{color:#fff;background:#9b2c24;border-color:#9b2c24}.danger-dialog .dialog-symbol{color:#9b2c24;background:#fff0ee}.share-dialog{text-align:center;background:#fffdf8;border-radius:16px;justify-items:center;gap:10px;width:min(100%,430px);max-height:calc(100svh - 24px);padding:22px;display:grid;overflow:hidden;box-shadow:0 18px 60px #0004}.share-dialog h2{margin:0;font-size:1.5rem}.share-dialog>p:not(.eyebrow,.dialog-symbol,.share-error,.transfer-note){color:#62656b;margin:0}.share-choices{gap:8px;width:100%;display:grid}.share-choices button{color:#4654a3;cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-radius:9px;place-content:center;gap:2px;min-height:62px;padding:8px;display:grid}.share-choices button.confirm{color:#fff;background:#4654a3;border-color:#4654a3}.share-choices small{font-size:.76rem}.share-dialog .text-action{color:#62656b;cursor:pointer;background:0 0;border:0;min-height:44px}.share-qr{width:min(224px,42svh,70vw);height:min(224px,42svh,70vw);image-rendering:pixelated}.share-link-status{color:#565a62;background:#fff;border:1px solid #c8c7c2;border-radius:8px;place-items:center;width:100%;min-height:34px;margin:0;padding:5px 9px;font-size:.76rem;display:grid}.transfer-note{color:#62656b;margin:0;font-size:.82rem;line-height:1.3}.share-error{color:#b42318;margin:0;font-size:.8rem}.share-actions{grid-template-columns:repeat(2,1fr);gap:7px;width:100%;display:grid}.share-actions button{cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-radius:9px;min-height:46px;font-weight:700}.share-actions button.confirm{color:#fff;background:#4654a3;border-color:#4654a3}.share-actions:has(button:nth-child(3)){grid-template-columns:repeat(3,1fr)}.library-view{align-self:start;gap:18px;width:min(100%,760px);max-height:100%;padding-block:18px;display:grid}.library-heading h1{font-size:clamp(2.2rem,5vw,3.4rem)}.library-heading>p:last-child{color:#62656b;margin:10px 0 0}.history-list{gap:10px;display:grid}.history-pages{grid-template-columns:minmax(80px,1fr) auto minmax(80px,1fr);align-items:center;gap:10px;display:grid}.history-pages span{color:#62656b;font-variant-numeric:tabular-nums;text-align:center;font-size:.82rem}.history-pages button{color:#4654a3;cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-radius:8px;min-height:44px;font-weight:700}.history-pages button:disabled{color:#999;cursor:default;background:#efeee9}.history-card{background:#fffdf8;border:1px solid #d7d5cd;border-radius:12px;grid-template-columns:1.15fr 1fr auto;align-items:center;gap:18px;padding:16px;display:grid}.history-card h2{margin:5px 0 0;font-size:1.05rem}.history-state{color:#62656b;text-transform:uppercase;letter-spacing:.06em;font-size:.76rem;font-weight:700}.history-state.complete{color:#257653}.history-state.abandoned{color:#9b2c24}.history-card dl{gap:16px;margin:0;display:flex}.history-card dl div{gap:2px;display:grid}.history-card dt{color:#777a80;font-size:.7rem}.history-card dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.card-actions button,.empty-library button{color:#4654a3;cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-radius:8px;min-height:44px;padding-inline:12px;font-weight:700}.empty-library{color:#62656b;background:#fffdf8;border:1px dashed #c8c7c2;border-radius:12px;justify-items:start;gap:6px;padding:24px;display:grid}.empty-library strong{color:#20242b;font-size:1.1rem}.primary-action.compact{width:min(100%,320px)}.settings-list{gap:8px;display:grid}.settings-list button{color:#20242b;text-align:left;cursor:pointer;background:#fffdf8;border:1px solid #d7d5cd;border-radius:11px;justify-content:space-between;align-items:center;gap:18px;width:100%;min-height:72px;padding:12px 14px;display:flex}.settings-list button span{gap:3px;display:grid}.settings-list button small{color:#62656b;font-size:.82rem}.settings-list button i{background:#c8c7c2;border-radius:999px;flex:none;width:46px;height:26px;padding:3px}.settings-list button i:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;display:block;box-shadow:0 1px 3px #0004}.settings-list button[aria-checked=true] i{background:#4654a3}.settings-list button[aria-checked=true] i:after{margin-left:20px}.settings-view{align-content:start;height:100%;position:relative}.settings-build{color:#777a80;margin:0;font-size:.68rem;line-height:1;position:absolute;bottom:0;right:0}.privacy-card{background:#fff8f7;border:1px solid #e4b9b5;border-radius:12px;justify-content:space-between;align-items:center;gap:24px;padding:18px;display:flex}.privacy-card h2{margin:0 0 5px;font-size:1.1rem}.privacy-card p{color:#62656b;max-width:52ch;margin:0;font-size:.84rem}.privacy-card button{color:#9b2c24;cursor:pointer;background:#fff;border:1px solid #b42318;border-radius:8px;flex:none;min-height:44px;padding:8px 12px;font-weight:700}.app-shell:has(.app-warning) .settings-view{gap:10px}.app-shell:has(.app-warning) .settings-list{gap:5px}.app-shell:has(.app-warning) .settings-list button{min-height:60px;padding-block:7px}.app-shell:has(.app-warning) .privacy-card{padding:10px}.walkthrough-view{grid-template-rows:auto minmax(0,1fr);gap:18px;width:min(100%,960px);height:100%;min-height:0;display:grid}.walkthrough-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.walkthrough-heading h1{font-size:clamp(2rem,5vw,3.15rem)}.walkthrough-heading button{color:#4654a3;cursor:pointer;background:#fffdf8;border:1px solid #c8c7c2;border-radius:8px;flex:none;min-height:44px;padding:7px 12px;font-weight:700}.walkthrough-workspace{grid-template-columns:minmax(0,600px) minmax(260px,300px);justify-content:center;align-items:start;gap:24px;min-height:0;display:grid}.walkthrough-board{justify-items:center;gap:8px;min-width:0;display:grid}.walkthrough-board .sudoku-board{width:min(100%,600px)}.walkthrough-legend{color:#62656b;flex-wrap:wrap;justify-content:center;gap:12px;font-size:.78rem;display:flex}.walkthrough-legend span{align-items:center;gap:5px;display:inline-flex}.walkthrough-legend i{border:1px solid #c8c7c2;border-radius:3px;width:14px;height:14px;display:inline-block}.walkthrough-legend i.target{background:#fff0cf;border-color:#b7791f;box-shadow:inset 0 0 0 1px #b7791f}.walkthrough-legend i.context{background:#e8f2ef;border-color:#9dbcb6}.walkthrough-panel{background:#fffdf8;border:1px solid #d7d5cd;border-radius:14px;gap:10px;min-width:0;padding:18px;display:grid}.walkthrough-loading,.walkthrough-empty{background:#fffdf8;border:1px solid #d7d5cd;border-radius:14px;place-self:start center;gap:14px;width:min(100%,560px);margin-top:clamp(24px,10vh,90px);padding:clamp(22px,5vw,36px);display:grid;box-shadow:0 12px 34px #2d303714}.walkthrough-loading h2,.walkthrough-empty h2{margin:0;font-size:clamp(1.25rem,4vw,1.75rem)}.walkthrough-loading p,.walkthrough-empty p{color:#62656b;margin:0}.walkthrough-progress{background:#dedcd4;border-radius:999px;height:6px;overflow:hidden}.walkthrough-progress span{border-radius:inherit;background:#4654a3;height:100%;transition:width .15s;display:block}.walkthrough-count{color:#62656b;font-variant-numeric:tabular-nums;margin:0;font-size:.78rem}.walkthrough-rule{color:#754c16;background:#fff0cf;border-radius:999px;width:fit-content;margin:0;padding:4px 8px;font-size:.76rem;font-weight:700}.walkthrough-rule.rule-naked-single,.walkthrough-rule.rule-hidden-single,.walkthrough-rule.rule-full-house,.walkthrough-rule.rule-naked-pair,.walkthrough-rule.rule-hidden-pair,.walkthrough-rule.rule-pointing-pair,.walkthrough-rule.rule-box-line-reduction,.walkthrough-rule.rule-naked-triple,.walkthrough-rule.rule-hidden-triple,.walkthrough-rule.rule-x-wing,.walkthrough-rule.rule-swordfish,.walkthrough-rule.rule-y-wing,.walkthrough-rule.rule-single-digit-chain,.walkthrough-rule.rule-simple-colors,.walkthrough-rule.rule-xy-chain,.walkthrough-rule.rule-medusa,.walkthrough-rule.rule-unique-rectangle{color:#25645d;background:#e4f4ec}.walkthrough-rule.rule-unknown-rule{color:#6b5d4d;background:#eee9df}.walkthrough-rule.rule-mistake,.walkthrough-rule.rule-correction{color:#9b2c24;background:#fff0ee}.walkthrough-panel h2{margin:0;font-size:1.25rem;line-height:1.15}.walkthrough-explanation{color:#454950;min-height:4.2em;margin:0;line-height:1.4}.walkthrough-note{color:#777a80;border-top:1px solid #eceae4;margin:0;padding-top:8px;font-size:.74rem;line-height:1.35}.walkthrough-actions{grid-template-columns:1fr 1fr;gap:7px;display:grid}.walkthrough-actions button{color:#4654a3;cursor:pointer;background:#fff;border:1px solid #c8c7c2;border-radius:8px;min-height:46px;font-weight:700}.walkthrough-actions button.next{color:#fff;background:#4654a3;border-color:#4654a3}.walkthrough-actions button:disabled{color:#999;cursor:default;background:#efeee9;border-color:#d7d5cd}.primary-nav{background:#fffdf8;border-top:1px solid #dedcd4;grid-template-columns:repeat(4,1fr);min-height:66px;display:grid}.primary-nav button{color:#666970;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;font-size:.78rem;display:flex}.primary-nav button span{font-size:1.25rem;line-height:1}.primary-nav button[aria-current=page]{color:#4654a3;font-weight:700;box-shadow:inset 0 -3px #4654a3}.primary-nav button:disabled{opacity:.62}footer{color:#666970;background:#fffdf8;justify-content:space-between;align-items:center;gap:12px;min-height:28px;padding:5px 14px;font-size:.68rem;display:flex}@media (width<=599px){.photo-import-card{flex-direction:column;align-items:stretch;gap:10px;padding:13px}.photo-import-card .eyebrow{margin-bottom:3px}.photo-import-card button{width:100%}.shell-header{min-height:54px;padding:5px 12px}.brand{min-height:44px;font-size:1.25rem}.brand-mark{transform:scale(.9)}.device-status{font-size:.8rem}.app-warning{padding:6px 12px;font-size:.76rem}main{align-items:start;padding:10px 12px}footer{display:none}.hero-card{grid-template-columns:1fr;gap:10px;padding:16px}.puzzle-preview{width:min(120px,22svh);margin-inline:auto}.welcome-copy{text-align:center}.welcome-copy h1{font-size:2rem}.introduction{max-width:34ch;margin:8px auto}.proof-list{justify-content:center;margin-bottom:10px}.difficulty-picker>div{grid-template-columns:repeat(3,minmax(0,1fr))}.difficulty-picker button{min-height:44px}.welcome-copy .difficulty-picker legend,.welcome-copy .level-summary{text-align:left}.app-warning+main .hero-card .puzzle-preview,.app-shell.playing .shell-header{display:none}.app-shell.playing main{padding:6px 12px}.play-view{grid-template-rows:auto minmax(0,1fr);gap:5px;height:100%;min-height:0}.puzzle-heading{align-items:center}.puzzle-heading .eyebrow{margin-bottom:2px;font-size:.68rem}.puzzle-heading h1{font-size:1.45rem}.session-status{gap:4px}.timer{min-width:48px;font-size:.95rem}.pause-action{min-width:68px;min-height:44px}.puzzle-facts span:last-child{display:none}.game-workspace{grid-template-rows:auto auto;grid-template-columns:1fr;align-content:space-between;gap:5px;height:100%;min-height:0}.board-column{gap:3px}.sudoku-board,.paused-cover{--board-size:min(calc(100vw - 24px), calc(100svh - 430px), 540px);width:var(--board-size);height:var(--board-size);min-width:0}.board-validation{min-height:22px;margin-bottom:-2px;padding:2px 7px;font-size:.68rem}.board-caption{font-size:.72rem;line-height:1}.play-controls{gap:5px;width:100%}.number-pad{grid-template-columns:repeat(5,1fr);gap:5px}.number-pad button{min-width:0;min-height:44px}.number-pad small{display:none}.utility-actions{grid-template-columns:repeat(4,1fr)}.game-log{height:54px;padding:5px 8px}.log-heading h2{font-size:.86rem}.game-log li{font-size:.72rem}.log-paused{margin:7px 0 0;font-size:.72rem}.game-management{gap:5px}.game-management button{min-height:44px}.completion-panel{padding:8px}.completion-panel h2{font-size:1rem}.completion-panel p{margin:2px 0 5px;font-size:.75rem}.completion-panel button{min-height:44px}.library-view{align-self:start;gap:10px;padding-block:0}.library-heading h1{font-size:2rem}.library-heading>p:last-child{margin-top:4px;font-size:.82rem}.settings-list{gap:5px}.settings-list button{min-height:48px;padding:3px 10px}.settings-list button small{font-size:.74rem}.privacy-card{padding:10px}.history-card{grid-template-columns:1fr;gap:12px}.history-card dl{justify-content:space-between}.card-actions{grid-template-columns:1fr 1fr;display:grid}.walkthrough-view{gap:7px}.walkthrough-heading .eyebrow{margin-bottom:2px;font-size:.68rem}.walkthrough-heading h1{font-size:1.45rem}.walkthrough-heading button{min-height:44px;padding-inline:8px;font-size:.78rem}.walkthrough-workspace{grid-template-rows:auto auto;grid-template-columns:1fr;align-content:start;gap:6px}.walkthrough-board{gap:3px}.walkthrough-board .sudoku-board{--board-size:min(calc(100vw - 24px), calc(100svh - 380px), 540px);width:var(--board-size);height:var(--board-size)}.walkthrough-legend{gap:9px;font-size:.7rem}.walkthrough-panel{gap:5px;padding:9px}.walkthrough-panel h2{font-size:1rem}.walkthrough-explanation{min-height:0;font-size:.82rem}.walkthrough-note{font-size:.67rem}.walkthrough-count{font-size:.72rem}.walkthrough-rule{padding-block:2px;font-size:.7rem}.privacy-card{flex-direction:column;align-items:stretch;gap:14px}.app-shell:has(.app-warning) .settings-view{gap:7px}.app-shell:has(.app-warning) .settings-view .library-heading>p:last-child{display:none}.app-shell:has(.app-warning) .settings-view .privacy-card p{display:none}.app-shell:has(.app-warning) .settings-list button{min-height:50px}.app-shell:has(.app-warning) .privacy-card{gap:6px}.primary-nav{min-height:54px}.primary-nav button{min-height:52px}:is(.app-shell.playing:has(.app-warning) .game-log,.app-shell.playing:has(.app-warning) .game-management,.app-shell.playing:has(.app-warning) .board-caption),:is(.app-shell.playing:has(.completion-panel) .board-validation,.app-shell.playing:has(.completion-panel) .board-caption){display:none}}@media (width>=600px) and (width<=899px){.game-workspace{grid-template-columns:minmax(0,1fr) 230px;gap:18px}}@media (height<=650px){.shell-header,footer{display:none}.primary-nav{min-height:54px}main{padding:6px 10px}.hero-card{grid-template-columns:1fr;gap:8px;padding:12px}.hero-card .puzzle-preview,.hero-card .eyebrow,.hero-card .introduction,.hero-card .proof-list,.hero-card .local-note{display:none}.hero-card .welcome-copy h1{text-align:center;margin-bottom:12px;font-size:1.6rem}.library-view{gap:5px}.photo-import-card{background:0 0;border:0;padding:0}.photo-import-card>div{display:none}.photo-import-card button{width:100%;min-height:44px}.incoming-card{gap:5px;padding:10px}.incoming-card .dialog-symbol{display:none}.incoming-card h1{font-size:1.5rem}.share-dialog{gap:5px;padding:10px}.share-dialog .dialog-symbol{display:none}.share-dialog h2{font-size:1.25rem}.share-qr{width:min(128px,28svh);height:min(128px,28svh)}.transfer-note{font-size:.72rem}.library-view .library-heading{display:none}.settings-view .settings-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.settings-list button{min-height:44px;padding:3px 10px}.settings-list button small{display:none}.privacy-card{padding:4px;display:block}.privacy-card>div{display:none}.privacy-card button{width:100%;min-height:44px}.app-shell.playing .shell-header,.app-shell.playing footer,.app-shell.playing .board-validation,.app-shell.playing .board-caption,.app-shell.playing .game-management,.app-shell.playing .game-log{display:none}.app-shell.playing main{padding:6px 10px}.app-shell.playing .play-view{gap:4px;height:100%;min-height:0}.app-shell.playing .puzzle-heading .eyebrow{display:none}.app-shell.playing .puzzle-heading h1{font-size:1.2rem}.app-shell.playing .game-workspace{gap:6px;height:100%;min-height:0}.app-shell.playing .play-controls{gap:5px}.app-shell.playing .mode-switch button,.app-shell.playing .number-pad button,.app-shell.playing .utility-actions button{min-height:44px}}@media (width<=599px) and (height<=650px){.app-shell.playing .sudoku-cell{font-size:clamp(.7rem,3svh,1.35rem);line-height:1}.app-shell.playing .sudoku-board,.app-shell.playing .paused-cover{--board-size:min(calc(100vw - 24px), calc(100svh - 314px));width:var(--board-size);height:var(--board-size)}.app-shell.playing:has(.app-warning) .puzzle-heading{display:none}:is(.app-shell.playing:has(.app-warning) .sudoku-board,.app-shell.playing:has(.app-warning) .paused-cover){--board-size:min(calc(100vw - 24px), calc(100svh - 330px))}}@media (width>=600px) and (height<=650px){.app-shell.playing .sudoku-cell{font-size:clamp(.85rem,4svh,1.5rem);line-height:1}.app-shell.playing .game-workspace{grid-template-columns:minmax(0,1fr) 250px;align-items:center}.app-shell.playing .sudoku-board,.app-shell.playing .paused-cover{--board-size:min(100%, calc(100svh - 126px));width:var(--board-size);height:var(--board-size)}.app-shell.playing .number-pad{grid-template-columns:repeat(5,1fr)}.app-shell.playing .number-pad small{display:none}.app-shell.playing .utility-actions{grid-template-columns:repeat(4,1fr)}.app-shell.playing .number-pad button{min-height:44px}.app-shell.playing:has(.app-warning) .puzzle-heading{display:none}}@media (width>=900px){.app-shell{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:226px minmax(0,1fr)}.shell-header{border-bottom:0;border-right:1px solid #dedcd4;flex-direction:column;grid-area:1/1;justify-content:flex-start;align-items:flex-start;gap:18px;padding:34px 26px}.app-warning{grid-area:1/2}main{grid-area:1/2/span 3;padding:32px}.app-warning+main{grid-row:2/span 2}.primary-nav{background:0 0;border:0;flex-direction:column;grid-area:2/1;align-self:center;padding:0 16px;display:flex}.primary-nav button{border-radius:9px;flex-direction:row;justify-content:flex-start;gap:12px;min-height:50px;padding:0 14px;font-size:.95rem}.primary-nav button[aria-current=page]{background:#eceefa;box-shadow:inset 3px 0 #4654a3}footer{border-right:1px solid #dedcd4;flex-direction:column;grid-area:3/1;align-items:flex-start;padding:12px 24px}}
