/**
 * ArenaPulse Keyframe Animations
 */

/* Live Pulse Animation */
@keyframes live-pulse {
  0% {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 59, 48, 0.7);
  }
  70% {
    opacity: 0.8;
    transform: scale(1.1);
    box-shadow: 0 0 0 6px rgba(255, 59, 48, 0);
  }
  100% {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 59, 48, 0);
  }
}

.live-pulse {
  animation: live-pulse 2s infinite ease-in-out;
}

/* Shimmer Loading Animation */
@keyframes shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

/* Daily Spin Slow Idle */
@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.animate-spin-slow {
  animation: spin-slow 30s linear infinite;
}

/* Fast Winner Marquee Ticker */
@keyframes marquee {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}

.animate-marquee {
  display: inline-block;
  white-space: nowrap;
  animation: marquee 18s linear infinite;
}

.animate-marquee:hover {
  animation-play-state: paused;
}

/* Toast In / Out Animation */
@keyframes toast-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes toast-out {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(-8px) scale(0.96);
  }
}

/* Pulsing Ambient Orbs */
@keyframes pulse-glow {
  0% {
    opacity: 0.02;
    transform: scale(0.95);
  }
  50% {
    opacity: 0.05;
    transform: scale(1.05);
  }
  100% {
    opacity: 0.02;
    transform: scale(0.95);
  }
}

.pulse-glow {
  animation: pulse-glow 6s infinite ease-in-out;
}

/* Reduced-Motion Support */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .animate-marquee {
    animation: none !important;
    white-space: normal;
  }

  .animate-spin-slow {
    animation: none !important;
  }
}
