/* ============================================================
   MEDIA LEADMON — ANIMATIONS / KEYFRAMES
   No opacity:0 on content — GSAP sets initial states
   ============================================================ */

@keyframes dotPulse {
  0%,100% { box-shadow:0 0 0 0 rgba(253,237,12,.5); }
  50%     { box-shadow:0 0 0 8px rgba(253,237,12,0); }
}
@keyframes scrollLine {
  0%   { transform:scaleY(0); transform-origin:top;    opacity:1; }
  49%  { transform:scaleY(1); transform-origin:top;    opacity:1; }
  50%  { transform:scaleY(1); transform-origin:bottom; opacity:1; }
  100% { transform:scaleY(0); transform-origin:bottom; opacity:0; }
}
@keyframes marqueeScroll {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}
@keyframes float {
  0%,100% { transform:translateX(-50%) translateY(0); }
  50%     { transform:translateX(-50%) translateY(-8px); }
}
@keyframes waPulse {
  0%,100% { box-shadow: 0 8px 32px rgba(0,0,0,.55), 0 0 0 0 rgba(37,211,102,.5); }
  60%     { box-shadow: 0 8px 32px rgba(0,0,0,.55), 0 0 0 10px rgba(37,211,102,0); }
}
@keyframes fadeSlideUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes heroLineIn {
  from { transform:translateY(110%); }
  to   { transform:translateY(0); }
}
@keyframes heroFadeIn {
  from { opacity:0; transform:translateY(18px); }
  to   { opacity:1; transform:translateY(0); }
}

.hero__line > span {
  display:block;
  transform:translateY(110%);
  animation:heroLineIn .85s cubic-bezier(0.16,1,0.3,1) forwards;
}
.hero__line:nth-child(2) > span { animation-delay:.1s; }
.hero__line:nth-child(3) > span { animation-delay:.2s; }
.hero__eyebrow,
.hero__tagline,
.hero__cta {
  opacity:0;
  transform:translateY(18px);
  animation:heroFadeIn .65s cubic-bezier(0.16,1,0.3,1) forwards;
}
.hero__eyebrow { animation-delay:.12s; }
.hero__tagline { animation-delay:.42s; }
.hero__cta { animation-delay:.56s; }

/* Reveal utility used by IntersectionObserver */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .65s cubic-bezier(0.16,1,0.3,1),
              transform .65s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
/* Stagger delays */
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }
.reveal[data-delay="5"] { transition-delay: .40s; }
.reveal[data-delay="6"] { transition-delay: .48s; }

/* ---- REDUCED MOTION ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .marquee__inner { animation:none !important; }
  .hero__scroll-hint { animation:none !important; }
  .eyebrow__dot { animation:none !important; }
  .reveal { opacity:1 !important; transform:none !important; }
}
