/* =======================
   Animações
   ======================= */
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =======================
   Overlay / Fundo
   ======================= */
.overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;

  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  z-index: 9999;
}

/* =======================
   Modal
   ======================= */
.modal {
  width: min(540px, 100%);
  background: #ffffff;
  border-radius: 24px;
  padding: 32px 28px 28px;

  box-shadow:
    0 22px 45px rgba(15, 23, 42, 0.35),
    0 0 0 1px rgba(15, 23, 42, 0.05);

  text-align: center;
  animation: fadeInUp .35s ease-out;
  color: #0f172a;
}

.modal h2 {
  margin: 0 0 18px;
  font-size: 1.25rem;
  font-weight: 700;
  color: #0f172a;
}

/* =======================
   Wrapper
   ======================= */
.wheel-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

/* =======================
   Roleta
   ======================= */
.wheel {
  width: 320px;
  height: 320px;
  position: relative;
  border-radius: 50%;
  overflow: visible;

  display: flex;
  align-items: center;
  justify-content: center;

  background:
    radial-gradient(circle at 30% 10%, rgba(255, 255, 255, 0.25), transparent 55%),
    radial-gradient(circle at 50% 120%, rgba(0, 0, 0, 0.45), transparent 70%);

  box-shadow:
    0 22px 40px rgba(0, 0, 0, 0.35),
    0 0 0 4px rgba(255, 255, 255, 0.04);
}

/* Anel neon */
.wheel::before {
  content: "";
  position: absolute;
  width: 80px;
  height: 80px;
  border-radius: 50%;

  background: conic-gradient(#ec4899,
      #a855f7,
      #22c55e,
      #f97316,
      #ec4899);

  box-shadow: 0 0 14px rgba(236, 72, 153, 0.8);
  z-index: 3;
}

/* Bolinha do meio */
.wheel::after {
  content: "";
  position: absolute;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #050816;
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.8);
  z-index: 4;
}

/* Imagem no centro (se quiser usar) */
.wheel-center {
  position: absolute;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  z-index: 5;

  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.wheel-center img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* SVG da roleta */
.wheel__inner {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  transition: transform 6s cubic-bezier(.18, .86, .34, 1);
}

.wheel__inner svg {
  width: 100%;
  height: 100%;
  background: transparent !important;
}

/* =======================
   Ponteiro
   ======================= */
.pointer {
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);

  width: 0;
  height: 0;

  border-left: 14px solid transparent;
  border-right: 14px solid transparent;
  border-top: 22px solid #000000;

  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.5));
  z-index: 6;
}

/* =======================
   Botões
   ======================= */
.center-cta {
  margin-top: 20px;
}

.spin-btn,
#claimBtn,
#viewRecBtn {
  padding: 14px 42px;
  border-radius: 999px;
  border: none;

  font-weight: 700;
  font-size: .95rem;
  text-transform: uppercase;
  cursor: pointer;

  background: none !important;
  background-image: none !important;
  color: #fff;

  box-shadow:
    0 12px 20px rgba(15, 23, 42, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.08);

  transition: .15s ease-out;
}

.spin-btn:hover,
#claimBtn:hover,
#viewRecBtn:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
}

.spin-btn:active,
#claimBtn:active,
#viewRecBtn:active {
  transform: translateY(0);
}

/* =======================
   Mensagem de prêmio
   ======================= */
.prize {
  margin-top: 10px;
  font-weight: 700;
  font-size: 1.05rem;
  color: #0f172a;
}

/* =======================
   Loader
   ======================= */
.loader {
  width: 40px;
  height: 40px;
  margin: 10px auto;

  border: 4px solid rgba(148, 163, 184, 0.45);
  border-top: 4px solid #000000;

  border-radius: 50%;
  animation: spin 1s linear infinite;
}

/* =======================
   Final
   ======================= */
#finalMsg span {
  font-size: 70px;
  line-height: 1;
  display: block;
  margin-bottom: 6px;
}

/* ================
   Responsivo
   ================ */
@media (max-width: 520px) {
  .wheel {
    width: 260px;
    height: 260px;
  }

  .wheel::before {
    width: 70px;
    height: 70px;
  }

  .wheel::after {
    width: 40px;
    height: 40px;
  }

  .wheel-center {
    width: 46px;
    height: 46px;
  }

  .spin-btn,
  #claimBtn,
  #viewRecBtn {
    width: 100%;
    max-width: 280px;
  }
}

.roleta-hidden-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}