html.is-smooth-scroll,
html.is-smooth-scroll body {
  min-height: 100%;
  overscroll-behavior-y: none;
}

body.is-smooth-scroll [data-scroll-container] {
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
}

[data-reveal] {
  --reveal-y: 78px;
  --reveal-scale: 0.985;
  --reveal-delay: 0ms;
  opacity: 0;
  transform: translate3d(0, var(--reveal-y), 0) scale(var(--reveal-scale));
  filter: blur(10px);
  transition:
    opacity 900ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 1100ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 900ms cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--reveal-delay);
  will-change: transform, opacity, filter;
}

[data-reveal].is-visible {
  opacity: 1;
  --reveal-y: 0px;
  --reveal-scale: 1;
  filter: blur(0);
}

[data-reveal="fade"] {
  --reveal-y: 0px;
  --reveal-scale: 1;
}

[data-reveal="image"] {
  --reveal-y: 54px;
  --reveal-scale: 1.018;
}

[data-reveal="table"] {
  --reveal-y: 46px;
  --reveal-scale: 0.995;
}

[data-reveal-delay="1"] {
  --reveal-delay: 80ms;
}

[data-reveal-delay="2"] {
  --reveal-delay: 160ms;
}

[data-reveal-delay="3"] {
  --reveal-delay: 240ms;
}

[data-reveal-delay="4"] {
  --reveal-delay: 320ms;
}

@media (prefers-reduced-motion: reduce) {
  html.is-smooth-scroll,
  html.is-smooth-scroll body {
    overscroll-behavior-y: auto;
  }

  body.is-smooth-scroll [data-scroll-container] {
    position: static !important;
    transform: none !important;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
    filter: none;
    transition-duration: 1ms;
  }
}
