:root {
  --scroll-craft-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

[data-scroll-scene] {
  --scene-progress: 0;
}

[data-scroll-layer] {
  --scroll-layer-y: 0px;
  backface-visibility: hidden;
  transform: translate3d(0, var(--scroll-layer-y), 0);
  transform-origin: center;
  will-change: transform;
}

.jw-hero [data-scroll-layer="background"] {
  inset: -7% 0;
  height: 114%;
}

.jw-hero::after {
  opacity: calc(0.76 - (var(--scene-progress, 0) * 0.1));
  transition: opacity 80ms linear;
}

.scroll-craft-ready [data-scroll-reveal] {
  opacity: 0;
  translate: 0 32px;
  transition:
    opacity 850ms var(--scroll-craft-ease),
    translate 850ms var(--scroll-craft-ease);
  transition-delay: var(--scroll-delay, 0ms);
}

.scroll-craft-ready [data-scroll-reveal="left"] {
  translate: -38px 0;
}

.scroll-craft-ready [data-scroll-reveal="right"] {
  translate: 38px 0;
}

.scroll-craft-ready [data-scroll-reveal].is-scroll-visible {
  opacity: 1;
  translate: 0 0;
}

.scroll-craft-ready .jw-hero [data-scroll-reveal] {
  translate: 0 22px;
}

.scroll-craft-ready .jw-hero [data-scroll-reveal].is-scroll-visible {
  translate: 0 0;
}

.scroll-craft-ready .jw-hero-brand {
  transition-duration: 950ms;
}

.scroll-craft-ready .jw-ops-scene {
  transition-duration: 1050ms;
}

.scroll-craft-ready .jw-section-heading.is-scroll-visible + .jw-solution-grid,
.scroll-craft-ready .jw-section-heading.is-scroll-visible + .jw-industry-grid {
  perspective: 1200px;
}

.scroll-craft-ready .jw-solution-card,
.scroll-craft-ready .jw-industry-card,
.scroll-craft-ready .jw-scope-card,
.scroll-craft-ready .case-impact-card,
.scroll-craft-ready .case-solution-card,
.scroll-craft-ready .review-card {
  transform-origin: center bottom;
}

@media (max-width: 820px) {
  .jw-hero [data-scroll-layer="background"] {
    inset: -4% 0;
    height: 108%;
  }

  .scroll-craft-ready [data-scroll-reveal],
  .scroll-craft-ready [data-scroll-reveal="left"],
  .scroll-craft-ready [data-scroll-reveal="right"] {
    translate: 0 20px;
    transition-duration: 680ms;
  }

  .scroll-craft-ready [data-scroll-reveal].is-scroll-visible {
    translate: 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-scroll-layer] {
    --scroll-layer-y: 0px !important;
    transform: none !important;
    will-change: auto;
  }

  .jw-hero::after {
    opacity: 0.66;
    transition: none;
  }

  .scroll-craft-ready [data-scroll-reveal],
  .scroll-craft-ready [data-scroll-reveal="left"],
  .scroll-craft-ready [data-scroll-reveal="right"] {
    opacity: 1;
    translate: none;
    transition: none;
  }
}
