.game-shell[data-astro-cid-fqx5tqxk]{gap:var(--space-5);max-width:28rem;margin-inline:auto;display:grid}.game-header[data-astro-cid-fqx5tqxk]{gap:var(--space-2);display:grid}.game-header[data-astro-cid-fqx5tqxk] .page-title[data-astro-cid-fqx5tqxk]{max-width:none;font-size:clamp(1.8rem,4vw,2.4rem)}.game-instructions[data-astro-cid-fqx5tqxk]{font-size:var(--text-sm);margin:0}.game-bar[data-astro-cid-fqx5tqxk]{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.game-stats[data-astro-cid-fqx5tqxk]{gap:var(--space-3);display:flex}.game-stat[data-astro-cid-fqx5tqxk]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);gap:.15rem;min-width:4.5rem;padding:.45rem .75rem;display:grid;position:relative}.game-stat-label[data-astro-cid-fqx5tqxk]{color:var(--color-text-muted);font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:600}.game-stat-value[data-astro-cid-fqx5tqxk]{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:500;line-height:1.1}.board-wrap[data-astro-cid-fqx5tqxk]{width:var(--board-size);height:var(--board-size);touch-action:none;user-select:none;--board-size:min(28rem, calc(100vw - 2.5rem));--gap:.6rem;--cell-size:calc((var(--board-size) - 5 * var(--gap)) / 4);margin-inline:auto;position:relative}.board[data-astro-cid-fqx5tqxk]{grid-template-columns:repeat(4, var(--cell-size));grid-template-rows:repeat(4, var(--cell-size));gap:var(--gap);width:var(--board-size);height:var(--board-size);padding:var(--gap);border-radius:var(--radius-sm);background:var(--color-surface);display:grid}.cell[data-astro-cid-fqx5tqxk]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.tiles[data-astro-cid-fqx5tqxk]{inset:var(--gap);position:absolute}.overlay[data-astro-cid-fqx5tqxk]{padding:var(--space-4);border-radius:var(--radius-sm);background:color-mix(in oklab, var(--color-bg) 82%, transparent);backdrop-filter:blur(2px);justify-content:center;align-items:center;animation:.18s ease-out overlay-in;display:flex;position:absolute;inset:0}.overlay[data-astro-cid-fqx5tqxk][hidden]{display:none}.overlay-panel[data-astro-cid-fqx5tqxk]{gap:var(--space-4);text-align:center;display:grid}.overlay-message[data-astro-cid-fqx5tqxk]{font-family:var(--font-display);margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:600}.overlay-score[data-astro-cid-fqx5tqxk]{font-family:var(--font-mono);font-size:var(--text-sm);margin:0}.overlay-actions[data-astro-cid-fqx5tqxk]{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}@keyframes overlay-in{0%{opacity:0}}@media (width<=640px){.board-wrap[data-astro-cid-fqx5tqxk]{--gap:.45rem}}@media (prefers-reduced-motion:reduce){.overlay[data-astro-cid-fqx5tqxk]{animation:none}}[data-game-2048] .tile{width:var(--cell-size);height:var(--cell-size);border-radius:var(--radius-sm);font-family:var(--font-ui);will-change:transform;transform:translate(calc(var(--col) * (var(--cell-size) + var(--gap))), calc(var(--row) * (var(--cell-size) + var(--gap))));justify-content:center;align-items:center;font-size:clamp(1.35rem,5vw,1.85rem);font-weight:600;line-height:1;transition:transform .11s ease-in-out;display:flex;position:absolute;top:0;left:0}[data-game-2048] .tile.tile-appear{animation:.16s ease-out .11s backwards g2048-appear}[data-game-2048] .tile.tile-pop{animation:.2s ease-in-out .1s backwards g2048-pop}[data-game-2048] .tile.tile-sm{font-size:clamp(1.05rem,4vw,1.45rem)}[data-game-2048] .tile.tile-xs{font-size:clamp(.85rem,3.2vw,1.15rem)}[data-game-2048] .tile-2{background:color-mix(in oklab, var(--color-accent) 8%, var(--color-bg));color:var(--color-text)}[data-game-2048] .tile-4{background:color-mix(in oklab, var(--color-accent) 14%, var(--color-bg));color:var(--color-text)}[data-game-2048] .tile-8{background:color-mix(in oklab, var(--color-accent) 22%, var(--color-bg));color:var(--color-text)}[data-game-2048] .tile-16{background:color-mix(in oklab, var(--color-accent) 30%, var(--color-bg));color:var(--color-text)}[data-game-2048] .tile-32{background:color-mix(in oklab, var(--color-accent) 38%, var(--color-bg));color:var(--color-text)}[data-game-2048] .tile-64{background:color-mix(in oklab, var(--color-accent) 46%, var(--color-bg));color:var(--color-text)}[data-game-2048] .tile-128{background:color-mix(in oklab, var(--color-accent) 54%, var(--color-bg));color:var(--color-bg)}[data-game-2048] .tile-256{background:color-mix(in oklab, var(--color-accent) 62%, var(--color-bg));color:var(--color-bg)}[data-game-2048] .tile-512{background:color-mix(in oklab, var(--color-accent) 70%, var(--color-bg));color:var(--color-bg)}[data-game-2048] .tile-1024{background:color-mix(in oklab, var(--color-accent) 82%, var(--color-bg));color:var(--color-bg)}[data-game-2048] .tile-2048{background:color-mix(in oklab, var(--color-accent) 95%, var(--color-bg));color:var(--color-bg)}[data-game-2048] .tile-super{background:var(--color-accent);color:var(--color-bg)}[data-game-2048] .score-delta{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-sm);pointer-events:none;font-weight:600;animation:.6s ease-out forwards g2048-score-float;position:absolute;top:.35rem;right:.6rem}@keyframes g2048-appear{0%{transform:translate(calc(var(--col) * (var(--cell-size) + var(--gap))), calc(var(--row) * (var(--cell-size) + var(--gap)))) scale(0)}}@keyframes g2048-pop{0%{transform:translate(calc(var(--col) * (var(--cell-size) + var(--gap))), calc(var(--row) * (var(--cell-size) + var(--gap)))) scale(0)}50%{transform:translate(calc(var(--col) * (var(--cell-size) + var(--gap))), calc(var(--row) * (var(--cell-size) + var(--gap)))) scale(1.18)}to{transform:translate(calc(var(--col) * (var(--cell-size) + var(--gap))), calc(var(--row) * (var(--cell-size) + var(--gap)))) scale(1)}}@keyframes g2048-score-float{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.9rem)}}@media (prefers-reduced-motion:reduce){[data-game-2048] .tile{transition:none}[data-game-2048] .tile.tile-appear,[data-game-2048] .tile.tile-pop,[data-game-2048] .score-delta{animation:none}}
