/* ==========================================================
   SCROLL REVEAL
   Elements with .reveal are invisible until observed.
   IntersectionObserver in main.js adds .is-visible.
========================================================== */

@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* Stagger children inside .reveal parent */
  .reveal:nth-child(2) { transition-delay: 0.08s; }
  .reveal:nth-child(3) { transition-delay: 0.16s; }
  .reveal:nth-child(4) { transition-delay: 0.24s; }

  /* Hero sequencing */
  .hero-prelude.reveal  { transition-delay: 0.1s; }
  .hero-name.reveal     { transition-delay: 0.25s; }
  .hero-tagline.reveal  { transition-delay: 0.4s; }
  .hero-actions.reveal  { transition-delay: 0.55s; }
}

/* For users who prefer reduced motion — just show content immediately */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; }
}
