/* ============================================================
   Animations — scroll reveal, page entrance, curtain
   ============================================================ */

/* Scroll-reveal: elements start hidden, JS adds .is-visible */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
[data-reveal].is-visible { opacity: 1; transform: none; }

/* If JS is disabled, never hide content */
.no-js [data-reveal] { opacity: 1; transform: none; }

/* Hero / page-hero lead: rise in as the curtain lifts */
.hero__lead      { animation: rise 1.1s var(--ease) 0.35s both; }
.hero__audiences { animation: rise 1.1s var(--ease) 0.5s both; }

/* Interior page-hero content: staggered entrance timed to the curtain */
.page-hero__inner .eyebrow          { animation: rise 0.9s var(--ease) 0.4s both; }
.page-hero__inner .page-hero__title { animation: rise 0.95s var(--ease) 0.5s both; }
.page-hero__inner .page-hero__subtitle { animation: rise 1s var(--ease) 0.62s both; }
/* the page-hero container itself shouldn't also fade (children handle it) */
.page-hero__inner[data-reveal] { opacity: 1; transform: none; }

@keyframes rise {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: none; }
}
@keyframes bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(5px); }
}
@keyframes spin { to { transform: rotate(360deg); } }

@keyframes curtain-reveal {
  from { transform: translateY(0); }
  to   { transform: translateY(-100%); }
}
@keyframes curtain-cover {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; }
  .hero__lead, .hero__audiences,
  .page-hero__inner .eyebrow,
  .page-hero__inner .page-hero__title,
  .page-hero__inner .page-hero__subtitle { animation: none; }
  .js .page-curtain,
  .js .page-curtain.is-leaving { animation: none; transform: translateY(-100%); }
}
