/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
/* Progressive enhancement: only hide when JS is confirmed running */
.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.js .reveal.is-in { opacity: 1; transform: none; }
.js [data-stagger] > * { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
[data-stagger].is-in > * { opacity: 1; transform: none; }
.no-anim, .no-anim > * { transition: none !important; }
[data-stagger].is-in > *:nth-child(1){ transition-delay:.05s; }
[data-stagger].is-in > *:nth-child(2){ transition-delay:.12s; }
[data-stagger].is-in > *:nth-child(3){ transition-delay:.19s; }
[data-stagger].is-in > *:nth-child(4){ transition-delay:.26s; }
[data-stagger].is-in > *:nth-child(5){ transition-delay:.33s; }
[data-stagger].is-in > *:nth-child(6){ transition-delay:.40s; }
[data-stagger].is-in > *:nth-child(7){ transition-delay:.47s; }
[data-stagger].is-in > *:nth-child(8){ transition-delay:.54s; }
[data-stagger].is-in > *:nth-child(9){ transition-delay:.61s; }
@media (prefers-reduced-motion: reduce) {
  .reveal, [data-stagger] > * { opacity:1 !important; transform:none !important; transition:none; }
  * { animation: none !important; scroll-behavior: auto; }
}

