.site-header-motion {
  transition: box-shadow .3s ease, background-color .3s ease, transform .65s cubic-bezier(.2, .75, .25, 1), opacity .65s ease;
}

.motion-ready .site-header-motion {
  opacity: 0;
  transform: translateY(-18px);
}

.motion-ready.page-ready .site-header-motion {
  opacity: 1;
  transform: translateY(0);
}

.site-header-motion.is-scrolled {
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 10px 30px rgba(6, 47, 99, .08);
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .75s cubic-bezier(.2, .75, .25, 1), transform .75s cubic-bezier(.2, .75, .25, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal.reveal-left {
  transform: translateX(-28px);
}

.reveal.reveal-right {
  transform: translateX(28px);
}

.reveal.reveal-scale {
  transform: translateY(18px) scale(.965);
}

.reveal.is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

.hero-enter {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .85s cubic-bezier(.2, .75, .25, 1), transform .85s cubic-bezier(.2, .75, .25, 1);
  transition-delay: var(--hero-delay, 0ms);
}

.hero-enter.hero-enter-left {
  transform: translateX(-30px);
}

.hero-enter.hero-enter-right {
  transform: translateX(30px);
}

.page-ready .hero-enter {
  opacity: 1;
  transform: translate(0, 0);
}

.interactive-card {
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.interactive-card:hover {
  transform: translateY(-6px);
  border-color: rgba(7, 86, 183, .25);
  box-shadow: 0 20px 42px rgba(6, 47, 99, .13);
}

.interactive-image {
  overflow: hidden;
}

.interactive-image img {
  transition: transform .7s cubic-bezier(.2, .75, .25, 1), filter .5s ease;
}

.interactive-image:hover img {
  transform: scale(1.045);
  filter: saturate(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .hero-enter,
  .interactive-card,
  .interactive-image img,
  .site-header-motion {
    animation: none;
    transition: none;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }

  .hero-enter,
  .motion-ready .site-header-motion {
    opacity: 1;
    transform: none;
  }
}
