:root{color-scheme:dark;--accent:#2dd4bf;--muted:#9fb0bb;--grad:linear-gradient(92deg,#2ee6a6,#38bdf8 60%,#818cf8)}*{box-sizing:border-box}body{background:radial-gradient(1100px 700px at 50% -10%,#0c1320 0,transparent 55%),#05070a;color:#e8edf1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;min-height:100vh;-webkit-font-smoothing:antialiased}.g2048{margin:0 auto;max-width:540px;padding:26px 18px 56px}.g2048__bar{align-items:center;display:flex;gap:14px;margin-bottom:20px}.g2048__title{background:var(--grad);-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:800;letter-spacing:-.01em;margin:0;-webkit-text-fill-color:transparent}.g2048__back{margin-right:auto}.g2048__back,.g2048__home{align-items:center;color:var(--muted);display:inline-flex;font-size:15px;font-weight:600;margin-block:-10px;min-height:44px;padding:4px 2px;text-decoration:none}.g2048__home{margin-left:auto}.g2048__back:hover,.g2048__home:hover{color:#67e8f9}.g2048__hud{align-items:stretch;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px}.g2048__scores{display:flex;gap:10px}.g2048__score{align-items:center;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;display:flex;flex-direction:column;justify-content:center;min-width:92px;padding:8px 14px}.g2048__score-label{color:#8aa0ad;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.g2048__score-val{color:#e8edf1;font-size:22px;font-variant-numeric:tabular-nums;font-weight:800;margin-top:2px}@keyframes g2048-bump{0%{transform:scale(1)}40%{color:#7af5e2;transform:scale(1.18)}to{transform:scale(1)}}.g2048__score-val.is-bump{animation:g2048-bump .26s ease}.g2048__actions{align-items:center;display:flex;gap:10px}.g2048__btn{align-items:center;background:rgba(45,212,191,.13);border:1px solid rgba(45,212,191,.42);border-radius:10px;color:#d6fbf3;cursor:pointer;display:inline-flex;font:inherit;font-size:13px;font-weight:700;justify-content:center;min-height:44px;padding:10px 16px;transition:background .14s,border-color .14s,opacity .14s}.g2048__btn:hover{background:rgba(45,212,191,.24)}.g2048__btn:active{transform:translateY(1px)}.g2048__btn--ghost{background:hsla(0,0%,100%,.04);border-color:hsla(0,0%,100%,.16);color:#b9c6cf}.g2048__btn--ghost:hover{background:hsla(0,0%,100%,.09)}.g2048__btn:disabled{cursor:default;opacity:.4}.g2048__btn:disabled:hover{background:hsla(0,0%,100%,.04)}.g2048__stage{display:flex;justify-content:center}.g2048__board{aspect-ratio:1/1;backdrop-filter:blur(6px);background:linear-gradient(180deg,rgba(21,29,40,.7),rgba(12,17,24,.7));border:1px solid hsla(0,0%,100%,.09);border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.42);max-width:480px;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.g2048__grid,.g2048__tiles{inset:0;position:absolute}.g2048__cell{background:hsla(0,0%,100%,.035);border-radius:11px;position:absolute}.g2048__tile{left:0;position:absolute;top:0;transform:translate(0);transition:transform .13s ease-in-out;will-change:transform}.g2048__tiles.is-still .g2048__tile{transition:none}.g2048__tile-inner{align-items:center;background:#13343a;border-radius:11px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.08);color:#021014;display:flex;font-weight:800;height:100%;justify-content:center;letter-spacing:-.02em;line-height:1;width:100%}@keyframes g2048-appear{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes g2048-pop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.g2048__tile-inner.is-appear{animation:g2048-appear .18s ease}.g2048__tile-inner.is-merged{animation:g2048-pop .18s ease;z-index:2}.g2048__tile-inner.is-2{background:#13343a;color:#bfeee6}.g2048__tile-inner.is-4{background:#154f4c;color:#cdf3ec}.g2048__tile-inner.is-8{background:#167268;color:#eafffb}.g2048__tile-inner.is-16{background:#15988a;color:#021014}.g2048__tile-inner.is-32{background:#1bb5a4;color:#021014}.g2048__tile-inner.is-64{background:#25c6c2;color:#021014}.g2048__tile-inner.is-128{background:#2aa9e0;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.12),0 0 14px rgba(56,189,248,.35);color:#02131c}.g2048__tile-inner.is-256{background:#3b8ef0;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.14),0 0 16px rgba(59,142,240,.42);color:#f5fbff}.g2048__tile-inner.is-512{background:#5b7bf5;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.14),0 0 18px rgba(91,123,245,.48);color:#f5fbff}.g2048__tile-inner.is-1024{background:#7c6ff2;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.16),0 0 20px rgba(124,111,242,.55);color:#fbfaff}.g2048__tile-inner.is-2048{background:var(--grad);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.3),0 0 26px rgba(46,230,166,.6);color:#03121a}.g2048__tile-inner.is-super{background:linear-gradient(135deg,#2ee6a6,#38bdf8 45%,#818cf8 80%,#c084fc);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.3),0 0 30px rgba(129,140,248,.7);color:#fff}.g2048__overlay{align-items:center;animation:g2048-fade .25s ease;backdrop-filter:blur(3px);background:rgba(5,7,10,.78);border-radius:16px;display:flex;flex-direction:column;gap:18px;inset:0;justify-content:center;position:absolute;z-index:5}.g2048__overlay[hidden]{display:none}@keyframes g2048-fade{0%{opacity:0}to{opacity:1}}.g2048__msg{background:var(--grad);-webkit-background-clip:text;background-clip:text;font-size:34px;font-weight:800;letter-spacing:-.01em;margin:0;-webkit-text-fill-color:transparent}.g2048__overlay[data-kind=lose] .g2048__msg{background:linear-gradient(92deg,#f0a4b0,#f1b27a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.g2048__overlay-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.g2048__hint{color:#71808a;font-size:13px;line-height:1.7;margin:22px 0 0;text-align:center}.g2048__hint kbd{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.14);border-radius:4px;color:#cdd9e1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;padding:1px 6px}.g2048__hint strong{color:#b9d4dd;font-weight:700}@media (max-width:420px){.g2048{padding:20px 12px 44px}.g2048__hud{gap:10px}.g2048__score{min-width:78px;padding:6px 10px}.g2048__score-val{font-size:19px}.g2048__btn{font-size:12.5px;padding:9px 13px}.g2048__msg{font-size:28px}}