:root {
  --motion-duration: 620ms;
  --motion-ease: cubic-bezier(.22, .61, .36, 1);
}

.animations-ready .motion-reveal {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition:
    opacity var(--motion-duration) var(--motion-ease),
    transform var(--motion-duration) var(--motion-ease);
  will-change: opacity, transform;
}

.animations-ready .motion-delay-1 { transition-delay: 70ms; animation-delay: 70ms; }
.animations-ready .motion-delay-2 { transition-delay: 140ms; animation-delay: 140ms; }
.animations-ready .motion-delay-3 { transition-delay: 210ms; animation-delay: 210ms; }
.animations-ready .motion-delay-4 { transition-delay: 280ms; animation-delay: 280ms; }
.animations-ready .motion-delay-5 { transition-delay: 350ms; animation-delay: 350ms; }
.animations-ready .motion-delay-6 { transition-delay: 420ms; animation-delay: 420ms; }
.animations-ready .motion-delay-7 { transition-delay: 490ms; animation-delay: 490ms; }
.animations-ready .motion-delay-8 { transition-delay: 560ms; animation-delay: 560ms; }
.animations-ready .motion-delay-9 { transition-delay: 630ms; animation-delay: 630ms; }
.animations-ready .motion-delay-10 { transition-delay: 700ms; animation-delay: 700ms; }
.animations-ready .motion-delay-11 { transition-delay: 770ms; animation-delay: 770ms; }
.animations-ready .motion-delay-12 { transition-delay: 840ms; animation-delay: 840ms; }
.animations-ready .motion-delay-13 { transition-delay: 910ms; animation-delay: 910ms; }
.animations-ready .motion-delay-14 { transition-delay: 980ms; animation-delay: 980ms; }
.animations-ready .motion-delay-15 { transition-delay: 1050ms; animation-delay: 1050ms; }
.animations-ready .motion-delay-16 { transition-delay: 1120ms; animation-delay: 1120ms; }
.animations-ready .motion-delay-17 { transition-delay: 1190ms; animation-delay: 1190ms; }
.animations-ready .motion-delay-18 { transition-delay: 1260ms; animation-delay: 1260ms; }
.animations-ready .motion-delay-19 { transition-delay: 1330ms; animation-delay: 1330ms; }
.animations-ready .motion-delay-20 { transition-delay: 1400ms; animation-delay: 1400ms; }

.animations-ready .motion-reveal--left {
  transform: translate3d(-28px, 0, 0);
}

.animations-ready .motion-reveal--right {
  transform: translate3d(28px, 0, 0);
}

.animations-ready .motion-reveal--scale {
  transform: scale(.975);
}

.animations-ready .motion-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  will-change: auto;
}

.animations-ready .imperio-hero .motion-reveal {
  filter: blur(6px);
  transform: scale(.99);
  transition: none;
}

.animations-ready .imperio-hero {
  position: relative;
  isolation: isolate;
  background: #151515;
}

.animations-ready .imperio-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -2%;
  pointer-events: none;
  background:
    linear-gradient(rgba(0, 0, 0, .66), rgba(0, 0, 0, .66)),
    var(--imperio-hero-background, url("../img/figma-assets/gallery-1.png")) center top / cover no-repeat;
  opacity: 0;
  transform: scale(1.045);
  animation: hero-background-enter 720ms 430ms cubic-bezier(.22, .61, .36, 1) forwards;
  will-change: opacity, transform;
}

.animations-ready .imperio-hero--video::before {
  display: none;
}

.animations-ready .imperio-hero--video .imperio-hero__background-video {
  opacity: 0;
  transition: opacity 500ms var(--motion-ease);
  will-change: opacity;
}

.animations-ready .imperio-hero--video.is-video-ready .imperio-hero__background-video {
  opacity: 1;
  will-change: auto;
}

.animations-ready .imperio-hero__intro-overlay {
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  background: #080808;
  transform: translate3d(0, 0, 0);
  animation: hero-intro-swipe 520ms 70ms cubic-bezier(.76, 0, .24, 1) forwards;
  will-change: transform;
}

.animations-ready .imperio-hero--video .imperio-hero__intro-overlay {
  animation: none;
}

.animations-ready .imperio-hero--video.is-hero-revealed .imperio-hero__intro-overlay {
  animation: hero-intro-swipe 520ms 70ms cubic-bezier(.76, 0, .24, 1) forwards;
}

.animations-ready .imperio-hero__grid {
  position: relative;
  z-index: 1;
}

.animations-ready .imperio-hero .motion-reveal.is-visible {
  filter: blur(0);
  animation-duration: 560ms;
  animation-fill-mode: both;
  animation-timing-function: cubic-bezier(.22, .61, .36, 1);
  animation-name: hero-reveal-soft;
}

.animations-ready .imperio-hero__stat.motion-reveal.is-visible {
  animation-duration: 500ms;
}

@keyframes hero-reveal-soft {
  from {
    opacity: 0;
    filter: blur(6px);
    transform: scale(.985);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes hero-intro-swipe {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes hero-background-enter {
  from {
    opacity: 0;
    transform: scale(1.045);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.animations-ready .factory-proof__call.motion-background-reveal .factory-proof__media img {
  opacity: 0;
  transform: scale(1.055);
  transition: opacity 620ms var(--motion-ease), transform 900ms var(--motion-ease);
  will-change: opacity, transform;
}

.animations-ready .factory-proof__call.is-background-visible .factory-proof__media img {
  opacity: .62;
  transform: scale(1);
  will-change: auto;
}

.animations-ready .coverage__call.motion-background-reveal:before {
  opacity: 0;
  transform: scale(1.055);
  transition: opacity 620ms var(--motion-ease), transform 900ms var(--motion-ease);
  will-change: opacity, transform;
}

.animations-ready .coverage__call.is-background-visible:before {
  opacity: .45;
  transform: scale(1);
  will-change: auto;
}

.animations-ready .factory-proof__call-content.motion-reveal,
.animations-ready .coverage__call .wrap.motion-reveal {
  transition-delay: 260ms;
}

.location__map {
  overflow: hidden;
}

.location__map iframe {
  transition: transform 700ms var(--motion-ease);
}

.location__map:hover iframe {
  transform: scale(1.012);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
