/* Reveal on scroll – no snap, free continuous scrolling */

html {
  scroll-snap-type: none !important;
  scroll-behavior: auto;
}

body {
  scroll-snap-type: none !important;
}

main > section,
main > .snap-section {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
  scroll-margin-top: var(--header-height);
}

body.nav-open {
  overflow: hidden;
}

/*
  Progressive enhancement:
  - Without JS / before arming: everything stays visible
  - After html.reveal-ready: fade-in when entering viewport
  - No translateY (avoids feeling like section snapping)
*/
.reveal,
.reveal-stagger > .reveal-child,
.reveal-stagger > .card,
.reveal-stagger > .benefit-card,
.reveal-stagger > .process-step,
.reveal-stagger > .metric-card,
.reveal-stagger > .reference-card,
.reveal-stagger > .article-card,
.reveal-stagger > .product-card,
.reveal-stagger > .plugin-card,
.reveal-stagger > a.card {
  opacity: 1;
  transform: none;
}

html.reveal-ready .reveal:not(.is-visible) {
  opacity: 0;
  transition: opacity 0.55s ease;
}

html.reveal-ready .reveal.is-visible {
  opacity: 1;
}

html.reveal-ready .reveal-stagger:not(.is-visible) > .reveal-child,
html.reveal-ready .reveal-stagger:not(.is-visible) > .card,
html.reveal-ready .reveal-stagger:not(.is-visible) > .benefit-card,
html.reveal-ready .reveal-stagger:not(.is-visible) > .process-step,
html.reveal-ready .reveal-stagger:not(.is-visible) > .metric-card,
html.reveal-ready .reveal-stagger:not(.is-visible) > .reference-card,
html.reveal-ready .reveal-stagger:not(.is-visible) > .article-card,
html.reveal-ready .reveal-stagger:not(.is-visible) > .product-card,
html.reveal-ready .reveal-stagger:not(.is-visible) > .plugin-card,
html.reveal-ready .reveal-stagger:not(.is-visible) > a.card {
  opacity: 0;
  transition: opacity 0.45s ease;
}

html.reveal-ready .reveal-stagger.is-visible > .reveal-child,
html.reveal-ready .reveal-stagger.is-visible > .card,
html.reveal-ready .reveal-stagger.is-visible > .benefit-card,
html.reveal-ready .reveal-stagger.is-visible > .process-step,
html.reveal-ready .reveal-stagger.is-visible > .metric-card,
html.reveal-ready .reveal-stagger.is-visible > .reference-card,
html.reveal-ready .reveal-stagger.is-visible > .article-card,
html.reveal-ready .reveal-stagger.is-visible > .product-card,
html.reveal-ready .reveal-stagger.is-visible > .plugin-card,
html.reveal-ready .reveal-stagger.is-visible > a.card {
  opacity: 1;
}

html.reveal-ready .reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 40ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 80ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 120ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 160ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 200ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(7) { transition-delay: 240ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(8) { transition-delay: 280ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(9) { transition-delay: 320ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(10) { transition-delay: 360ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(11) { transition-delay: 400ms; }
html.reveal-ready .reveal-stagger.is-visible > *:nth-child(12) { transition-delay: 440ms; }

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