.g2{grid-template-columns:minmax(0,1fr);grid-template-areas:"info""board""side"}.g2-readouts{grid-area:info}.g2-wrap{grid-area:board;min-width:0}.g2-side{grid-area:side;align-content:start;gap:14px;min-width:0;display:grid}@media (width>=1024px){.g2{grid-template:"board info""board side"1fr/minmax(0,540px) minmax(300px,400px);align-items:start;gap:20px 48px}.g2-side .status{border-top:1px solid var(--line);padding-top:12px}.g2-share{justify-self:start}}.g2-score{position:relative}.g2-gain{top:22px;font-variant-numeric:tabular-nums;color:var(--accent-text);pointer-events:none;font-size:16px;font-weight:700;animation:.7s ease-out forwards g2-gain;position:absolute;inset-inline-end:6px}@media (width>=1024px){.g2-gain{font-size:18px;top:28px}}.g2-board{--g:8px;aspect-ratio:1;border-radius:var(--radius-sm);background:var(--screen);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;direction:ltr;width:100%;max-width:540px;position:relative;overflow:hidden;container-type:inline-size}@media (width>=1024px){.g2-board{--g:12px}}.g2-cells,.g2-tiles{inset:var(--g);position:absolute}.g2-cells{gap:var(--g);grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.g2-cells span{border-radius:var(--radius-xs);background:var(--screen-line)}.g2-tile{z-index:2;width:calc((100% - 3 * var(--g)) / 4);height:calc((100% - 3 * var(--g)) / 4);transform:translate(calc(var(--c) * (100% + var(--g))), calc(var(--r) * (100% + var(--g))));transition:transform .11s ease-in-out;position:absolute;top:0;left:0}.g2-tile--gone{z-index:1}.g2-tile--merged{z-index:3}.g2-face{border-radius:var(--radius-xs);background:var(--screen-line-2);width:100%;height:100%;color:var(--screen-ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;justify-content:center;align-items:center;font-size:32px;font-weight:600;line-height:1;display:flex}.g2-face[data-d="3"]{font-size:28px}.g2-face[data-d="4"]{font-size:22px}.g2-face[data-d="5"],.g2-face[data-d="6"],.g2-face[data-d="7"]{font-size:17px}@supports (font-size:1cqw){.g2-face{font-size:10.5cqw}.g2-face[data-d="3"]{font-size:9cqw}.g2-face[data-d="4"]{font-size:7cqw}.g2-face[data-d="5"],.g2-face[data-d="6"],.g2-face[data-d="7"]{font-size:5.4cqw}}.g2-face[data-v="4"]{background:var(--muted)}.g2-face[data-v="8"]{background:var(--screen-muted);color:var(--ink)}.g2-face[data-v="16"]{background:var(--screen-ink);color:var(--ink)}.g2-face[data-v="32"]{background:var(--peak);color:var(--ink)}.g2-face[data-v="64"]{background:var(--accent-dark-text);color:var(--ink)}.g2-face[data-v="128"]{background:var(--trace);color:var(--ink);font-weight:700}.g2-face[data-v="256"]{background:var(--accent);color:var(--ink);font-weight:700}.g2-face[data-v="512"]{background:var(--accent-text);color:var(--screen-ink);font-weight:700}.g2-face[data-v="1024"]{background:var(--panel);color:var(--accent-text);box-shadow:inset 0 0 0 3px var(--accent);font-weight:800}.g2-face[data-v="2048"]{background:var(--accent);color:var(--panel);box-shadow:inset 0 0 0 3px var(--panel);font-weight:800}.g2-face--max{background:var(--ink);color:var(--accent-dark-text);box-shadow:inset 0 0 0 3px var(--accent);font-weight:800}.g2-layer{z-index:5;text-align:center;background:#161616d6;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;display:flex;position:absolute;inset:0}.g2-layer-title{letter-spacing:-.02em;color:var(--screen-ink);font-size:28px;font-weight:800;line-height:1.1}.g2-layer-text{color:var(--screen-muted);font-variant-numeric:tabular-nums;font-size:17px}.g2-layer-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.g2-layer-btn,.g2-layer-btn:hover{border-color:var(--screen-ink);color:var(--screen-ink)}@media (width>=1024px){.g2-layer-title{font-size:40px}}@media (prefers-reduced-motion:no-preference){.g2-tile--new .g2-face{animation:.18s cubic-bezier(.2,.8,.2,1) .1s both g2-new}.g2-tile--merged .g2-face{animation:.2s cubic-bezier(.2,.8,.2,1) .1s both g2-merge}.g2-layer{animation:.3s ease-out .25s both g2-fade}}@keyframes g2-new{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@keyframes g2-merge{0%{transform:scale(0)}60%{transform:scale(1.12)}to{transform:none}}@keyframes g2-fade{0%{opacity:0}to{opacity:1}}@keyframes g2-gain{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-18px)}}
