@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(26px);
    transition:
      opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1),
      transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1),
      filter 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }

  .reveal-heading {
    transform: translateY(38px);
    filter: blur(7px);
  }

  .reveal.is-visible {
    opacity: 1;
    transform: none;
    filter: none;
  }

  .approach-river .step :is(h3, p).reveal {
    opacity: 0;
    filter: blur(2px);
    transition:
      opacity 900ms cubic-bezier(.16, 1, .3, 1),
      transform 1100ms cubic-bezier(.16, 1, .3, 1),
      filter 900ms cubic-bezier(.16, 1, .3, 1);
  }

  .approach-river .step h3.reveal {
    transform: translate3d(-22px, 8px, 0);
    transition-delay: 0ms;
  }

  .approach-river .step p.reveal {
    transform: translate3d(22px, 8px, 0);
    transition-delay: 140ms;
  }

  .approach-river .step :is(h3, p).reveal.is-visible {
    opacity: 1;
    transform: none;
    filter: none;
  }

  @media (max-width: 760px) {
    .approach-river .step h3.reveal { transform: translate3d(-10px, 5px, 0); }
    .approach-river .step p.reveal { transform: translate3d(10px, 5px, 0); }
    .approach-river .step :is(h3, p).reveal.is-visible { transform: none; }
  }
}
