/* Scroll-reveal entrance.
   Content is ALWAYS visible by default. The reveal only adds a gentle upward
   fade the first time an element scrolls into view, and only when JS is present,
   IntersectionObserver is supported, and reduced-motion is not requested. If any
   of those don't hold, content simply shows — it can never get stuck hidden. */

@media (prefers-reduced-motion: no-preference) {
  .gc-js .gc-fade-up.gc-reveal-armed,
  .gc-js .gc-fade-up-stagger.gc-reveal-armed > .gc-fade-up-item {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .7s ease, transform .7s ease;
  }
  .gc-js .gc-fade-up.gc-reveal-armed.is-visible,
  .gc-js .gc-fade-up-stagger.gc-reveal-armed.is-visible > .gc-fade-up-item {
    opacity: 1;
    transform: translateY(0);
  }
  .gc-js .gc-fade-up-stagger.is-visible > .gc-fade-up-item:nth-child(2) { transition-delay: .08s; }
  .gc-js .gc-fade-up-stagger.is-visible > .gc-fade-up-item:nth-child(3) { transition-delay: .16s; }
  .gc-js .gc-fade-up-stagger.is-visible > .gc-fade-up-item:nth-child(4) { transition-delay: .24s; }
  .gc-js .gc-fade-up-stagger.is-visible > .gc-fade-up-item:nth-child(5) { transition-delay: .32s; }
  .gc-js .gc-fade-up-stagger.is-visible > .gc-fade-up-item:nth-child(6) { transition-delay: .40s; }
}
