/* ============================================================
   COMPONENT — Motion
   .reveal / .reveal-stagger are toggled to .is-visible by
   js/reveal.js via IntersectionObserver. The reduced-motion
   query here is the single global override for the whole site.
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
}

.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}

.reveal-stagger > *{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal-stagger.is-visible > *{opacity:1; transform:translateY(0);}
.reveal-stagger > *:nth-child(1){transition-delay:.02s;}
.reveal-stagger > *:nth-child(2){transition-delay:.08s;}
.reveal-stagger > *:nth-child(3){transition-delay:.14s;}
.reveal-stagger > *:nth-child(4){transition-delay:.20s;}
.reveal-stagger > *:nth-child(5){transition-delay:.26s;}
.reveal-stagger > *:nth-child(6){transition-delay:.32s;}
