.g2048{--n: 4;--g2048-gold: #edc22e;--g-board: 20rem;--g-tile: 4.5rem;--g-gap: var(--sp-2);--g-key: 48px;--g-rowgap: var(--sp-2);--g-in-delay: 90ms;--g-bg: #BBADA0;--g-cell: rgb(238 228 218 / .35);--g-ink: #776E65;--g-light: #F9F6F2;--g-gold: #EDC22E;--g-ease-out: cubic-bezier(.2, .8, .3, 1);--g-ease-back: cubic-bezier(.2, .8, .3, 1.2);display:flex;flex-direction:column;align-items:center;row-gap:var(--g-rowgap);padding:clamp(var(--sp-2),1.8cqi,var(--sp-4));inline-size:100%;position:relative;color:#fff;font:700 15px/1.2 inherit;font-family:inherit;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.game-stage__slot--2048{--stage-h: calc(min(100cqi - 1rem, 31.25rem) + 11.2rem) ;--stage-h-lg: calc(min(100cqi - 1.7rem, 31.25rem) + 8.7rem) }.g2048__bar{inline-size:min(100%,var(--g-board));display:flex;flex-direction:column;gap:var(--sp-1)}.g2048__stats{display:flex;gap:var(--sp-1);flex-wrap:wrap}.g2048__tools{display:flex;gap:var(--sp-1);align-items:stretch;flex-wrap:wrap}.g2048__score{flex:1 1 0;min-inline-size:4rem;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);min-height:44px;border-radius:var(--r-sm);background:var(--scrim-1);box-shadow:var(--e-sink)}.g2048__score span{font-size:var(--fs-1);font-weight:700;color:var(--wash-7)}.g2048__score b{font-size:clamp(.875rem,calc(var(--g-board) * .045),1.0625rem);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1;letter-spacing:-.01em}.g2048__score--best b{color:#ffe2a8}.g2048__score--goal b{color:var(--wash-7)}.g2048__score--best.is-hit{animation:g2048-hit .46s var(--g-ease-out)}@keyframes g2048-hit{0%{background:#edc22e99}to{background:var(--scrim-1)}}.g2048 .g2048__seg{flex:0 1 auto;min-height:50px}.g2048 .g2048__seg .gk-seg__opt{min-height:44px;min-inline-size:44px;padding:0 var(--sp-3);font-size:var(--fs-1);letter-spacing:0}.g2048__chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-chip);background:color-mix(in srgb,var(--cat-board) 20%,transparent);color:#ffe2a8;font-weight:800;font-size:var(--fs-1);white-space:nowrap}.g2048__btn--new{flex:1 1 auto}.g2048__btn--undo{flex:0 0 auto}.g2048__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-height:44px;min-width:44px;padding:0 var(--sp-3);border-width:1px;border-style:solid;border-color:var(--wash-4);border-radius:var(--r-sm);background:var(--wash-3);color:#fff;font:inherit;font-weight:700;font-size:var(--fs-1);cursor:pointer;white-space:nowrap;transition:background-color .12s,transform .12s var(--g-ease-out)}.g2048__btn:hover:not(:disabled){background:var(--wash-4)}.g2048__btn:active:not(:disabled){transform:translateY(2px);background:var(--wash-5)}.g2048__btn:disabled{opacity:.38;cursor:default}.g2048__btn:focus-visible,.g2048__board:focus-visible{outline:3px solid var(--action, #C6FF4A);outline-offset:2px}.g2048__btn svg{flex:none}.g2048__board{position:relative;flex:none;inline-size:var(--g-board);block-size:var(--g-board);padding:var(--g-gap);border-radius:calc(var(--g-gap) + var(--sp-2));background:var(--g-bg);box-shadow:var(--e-sink),var(--e-2);touch-action:none}.g2048__cells,.g2048__tiles{position:absolute;inset:var(--g-gap)}.g2048__cells{display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);gap:var(--g-gap)}.g2048__cell{background:var(--g-cell);border-radius:calc(var(--g-tile) * .09)}.g2048__tiles{pointer-events:none}.g2048__tile{position:absolute;left:0;top:0;z-index:1;inline-size:var(--g-tile);block-size:var(--g-tile);translate:calc(var(--x, 0) * (var(--g-tile) + var(--g-gap))) calc(var(--y, 0) * (var(--g-tile) + var(--g-gap)));transition:translate .12s var(--g-ease-out);display:grid;place-items:center;border-radius:calc(var(--g-tile) * .09);background:#eee4da;color:var(--g-ink);box-shadow:inset 0 1px 0 var(--wash-6),var(--e-1);font-weight:800;font-size:max(var(--fs-1),calc(var(--g-tile) * .42));letter-spacing:-.02em;line-height:1;will-change:translate}.g2048__tile b{font-weight:800;font-variant-numeric:tabular-nums}.g2048__tile[data-len="3"]{font-size:max(var(--fs-1),calc(var(--g-tile) * .34))}.g2048__tile[data-len="4"]{font-size:max(var(--fs-1),calc(var(--g-tile) * .27))}.g2048__tile[data-len="5"]{font-size:max(var(--fs-1),calc(var(--g-tile) * .22))}.g2048__tile.is-new{animation:g2048-in .19s var(--g-ease-back) var(--g-in-delay) both}@keyframes g2048-in{0%{opacity:0;scale:.6;transform:translateY(5px)}to{opacity:1;scale:1;transform:translateY(0)}}.g2048__tile.is-absorbed{z-index:0}.g2048__tile--2{background:#eee4da}.g2048__tile--4{background:#ede0c8}.g2048__tile--8{background:#f2b179;color:var(--g-light)}.g2048__tile--16{background:#f59563;color:var(--g-light)}.g2048__tile--32{background:#f67c5f;color:var(--g-light)}.g2048__tile--64{background:#f65e3b;color:var(--g-light)}.g2048__tile--128{background:#edcf72;color:var(--g-light)}.g2048__tile--256{background:#edcc61;color:var(--g-light)}.g2048__tile--512{background:#edc850;color:var(--g-light)}.g2048__tile--1024{background:#edc53f;color:var(--g-light)}.g2048__tile--2048{background:var(--g-gold);color:var(--g-light);box-shadow:inset 0 1px 0 var(--wash-6),0 0 26px color-mix(in srgb,var(--g2048-gold) 65%,transparent)}.g2048__tile--4096,.g2048__tile--8192{background:#3c3a32;color:var(--g-light);box-shadow:inset 0 1px 0 var(--wash-3),0 0 26px color-mix(in srgb,var(--action) 45%,transparent)}.g2048__tile.is-crowned{animation:g2048-crown 1.8s ease-in-out infinite}@keyframes g2048-crown{50%{box-shadow:inset 0 1px 0 var(--wash-6),0 0 40px color-mix(in srgb,var(--g2048-gold) 95%,transparent)}}.g2048__hint{position:absolute;left:50%;bottom:calc(var(--g-gap) * 2);translate:-50% 8px;z-index:7;margin:0;padding:var(--sp-2) var(--sp-3h);border-radius:var(--r-chip);background:#140d08d1;color:#ffe9c7;font-size:var(--fs-1);font-weight:700;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s var(--g-ease-out),translate .2s var(--g-ease-out)}.g2048__hint.is-on{opacity:1;translate:-50% 0}.g2048__say{position:absolute;left:50%;top:0;translate:-50% calc(-50% - 8px);z-index:8;margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-chip);background:#140d08e6;color:#ffe9c7;font-size:var(--fs-1);font-weight:700;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--g-ease-out),translate .15s var(--g-ease-out)}.g2048__say.is-on{opacity:1;translate:-50% -50%}.g2048__ring{position:absolute;left:50%;top:50%;inline-size:var(--g-board);block-size:var(--g-board);margin:calc(var(--g-board) / -2) 0 0 calc(var(--g-board) / -2);border-radius:50%;border:3px solid rgb(237 194 46 / .85);box-shadow:0 0 40px color-mix(in srgb,var(--g2048-gold) 50%,transparent);pointer-events:none;z-index:9}.g2048__spark{position:absolute;left:50%;top:50%;inline-size:11px;block-size:11px;border-radius:50%;background:radial-gradient(circle,#fff6d6 30%,var(--g-gold) 62%,transparent 72%);pointer-events:none;z-index:9}.g2048__controls{inline-size:min(100%,var(--g-board));display:flex;align-items:center;justify-content:center;gap:var(--sp-2)}.g2048__pad{flex:1 1 auto;display:flex;gap:var(--sp-1);min-inline-size:0}.g2048__btn--pad{flex:1 1 0;min-inline-size:0;padding:0;block-size:var(--g-key);background:var(--wash-4);border-color:var(--wash-5);box-shadow:var(--e-1)}.g2048__btn--pad:active:not(:disabled){box-shadow:none}.g2048__btn--pad svg{inline-size:22px;block-size:22px}.is-tallpad .g2048__pad{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,var(--g-key));grid-template-areas:". up ." "left down right";gap:var(--sp-1);justify-content:center}.is-tallpad .g2048__btn--pad svg{inline-size:26px;block-size:26px}@media(min-width:48rem)and (pointer:fine){.g2048__controls{display:none}}.g2048__score--best.is-idle b{color:var(--wash-6)}.g2048__score--best.is-idle:after{content:"rewound";display:block;font-size:var(--fs-1);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#ffe2a8bf}@media(prefers-reduced-motion:reduce){.g2048__tile{transition-duration:90ms!important}.g2048__btn,.g2048__say,.g2048__hint{transition:none!important}.g2048__tile.is-crowned{animation:none}.g2048__tile.is-new{animation-duration:90ms!important;animation-delay:0ms}}
