/* ===== 2048 样式 ===== */
.g2048-wrap{display:flex;flex-direction:column;gap:12px;align-items:center;width:min(440px,92vw);}
.g2048-header{display:flex;align-items:center;justify-content:space-between;width:100%;}
.g2048-title{font-size:34px;font-weight:900;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;}
.g2048-scores{display:flex;gap:10px;}
.score-box{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 16px;text-align:center;min-width:74px;}
.score-box span{display:block;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;}
.score-box b{font-size:22px;font-weight:800;color:var(--gold);}
.g2048-controls{display:flex;gap:10px;width:100%;align-items:center;}
.g2048-controls .btn{padding:9px 16px;}
.g2048-hint{font-size:13px;color:var(--text-dim);text-align:center;width:100%;}
.g2048-board-wrap{position:relative;width:100%;}
.g2048-board{
  display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:10px;
  background:rgba(0,0,0,0.25);border:1px solid var(--border);border-radius:14px;padding:10px;
  aspect-ratio:1/1;width:100%;
}
.g2048-cell{
  background:rgba(255,255,255,0.04);border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:clamp(18px,6vw,34px);font-weight:800;
  transition:transform .12s;
}
.g2048-cell.filled{animation:pop .18s ease;}
.g2048-cell.small{font-size:clamp(14px,4.5vw,24px);}
@keyframes pop{from{transform:scale(.5);opacity:.4;}to{transform:scale(1);opacity:1;}}
.g2048-overlay{
  position:absolute;inset:0;display:none;align-items:center;justify-content:center;flex-direction:column;gap:12px;
  background:rgba(8,10,24,0.85);backdrop-filter:blur(4px);border-radius:14px;
}
.g2048-overlay.show{display:flex;}
.g2048-overlay .ov-title{font-size:26px;font-weight:800;}
.g2048-overlay .ov-text{color:var(--text-dim);}
