/* Global scroll motion: continuous fade in/out while scrolling, not hard spawning. */
.koi-js-ready .reveal {
  opacity: var(--reveal-opacity, 0.12) !important;
  transform: translate3d(0, var(--reveal-y, 30px), 0) !important;
  filter: blur(var(--reveal-blur, 7px)) saturate(calc(0.92 + (var(--reveal-progress, 0) * 0.08))) !important;
  transition:
    opacity 520ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 640ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 640ms cubic-bezier(0.16, 1, 0.3, 1) !important;
  transition-delay: 0ms !important;
  will-change: opacity, transform, filter !important;
}

.koi-js-ready .reveal.is-visible,
.no-js .reveal {
  opacity: var(--reveal-opacity, 1) !important;
  transform: translate3d(0, var(--reveal-y, 0px), 0) !important;
  filter: blur(var(--reveal-blur, 0px)) saturate(calc(0.92 + (var(--reveal-progress, 1) * 0.08))) !important;
  transition-delay: 0ms !important;
}

@media (prefers-reduced-motion: reduce) {
  .koi-js-ready .reveal,
  .koi-js-ready .reveal.is-visible,
  .no-js .reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
    transition-delay: 0ms !important;
    will-change: auto !important;
  }
}
