.js [data-reveal] {
  opacity: 0;
  transform: translateY(var(--reveal-distance));
  transition:
    opacity var(--reveal-duration) var(--ease-out),
    transform var(--reveal-duration) var(--ease-out);
  transition-delay: var(--reveal-delay, 0ms);
}
.js [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}
.js :is(.hero__title, .section-title, .section-lead, .contact__title)[data-reveal] {
  filter: blur(10px);
  transition-property: opacity, transform, filter;
}
.js :is(.hero__title, .section-title, .section-lead, .contact__title)[data-reveal].is-revealed {
  filter: none;
}
.js .stat:not(.is-revealed) .stat__bar::after {
  transform: scaleX(0);
}
.sticky-cta:not([hidden]) {
  animation: slide-up .4s var(--ease-out);
}
@keyframes slide-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .js [data-reveal] {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
  .js :is(.hero__title, .section-title, .section-lead, .contact__title)[data-reveal] {
    filter: none;
  }
  .js .stat:not(.is-revealed) .stat__bar::after {
    transform: scaleX(var(--value));
  }
  .capture-panel__text,
  .capture-panel__text.is-active,
  .capture-panel__image {
    transition: none;
  }
  .sticky-cta:not([hidden]) {
    animation: none;
  }
  .reach__pin::before {
    animation: none;
  }
}