:root{--nono-c1:var(--accent);--nono-c2:#3f7fc4;--nono-c3:#b8508a;--nono-mark:var(--text-muted)}[data-theme=dark]{--nono-c2:#5d9be0;--nono-c3:#d06aa4}.nono-wrap{touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;display:flex;container-type:inline-size}.nono-viewport{overscroll-behavior:contain;touch-action:none;scrollbar-width:thin;width:fit-content;max-width:100%;max-height:calc(100dvh - 250px);overflow:auto}.nono-board{grid-template-columns:auto repeat(var(--cols), var(--cell));grid-template-rows:auto repeat(var(--rows), var(--cell));--clue-fs:clamp(10px, calc(var(--cell) * .5), 14px);width:max-content;display:grid}.nono-corner{z-index:3;background:var(--card-bg);grid-area:1/1;position:sticky;top:0;left:0}.nono-clues.col{z-index:2;background:var(--card-bg);padding-top:8px;position:sticky;top:0}.nono-clues.row{z-index:2;background:var(--card-bg);padding-left:8px;position:sticky;left:0}.nono-clues{font-size:var(--clue-fs);color:var(--text);gap:2px;font-weight:700;line-height:1;transition:color .15s;display:flex}.nono-clues.col{min-width:var(--cell);flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:4px}.nono-clues.row{min-height:var(--cell);flex-direction:row;justify-content:flex-end;align-items:center;padding-right:6px}.nono-clues.done{color:var(--text-muted);opacity:.6}.nono-clues .clue{text-align:center;min-width:1.1em;display:inline-block}.nono-clues .clue.c2{color:var(--nono-c2)}.nono-clues .clue.c3{color:var(--nono-c3)}.nono-clues .clue.c1{color:var(--nono-c1)}.nono-clues.done .clue{color:inherit}.nono-clues .clue.zero{color:var(--text-muted)}.nono-cell{background:var(--board-cell);border:1px solid var(--board-line);cursor:pointer;transition:background 80ms;position:relative}.nono-cell.gr{border-right-width:2px;border-right-color:var(--border-mid)}.nono-cell.gb{border-bottom-width:2px;border-bottom-color:var(--border-mid)}.nono-cell.first-col{border-left-width:2px;border-left-color:var(--border-mid)}.nono-cell.first-row{border-top-width:2px;border-top-color:var(--border-mid)}.nono-cell.last-col{border-right-width:0}.nono-cell.last-row{border-bottom-width:0}.nono-cell.f1{background:var(--nono-c1)}.nono-cell.f2{background:var(--nono-c2)}.nono-cell.f3{background:var(--nono-c3)}.nono-cell.x:before,.nono-cell.x:after{content:"";background:var(--nono-mark);opacity:.7;width:1.5px;height:50%;position:absolute;top:25%;left:50%}.nono-cell.x:before{transform:translate(-50%)rotate(45deg)}.nono-cell.x:after{transform:translate(-50%)rotate(-45deg)}.nono-cell.flash{animation:.6s ease-out 3 nono-flash}@keyframes nono-flash{0%{box-shadow:inset 0 0 0 3px var(--success)}to{box-shadow:inset 0 0 #0000}}.nono-palette{gap:8px;display:flex}.nono-chip{border:2px solid var(--border-mid);cursor:pointer;border-radius:999px;width:36px;height:36px;padding:0;transition:transform .1s,border-color .15s}.nono-chip.c1{background:var(--nono-c1)}.nono-chip.c2{background:var(--nono-c2)}.nono-chip.c3{background:var(--nono-c3)}.nono-chip.active{border-color:var(--text);transform:scale(1.12)}.nono-chip:disabled{opacity:.5;cursor:default}.nono-viewport.solved .nono-cell.f1,.nono-viewport.solved .nono-cell.f2,.nono-viewport.solved .nono-cell.f3{animation:.7s ease-out both solve-wave;animation-delay:calc(var(--r,0) * 40ms)}.zip-wrap{--cell:min(calc(180px / var(--size) + 22px), calc((100cqw - 4px) / var(--size)));touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;display:flex;container-type:inline-size}.zip-board{touch-action:none;max-width:100%;line-height:0}.zip-wrap .actions{width:calc(var(--size) * var(--cell) + 4px);max-width:100%}.zip-svg{width:calc(var(--size) * var(--cell));height:calc(var(--size) * var(--cell));touch-action:none;outline:none;display:block}.zip-svg:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.zip-cell{fill:var(--board-cell);stroke:var(--board-line);stroke-width:.03px;transition:fill .1s}.zip-cell.filled{fill:var(--accent-soft)}.zip-cell.flash{animation:.6s ease-out 3 zip-flash}@keyframes zip-flash{0%{fill:var(--success-soft);stroke:var(--success);stroke-width:.08px}to{fill:var(--accent-soft);stroke:var(--board-line);stroke-width:.03px}}.zip-path{fill:none;stroke:var(--accent);stroke-width:.4px;stroke-linecap:round;stroke-linejoin:round;opacity:.92;pointer-events:none}.zip-board.solved .zip-path{stroke:var(--success);opacity:1}.zip-path-dot{fill:var(--accent);pointer-events:none}.zip-number circle{fill:var(--text);stroke:var(--card-bg);stroke-width:.05px}.zip-number text{fill:var(--bg);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-family:inherit;font-size:.44px;font-weight:700}.zip-number.filled circle{fill:var(--accent-deep);stroke:var(--text);stroke-width:.04px}.zip-number.filled text{fill:var(--on-accent)}.zip-board.solved .zip-number.filled circle{fill:var(--success)}.zip-board.solved .zip-number.filled text{fill:#fff}.zip-head{fill:none;stroke:var(--text);stroke-width:.07px;pointer-events:none}.zip-wall{stroke:var(--text);stroke-width:.13px;stroke-linecap:round;pointer-events:none}.zip-board.solved .zip-path{animation:.9s ease-out both zip-solve}.zip-board.solved .zip-number.filled{transform-box:fill-box;transform-origin:50%;animation:.8s ease-out both solve-pop;animation-delay:calc(var(--k,0) * 50ms)}:root{--mosaic-fill:var(--accent);--mosaic-mark:var(--text-muted);--mosaic-clue:var(--text);--mosaic-clue-on-fill:#fffdf7}[data-theme=dark]{--mosaic-clue-on-fill:#111110}.mosaic-wrap{touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;display:flex;container-type:inline-size}.mosaic-viewport{overscroll-behavior:contain;touch-action:none;scrollbar-width:thin;width:fit-content;max-width:100%;max-height:calc(100dvh - 250px);overflow:auto}.mosaic-board{grid-template-columns:repeat(var(--cols), var(--cell));grid-template-rows:repeat(var(--rows), var(--cell));width:max-content;display:grid}.mosaic-cell{background:var(--board-cell);border:1px solid var(--board-line);cursor:pointer;justify-content:center;align-items:center;transition:background 80ms;display:flex;position:relative}.mosaic-cell.gr{border-right-width:2px;border-right-color:var(--border-mid)}.mosaic-cell.gb{border-bottom-width:2px;border-bottom-color:var(--border-mid)}.mosaic-cell.first-col{border-left-width:0}.mosaic-cell.first-row{border-top-width:0}.mosaic-cell.last-col{border-right-width:0}.mosaic-cell.last-row{border-bottom-width:0}.mosaic-cell.filled{background:var(--mosaic-fill)}.mosaic-cell.x:before,.mosaic-cell.x:after{content:"";background:var(--mosaic-mark);opacity:.55;width:1.5px;height:76%;position:absolute;top:12%;left:50%}.mosaic-cell.x:before{transform:translate(-50%)rotate(45deg)}.mosaic-cell.x:after{transform:translate(-50%)rotate(-45deg)}.mosaic-cell.flash{animation:.6s ease-out 3 mosaic-flash}@keyframes mosaic-flash{0%{box-shadow:inset 0 0 0 3px var(--success)}to{box-shadow:inset 0 0 #0000}}.mosaic-clue{z-index:1;font-size:clamp(.65rem, calc(var(--cell) * .55), 1.3rem);color:var(--mosaic-clue);font-weight:700;line-height:1;transition:color .15s,opacity .15s;position:relative}.mosaic-cell.filled .mosaic-clue{color:var(--mosaic-clue-on-fill)}.mosaic-cell.done .mosaic-clue{opacity:.4}.mosaic-viewport.solved .mosaic-cell.done .mosaic-clue{opacity:.25}.mosaic-viewport.solved .mosaic-cell.filled{animation:.7s ease-out both solve-wave;animation-delay:calc(var(--r,0) * 40ms)}:root{--sudoku-max:440px;--sudoku-peer:color-mix(in srgb, var(--accent) 9%, var(--board-cell));--sudoku-same:color-mix(in srgb, var(--accent) 24%, var(--board-cell));--sudoku-selected:color-mix(in srgb, var(--accent) 36%, var(--board-cell))}.sudoku-wrap{touch-action:manipulation;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.sudoku-board{width:100%;max-width:var(--sudoku-max);aspect-ratio:1;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);display:grid;container-type:inline-size}.sudoku-cell{background:var(--board-cell);border-right:1px solid var(--board-line);border-bottom:1px solid var(--board-line);min-width:0;color:var(--accent-deep);cursor:pointer;justify-content:center;align-items:center;font-size:clamp(1rem,6.2cqw,2rem);font-weight:600;transition:background 80ms;display:flex;position:relative}.sudoku-cell.box-r{border-right:2px solid var(--border-mid)}.sudoku-cell.box-b{border-bottom:2px solid var(--border-mid)}.sudoku-cell.last-c{border-right:none}.sudoku-cell.last-r{border-bottom:none}.sudoku-cell.given{color:var(--text);font-weight:700}.sudoku-cell.peer{background:var(--sudoku-peer)}.sudoku-cell.same{background:var(--sudoku-same)}.sudoku-cell.selected{background:var(--sudoku-selected);box-shadow:inset 0 0 0 2px var(--accent)}.sudoku-cell.conflict .sudoku-value{color:var(--danger)}.sudoku-cell.flash{animation:.6s ease-out 3 sudoku-flash}@keyframes sudoku-flash{0%{box-shadow:inset 0 0 0 3px var(--success)}to{box-shadow:inset 0 0 #0000}}.sudoku-value{z-index:1;line-height:1;position:relative}.sudoku-cage{--in:2px;--line:1.5px;--dash:3px;--step:6px;z-index:1;pointer-events:none;opacity:.75;position:absolute}.sudoku-cage.t,.sudoku-cage.b{left:calc(var(--a) * var(--in));right:calc(var(--b) * var(--in));height:var(--line);background:repeating-linear-gradient(to right, var(--text-muted) 0 var(--dash), transparent var(--dash) var(--step))}.sudoku-cage.l,.sudoku-cage.r{top:calc(var(--a) * var(--in));bottom:calc(var(--b) * var(--in));width:var(--line);background:repeating-linear-gradient(to bottom, var(--text-muted) 0 var(--dash), transparent var(--dash) var(--step))}.sudoku-cage.t{top:var(--in)}.sudoku-cage.b{bottom:var(--in)}.sudoku-cage.l{left:var(--in)}.sudoku-cage.r{right:var(--in)}.sudoku-cage-sum{z-index:2;color:var(--text-muted);font-size:clamp(.5rem,2.7cqw,.8rem);font-weight:700;line-height:1;position:absolute;top:4px;left:5px}.sudoku-cell.given .sudoku-cage-sum,.sudoku-cell.selected .sudoku-cage-sum{color:var(--text)}.sudoku-notes{box-sizing:border-box;width:100%;height:100%;color:var(--text-muted);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);padding:3px;font-size:clamp(.45rem,2.5cqw,.75rem);font-weight:600;line-height:1;display:grid}.sudoku-notes.with-sum{padding-top:calc(4px + clamp(.5rem,2.7cqw,.8rem));padding-bottom:2px;font-size:clamp(.4rem,2.2cqw,.68rem)}.sudoku-notes i{justify-content:center;align-items:center;font-style:normal;display:flex}.sudoku-pad{width:100%;max-width:var(--sudoku-max);grid-template-columns:repeat(9,1fr);gap:6px;display:grid}.sudoku-key{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card-bg);min-height:48px;color:var(--accent-deep);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 0;font-size:1.25rem;font-weight:700;line-height:1;transition:background .15s,color .15s,border-color .15s;display:flex}.sudoku-key small{color:var(--text-muted);font-size:.6rem;font-weight:600}.sudoku-key:hover:not(:disabled){border-color:var(--accent)}.sudoku-key:active:not(:disabled){background:var(--sudoku-same)}.sudoku-key:disabled{opacity:.35;cursor:default}.sudoku-wrap .actions{max-width:var(--sudoku-max)}.sudoku-wrap .actions .btn.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.sudoku-board.solved .sudoku-value{animation:.8s ease-out both solve-text;animation-delay:calc(var(--r,0) * 60ms);display:inline-block}:root{--region-0:#f3d9c4;--region-1:#cfe3c8;--region-2:#c9dcef;--region-3:#ead0e6;--region-4:#f2e6b8;--region-5:#c8e4e2;--region-6:#e5d2c0;--region-7:#d5d5ef;--region-8:#f0cfd0;--region-9:#d9e6c0;--region-10:#f2dcc0;--region-11:#d0dcd8;--regions-line:#2d2d2d29;--regions-border:#2d2d2d;--regions-mark:#4b5563;--regions-glyph-edge:#5a3a08;--regions-conflict:#c2483a73}[data-theme=dark]{--region-0:#5a4034;--region-1:#3d4f38;--region-2:#34465a;--region-3:#503a4e;--region-4:#55502e;--region-5:#2f4c4a;--region-6:#4d4034;--region-7:#3f3f58;--region-8:#563a3c;--region-9:#414d30;--region-10:#564632;--region-11:#3a4643;--regions-line:#e8e4de24;--regions-border:#e8e4de;--regions-mark:#b8b2aa;--regions-glyph-edge:#2a1c04;--regions-conflict:#e0685a80}.regions-wrap{--cell:min(calc(180px / var(--size) + 22px), calc((100cqw - 4px) / var(--size)));touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;display:flex;container-type:inline-size}.regions-board{grid-template-columns:repeat(var(--size), var(--cell));grid-template-rows:repeat(var(--size), var(--cell));touch-action:none;max-width:100%;display:grid}.regions-wrap .actions{width:calc(var(--size) * var(--cell) + 4px);max-width:100%}.regions-cell{background:var(--region-bg);border:1px solid var(--regions-line);cursor:pointer;justify-content:center;align-items:center;transition:background 80ms;display:flex;position:relative}.regions-cell.bt{border-top:2px solid var(--regions-border)}.regions-cell.br{border-right:2px solid var(--regions-border)}.regions-cell.bb{border-bottom:2px solid var(--regions-border)}.regions-cell.bl{border-left:2px solid var(--regions-border)}.regions-cell.conflict{background:color-mix(in srgb, var(--regions-conflict) 60%, var(--region-bg))}.regions-cell.x:before,.regions-cell.x:after{content:"";background:var(--regions-mark);opacity:.6;width:1.5px;height:40%;transition:opacity .15s;position:absolute;top:30%;left:50%}.regions-cell.x:before{transform:translate(-50%)rotate(45deg)}.regions-cell.x:after{transform:translate(-50%)rotate(-45deg)}.regions-cell.x.done:before,.regions-cell.x.done:after{opacity:.22}.regions-cell.flash{animation:.6s ease-out 3 regions-flash}@keyframes regions-flash{0%{box-shadow:inset 0 0 0 3px var(--success)}to{box-shadow:inset 0 0 #0000}}.regions-glyph{width:72%;height:72%;fill:var(--accent);stroke:var(--regions-glyph-edge);stroke-width:1.4px;stroke-linejoin:round;pointer-events:none}.regions-cell.conflict .regions-glyph{fill:var(--danger);stroke:var(--regions-border)}.regions-board.solved .regions-glyph{animation:.8s ease-out both solve-pop;animation-delay:calc(var(--r,0) * 70ms)}@font-face{font-family:Inconsolata;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/inconsolata-latin-ext-C75G6mlG.woff2)format("woff2");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:Inconsolata;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/inconsolata-latin-DBskYKbm.woff2)format("woff2");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{--text:#2d2d2d;--text-muted:#6b7280;--border:#e5e7eb;--border-mid:silver;--bg:#faf9f8;--card-bg:#fffdf7;--accent:#ffa833;--accent-text:#ffa833;--accent-deep:#d98a12;--on-accent:#2d2d2d;--accent-soft:#ffa8331a;--accent-strong:#ffa83359;--shadow:0 1px 4px #00000012;--shadow-hover:0 4px 14px #0000001a;--hover-text:#fff;--hover-bg:#2d2d2d;--board-cell:#f3f1ed;--board-line:#d9d5cf;--success:#3d9a5c;--success-soft:#3d9a5c1f;--danger:#c2483a;--flame:#e4572e;--fs-xs:.8rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.1rem;--fs-lg:1.3rem;--fs-xl:2rem;--radius:18px;--radius-sm:12px;--tabbar-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#111110;--card-bg:#1c1b19;--text:#e8e4de;--text-muted:#8a8580;--border:#272421;--border-mid:#6f685c;--accent-deep:#ffa833;--flame:#ff6a3d;--accent-soft:#ffa8331f;--accent-strong:#ffa83366;--shadow:0 1px 4px #0006;--shadow-hover:0 4px 14px #0009;--hover-text:#111110;--hover-bg:#e8e4de;--board-cell:#23211e;--board-line:#35322d;--success:#5fc47f;--success-soft:#5fc47f24;--danger:#e0685a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}@font-face{font-family:Nunito;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/nunito-latin-ext-CXYtwYOx.woff2)format("woff2");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:Nunito;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/nunito-latin-BzFMHfZw.woff2)format("woff2");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}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);--font-num:"Inconsolata", ui-monospace, monospace;--font-text:"Nunito", system-ui, sans-serif;font-family:var(--font-text);font-size:var(--fs-base);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;min-height:100dvh;line-height:1.45}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.15}h1{font-size:var(--fs-xl);flex-wrap:wrap;align-items:center;gap:10px;font-weight:800;display:flex}h2{font-size:var(--fs-lg)}p{margin:0}.muted{color:var(--text-muted)}.small{font-size:var(--fs-sm)}.center{text-align:center}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:560px;padding:calc(16px + env(safe-area-inset-top)) 16px calc(var(--tabbar-h) + 28px + env(safe-area-inset-bottom));margin:0 auto}.app.play-mode{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.page-head{flex-direction:column;gap:6px;margin:8px 0 14px;display:flex;position:relative}.theme-toggle{position:absolute;top:0;right:0}.theme-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.page-head.compact{margin-top:4px}.section-h{font-size:var(--fs-lg);margin:36px 0 2px;font-weight:700}.section-sub{margin-bottom:10px}.stack{flex-direction:column;gap:12px;display:flex}.daily-progress{color:var(--text-muted);flex-direction:column;gap:6px;margin:-6px 0 16px;display:flex}.daily-progress.safe{color:var(--success)}.daily-progress .track{background:var(--board-cell);border-radius:999px;height:12px;margin:10px 0;position:relative}.daily-progress .fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s,background .25s;display:block}.daily-progress.safe .fill{background:var(--success)}.daily-progress .goal-badge{background:var(--card-bg);border:2px solid var(--border-mid);border-radius:50%;place-items:center;width:30px;height:30px;transition:border-color .25s;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%)}.daily-progress .goal-badge .flame{width:18px;height:18px;fill:var(--border-mid);transition:fill .25s}.daily-progress.safe .goal-badge{border-color:var(--success)}.daily-progress.safe .goal-badge .flame{fill:var(--flame)}.streak{font-size:var(--fs-lg);color:var(--flame);align-items:center;gap:4px;display:inline-flex}.flame{width:1em;height:1em;fill:var(--flame);vertical-align:-.1em}.streak .flame{width:1.35em;height:1.35em}.row-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.row-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover)}.row-card:active{transform:scale(.99)}.row-icon{display:inline-flex;position:relative}.row-check{background:var(--success);color:#fff;width:26px;height:26px;box-shadow:0 0 0 3px var(--card-bg);border-radius:50%;place-items:center;margin:auto;font-size:15px;font-weight:700;display:grid;position:absolute;inset:0}.row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.row-title{font-weight:700;font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row-sub{color:var(--text-muted);font-size:var(--fs-sm)}.diff{font-weight:700}.diff.easy{color:var(--success)}.diff.medium{color:var(--accent-deep)}.diff.hard{color:var(--danger)}.diff.genius{color:#7c5cbf}.puzzle-icon{background:var(--board-cell);border:1px solid var(--border);border-radius:14px;place-items:center;display:inline-grid;overflow:hidden}.puzzle-icon svg{width:100%;height:100%}.ic-a{fill:var(--accent)}.ic-path{fill:none;stroke:var(--accent);stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.ic-on{fill:var(--on-accent);font-family:Inconsolata,monospace}.ic-cut{fill:var(--board-cell)}.ic-grid{stroke:var(--board-line);stroke-width:1px}.ic-text{fill:var(--text);font-family:Inconsolata,monospace}.ic-cut{stroke:var(--bg);stroke-width:1px}.ic-num{fill:var(--accent);font-family:Inconsolata,monospace}.ic-dash{fill:none;stroke:var(--accent);stroke-width:1.2px;stroke-dasharray:2 1.5}.pill{border:2px solid var(--accent);background:var(--accent);min-height:40px;color:var(--on-accent);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 18px;font-weight:700;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.pill:hover{background:var(--hover-bg);border-color:var(--hover-bg);color:var(--hover-text)}.pill:active{transform:scale(.97)}.pill:disabled{opacity:.5;cursor:default;transform:none}.pill.outline{color:var(--text);border-color:var(--border-mid);background:0 0}.pill.danger{background:var(--danger);border-color:var(--danger);color:#fff}.pill.danger:hover{background:var(--hover-bg);border-color:var(--hover-bg);color:var(--hover-text)}.reset-confirm{gap:8px;display:flex}.pill.outline:hover:not(:disabled){background:var(--hover-bg);border-color:var(--hover-bg);color:var(--hover-text)}.row-card.solved .pill.outline{border-color:var(--success);color:var(--success)}.row-card.solved .pill.outline:hover{background:var(--success);border-color:var(--success);color:#fff}.actions{grid-auto-columns:1fr;grid-auto-flow:column;gap:10px;width:100%;margin-top:4px;display:grid}.board-panel .actions{max-width:520px;margin-left:auto;margin-right:auto}.actions .btn{border:2px solid var(--border-mid);min-height:40px;color:var(--text);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:8px 6px;font-weight:700;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.actions .btn:hover:not(:disabled){background:var(--hover-bg);border-color:var(--hover-bg);color:var(--hover-text)}.actions .btn:disabled{opacity:.45;cursor:default}.back{color:var(--accent-deep);margin-bottom:10px;font-weight:700;text-decoration:none;display:inline-block}.segmented{background:var(--board-cell);border-radius:999px;grid-template-columns:repeat(4,1fr);gap:4px;margin:6px 0 16px;padding:4px;display:grid}.segmented.three{grid-template-columns:repeat(3,1fr);margin-bottom:0}.seg{cursor:pointer;background:0 0;border:none;border-radius:999px;flex-direction:column;align-items:center;padding:6px 4px;font-weight:700;line-height:1.1;display:flex}.seg small{color:var(--text-muted);font-weight:400;font-size:var(--fs-xs)}.seg.active{background:var(--card-bg);box-shadow:var(--shadow);color:var(--accent-deep)}.level-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}@media (width>=480px){.level-grid{grid-template-columns:repeat(4,1fr)}}.level-grid.slide-right{animation:.28s ease-out level-slide-right}.level-grid.slide-left{animation:.28s ease-out level-slide-left}@keyframes level-slide-right{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:none}}@keyframes level-slide-left{0%{opacity:0;transform:translate(-48px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.level-grid.slide-right,.level-grid.slide-left{animation:none}}.tile{border-radius:var(--radius);border:2px solid var(--border);background:var(--card-bg);flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:74px;text-decoration:none;transition:border-color .15s,transform .1s;display:flex}.tile b{font-size:var(--fs-lg)}.tile small{font-size:var(--fs-xs);color:var(--text-muted)}.tile.open{border-color:var(--accent);background:var(--accent-soft)}.tile.open b,.tile.open small{color:var(--accent-deep)}.tile.solved{border-color:var(--success);background:var(--success-soft)}.tile.solved b,.tile.solved small{color:var(--success)}.tile.locked{opacity:.45;border-style:dashed}.tile:not(.locked):hover{border-color:var(--hover-bg)}.tile:not(.locked):active{transform:scale(.97)}.card-lg{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:16px;display:flex}.card-lg h2{font-size:var(--fs-md)}.label{font-size:var(--fs-sm);color:var(--text-muted)}.name-btn{text-align:left;font-size:var(--fs-lg);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.name-form input{width:100%;font:inherit;font-size:var(--fs-lg);color:var(--text);border:none;border-bottom:2px solid var(--accent);background:0 0;outline:none;padding:2px 0;font-weight:700}.streak-card{flex-direction:row;align-items:center;gap:14px}.streak-card>span:last-child{flex-direction:column;display:flex}.streak-badge{background:var(--accent-soft);border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid}.streak-badge .flame{width:26px;height:26px}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:2px;padding:16px 12px;display:flex}.stat b{align-items:center;gap:4px;font-size:2rem;line-height:1;display:inline-flex}.stat-table{border-collapse:collapse;width:100%}.stat-table td{border-top:1px solid var(--border);padding:6px 0}.stat-table tr:first-child td{border-top:none}.stat-table .num{text-align:right;white-space:nowrap;font-size:var(--fs-sm);padding-left:8px}.row-between{flex-direction:row;justify-content:space-between;align-items:center}.row-between>span{flex-direction:column;display:flex}.tabbar{left:50%;bottom:calc(12px + env(safe-area-inset-bottom));width:min(100% - 32px,420px);height:var(--tabbar-h);background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow-hover);z-index:40;border-radius:999px;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;display:grid;position:fixed;transform:translate(-50%)}.tab{font-size:var(--fs-xs);color:var(--text-muted);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:700;text-decoration:none;transition:background .15s,color .15s;display:flex}.tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tab svg .fill{fill:currentColor;stroke:none}.tab.active{background:var(--accent-soft);color:var(--accent-deep)}.tab:hover{color:var(--text)}.play{flex-direction:column;gap:12px;display:flex}.play-bar{grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;display:grid}.play-bar h1{font-size:var(--fs-lg);text-align:center;justify-content:center;gap:4px}.icon-round{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.3rem;font-weight:700;line-height:1;text-decoration:none;display:grid}.icon-round:hover{background:var(--hover-bg);color:var(--hover-text);border-color:var(--hover-bg)}.icon-round.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}.play-meta{align-items:center;gap:12px;display:flex}.sudoku-board,.sudoku-pad,.nono-board,.mosaic-board,.zip-svg,.timer,.big-time,.stat b,.tile b{font-family:var(--font-num)}.timer{font-weight:700;font-size:var(--fs-md);align-items:center;gap:6px;display:inline-flex}.clock{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:18px;height:18px}.play-meta .muted{flex:1}.diff-pill{font-weight:700;font-size:var(--fs-sm);text-transform:capitalize;background:var(--accent-soft);color:var(--accent-deep);border-radius:999px;padding:4px 12px}.diff-pill.solved,.diff-pill.easy{background:var(--success-soft);color:var(--success)}.diff-pill.hard{color:var(--danger);background:#c2483a1f}.diff-pill.genius{color:#7c5cbf;background:#7c5cbf24}.solved-head{flex-direction:column;align-items:center;gap:2px;padding:4px 0 0;animation:.5s ease-out both solve-rise;display:flex}@keyframes solve-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes solve-wave{0%{filter:brightness()}35%{filter:brightness(1.55)saturate(1.2)}to{filter:brightness()}}@keyframes solve-text{0%{color:inherit;transform:scale(1)}35%{color:var(--success);transform:scale(1.22)}to{color:inherit;transform:scale(1)}}@keyframes solve-pop{0%{filter:brightness();transform:scale(1)}40%{filter:brightness(1.6) drop-shadow(0 0 4px var(--success));transform:scale(1.4)}to{filter:brightness();transform:scale(1)}}@keyframes atom-solve{0%{fill:var(--accent);stroke:var(--accent)}40%{fill:var(--success);stroke:var(--success)}to{fill:var(--accent);stroke:var(--accent)}}@keyframes zip-solve{0%{filter:brightness()}40%{filter:brightness(1.5) drop-shadow(0 0 .12px var(--success))}to{filter:brightness()}}@media (prefers-reduced-motion:reduce){.solved-head,.solved .solve-fx{animation:none!important}}.solved-head h2{color:var(--success);font-size:var(--fs-xl);font-weight:800}.big-time{color:var(--accent-deep);font-size:2.4rem;line-height:1.1}.solved-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;display:flex}.solved-actions>:only-child{margin-left:auto}.share-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:20px;height:20px}.share-icon circle{fill:currentColor;stroke:none}.howto ol{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.shapes-wrap{container-type:inline-size}.shapes{touch-action:none;-webkit-user-select:none;user-select:none;gap:12px;display:grid}.board-panel{flex-direction:column;gap:12px;display:flex}.board-frame{background:var(--card-bg);border:2px solid var(--border-mid);box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.board-frame.solved{border-color:var(--success);box-shadow:0 0 0 5px color-mix(in srgb, var(--success) 45%, transparent)}.board{aspect-ratio:1;width:100%;max-width:520px;margin:0 auto;display:block}.atom{fill:#0000;stroke:none;transition:fill .12s}.atom.ghost{fill:var(--accent);opacity:.22}.inner-area{fill:var(--board-cell)}.inner-frame{fill:none;stroke:var(--border-mid);stroke-width:.05px;pointer-events:none}.atom.lit{fill:var(--accent);stroke:var(--accent);stroke-width:.012px}.match-pulse{animation:2s ease-in-out infinite atom-pulse}.board.solved .match-pulse{animation:none}.board.solved .atom.lit{animation:1s ease-out both atom-solve}@keyframes atom-pulse{0%,to{opacity:1}50%{opacity:.62}}.grid-line{stroke:var(--board-line);stroke-width:.02px;fill:none}.piece-outline{fill:none;stroke:var(--text);stroke-width:.05px;stroke-linejoin:round;opacity:.6;transition:opacity .12s}.piece-outline.dragging{opacity:1;stroke-width:.07px;stroke-dasharray:.12 .08}.piece-outline.selected{opacity:1;stroke-width:.07px;stroke:var(--accent-text)}.piece-hit{fill:#0000;cursor:grab;stroke:#0000;stroke-width:.12px}.piece-hit:active{cursor:grabbing}.hint-flash{fill:none;stroke:var(--success);stroke-width:.08px;pointer-events:none;animation:.9s ease-out 2 flash}@keyframes flash{0%{opacity:1}to{opacity:.1}}.toast{left:50%;bottom:calc(var(--tabbar-h) + 28px + env(safe-area-inset-bottom));background:var(--hover-bg);color:var(--hover-text);font-size:var(--fs-sm);box-shadow:var(--shadow-hover);z-index:60;border-radius:999px;padding:8px 14px;position:fixed;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
