/* V7 - animaciones públicas sorteo Red Picantes */
.rp-orb {
  animation: orbPulse 7s ease-in-out infinite;
}

.rp-orb.purple {
  animation-delay: -2.5s;
}

@keyframes orbPulse {
  0%, 100% {
    transform: scale(1);
    opacity: .52;
  }

  50% {
    transform: scale(1.15);
    opacity: .72;
  }
}

.sorteo-shell:after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 74%, rgba(255, 138, 0, .12), transparent 19%),
    radial-gradient(circle at 78% 16%, rgba(255, 90, 20, .14), transparent 18%);
  animation: heroGlow 6s ease-in-out infinite;
  pointer-events: none;
}

@keyframes heroGlow {
  0%, 100% {
    opacity: .55;
  }

  50% {
    opacity: 1;
  }
}

.sorteo-panel {
  animation: panelEntrance .65s ease both;
}

@keyframes panelEntrance {
  from {
    opacity: 0;
    transform: translateY(22px) scale(.985);
  }

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

.sorteo-panel:before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, rgba(255, 138, 0, .18), transparent);
  opacity: .8;
  animation: borderSweep 4.5s linear infinite;
  pointer-events: none;
}

@keyframes borderSweep {
  0% {
    transform: translateX(-80%);
  }

  100% {
    transform: translateX(80%);
  }
}

.sorteo-badge {
  animation: badgePulse 2.8s ease-in-out infinite;
}

@keyframes badgePulse {
  0%, 100% {
    box-shadow: 0 0 22px rgba(255, 90, 20, .13);
  }

  50% {
    box-shadow: 0 0 36px rgba(255, 138, 0, .32);
  }
}

.sorteo-title .emoji {
  display: inline-block;
  animation: emojiBounce 1.8s ease-in-out infinite;
}

@keyframes emojiBounce {
  0%, 100% {
    transform: translateY(0) rotate(0);
  }

  50% {
    transform: translateY(-8px) rotate(7deg);
  }
}

.btn-primary {
  animation: ctaGlow 2.4s ease-in-out infinite;
}

@keyframes ctaGlow {
  0%, 100% {
    box-shadow: 0 16px 38px rgba(255,90,20,.28), 0 0 28px rgba(255,138,0,.20);
  }

  50% {
    box-shadow: 0 18px 44px rgba(255,90,20,.38), 0 0 44px rgba(255,210,0,.30);
  }
}

.podium-card {
  animation: prizeFloat 4.2s ease-in-out infinite;
}

.podium-card:nth-child(1) {
  animation-delay: -.7s;
}

.podium-card:nth-child(3) {
  animation-delay: -1.4s;
}

@keyframes prizeFloat {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-9px);
  }
}

.podium-art {
  animation: prizeIconPulse 2.7s ease-in-out infinite;
}

@keyframes prizeIconPulse {
  0%, 100% {
    transform: scale(1) rotate(-2deg);
  }

  50% {
    transform: scale(1.08) rotate(2deg);
  }
}

.stat-icon {
  animation: statPulse 2.6s ease-in-out infinite;
}

@keyframes statPulse {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 0 rgba(255,90,20,0));
  }

  50% {
    transform: scale(1.12);
    filter: drop-shadow(0 0 12px rgba(255,90,20,.45));
  }
}

.float-symbol {
  z-index: 1;
}

.prize-row {
  opacity: 0;
  transform: translateY(22px);
}

.prize-row.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .5s ease, transform .5s ease, border-color .22s ease;
}

.chip-rain {
  position: fixed;
  inset: 0;
  overflow: hidden;
  z-index: 2;
  pointer-events: none;
}

.rain-chip {
  position: absolute;
  top: -80px;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  opacity: var(--opacity);
  animation: chipFall var(--duration) linear infinite;
  animation-delay: var(--delay);
  left: var(--left);
  filter: drop-shadow(0 0 16px rgba(255,160,0,.35));
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.23) 0 16%, transparent 17%),
    radial-gradient(circle at 50% 50%, rgba(255,210,0,.72) 0 34%, rgba(255,120,0,.85) 35% 54%, transparent 55%),
    conic-gradient(from 0deg, #ffb000, #ff5a14, #ffd000, #ff5a14, #ffb000);
}

.rain-chip:before {
  content: "$";
  position: absolute;
  inset: 19%;
  border-radius: 50%;
  background: rgba(70, 28, 0, .5);
  color: rgba(255, 238, 170, .72);
  display: grid;
  place-items: center;
  font-size: calc(var(--size) * .38);
  font-weight: 1000;
}

.rain-chip.logo-chip:before {
  content: "🌶️";
  font-size: calc(var(--size) * .34);
  background: rgba(45, 8, 3, .48);
}

@keyframes chipFall {
  0% {
    transform: translate3d(0, -100px, 0) rotate(0deg) scale(.86);
  }

  50% {
    transform: translate3d(calc(var(--drift) / 2), 50vh, 0) rotate(360deg) scale(1);
  }

  100% {
    transform: translate3d(var(--drift), calc(100vh + 120px), 0) rotate(720deg) scale(.9);
  }
}

.spark-layer {
  position: fixed;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
}

.spark {
  position: absolute;
  width: var(--spark-size);
  height: var(--spark-size);
  border-radius: 50%;
  left: var(--spark-left);
  top: var(--spark-top);
  background: rgba(255, 176, 0, .86);
  box-shadow: 0 0 16px rgba(255, 116, 0, .75);
  opacity: 0;
  animation: sparkBlink var(--spark-duration) ease-in-out infinite;
  animation-delay: var(--spark-delay);
}

@keyframes sparkBlink {
  0%, 100% {
    opacity: 0;
    transform: scale(.4);
  }

  35% {
    opacity: .9;
    transform: scale(1);
  }

  70% {
    opacity: .18;
    transform: scale(.65);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }

  .prize-row {
    opacity: 1;
    transform: none;
  }
}

/* v8 rendimiento público: conserva el diseño sin repintados infinitos costosos. */
.rp-orb,
.sorteo-shell:after,
.sorteo-panel:before,
.sorteo-badge,
.sorteo-title .emoji,
.btn-primary,
.podium-card,
.podium-art,
.stat-icon,
.spark {
  animation: none !important;
}

.spark-layer { display: none !important; }
