/*
  BioSolv IQ — Reveal-on-scroll utility.
  Add `.reveal` to any element for a fade-up-into-view enter animation.
  Modifiers:
    .reveal--left        slide in from left
    .reveal--right       slide in from right
    .reveal--stagger     apply to a parent to stagger its direct children
    .reveal--delay-1..6  additional element delay (100ms increments)
  Respects prefers-reduced-motion.
  Toggled by assets/reveal.js via IntersectionObserver (adds `.is-in`).
*/
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.reveal.is-in{ opacity:1; transform:none; }

.reveal--left{ transform:translate3d(-28px,0,0); }
.reveal--right{ transform:translate3d(28px,0,0); }
.reveal--left.is-in,
.reveal--right.is-in{ transform:none; }

.reveal--delay-1{ transition-delay:.08s; }
.reveal--delay-2{ transition-delay:.16s; }
.reveal--delay-3{ transition-delay:.24s; }
.reveal--delay-4{ transition-delay:.32s; }
.reveal--delay-5{ transition-delay:.40s; }
.reveal--delay-6{ transition-delay:.48s; }

/* Stagger direct children of the annotated parent */
.reveal--stagger > *{
  opacity:0;
  transform:translateY(20px);
  transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
}
.reveal--stagger.is-in > *{ opacity:1; transform:none; }
/* Cadence tuned to match How It Works step-in feel (~0.13s inter-child gap). */
.reveal--stagger.is-in > *:nth-child(1){  transition-delay:.05s; }
.reveal--stagger.is-in > *:nth-child(2){  transition-delay:.18s; }
.reveal--stagger.is-in > *:nth-child(3){  transition-delay:.31s; }
.reveal--stagger.is-in > *:nth-child(4){  transition-delay:.44s; }
.reveal--stagger.is-in > *:nth-child(5){  transition-delay:.57s; }
.reveal--stagger.is-in > *:nth-child(6){  transition-delay:.70s; }
.reveal--stagger.is-in > *:nth-child(7){  transition-delay:.83s; }
.reveal--stagger.is-in > *:nth-child(8){  transition-delay:.96s; }
.reveal--stagger.is-in > *:nth-child(n+9){ transition-delay:1.09s; }

@media (prefers-reduced-motion: reduce){
  .reveal, .reveal--stagger > *{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}
