.sd-root{--sd-shape-1: var(--card-red);--sd-shape-2: var(--card-blue);--sd-shape-3: var(--card-green);--sd-shape-4: var(--warn);--sd-shape-5: var(--accent);--sd-shape-6: var(--cell-entry)}.sd-row{display:contents}.sd-grid{--gap: 1px}.sd-root .sd-cell{color:var(--cell-entry);font-weight:600;font-size:clamp(1rem,5.5cqw,2rem);line-height:1}.sd-root .sd-cell.sd-given{color:var(--cell-given);font-weight:700}.sd-cell.sd-bxr{box-shadow:2px 0 0 0 var(--board-line-strong);z-index:1}.sd-cell.sd-bxb{box-shadow:0 2px 0 0 var(--board-line-strong);z-index:1}.sd-cell.sd-bxr.sd-bxb{box-shadow:2px 0 0 0 var(--board-line-strong),0 2px 0 0 var(--board-line-strong),2px 2px 0 0 var(--board-line-strong)}.sd-cell.sd-peer{background:var(--cell-peer)}.sd-cell.sd-same{background:var(--cell-same)}.sd-cell.sd-sel{background:var(--cell-sel)}.sd-cell.sd-hint{background:var(--cell-hint)}.sd-root .sd-cell.sd-conflict{color:var(--danger)}.sd-cell.sd-conflict:after,.sd-cell.sd-wrong:after{content:"";position:absolute;inset:2px;border:2px solid var(--danger);border-radius:3px;pointer-events:none}.sd-root .sd-cell.sd-wrong{background:var(--cell-wrong);color:var(--danger)}.sd-cell.sd-wrong:after{border-style:dashed}.sd-cb .sd-cell.sd-conflict .sd-val,.sd-cb .sd-cell.sd-wrong .sd-val{text-decoration:underline wavy;text-underline-offset:.15em}.sd-root .sd-cell:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;z-index:2}.sd-val{display:inline-flex;align-items:center;justify-content:center}.sd-anim .sd-val{animation:sd-pop .12s ease-out}@keyframes sd-pop{0%{transform:scale(.7);opacity:.4}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.sd-anim .sd-val{animation:none}}.sd-notes{position:absolute;inset:1px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:clamp(.45rem,2cqw,.8rem);font-weight:500;color:var(--cell-note);line-height:1}.sd-n4 .sd-notes{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);font-size:clamp(.6rem,4cqw,1.1rem)}.sd-n6 .sd-notes{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);font-size:clamp(.55rem,3cqw,1rem)}.sd-note{display:flex;align-items:center;justify-content:center}.sd-same .sd-notes{color:var(--text);font-weight:700}.tp-digitpad.sd-pad{grid-template-columns:repeat(auto-fit,minmax(3rem,1fr))}.sd-pad .sd-key{flex-direction:column;gap:0;padding:.2rem .1rem;font-size:1.2rem;font-weight:600;line-height:1.1;min-height:48px}.sd-pad .sd-key.sd-done{opacity:.45}.sd-notesmode .sd-pad .sd-key{border-style:dashed}.sd-key-sym{display:inline-flex;align-items:center;justify-content:center}.sd-root.sd-kids .sd-cell{font-size:clamp(1.6rem,12cqw,3.5rem)}.sd-shape{width:.9em;height:.9em;fill:currentColor;stroke:var(--text);stroke-width:1;stroke-linejoin:round}.sd-shape-1{color:var(--sd-shape-1)}.sd-shape-2{color:var(--sd-shape-2)}.sd-shape-3{color:var(--sd-shape-3)}.sd-shape-4{color:var(--sd-shape-4)}.sd-shape-5{color:var(--sd-shape-5)}.sd-shape-6{color:var(--sd-shape-6)}.sd-notes .sd-shape{width:1.1em;height:1.1em}.sd-key .sd-shape{width:1.4em;height:1.4em}@media(max-width:420px){.sd-root.sd-n9 .sd-grid{width:calc(100% + 1rem + 2px);margin-left:calc(-.5rem - 1px);border-width:1px}}.t48-wrap{width:100%}.t48-board{position:relative;width:100%;aspect-ratio:1 / 1;box-sizing:border-box;container-type:inline-size;--gap: calc(8cqw / var(--n));--pad: var(--gap);--tile: calc((100cqw - 2 * var(--pad) - (var(--n) - 1) * var(--gap)) / var(--n));--pitch: calc(var(--tile) + var(--gap));--radius-tile: calc(var(--tile) * .12);background:var(--surface-2);border:2px solid var(--board-line-strong);border-radius:var(--radius-sm);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;cursor:default;--t48-2: #e3f1ec;--t48-2i: #1f2933;--t48-4: #c6e5db;--t48-4i: #1f2933;--t48-8: #9fd3c3;--t48-8i: #1f2933;--t48-16: #6fbfa9;--t48-16i: #10231f;--t48-32: #0f766e;--t48-32i: #ffffff;--t48-64: #0b5d6b;--t48-64i: #ffffff;--t48-128: #1f5fbf;--t48-128i: #ffffff;--t48-256: #4338ca;--t48-256i: #ffffff;--t48-512: #7e22ce;--t48-512i: #ffffff;--t48-1024: #a21caf;--t48-1024i: #ffffff;--t48-2048: #f5b301;--t48-2048i: #1f2933;--t48-4096: #c2410c;--t48-4096i: #ffffff;--t48-8192: #9f1239;--t48-8192i: #ffffff;--t48-hi: #1f2933;--t48-hi-i: #ffffff}.t48-board[data-size="8"]{--gap: .6cqw}.t48-board[data-size="7"]{--gap: .8cqw}.t48-board:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.t48-slots{position:absolute;inset:var(--pad);display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);gap:var(--gap)}.t48-slot{background:color-mix(in srgb,var(--board-line) 22%,var(--surface-2));border-radius:var(--radius-tile)}.t48-tile{position:absolute;top:var(--pad);left:var(--pad);width:var(--tile);height:var(--tile);transform:translate(calc(var(--c) * var(--pitch)),calc(var(--r) * var(--pitch)));display:flex;align-items:center;justify-content:center;border-radius:var(--radius-tile);font-weight:700;line-height:1;font-variant-numeric:tabular-nums;font-size:calc(var(--tile) * var(--fs, .5));background:var(--tile-bg, var(--t48-hi));color:var(--tile-ink, var(--t48-hi-i));z-index:2;will-change:transform}.t48-tile[data-len="2"]{--fs: .46}.t48-tile[data-len="3"]{--fs: .38}.t48-tile[data-len="4"]{--fs: .31;letter-spacing:-.02em}.t48-tile[data-len="5"]{--fs: .26;letter-spacing:-.03em}.t48-tile[data-len="6"]{--fs: .22;letter-spacing:-.04em}.t48-tile[data-v="2"]{--tile-bg: var(--t48-2);--tile-ink: var(--t48-2i)}.t48-tile[data-v="4"]{--tile-bg: var(--t48-4);--tile-ink: var(--t48-4i)}.t48-tile[data-v="8"]{--tile-bg: var(--t48-8);--tile-ink: var(--t48-8i)}.t48-tile[data-v="16"]{--tile-bg: var(--t48-16);--tile-ink: var(--t48-16i)}.t48-tile[data-v="32"]{--tile-bg: var(--t48-32);--tile-ink: var(--t48-32i)}.t48-tile[data-v="64"]{--tile-bg: var(--t48-64);--tile-ink: var(--t48-64i)}.t48-tile[data-v="128"]{--tile-bg: var(--t48-128);--tile-ink: var(--t48-128i)}.t48-tile[data-v="256"]{--tile-bg: var(--t48-256);--tile-ink: var(--t48-256i)}.t48-tile[data-v="512"]{--tile-bg: var(--t48-512);--tile-ink: var(--t48-512i)}.t48-tile[data-v="1024"]{--tile-bg: var(--t48-1024);--tile-ink: var(--t48-1024i)}.t48-tile[data-v="2048"]{--tile-bg: var(--t48-2048);--tile-ink: var(--t48-2048i)}.t48-tile[data-v="4096"]{--tile-bg: var(--t48-4096);--tile-ink: var(--t48-4096i)}.t48-tile[data-v="8192"]{--tile-bg: var(--t48-8192);--tile-ink: var(--t48-8192i)}.t48-tile.t48-slide{transition:transform .1s ease-out}.t48-ghost{z-index:1}.t48-new{animation:t48-appear .12s ease-out}.t48-pop-a{animation:t48-pop-a .12s ease-out}.t48-pop-b{animation:t48-pop-b .12s ease-out}@keyframes t48-appear{0%{scale:.4;opacity:0}to{scale:1;opacity:1}}@keyframes t48-pop-a{0%{scale:1}50%{scale:1.12}to{scale:1}}@keyframes t48-pop-b{0%{scale:1}50%{scale:1.12}to{scale:1}}.t48-board[data-anim=off] .t48-tile{transition:none;animation:none}.t48-board[data-anim=off] .t48-ghost{display:none}.t48-note{margin:.5rem 0 0;text-align:center;color:var(--muted);font-size:.9rem}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .t48-board{--t48-2: #1e3a36;--t48-2i: #e6e9ec;--t48-4: #24524b;--t48-4i: #e6e9ec;--t48-8: #2a6d62;--t48-8i: #ffffff;--t48-16: #23806f;--t48-16i: #ffffff;--t48-32: #14b8a6;--t48-32i: #06201c;--t48-64: #38bdf8;--t48-64i: #06201c;--t48-128: #60a5fa;--t48-128i: #06201c;--t48-256: #818cf8;--t48-256i: #06201c;--t48-512: #a78bfa;--t48-512i: #06201c;--t48-1024: #e879f9;--t48-1024i: #06201c;--t48-2048: #fbbf24;--t48-2048i: #06201c;--t48-4096: #fb923c;--t48-4096i: #06201c;--t48-8192: #fb7185;--t48-8192i: #06201c;--t48-hi: #e6e9ec;--t48-hi-i: #06201c}}:root[data-theme=dark] .t48-board,:root[data-theme=contrast] .t48-board{--t48-2: #1e3a36;--t48-2i: #e6e9ec;--t48-4: #24524b;--t48-4i: #e6e9ec;--t48-8: #2a6d62;--t48-8i: #ffffff;--t48-16: #23806f;--t48-16i: #ffffff;--t48-32: #14b8a6;--t48-32i: #06201c;--t48-64: #38bdf8;--t48-64i: #06201c;--t48-128: #60a5fa;--t48-128i: #06201c;--t48-256: #818cf8;--t48-256i: #06201c;--t48-512: #a78bfa;--t48-512i: #06201c;--t48-1024: #e879f9;--t48-1024i: #06201c;--t48-2048: #fbbf24;--t48-2048i: #06201c;--t48-4096: #fb923c;--t48-4096i: #06201c;--t48-8192: #fb7185;--t48-8192i: #06201c;--t48-hi: #e6e9ec;--t48-hi-i: #06201c}:root[data-theme=contrast] .t48-tile{outline:2px solid var(--line);outline-offset:-2px}:root[data-theme=contrast] .t48-slot{outline:1px solid var(--board-line);outline-offset:-1px}.tp-shell[data-game=minesweeper]{--tp-max: 560px}.tp-shell[data-game=minesweeper][data-variant=intermediate]{--tp-max: 640px}.tp-shell[data-game=minesweeper][data-variant=expert],.tp-shell[data-game=minesweeper][data-variant=daily]{--tp-max: 980px}.tp-shell[data-game=minesweeper][data-variant=custom]{--tp-max: 1120px}.tp-shell[data-game=minesweeper] .tp-board{min-width:0}.ms-board{--ms-n1: var(--card-blue);--ms-n2: var(--card-green);--ms-n3: var(--card-red);--ms-n4: #6d28d9;--ms-n5: #9a3412;--ms-n6: #0e7490;--ms-n7: var(--text);--ms-n8: var(--muted);--ms-closed: var(--surface-2);--ms-closed-hover: color-mix(in srgb, var(--surface-2) 80%, var(--text))}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=contrast]) .ms-board{--ms-n4: #c4b5fd;--ms-n5: #fdba74;--ms-n6: #67e8f9;--ms-closed: #323a43}}:root[data-theme=dark] .ms-board{--ms-n4: #c4b5fd;--ms-n5: #fdba74;--ms-n6: #67e8f9;--ms-closed: #323a43}:root[data-theme=contrast] .ms-board{--ms-n4: #e9d5ff;--ms-n5: #ffb380;--ms-n6: #7ff;--ms-closed: #222;--ms-closed-hover: #444}.ms-scroll{--ms-min: 27px;overflow:auto;max-width:100%;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border-radius:4px}.ms-grid{width:max(100%,calc(var(--cols) * var(--ms-min)));background:var(--board-line);border-color:var(--board-line-strong)}.ms-cell{background:var(--ms-closed);border-radius:2px;font-weight:700;font-size:clamp(.8rem,max(calc(100cqw / var(--cols) * .55),calc(var(--ms-min) * .5)),1.5rem);line-height:1;-webkit-touch-callout:none;transition:background-color .1s ease}.ms-cell:hover:not(.ms-open){background:var(--ms-closed-hover)}.ms-cell.ms-open{background:var(--board-bg);cursor:default}.ms-cell.ms-zero{cursor:default}.ms-cell.ms-open.ms-n1,.ms-cell.ms-open.ms-n2,.ms-cell.ms-open.ms-n3,.ms-cell.ms-open.ms-n4,.ms-cell.ms-open.ms-n5,.ms-cell.ms-open.ms-n6,.ms-cell.ms-open.ms-n7,.ms-cell.ms-open.ms-n8{cursor:pointer}.ms-n1{color:var(--ms-n1)}.ms-n2{color:var(--ms-n2)}.ms-n3{color:var(--ms-n3)}.ms-n4{color:var(--ms-n4)}.ms-n5{color:var(--ms-n5)}.ms-n6{color:var(--ms-n6)}.ms-n7{color:var(--ms-n7)}.ms-n8{color:var(--ms-n8)}.ms-v{display:inline-flex;align-items:center;justify-content:center;gap:.1em;width:100%;height:100%}.ms-icon{width:60%;height:60%;display:block}.ms-glyph{width:.5em;height:.5em;flex:none}.ms-flag{color:var(--danger)}.ms-question{color:var(--muted)}.ms-row{display:contents}.ms-cell.ms-mine{color:var(--text);background:var(--surface-2)}.ms-cell.ms-hit{background:var(--danger-soft);color:var(--danger)}.ms-cell.ms-wrong{background:var(--danger-soft);color:var(--muted)}.ms-wrong .ms-cross{position:absolute;inset:0;width:100%;height:100%;color:var(--danger)}.ms-hint{outline:3px solid var(--focus);outline-offset:-3px;z-index:1}.ms-cell.ms-hint:not(.ms-open){background:var(--cell-hint)}.ms-toolbar{align-items:center}.ms-legend{margin:0;align-items:center}.ms-toolbar .tp-btn .ms-icon{width:1em;height:1em}.tp-shell[data-game=klondike],.tp-shell[data-game=freecell],.tp-shell[data-game=spider]{--tp-max: 900px}.cd-board{--cols: 7;--card-min: 44px;--bleed: 0px;--gap: clamp(2px, 1cqw, 10px);--card-w: max(var(--card-min), calc((100cqw + var(--bleed) - (var(--cols) - 1) * var(--gap)) / var(--cols)));--card-h: calc(var(--card-w) * 1.4);--off-down: calc(var(--card-h) * .12);--off-up: calc(var(--card-h) * .27);--r: calc(var(--card-w) * .08);position:relative;width:calc(100% + var(--bleed));margin-inline:calc(var(--bleed) / -2);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}@media(max-width:480px){.cd-board{--bleed: 16px;--gap: 2px}}.cd-scroll{overflow-x:auto;overflow-y:hidden;padding:2px 0 6px;touch-action:pan-x pan-y pinch-zoom;scrollbar-width:thin}.cd-row{display:grid;grid-template-columns:repeat(var(--cols),var(--card-w));gap:var(--gap);margin-bottom:calc(var(--gap) * 2)}.cd-tableau{display:grid;grid-template-columns:repeat(var(--cols),var(--card-w));gap:var(--gap);align-items:stretch;min-height:calc(var(--card-h) * 2.1)}.cd-pile{position:relative;width:var(--card-w);min-height:var(--card-h);border-radius:var(--r);outline:none;cursor:pointer}.cd-col{min-height:calc(var(--card-h) + var(--sd, 0) * var(--off-down) + var(--su, 0) * var(--off-up))}.cd-pile:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.cd-slot{position:absolute;inset:0;height:var(--card-h);border:2px dashed var(--line);border-radius:var(--r);box-sizing:border-box;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:calc(var(--card-w) * .28);font-weight:600}.cd-slot .cd-mark{width:100%;height:100%;opacity:.45}.cd{position:absolute;left:calc(var(--fan, 0) * var(--card-w) * .3);top:calc(var(--d, 0) * var(--off-down) + var(--u, 0) * var(--off-up));width:var(--card-w);height:var(--card-h);border-radius:var(--r);touch-action:none;-webkit-user-drag:none}.cd svg{display:block;width:100%;height:100%}.cd-face{color:var(--card-black)}.cd-face[data-suit="1"],.cd-face[data-suit="2"]{color:var(--card-red)}.cd-cb .cd-face[data-suit="2"]{color:var(--card-blue)}.cd-cb .cd-face[data-suit="3"]{color:var(--card-green)}.cd-face .cd-bg{fill:var(--surface);stroke:var(--line);stroke-width:2}:root[data-theme=contrast] .cd-face .cd-bg{stroke-width:3}.cd-backface rect:first-child{fill:var(--card-back);stroke:var(--line);stroke-width:2}.cd-backface .cd-back-inner{fill:none;stroke:#ffffff8c;stroke-width:3}.cd-backface .cd-back-mark{fill:#ffffff59}.cd-sel{outline:3px solid var(--accent);outline-offset:-3px;z-index:1}.cd-sel .cd-face .cd-bg{stroke:var(--accent)}.cd-pile.cd-over{outline:3px solid var(--ok);outline-offset:-3px}.cd-pile.cd-over .cd-slot{border-color:var(--ok);border-style:solid}.cd-pile.cd-hint,.cd.cd-hint{outline:3px solid var(--focus);outline-offset:-3px}.cd.cd-hint .cd-face .cd-bg{stroke:var(--focus)}.cd-ghost{visibility:hidden}.cd-float{position:absolute;left:0;top:0;width:var(--card-w);min-height:calc(var(--card-h) + var(--su, 0) * var(--off-up));pointer-events:none;z-index:6;will-change:transform;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}.cd-float .cd{--d: 0}.cd-count{position:absolute;right:0;bottom:0;transform:translate(25%,25%);min-width:1.4em;padding:0 .3em;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);font-size:calc(var(--card-w) * .24);text-align:center;line-height:1.5;pointer-events:none}.cd-legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:.5rem 4px 0;font-size:.85rem;color:var(--muted)}@media(prefers-reduced-motion:no-preference){:root:not([data-anim=off]) .cd{transition:top .12s ease,left .12s ease}}.kl-board .kl-gap{width:var(--card-w)}.kl-board .kl-waste{overflow:visible}.kl-board .kl-stock .cd-slot{color:var(--accent);font-size:calc(var(--card-w) * .5)}.kl-board .kl-recycle{width:50%;height:auto}.fc-board .fc-cell .cd-slot{border-style:solid;border-color:var(--line)}.fc-board .fc-found+.fc-found,.fc-board .fc-cell+.fc-cell{margin-left:0}.fc-board .cd-row .fc-cell:nth-child(4){margin-right:calc(var(--gap) * .5)}.sp-board .sp-stock .cd{transition:none}.sp-board .sp-found{cursor:default}.sp-board .sp-found .cd-slot{border-style:dotted}.sp-board .cd-col{--off-up: calc(var(--card-h) * .24)}.ws-board{--ws-c0: var(--accent);--ws-c1: var(--card-blue);--ws-c2: var(--card-red);--ws-c3: var(--card-green);--ws-c4: var(--warn);--ws-c5: var(--cell-entry);--ws-c6: color-mix(in srgb, var(--card-red) 55%, var(--card-blue));--ws-c7: color-mix(in srgb, var(--warn) 55%, var(--card-red))}.ws-scroll{overflow:auto;max-width:100%}.tp-grid.ws-grid{position:relative;touch-action:none;min-width:calc(var(--cols) * 20px + (var(--cols) + 1) * var(--gap) + 4px)}@media(max-width:560px){.tp-grid.ws-grid[data-large=true]{touch-action:pan-x pan-y pinch-zoom}}.tp-shell:has(.ws-grid[data-large=true]){--tp-max: 680px}.ws-row{display:contents}.tp-cell.ws-cell{font-size:clamp(.7rem,calc(58cqw / var(--cols)),1.5rem);font-weight:600;line-height:1;border-radius:3px}.ws-cell[data-found=true]{font-weight:800}.ws-cell.ws-live-cell{background:var(--cell-sel)}.ws-cell.ws-anchor{box-shadow:inset 0 0 0 3px var(--accent)}.ws-cell.ws-hint{background:var(--cell-hint)}.ws-letter{display:inline-block}.ws-bands{position:absolute;inset:calc(var(--gap) / 2);pointer-events:none;overflow:visible}.ws-bands line{stroke-width:.74;stroke-linecap:round;opacity:.42}.ws-bands .ws-live{stroke:var(--accent);opacity:.3}.ws-board[data-cb=true] .ws-bands line[data-alt=true]{stroke-dasharray:.05 .95}.ws-bank{list-style:none;margin:.6rem 0 0;padding:0 .15rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.3rem .6rem;font-size:.85rem;letter-spacing:.05em}.ws-word{display:flex;align-items:center;gap:.4rem;min-height:1.5em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-word:before{content:"";flex:none;width:.55em;height:.55em;border-radius:50%;border:1px solid var(--line);background:var(--ws-col, transparent)}.ws-word[data-found=true]{color:var(--muted)}.ws-word s{text-decoration-thickness:2px}@media(prefers-reduced-motion:no-preference){.ws-board[data-anim=on] .ws-hint .ws-letter{animation:ws-pop .12s ease-out}}@keyframes ws-pop{0%{transform:scale(1.35)}to{transform:scale(1)}}.tp-shell[data-game=nonogram][data-variant="5x5"]{--tp-max: 400px}.tp-shell[data-game=nonogram][data-variant="15x15"],.tp-shell[data-game=nonogram][data-variant=daily]{--tp-max: 600px}.tp-shell[data-game=nonogram][data-variant="20x20"]{--tp-max: 680px}.ng-root{width:100%}.ng-wrap{position:relative;width:100%;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.ng-board{--min: 38px;--k: .7;--cell: max(var(--min), calc((100cqw - 4px) / (var(--n) + var(--slots) * var(--k))));--slot: calc(var(--cell) * var(--k));--clues: calc(var(--slots) * var(--slot));--cells: calc(var(--n) * var(--cell));display:grid;grid-template-columns:var(--clues) var(--cells);grid-template-rows:var(--clues) var(--cells);width:calc(var(--clues) + var(--cells));margin:0 auto;font-size:min(calc(var(--cell) * .5),1.05rem);font-variant-numeric:tabular-nums;line-height:1;color:var(--text)}.ng-board[data-size="15"],.ng-board[data-size="20"]{--min: 22px}.ng-corner{background:transparent}.ng-cols,.ng-rows{display:grid;box-sizing:border-box}.ng-cols{grid-template-columns:repeat(var(--n),1fr);column-gap:1px;padding:0 3px}.ng-rows{grid-template-rows:repeat(var(--n),1fr);row-gap:1px;padding:3px 0}.ng-clue{display:flex;align-items:center;justify-content:flex-end;box-sizing:border-box;min-width:0;min-height:0;color:var(--text)}.ng-clue-col{flex-direction:column;padding-bottom:2px}.ng-clue-row{flex-direction:row;padding-right:2px}.ng-n{display:flex;align-items:center;justify-content:center;flex:none}.ng-clue-col .ng-n{height:var(--slot);width:100%}.ng-clue-row .ng-n{width:var(--slot);height:100%}.ng-clue.ng-done{opacity:.38}.ng-clue.ng-active{background:var(--cell-peer)}.ng-clue-col.ng-sep{border-left:2px solid var(--board-line-strong)}.ng-clue-row.ng-sep{border-top:2px solid var(--board-line-strong)}.ng-grid{width:100%;height:100%;aspect-ratio:auto;touch-action:none;border-radius:2px}.ng-scroll .ng-grid{touch-action:pan-x pan-y pinch-zoom}.ng-cell{background:var(--board-bg);box-sizing:border-box}.ng-cell.ng-l5{border-left:2px solid var(--board-line-strong)}.ng-cell.ng-t5{border-top:2px solid var(--board-line-strong)}.ng-cell.ng-cross{background:var(--cell-peer)}.ng-cell[data-v="1"]{background:var(--text)}.ng-cell[data-v="2"]:before,.ng-cell[data-v="2"]:after{content:"";position:absolute;left:50%;top:50%;width:52%;height:2px;margin-left:-26%;margin-top:-1px;background:var(--muted);border-radius:1px;transform:rotate(45deg)}.ng-cell[data-v="2"]:after{transform:rotate(-45deg)}.ng-won .ng-cell[data-v="2"]:before,.ng-won .ng-cell[data-v="2"]:after{display:none}.ng-cell.ng-wrong[data-v="1"]{background:repeating-linear-gradient(135deg,var(--danger) 0 4px,var(--danger-soft) 4px 7px);box-shadow:inset 0 0 0 2px var(--danger)}.ng-cell.ng-hint{box-shadow:inset 0 0 0 3px var(--focus)}.ng-cell.ng-hint[data-v="0"]{background:var(--cell-hint)}.ng-cell[aria-disabled=true]{cursor:default}.ng-board.ng-won .ng-grid{border-color:var(--accent)}.ng-toolbar{align-items:center}.ng-toolbar .tp-btn{min-width:84px}.ng-hintline{color:var(--muted);font-size:.85rem;flex-basis:100%}@media(min-width:600px){.ng-hintline{flex-basis:auto;margin-left:.25rem}}@media(hover:none){.ng-hintline{display:none}}.mm-grid{background:var(--surface-2);border-color:var(--line);--mm-c0: #c0392b;--mm-c1: #c2410c;--mm-c2: #a16207;--mm-c3: #1a7f4b;--mm-c4: #0f766e;--mm-c5: #1f5fbf;--mm-c6: #7e22ce;--mm-c7: #be185d}.mm-card{background:transparent;perspective:600px;border-radius:8px;overflow:visible}.mm-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .12s ease}.mm-card[data-face=up] .mm-inner{transform:rotateY(180deg)}.mm-back,.mm-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:8px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.mm-back{background:var(--card-back);box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--card-back) 70%,white),inset 0 0 0 5px var(--card-back)}.mm-back:after{content:"";width:26%;height:26%;border-radius:50%;background:color-mix(in srgb,var(--card-back) 60%,white)}.mm-face{transform:rotateY(180deg);background:var(--board-bg);box-shadow:inset 0 0 0 2px var(--line)}.mm-card[data-matched=true] .mm-face{box-shadow:inset 0 0 0 3px var(--ok);background:var(--ok-soft)}.mm-card[data-matched=true]{cursor:default}.mm-card:hover:not([data-matched=true]) .mm-back{filter:brightness(1.08)}.mm-sym{width:62%;height:62%;display:block}.mm-c0{color:var(--mm-c0)}.mm-c1{color:var(--mm-c1)}.mm-c2{color:var(--mm-c2)}.mm-c3{color:var(--mm-c3)}.mm-c4{color:var(--mm-c4)}.mm-c5{color:var(--mm-c5)}.mm-c6{color:var(--mm-c6)}.mm-c7{color:var(--mm-c7)}.mm-grid[data-anim=off] .mm-inner{transition:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .mm-grid{--mm-c0: #f87171;--mm-c1: #fb923c;--mm-c2: #facc15;--mm-c3: #4ade80;--mm-c4: #2dd4bf;--mm-c5: #7cc4ff;--mm-c6: #c084fc;--mm-c7: #f472b6}}:root[data-theme=dark] .mm-grid,:root[data-theme=contrast] .mm-grid{--mm-c0: #f87171;--mm-c1: #fb923c;--mm-c2: #facc15;--mm-c3: #4ade80;--mm-c4: #2dd4bf;--mm-c5: #7cc4ff;--mm-c6: #c084fc;--mm-c7: #f472b6}:root[data-theme=contrast] .mm-back{box-shadow:inset 0 0 0 2px var(--line)}:root[data-theme=contrast] .mm-back:after{background:var(--line)}.kk-scroll{overflow:auto;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}.kk-grid{min-width:calc(var(--cols) * 36px + (var(--cols) + 1) * 2px + 4px)}.kk-black{background:var(--board-line-strong);color:var(--board-bg);cursor:default;overflow:hidden}.kk-clue-box{display:block;width:100%;height:100%}.kk-clue-svg{display:block;width:100%;height:100%;font-weight:600;font-family:system-ui,sans-serif}.kk-clue-active{background:var(--accent);color:var(--accent-ink)}.kk-clue-conflict{outline:3px solid var(--danger);outline-offset:-3px}.kk-white{color:var(--cell-entry);font-weight:600}.kk-val{font-size:max(1rem,calc(100cqw / var(--cols) * .5));line-height:1}.kk-peer{background:var(--cell-peer)}.kk-same{background:var(--cell-same)}.kk-sel{background:var(--cell-sel);box-shadow:inset 0 0 0 2px var(--accent)}.kk-notes{display:grid;grid-template-columns:repeat(3,1fr);width:100%;height:100%;color:var(--cell-note);font-style:normal;font-weight:500;font-size:max(.55rem,calc(100cqw / var(--cols) * .24));line-height:1}.kk-notes i{display:flex;align-items:center;justify-content:center;font-style:normal}.kk-conflict{background:var(--cell-wrong);outline:2px solid var(--danger);outline-offset:-2px}.kk-wrong{background:var(--cell-wrong);outline:2px dashed var(--danger);outline-offset:-2px;color:var(--danger)}.kk-wrong:after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 12px 12px 0;border-color:transparent var(--danger) transparent transparent}.kk-hint{outline:3px solid var(--focus);outline-offset:-3px}.kk-white:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.kk-wrap[data-cb] .kk-peer{background-image:repeating-linear-gradient(135deg,transparent 0 5px,color-mix(in srgb,var(--accent) 12%,transparent) 5px 7px)}.kk-info{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:.5rem 0 0;font-size:.9rem;color:var(--muted);min-height:1.4em;font-variant-numeric:tabular-nums}.kk-info b{color:var(--text)}.kk-wrap .tp-digitpad button{font-weight:600;font-size:1.1rem}.lo-grid{--lo-on: #f2b524;--lo-on-ink: #3a2a00;background:var(--surface-2);border-color:var(--line)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=contrast]) .lo-grid{--lo-on: #e0a418;--lo-on-ink: #1a1200}}:root[data-theme=dark] .lo-grid{--lo-on: #e0a418;--lo-on-ink: #1a1200}:root[data-theme=contrast] .lo-grid{--lo-on: var(--accent);--lo-on-ink: var(--accent-ink)}.lo-cell{border-radius:8px;border:2px solid var(--line);box-sizing:border-box;transition:background-color .12s ease,color .12s ease}.lo-off{background:var(--board-bg);color:var(--muted)}.lo-on{background:var(--lo-on);color:var(--lo-on-ink);border-color:var(--lo-on-ink)}.lo-wrap[data-cb] .lo-on{background-image:repeating-linear-gradient(135deg,transparent 0 6px,rgba(0,0,0,.12) 6px 8px)}.lo-glyph{width:56%;height:56%;max-width:40px;max-height:40px}.lo-dot{position:absolute;top:6%;right:6%;width:22%;height:22%;max-width:16px;max-height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-sizing:border-box}.lo-hint{outline:3px solid var(--focus);outline-offset:-3px}.lo-cell:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.lo-legend span{display:inline-flex;align-items:center;gap:.35rem}.lo-key{display:inline-block;width:14px;height:14px;border-radius:4px;border:2px solid var(--line);box-sizing:border-box;background:var(--board-bg)}.lo-key-on{background:#f2b524;border-color:#3a2a00}.lo-key-mark{border-radius:50%;background:var(--accent);border-color:var(--surface)}:root[data-theme=contrast] .lo-key-on{background:var(--accent);border-color:var(--accent-ink)}.rv-grid{--rv-board: #2e8b57;--rv-line: #1f6b42;--rv-dark: #1f2933;--rv-light: #f6f6f2;--rv-dot: rgba(20, 30, 40, .55);background:var(--rv-line);border-color:var(--rv-line)}:root[data-theme=dark] .rv-grid{--rv-board: #23694a;--rv-line: #184a33}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=contrast]) .rv-grid{--rv-board: #23694a;--rv-line: #184a33}}:root[data-theme=contrast] .rv-grid{--rv-board: #000;--rv-line: #fff;--rv-dark: #000;--rv-light: #fff;--rv-dot: rgba(255, 255, 255, .7)}.rv-cell{background:var(--rv-board)}.rv-cell[aria-disabled=true]{cursor:default}.rv-cell.rv-legal{cursor:pointer}.rv-cell.rv-legal:hover .rv-dot{transform:scale(1.35)}.rv-disc{display:block;width:78%;height:78%;border-radius:50%;box-sizing:border-box}.rv-dark{background:var(--rv-dark);box-shadow:inset 0 0 0 2px var(--rv-light),inset 0 0 0 3px var(--rv-dark)}.rv-light{background:radial-gradient(circle,var(--rv-light) 0 40%,var(--rv-dark) 41% 56%,var(--rv-light) 57%)}:root[data-theme=contrast] .rv-dark{box-shadow:inset 0 0 0 3px var(--rv-light),inset 0 0 0 5px var(--rv-dark)}.rv-dot{display:block;width:22%;height:22%;border-radius:50%;background:var(--rv-dot);transition:transform .1s ease}.rv-grid[data-you=light] .rv-dot{background:#ffffffb3}.rv-cell.rv-last:after,.rv-cell.rv-last-you:after{content:"";position:absolute;top:7%;right:7%;width:14%;height:14%;background:var(--focus);pointer-events:none}.rv-cell.rv-last:after{border-radius:2px}.rv-cell.rv-last-you:after{border-radius:50%}.rv-cell.rv-hint{outline:3px solid var(--focus);outline-offset:-3px}@keyframes rv-flip{0%{transform:scaleX(1)}50%{transform:scaleX(.08)}to{transform:scaleX(1)}}@keyframes rv-pop{0%{transform:scale(.55);opacity:.4}to{transform:none;opacity:1}}.rv-flip{animation:rv-flip .12s ease-in-out}.rv-new{animation:rv-pop .12s ease-out}.rv-grid[data-anim=off] .rv-disc,.rv-grid[data-anim=off] .rv-dot{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.rv-disc,.rv-dot{animation:none;transition:none}}.rv-legend{align-items:center}.rv-legend>span{display:inline-flex;align-items:center;gap:.35rem}.rv-key{width:1em;height:1em}.rv-legend .rv-dot.rv-key{width:.5em;height:.5em;margin:0 .25em}.f4-grid{--f4-frame: var(--accent);--f4-hole: var(--bg);--f4-p1: #c0392b;--f4-p2: #d9a400;--f4-mark: #ffffff;background:var(--f4-frame);border-color:color-mix(in srgb,var(--f4-frame) 70%,black);padding:6px;border-radius:8px}:root[data-theme=dark] .f4-grid{--f4-p1: #e05a4c;--f4-p2: #e6b422;--f4-mark: #14181c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=contrast]) .f4-grid{--f4-p1: #e05a4c;--f4-p2: #e6b422;--f4-mark: #14181c}}:root[data-theme=contrast] .f4-grid{--f4-frame: #fff;--f4-hole: #000;--f4-p1: #ff6b6b;--f4-p2: #ffe066;--f4-mark: #000;border-color:#fff}.f4-cell{background:var(--f4-hole);border-radius:50%}.f4-cell[aria-disabled=true]{cursor:default}.f4-cell.f4-col{box-shadow:0 0 0 2px color-mix(in srgb,var(--f4-hole) 60%,var(--f4-frame))}.f4-cell.f4-hint{outline:3px solid var(--focus);outline-offset:-3px}.f4-disc{display:block;position:relative;width:84%;height:84%;border-radius:50%;box-sizing:border-box}.f4-p1{background:var(--f4-p1);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--f4-p1) 70%,black)}.f4-p2{background:var(--f4-p2);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--f4-p2) 70%,black)}.f4-p2:after{content:"";position:absolute;left:50%;top:50%;width:34%;height:34%;transform:translate(-50%,-50%) rotate(45deg);background:var(--f4-mark)}.f4-preview{opacity:.38}.f4-win{outline:4px solid var(--focus);outline-offset:2px}@keyframes f4-drop{0%{transform:translateY(-45%);opacity:.5}to{transform:none;opacity:1}}.f4-new{animation:f4-drop .12s ease-out}.f4-grid[data-anim=off] .f4-disc{animation:none}@media(prefers-reduced-motion:reduce){.f4-disc{animation:none}}.f4-legend{align-items:center}.f4-legend>span{display:inline-flex;align-items:center;gap:.35rem}.f4-key{width:1em;height:1em}
