@keyframes hero-fade-up {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hero-shine {
  0%,
  100% {
    opacity: 0.45;
  }
  50% {
    opacity: 0.85;
  }
}

@keyframes stat-glow {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
  }
  50% {
    box-shadow: 0 0 24px 2px rgba(59, 130, 246, 0.18);
  }
}

.animate-hero-fade-up {
  animation: hero-fade-up 700ms ease-out both;
}

.animate-hero-delay-1 {
  animation-delay: 90ms;
}

.animate-hero-delay-2 {
  animation-delay: 170ms;
}

.animate-hero-delay-3 {
  animation-delay: 250ms;
}

.hero-bg-overlay {
  animation: hero-shine 7s ease-in-out infinite;
}

.stat-card--pulse {
  animation: stat-glow 3.6s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .animate-hero-fade-up,
  .hero-bg-overlay,
  .stat-card--pulse {
    animation: none !important;
  }
}
