.merge2048-game{--m2048-ink:#233f46;--m2048-deep:#17343c;--m2048-paper:#f4eedb;--m2048-gold:#efc77c;display:block;width:100%;color:var(--m2048-paper);font:16px/1.45 Georgia,serif;outline:none}.merge2048-game:focus-visible{outline:3px solid var(--m2048-gold);outline-offset:4px}.m2048-shell{position:relative;width:min(100%,900px);margin:0 auto;padding:clamp(12px,2vw,22px);border:1px solid #a9b5a177;border-radius:16px;background:radial-gradient(ellipse at 50% 5%,#45666a 0,#294a52 52%,#203f47 100%);box-shadow:0 18px 38px #081c2380}.m2048-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e7d9a833;padding:0 0 12px}.m2048-heading h2{font:normal clamp(28px,4vw,42px)/1 Georgia,serif;margin:0;color:#fff0cf}.m2048-kicker{margin:0 0 7px;color:#f0cd8b;font:700 10px/1.2 system-ui,sans-serif;letter-spacing:2px}.m2048-memory{max-width:300px;margin:0;color:#e7dcc0;font:12px/1.4 system-ui,sans-serif;text-align:right}.m2048-instructions{max-width:730px;margin:12px auto;color:#f4e9cc;text-align:center;font:14px/1.5 system-ui,sans-serif}.m2048-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:13px 0 8px}.m2048-readouts{display:flex;gap:8px;flex-wrap:wrap}.m2048-readouts span{min-width:88px;padding:6px 10px;border:1px solid #e6d4a84b;border-radius:9px;background:#18343d88;text-align:center;color:#dbd8c9;font:11px/1.25 system-ui,sans-serif}.m2048-readouts strong{display:block;margin-top:3px;color:#fff1ce;font:700 17px/1 system-ui,sans-serif}.m2048-actions{display:flex;gap:7px;flex-wrap:wrap}.merge2048-game button{min-height:42px;padding:8px 12px;border:1px solid #d5c394;border-radius:9px;background:#f2e5c8;color:#213e45;font:700 13px/1.2 system-ui,sans-serif;cursor:pointer}.merge2048-game button:hover:not(:disabled){background:#fff1d1;transform:translateY(-1px)}.merge2048-game button:focus-visible{outline:3px solid #ffdb86;outline-offset:2px}.merge2048-game button:disabled{opacity:.55;cursor:not-allowed}.merge2048-game button[hidden]{display:none}.m2048-rewards{margin:5px 0 10px;color:#f0dcae;text-align:center;font:12px/1.4 system-ui,sans-serif}.m2048-play-area{display:grid;grid-template-columns:minmax(0,460px) 148px;align-items:center;justify-content:center;gap:12px}.m2048-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(5px,1vw,9px);width:min(100%,460px);aspect-ratio:1;padding:clamp(7px,1.2vw,11px);border:2px solid #e2c27e;border-radius:14px;background:#182f35;box-shadow:inset 0 0 0 4px #fff2d20b,0 8px 16px #10272d88}.m2048-cell{display:grid;place-items:center;min-width:0;min-height:0;aspect-ratio:1;border:1px solid #fff4d322;border-radius:9px;background:#f4e7ca;color:#334b4e;font:700 clamp(18px,4.2vw,34px)/1 system-ui,sans-serif;font-variant-numeric:tabular-nums;box-shadow:inset 0 -3px #00000012}.m2048-cell.is-empty{background:#edf0df18;box-shadow:none}.m2048-cell.tile-2{background:#efe3c6}.m2048-cell.tile-4{background:#ead5a5}.m2048-cell.tile-8{background:#eabf76;color:#fff8e7}.m2048-cell.tile-16{background:#eaa565;color:#fff8e7}.m2048-cell.tile-32{background:#e8825d;color:#fff8e7}.m2048-cell.tile-64{background:#d95f4d;color:#fff8e7}.m2048-cell.tile-128,.m2048-cell.tile-256{background:#a9bc83;color:#203b3d;font-size:clamp(16px,3.5vw,29px)}.m2048-cell.tile-512,.m2048-cell.tile-1024{background:#83a991;color:#153940;font-size:clamp(14px,3vw,25px)}.m2048-cell.tile-2048{background:#f0cf82;color:#3e3826;font-size:clamp(13px,2.7vw,23px);box-shadow:inset 0 0 0 2px #fff2c8,0 0 15px #f2d38d60}.m2048-direction-pad{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));grid-template-rows:repeat(3,48px);gap:4px;width:148px}.m2048-direction-pad button{min-width:0;min-height:0;padding:0;border-radius:8px;font:700 24px/1 system-ui,sans-serif}.m2048-direction-pad [data-direction="up"]{grid-column:2;grid-row:1}.m2048-direction-pad [data-direction="left"]{grid-column:1;grid-row:2}.m2048-direction-pad [data-direction="down"]{grid-column:2;grid-row:2}.m2048-direction-pad [data-direction="right"]{grid-column:3;grid-row:2}.m2048-status{min-height:24px;margin:10px 0 0;text-align:center;color:#eee2c4;font:14px/1.4 system-ui,sans-serif}.m2048-status.is-success{color:#f2d88d}.m2048-status.is-pending{color:#ffd1a0}.m2048-status.is-failure{color:#ffb6a5}.m2048-status.is-paused{color:#cbd7d0}
.m2048-confirm{width:min(430px,calc(100vw - 32px));max-width:none;margin:auto;padding:24px;border:2px solid #e2c27e;border-radius:14px;background:#294a52;color:#f4eedb;box-shadow:0 16px 48px #061820aa}.m2048-confirm::backdrop{background:#081a20bb;backdrop-filter:blur(3px)}.m2048-confirm h3{margin:0 0 10px;color:#fff0cf;font:normal 24px/1.2 Georgia,serif}.m2048-confirm p{margin:0 0 20px;color:#e7dcc0;font:14px/1.5 system-ui,sans-serif}.m2048-confirm-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.m2048-confirm [data-action="confirm-new"]{background:#f0cf82}
@media(max-width:720px){.m2048-heading{align-items:flex-start;flex-direction:column}.m2048-memory{text-align:left}.m2048-play-area{grid-template-columns:minmax(0,1fr);justify-items:center}.m2048-board{width:min(100%,min(78vw,460px))}.m2048-direction-pad{grid-template-columns:repeat(4,minmax(48px,58px));grid-template-rows:48px;width:max-content}.m2048-direction-pad [data-direction="up"],.m2048-direction-pad [data-direction="left"],.m2048-direction-pad [data-direction="down"],.m2048-direction-pad [data-direction="right"]{grid-row:1;grid-column:auto}.m2048-actions{width:100%}.m2048-actions button{flex:1}}
@media(max-height:760px) and (min-width:721px){.m2048-shell{padding:8px 14px}.m2048-heading{padding-bottom:6px}.m2048-heading h2{font-size:32px}.m2048-kicker{margin-bottom:4px}.m2048-instructions{margin:5px auto;font-size:12px;line-height:1.35}.m2048-toolbar{margin:6px 0 4px}.m2048-rewards{margin:2px 0 4px}.m2048-play-area{grid-template-columns:minmax(0,300px) 148px;gap:10px}.m2048-board{width:min(42vh,300px)}.m2048-direction-pad{grid-template-rows:repeat(2,44px)}.m2048-status{margin-top:4px}}
@media(hover:none){.merge2048-game button:hover:not(:disabled){transform:none}}
@media(prefers-reduced-motion:reduce){.merge2048-game button{scroll-behavior:auto}.merge2048-game button:hover:not(:disabled){transform:none}}
