/* overlay.css — overlays da tela do jogador: vitória, sorteio final (roleta) e encerramento. */

#overlay[hidden] {
  display: none;
}
.overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.5rem;
  gap: 0.75rem;
  overflow-y: auto;
}
.overlay.win {
  background: var(--teal);
  color: var(--paper);
  animation: fadein 0.4s;
}
.overlay.final,
.overlay.done {
  background: var(--navy);
  color: var(--paper);
}
@keyframes fadein {
  from {
    opacity: 0;
  }
}
.bingo-word {
  font-size: clamp(3rem, 20vw, 6rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  animation: pop 0.6s ease-out;
}
.you-won {
  font-size: 1.4rem;
  font-weight: 700;
}
.winner {
  font-size: 1.2rem;
  font-weight: 500;
}
.overlay .muted {
  color: rgba(255, 255, 255, 0.75);
}
.small {
  font-size: 0.85rem;
}
.final-head h1 {
  font-size: 1.6rem;
}
.stage {
  width: 100%;
  min-height: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.reveal {
  font-size: clamp(1.6rem, 8vw, 2.6rem);
  font-weight: 700;
  padding: 1rem 1.5rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.08);
  min-width: 70%;
}
.reveal.spinning {
  color: var(--mist);
}
.reveal.tick {
  background: rgba(255, 255, 255, 0.14);
}
.reveal.revealed,
.reveal.me {
  background: var(--teal);
  color: var(--paper);
  animation: pop 0.5s ease-out;
}
.reveal.idle {
  color: var(--mist);
}
ol.picked {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
ol.picked li {
  padding: 0.5rem 0.75rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
}
ol.picked li.me {
  background: var(--teal);
  font-weight: 700;
}
.overlay.done h1 {
  font-size: 2rem;
}
