:root{--cell:#0000000d;--board:#faf8ef;--board-border:#e8e4d8;--ttt-x:#1e40af;--ttt-o:#7c2d12}:root[data-theme=dark]{--cell:#ffffff0f;--board:#17171a;--board-border:#2a2a2e;--ttt-x:#aecbff;--ttt-o:#fdba74}.game{gap:.9rem;max-width:26rem;margin:0 auto;display:grid}.hud{justify-content:space-between;align-items:center;gap:1rem;display:flex}.scores{gap:.5rem;display:flex}.score{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:8px;min-width:4.75rem;padding:.35rem .9rem}.score span{letter-spacing:.09em;color:var(--text-muted);font-size:.6rem;display:block}.score strong{font-variant-numeric:tabular-nums;font-size:1.15rem}.new-game{background:var(--text);color:var(--bg);cursor:pointer;border:none;border-radius:8px;padding:.6rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600}.new-game:hover{opacity:.85}.board{aspect-ratio:1;background:var(--board);border:1px solid var(--board-border);touch-action:none;user-select:none;border-radius:12px;width:100%;padding:6px;position:relative}.field{width:100%;height:100%;position:relative}.cells{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);display:grid;position:absolute;inset:0}.cell{background:var(--cell);border-radius:7px;margin:5px}.tile{width:25%;height:25%;transition:transform .11s ease-out;position:absolute;top:0;left:0}.tile-inner{font-variant-numeric:tabular-nums;color:#f9f6f2;background:#3c3a32;border-radius:7px;justify-content:center;align-items:center;font-size:clamp(1.05rem,6vw,1.85rem);font-weight:700;display:flex;position:absolute;inset:5px}.tile-inner[data-value="2"]{color:#776e65;background:#eee4da}.tile-inner[data-value="4"]{color:#776e65;background:#ede0c8}.tile-inner[data-value="8"]{background:#f2b179}.tile-inner[data-value="16"]{background:#f59563}.tile-inner[data-value="32"]{background:#f67c5f}.tile-inner[data-value="64"]{background:#f65e3b}.tile-inner[data-value="128"]{background:#edcf72;font-size:clamp(.95rem,5.2vw,1.6rem)}.tile-inner[data-value="256"]{background:#edcc61;font-size:clamp(.95rem,5.2vw,1.6rem)}.tile-inner[data-value="512"]{background:#edc850;font-size:clamp(.95rem,5.2vw,1.6rem)}.tile-inner[data-value="1024"]{background:#edc53f;font-size:clamp(.8rem,4.2vw,1.3rem)}.tile-inner[data-value="2048"]{background:#edc22e;font-size:clamp(.8rem,4.2vw,1.3rem)}.tile-inner[data-value="1024"],.tile-inner[data-value="2048"]{box-shadow:0 0 18px #edc22e80}.tile-inner[data-value="2"],.tile-inner[data-value="4"],.tile-inner[data-value="8"],.tile-inner[data-value="16"],.tile-inner[data-value="32"],.tile-inner[data-value="64"],.tile-inner[data-value="128"],.tile-inner[data-value="256"],.tile-inner[data-value="512"],.tile-inner[data-value="1024"],.tile-inner[data-value="2048"]{color:#1a1a1a}@keyframes tile-appear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes tile-bump{0%{transform:scale(1)}55%{transform:scale(1.14)}to{transform:scale(1)}}.tile.is-new .tile-inner{animation:.14s ease-out tile-appear}.tile.is-merged .tile-inner{animation:.17s ease-out tile-bump}.overlay{z-index:3;background:color-mix(in srgb, var(--board) 82%, transparent);backdrop-filter:blur(2px);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:absolute;inset:0}.overlay-title{font-size:1.5rem;font-weight:700}.overlay-actions{gap:.6rem;display:flex}.overlay-actions button{background:var(--text);color:var(--bg);cursor:pointer;border:none;border-radius:8px;padding:.55rem 1.1rem;font-family:inherit;font-size:.9rem;font-weight:600}.overlay-actions button:hover{opacity:.85}.hint{color:var(--text-muted);text-align:center;font-size:.875rem}.hint strong{color:var(--text);font-weight:600}@media (prefers-reduced-motion:reduce){.tile{transition:none}.tile.is-new .tile-inner,.tile.is-merged .tile-inner{animation:none}}.snake-board{--cells:17}.snake-field{background-image:repeating-linear-gradient(to right, var(--cell) 0 1px, transparent 1px calc(100% / var(--cells))), repeating-linear-gradient(to bottom, var(--cell) 0 1px, transparent 1px calc(100% / var(--cells)));border-radius:8px;overflow:hidden}.seg,.food{width:calc(100% / var(--cells));height:calc(100% / var(--cells));transition:transform var(--tick,.15s) linear;position:absolute;top:0;left:0}.seg:after,.food:after{content:"";background:var(--accent);border-radius:3px;position:absolute;inset:1px}.seg-head:after{background:var(--text);border-radius:4px}.food{transition:none}.food:after{background:#f65e3b;border-radius:50%;animation:1.1s ease-in-out infinite food-pulse}@keyframes food-pulse{0%,to{transform:scale(1)}50%{transform:scale(.72)}}@media (prefers-reduced-motion:reduce){.seg,.food{transition:none}.food:after{animation:none}}.hud-actions{align-items:center;gap:.5rem;display:flex}.ghost-btn{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:.55rem .9rem;font-family:inherit;font-size:.9rem;font-weight:500}.ghost-btn:hover:not(:disabled){background:var(--card)}.ghost-btn:disabled{opacity:.4;cursor:default}.dpad{display:none}@media (pointer:coarse){.dpad{grid-template-rows:repeat(2,3.25rem);grid-template-columns:repeat(3,3.25rem);justify-content:center;gap:.4rem;display:grid}.dpad button{background:var(--card);color:var(--text);border:1px solid var(--border);cursor:pointer;touch-action:manipulation;user-select:none;border-radius:10px;font-family:inherit;font-size:1.2rem}.dpad button:active{background:var(--accent);color:var(--bg)}.dpad-up{grid-area:1/2}.dpad-left{grid-area:2/1}.dpad-down{grid-area:2/2}.dpad-right{grid-area:2/3}}.difficulty{background:var(--card);border:1px solid var(--border);border-radius:10px;justify-self:center;gap:.25rem;padding:.25rem;display:inline-flex}.difficulty-option{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:.35rem .9rem;font-family:inherit;font-size:.85rem;font-weight:500}.difficulty-option.active{background:var(--bg);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000000f}.ttt-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.ttt-cell{background:var(--cell);color:var(--text);cursor:pointer;touch-action:manipulation;border:none;border-radius:8px;font-family:inherit;font-size:clamp(2rem,12vw,3.25rem);font-weight:700;line-height:1;transition:background .12s,color .12s}.ttt-cell:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, var(--cell))}.ttt-cell:disabled{cursor:default}.ttt-cell[data-mark=X]{color:var(--ttt-x)}.ttt-cell[data-mark=O]{color:var(--ttt-o)}.ttt-cell.is-winning{background:color-mix(in srgb, var(--accent) 26%, var(--cell))}.submit-panel{border:1px solid var(--border);background:var(--card);border-radius:10px;gap:.6rem;max-width:26rem;margin-top:1.25rem;padding:.9rem 1rem;display:grid}.submit-panel.is-done{border-color:var(--accent)}.submit-label{color:var(--text-muted);font-size:.85rem}.submit-row{gap:.5rem;display:flex}.submit-input{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:7px;flex:1;padding:.45rem .7rem;font-size:.9rem}.submit-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.submit-result{font-size:.95rem}.submit-result strong{color:var(--accent);font-size:1.15rem}.submit-note{color:var(--text-muted);font-size:.82rem}.submit-note.is-error{color:#c2410c}:root[data-theme=dark] .submit-note.is-error{color:#fb923c}.leaderboard{max-width:26rem;margin-top:2rem}.leaderboard-title{margin-bottom:.6rem;font-size:1rem}.leaderboard-list{gap:.1rem;list-style:none;display:grid}.lb-row{border-radius:6px;grid-template-columns:1.75rem 1fr auto;align-items:baseline;gap:.75rem;padding:.4rem .55rem;font-size:.9rem;display:grid}.lb-row:nth-child(odd){background:var(--card)}.lb-row-mine{background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 2px 0 0 var(--accent)}.lb-row-mine:nth-child(odd){background:color-mix(in srgb, var(--accent) 16%, var(--card))}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lb-rank{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.lb-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lb-score{font-variant-numeric:tabular-nums;font-weight:600}.leaderboard-empty{color:var(--text-muted);padding:.4rem 0;font-size:.9rem}.leaderboard-mine-note{color:var(--accent);margin-top:.6rem;font-size:.8rem}.leaderboard-foot{color:var(--text-muted);margin-top:.7rem;font-size:.75rem}.lb-row-link{color:inherit;display:contents}.lb-row-link:hover{text-decoration:none}.lb-row-link:hover .lb-name{text-decoration:underline}.lb-row-link:focus-visible .lb-rank,.lb-row-link:focus-visible .lb-name,.lb-row-link:focus-visible .lb-score{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.replay-page{gap:1.1rem;max-width:26rem;margin:0 auto;display:grid}.replay-status{text-align:center;max-width:26rem;color:var(--text-muted);margin:2rem auto;font-size:.95rem}.replay-meta{text-align:center}.replay-meta-line{font-size:1rem}.replay-meta-line strong{color:var(--text)}.replay-meta-date{color:var(--text-muted);margin-top:.2rem;font-size:.8rem}.replay-controls{justify-items:center;gap:.5rem;display:grid}.replay-scrubber{width:100%;accent-color:var(--accent)}.replay-frame-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.ttt-replay-grid{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:1rem;max-width:34rem;margin:0 auto;display:grid}.ttt-replay-item{justify-items:center;gap:.35rem;display:grid}.ttt-replay-num{color:var(--text-muted);font-size:.72rem}.ttt-replay-board{width:100%;padding:4px}.ttt-replay-board .ttt-grid{gap:3px}.ttt-replay-board .ttt-cell{cursor:default;pointer-events:none;font-size:clamp(1rem,6vw,1.5rem)}.ttt-replay-board .ttt-cell:hover{background:var(--cell)}:root{--mine-1:#1d4ed8;--mine-2:#15803d;--mine-3:#b91c1c;--mine-4:#5b21b6;--mine-5:#7c2d12;--mine-6:#0e7490;--mine-7:#1a1a1a;--mine-8:#6b6b6b}:root[data-theme=dark]{--mine-1:#93c5fd;--mine-2:#86efac;--mine-3:#fca5a5;--mine-4:#c4b5fd;--mine-5:#fdba74;--mine-6:#67e8f9;--mine-7:#ededed;--mine-8:#9b9b9b}.mines-wrap{position:relative}.mines-board{touch-action:manipulation}.mines-field{grid-template-columns:repeat(9,1fr);gap:3px;width:100%;height:100%;display:grid}.mines-cell{aspect-ratio:1;background:color-mix(in srgb, var(--text) 14%, var(--board));color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;font-size:clamp(.9rem,3.8vw,1.15rem);font-weight:700;display:flex}.mines-cell:disabled{cursor:default}.mines-cell:not(.is-revealed):not(:disabled):hover{background:color-mix(in srgb, var(--text) 22%, var(--board))}.mines-cell.is-revealed{background:var(--cell);cursor:default}.mines-cell.is-revealed:not(:disabled)[data-count]:not([data-count="0"]){cursor:pointer}.mines-cell.is-flagged{color:#b91c1c}:root[data-theme=dark] .mines-cell.is-flagged{color:#fca5a5}.mines-cell.is-mine{background:color-mix(in srgb, var(--text) 30%, var(--board))}.mines-cell.is-exploded{color:#fff;background:#f65e3b}.mines-cell.is-wrong{background:color-mix(in srgb, #f65e3b 35%, var(--board));text-decoration:line-through}.mines-cell.is-cursor{box-shadow:0 0 0 2px var(--accent)}.mines-board:not(:focus-visible) .mines-cell.is-cursor{box-shadow:none}.mines-cell[data-count="1"]{color:var(--mine-1)}.mines-cell[data-count="2"]{color:var(--mine-2)}.mines-cell[data-count="3"]{color:var(--mine-3)}.mines-cell[data-count="4"]{color:var(--mine-4)}.mines-cell[data-count="5"]{color:var(--mine-5)}.mines-cell[data-count="6"]{color:var(--mine-6)}.mines-cell[data-count="7"]{color:var(--mine-7)}.mines-cell[data-count="8"]{color:var(--mine-8)}.ghost-btn.is-on{background:var(--text);color:var(--bg);border-color:var(--text)}
