/* ---------- Scroll-reveal animations (global, single source of keyframes) ----------
   .fwrowe-fade-up          on a section wrapper — whole section fades up once in view
   .fwrowe-fade-up-stagger  on a parent whose .fwrowe-fade-up-item children stagger in
   Never combine both patterns on the same wrapper/children pair.
------------------------------------------------------------------------------------ */

@keyframes fwrowe-fade-up {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@supports (animation-timeline: view()) {
  .fwrowe-fade-up {
    animation: fwrowe-fade-up 0.7s ease-out both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }

  .fwrowe-fade-up-stagger > .fwrowe-fade-up-item {
    animation: fwrowe-fade-up 0.6s ease-out both;
    animation-timeline: view();
  }

  .fwrowe-fade-up-stagger > .fwrowe-fade-up-item:nth-child(1) { animation-range: entry 0% entry 25%; }
  .fwrowe-fade-up-stagger > .fwrowe-fade-up-item:nth-child(2) { animation-range: entry 5% entry 30%; }
  .fwrowe-fade-up-stagger > .fwrowe-fade-up-item:nth-child(3) { animation-range: entry 10% entry 35%; }
  .fwrowe-fade-up-stagger > .fwrowe-fade-up-item:nth-child(4) { animation-range: entry 15% entry 40%; }
  .fwrowe-fade-up-stagger > .fwrowe-fade-up-item:nth-child(n+5) { animation-range: entry 20% entry 45%; }
}

@media (prefers-reduced-motion: reduce) {
  .fwrowe-fade-up,
  .fwrowe-fade-up-stagger > .fwrowe-fade-up-item {
    animation: none !important;
  }

  html {
    scroll-behavior: auto;
  }
}
