/* 2048 */
.g2048-main {
  position: relative; z-index: 1;
  max-width: 560px; margin: 0 auto;
  padding: 50px 24px 80px;
}
.g2048-cabecalho { text-align: center; margin-bottom: 24px; }
.g2048-titulo {
  font-family: "Poppins", sans-serif; font-weight: 800;
  font-size: clamp(1.6rem, 4vw, 2.4rem); line-height: 1.15;
  margin: 18px 0 8px; color: #fff;
}
.g2048-titulo em {
  font-family: "Lora", serif; font-style: italic; font-weight: 500;
  background: linear-gradient(120deg, #fbbf24, #fb923c);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.g2048-lead { color: #aea7c0; font-size: 0.9rem; margin: 0; }
.g2048-info {
  display: flex; gap: 12px; justify-content: center; align-items: center;
  margin-bottom: 18px; flex-wrap: wrap;
}
.g2048-placar {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 10px 16px; border-radius: 10px;
  text-align: center; min-width: 90px;
}
.g2048-placar-rotulo {
  font-size: 0.7rem; color: #aea7c0;
  letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700;
}
.g2048-placar-valor {
  font-family: "Poppins", sans-serif; font-weight: 800;
  font-size: 1.4rem; color: #fff; margin-top: 2px;
}
.g2048-tabuleiro {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 10px; padding: 12px;
  background: #1f1640;
  border: 2px solid rgba(255,255,255,0.08); border-radius: 12px;
  width: 100%; aspect-ratio: 1/1;
  outline: none;
  touch-action: none;
}
.g2048-celula {
  background: rgba(255,255,255,0.04);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-family: "Poppins", sans-serif; font-weight: 800;
  font-size: clamp(1.2rem, 4vw, 2rem);
  color: #1a1230;
  transition: transform 0.15s, background 0.15s;
}
.g2048-celula[data-v="2"]    { background: #fef3c7; }
.g2048-celula[data-v="4"]    { background: #fde68a; }
.g2048-celula[data-v="8"]    { background: #fb923c; color: #fff; }
.g2048-celula[data-v="16"]   { background: #f97316; color: #fff; }
.g2048-celula[data-v="32"]   { background: #ea580c; color: #fff; }
.g2048-celula[data-v="64"]   { background: #dc2626; color: #fff; }
.g2048-celula[data-v="128"]  { background: #b91c1c; color: #fff; font-size: clamp(1.1rem, 3.5vw, 1.8rem); }
.g2048-celula[data-v="256"]  { background: #9d174d; color: #fff; font-size: clamp(1.1rem, 3.5vw, 1.8rem); }
.g2048-celula[data-v="512"]  { background: #6b21a8; color: #fff; font-size: clamp(1.1rem, 3.5vw, 1.8rem); }
.g2048-celula[data-v="1024"] {
  background: linear-gradient(135deg, #4338ca, #7c3aed); color: #fff;
  font-size: clamp(1rem, 3vw, 1.5rem);
  box-shadow: 0 0 20px rgba(124, 58, 237, 0.5);
}
.g2048-celula[data-v="2048"] {
  background: linear-gradient(135deg, #fbbf24, #ec4899); color: #fff;
  font-size: clamp(1rem, 3vw, 1.5rem);
  box-shadow: 0 0 30px rgba(251, 191, 36, 0.7);
  animation: g2048Brilha 1.5s ease-in-out infinite;
}
@keyframes g2048Brilha {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}
.g2048-celula.novo { animation: g2048Aparece 0.15s ease-out; }
@keyframes g2048Aparece {
  from { transform: scale(0); }
  to   { transform: scale(1); }
}
.g2048-celula.fundiu { animation: g2048Fundiu 0.2s ease-out; }
@keyframes g2048Fundiu {
  0% { transform: scale(1); }
  50% { transform: scale(1.18); }
  100% { transform: scale(1); }
}
.g2048-status {
  text-align: center; min-height: 1.5em;
  margin-top: 16px;
  font-family: "Poppins", sans-serif; font-weight: 700;
  color: #cbc4d9;
}
.g2048-status.fim { color: #f87171; font-size: 1.2rem; }
.g2048-status.vit { color: #fbbf24; font-size: 1.2rem; }
