/* Scroll entrance reveals. JS adds .kpdi-motion on the page root. */
@keyframes kpdi-reveal-up {
  from {
    transform: translate3d(0, 8px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes kpdi-reveal-zoom {
  from {
    transform: scale3d(0.98, 0.98, 0.98);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

@keyframes kpdi-reveal-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.kpdi-motion .kpdi-reveal {
  opacity: 0;
}

.kpdi-motion .kpdi-reveal--up {
  transform: translate3d(0, 8px, 0);
}

.kpdi-motion .kpdi-reveal--zoom {
  transform: scale3d(0.98, 0.98, 0.98);
}

.kpdi-motion .kpdi-reveal.kpdi-reveal--visible {
  animation-duration: 0.7s, 0.9s;
  animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1), cubic-bezier(0.45, 0, 0.55, 1);
  animation-fill-mode: both;
  animation-delay: var(--kpdi-reveal-delay, 0s), var(--kpdi-reveal-delay, 0s);
}

.kpdi-motion .kpdi-reveal--up.kpdi-reveal--visible {
  animation-name: kpdi-reveal-up, kpdi-reveal-fade;
}

.kpdi-motion .kpdi-reveal--zoom.kpdi-reveal--visible {
  animation-name: kpdi-reveal-zoom, kpdi-reveal-fade;
}

@media (prefers-reduced-motion: reduce) {
  .kpdi-motion .kpdi-reveal {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
