/* ==========================================================================
   Leadership Impact Collective — Animation Helpers
   Content stays visible by default. GSAP handles motion only when available.
   ========================================================================== */

.reveal,
.reveal-up,
.reveal-fade,
.stagger-item,
.hero-line {
  opacity: 1;
  transform: none;
}

/* Only hide elements AFTER GSAP has successfully armed animations */
html.gsap-armed .reveal-up:not(.is-visible),
html.gsap-armed .reveal-fade:not(.is-visible),
html.gsap-armed .stagger-item:not(.is-visible) {
  opacity: 0;
  transform: translateY(24px);
  will-change: opacity, transform;
}

html.gsap-armed .reveal-up.is-visible,
html.gsap-armed .reveal-fade.is-visible,
html.gsap-armed .stagger-item.is-visible {
  opacity: 1;
  transform: none;
}

.site-header {
  transition: background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.timeline::before {
  transform-origin: top;
}

html.gsap-armed .timeline:not(.is-drawn)::before {
  transform: scaleY(0);
}

.timeline.is-drawn::before,
html:not(.gsap-armed) .timeline::before {
  transform: scaleY(1);
  transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}

.nav-mobile {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.dropdown {
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

@media (prefers-reduced-motion: reduce) {
  html.gsap-armed .reveal-up:not(.is-visible),
  html.gsap-armed .reveal-fade:not(.is-visible),
  html.gsap-armed .stagger-item:not(.is-visible) {
    opacity: 1 !important;
    transform: none !important;
  }

  .timeline::before,
  .timeline.is-drawn::before {
    transform: none !important;
    transition: none !important;
  }
}
