/*
 * Home reveal motion.
 *
 * Native, one-shot viewport reveals for the home page. Keep this layer small:
 * opacity and transform are cheap to animate, and the script removes will-change
 * after each reveal settles.
 */
body.home-reveal-enabled .home-reveal {
  opacity: var(--reveal-start-opacity, 0.58);
  transform: translate3d(0, var(--reveal-y, 18px), 0);
  transition:
    opacity var(--reveal-opacity-duration, 460ms) cubic-bezier(0.25, 1, 0.5, 1),
    transform var(--reveal-duration, 980ms) cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--reveal-delay, 0ms) + var(--reveal-extra-delay, 0ms));
  will-change: opacity, transform;
}

body.home-reveal-enabled .home-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

body.home-reveal-enabled .home-reveal.is-settled {
  will-change: auto;
}

body.home-reveal-enabled .home-reveal--soft {
  --reveal-y: 14px;
  --reveal-duration: 900ms;
  --reveal-start-opacity: 0.64;
}

body.home-reveal-enabled .home-reveal--hero-services {
  --reveal-y: 14px;
  --reveal-duration: 900ms;
  --reveal-start-opacity: 0.64;
}

body.home-reveal-enabled .home-reveal--panel {
  --reveal-y: 22px;
  --reveal-duration: 1040ms;
  --reveal-start-opacity: 0.54;
}

body.home-reveal-enabled .home-reveal--cta {
  --reveal-y: 14px;
  --reveal-duration: 900ms;
  --reveal-start-opacity: 0.64;
  --reveal-extra-delay: 60ms;
}

@media (max-width: 767px) {
  body.home-reveal-enabled .home-reveal {
    --reveal-y: 14px;
    --reveal-duration: 860ms;
    --reveal-opacity-duration: 400ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home-reveal-enabled .home-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
