/**
 * ZombiManiya motion system
 * Reveal on Scroll + Fade Up + Stagger, without external libraries.
 */
:root {
  --zm-reveal-duration: 700ms;
  --zm-reveal-distance: 28px;
  --zm-stagger-step: 78ms;
  --zm-motion-ease: cubic-bezier(.22, 1, .36, 1);
}

.zm-reveal-item {
  --zm-stagger-index: 0;
  backface-visibility: hidden;
}

html.zm-motion-enabled .zm-reveal-item {
  opacity: 0;
  translate: 0 var(--zm-reveal-distance);
  transition:
    opacity var(--zm-reveal-duration) var(--zm-motion-ease),
    translate var(--zm-reveal-duration) var(--zm-motion-ease);
  transition-delay: calc(var(--zm-stagger-index) * var(--zm-stagger-step));
  will-change: opacity, translate;
}

html.zm-motion-enabled .zm-reveal-item[data-zm-reveal="fade-up-soft"] {
  --zm-reveal-distance: 14px;
}

html.zm-motion-enabled .zm-reveal-item[data-zm-reveal="fade-up-scale"] {
  scale: .975;
  transition:
    opacity var(--zm-reveal-duration) var(--zm-motion-ease),
    translate var(--zm-reveal-duration) var(--zm-motion-ease),
    scale var(--zm-reveal-duration) var(--zm-motion-ease);
}

html.zm-motion-enabled .zm-reveal-item.zm-is-visible {
  opacity: 1;
  translate: 0 0;
}

html.zm-motion-enabled .zm-reveal-item[data-zm-reveal="fade-up-scale"].zm-is-visible {
  scale: 1;
}

html.zm-motion-enabled .zm-reveal-item.zm-motion-complete {
  will-change: auto;
}

html.zm-motion-disabled .zm-reveal-item {
  opacity: 1;
  translate: none;
  scale: 1;
}

@media (max-width: 767px) {
  :root {
    --zm-reveal-duration: 620ms;
    --zm-reveal-distance: 20px;
    --zm-stagger-step: 58ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  .zm-reveal-item,
  html.zm-motion-enabled .zm-reveal-item,
  html.zm-motion-enabled .zm-reveal-item[data-zm-reveal="fade-up-scale"] {
    opacity: 1 !important;
    translate: none !important;
    scale: 1 !important;
    transition: none !important;
    will-change: auto !important;
  }
}
