/* Hero Section Entrance Animation — Staggered Text Cascade */

/* Hero bg: Fade in first */
.hero-section {
  animation: heroBgFade 400ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes heroBgFade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Hero elements: Staggered slide-up + fade */
.hero-overline {
  opacity: 0;
  transform: translateY(16px);
  animation: heroElementReveal 300ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 100ms;
}

.hero-title {
  opacity: 0;
  transform: translateY(16px);
  animation: heroElementReveal 400ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 200ms;
}

.hero-subtitle {
  opacity: 0;
  transform: translateY(16px);
  animation: heroElementReveal 300ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 350ms;
}

.hero-audio {
  opacity: 0;
  transform: translateY(16px);
  animation: heroElementReveal 400ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 400ms;
}

.hero-audio #play-pause-btn {
  animation: audioBtnGlow 600ms cubic-bezier(0.4, 0, 0.2, 1) 600ms forwards;
}

@keyframes heroElementReveal {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes audioBtnGlow {
  0% {
    box-shadow: 0 0 0 rgba(212, 175, 55, 0);
  }
  50% {
    box-shadow: 0 0 20px rgba(212, 175, 55, 0.4);
  }
  100% {
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.2);
  }
}

/* Disable animations when prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .hero-section,
  .hero-overline,
  .hero-title,
  .hero-subtitle,
  .hero-audio,
  .hero-audio #play-pause-btn {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
