/* ==========================================================================
   animations.css — micro-interactions & keyframes
   ========================================================================== */

/* Staggered reveal delays, set via inline style or nth-child */
.reveal[data-delay="1"].is-visible { animation-delay: 0.08s; }
.reveal[data-delay="2"].is-visible { animation-delay: 0.16s; }
.reveal[data-delay="3"].is-visible { animation-delay: 0.24s; }
.reveal[data-delay="4"].is-visible { animation-delay: 0.32s; }

/* Fade-in for hero on load */
.hero-kicker,
.hero h1,
.hero-lede,
.hero-actions,
.hero-aside {
  opacity: 0;
  animation: fadeSlideUp 0.8s var(--ease) forwards;
}

.hero h1 { animation-delay: 0.08s; }
.hero-lede { animation-delay: 0.18s; }
.hero-actions { animation-delay: 0.28s; }
.hero-aside { animation-delay: 0.36s; }

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

/* Page transition fade for main content on load */
.page-enter {
  animation: pageFade 0.5s ease-out;
}

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

@media (prefers-reduced-motion: reduce) {
  .hero-kicker,
  .hero h1,
  .hero-lede,
  .hero-actions,
  .hero-aside {
    opacity: 1;
    animation: none;
  }

  .marquee-track {
    animation: none;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}
