/* Scroll & load entrance animations */

.reveal {
  opacity: 0;
  transition:
    opacity var(--reveal-duration) var(--ease-out-expo),
    transform var(--reveal-duration) var(--ease-out-expo);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

.reveal.is-revealed {
  opacity: 1;
  transform: none;
  will-change: auto;
}

.reveal--up {
  transform: translateY(var(--reveal-distance));
}

.reveal--down {
  transform: translateY(calc(var(--reveal-distance) * -0.55));
}

.reveal--left {
  transform: translateX(calc(var(--reveal-distance) * -1));
}

.reveal--right {
  transform: translateX(var(--reveal-distance));
}

.reveal--fade {
  transform: none;
}

.reveal--scale {
  transform: translateY(calc(var(--reveal-distance) * 0.7)) scale(0.985);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }
}
