/* 2048 — 고유 레이아웃만 (박스/버튼/배경/그림자는 style_tools_base.css 가 통일 처리) */
.wrap{ max-width:100%; padding:0 0 70px; }

.g2048-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.g2048-title{ font-size:42px; font-weight:800; margin:0; letter-spacing:-.02em; line-height:1; }
.g2048-sub{ margin:8px 0 0; color:#6b7280; font-size:13px; }
.g2048-scores{ display:flex; gap:8px; }
.g2048-score{ background:#f3f4f6; border-radius:8px; padding:8px 16px; text-align:center; min-width:66px; }
.g2048-score span{ display:block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#6b7280; }
.g2048-score b{ font-size:21px; font-weight:800; }

.g2048-board{
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px;
  background:#e5e7eb; border-radius:12px; padding:10px;
  width:100%; max-width:440px; aspect-ratio:1; margin:0 auto;
  touch-action:none;
}
.g2048-cell{
  display:flex; align-items:center; justify-content:center;
  background:#f1f3f5; border-radius:8px;
  font-size:30px; font-weight:800; color:#111827;
}
.g2048-cell.v2{ background:#eef2ff; }
.g2048-cell.v4{ background:#e0e7ff; }
.g2048-cell.v8{ background:#c7d2fe; }
.g2048-cell.v16{ background:#a5b4fc; color:#fff; }
.g2048-cell.v32{ background:#818cf8; color:#fff; }
.g2048-cell.v64{ background:#6366f1; color:#fff; }
.g2048-cell.v128{ background:#4f46e5; color:#fff; font-size:26px; }
.g2048-cell.v256{ background:#4338ca; color:#fff; font-size:26px; }
.g2048-cell.v512{ background:#3730a3; color:#fff; font-size:26px; }
.g2048-cell.v1024{ background:#312e81; color:#fff; font-size:21px; }
.g2048-cell.v2048{ background:#1e1b4b; color:#fff; font-size:21px; }

.g2048-bar{ display:flex; align-items:center; justify-content:center; gap:14px; margin:18px 0 6px; flex-wrap:wrap; }
.g2048-new{ background:#111827; color:#fff; border:none; padding:10px 22px; font-weight:700; font-size:14px; cursor:pointer; }
.g2048-new:hover{ background:#374151; }
.g2048-hint{ font-size:12px; color:#9ca3af; }

.g2048-msg{ text-align:center; margin:8px 0; }
.g2048-msg-inner{ display:inline-block; background:#fff; border:1.5px solid #e5e7eb; border-radius:12px; padding:20px 28px; }
.g2048-msg-inner p{ font-size:18px; font-weight:800; margin:0 0 14px; }

@media (max-width:480px){
  .g2048-title{ font-size:34px; }
  .g2048-cell{ font-size:24px; }
}
