/* ============================================================
   THE KING OF POP — Motion
   ============================================================ */

/* ---- Scroll-reveal base ---- */
.reveal { opacity: 0; transform: translateY(34px); transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out); will-change: opacity, transform; }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal--left { transform: translateX(-40px); }
.reveal--right { transform: translateX(40px); }
.reveal--scale { transform: scale(0.94); }

/* Stagger helpers */
.reveal[data-delay="1"] { transition-delay: 0.08s; }
.reveal[data-delay="2"] { transition-delay: 0.16s; }
.reveal[data-delay="3"] { transition-delay: 0.24s; }
.reveal[data-delay="4"] { transition-delay: 0.32s; }
.reveal[data-delay="5"] { transition-delay: 0.4s; }
.reveal[data-delay="6"] { transition-delay: 0.48s; }

/* Hero load-in (orchestrated) */
.hero__dates, .hero__title, .hero__tagline, .hero__cta { opacity: 0; transform: translateY(40px); animation: heroIn 1.1s var(--ease-out) forwards; }
.hero__dates { animation-delay: 0.15s; }
.hero__title { animation-delay: 0.3s; }
.hero__tagline { animation-delay: 0.62s; }
.hero__cta { animation-delay: 0.8s; }
.hero__bg { animation: heroZoom 14s var(--ease-out) forwards; }

@keyframes heroIn { to { opacity: 1; transform: none; } }
@keyframes heroZoom { from { transform: scale(1.16); } to { transform: scale(1.04); } }

@keyframes scrollPulse { 0%, 100% { transform: scaleY(0.3); opacity: 0.3; transform-origin: top; } 50% { transform: scaleY(1); opacity: 1; transform-origin: top; } }

@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

@keyframes glowPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(231,192,97,0.0); } 50% { box-shadow: 0 0 30px 2px rgba(231,192,97,0.25); } }

@keyframes shimmer { 0% { background-position: -200% center; } 100% { background-position: 200% center; } }

/* Animated gold shimmer for special headings */
.shimmer-text {
  background: linear-gradient(100deg, #cba23f 20%, #f7e7b8 40%, #ffffff 50%, #f7e7b8 60%, #cba23f 80%);
  background-size: 200% auto;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmer 6s linear infinite;
}

.float-slow { animation: float 6s var(--ease-in-out) infinite; }

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
  .hero__dates, .hero__title, .hero__tagline, .hero__cta { opacity: 1 !important; transform: none !important; }
  .hero__bg { transform: scale(1.04) !important; }
  .hero__scroll::after { animation: none !important; }
}
