/* =========================================
   GLOBAL MOTION SYSTEM
   Reusable / Lightweight / Multi-page Ready
========================================= */
:root {
  --motion-duration: 1.7s;
  --motion-distance: 24px;
  --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --motion-stagger: 0.4s;
  --motion-blur: 8px;
}

.motion {
  opacity: 0;
  will-change: transform, opacity, filter;
  transition:
    opacity var(--motion-duration) var(--motion-ease),
    transform var(--motion-duration) var(--motion-ease),
    filter var(--motion-duration) var(--motion-ease);
}

.motion.is-visible {
  opacity: 1;
}

.motion-fade { transform: none; }
.motion-up { transform: translateY(var(--motion-distance)); }
.motion-down { transform: translateY(calc(var(--motion-distance) * -1)); }
.motion-left { transform: translateX(calc(var(--motion-distance) * -1)); }
.motion-right { transform: translateX(var(--motion-distance)); }
.motion-scale { transform: scale(0.96); }

.motion-blur {
  filter: blur(var(--motion-blur));
  transform: translateY(12px);
}

.motion.is-visible.motion-fade,
.motion.is-visible.motion-up,
.motion.is-visible.motion-down,
.motion.is-visible.motion-left,
.motion.is-visible.motion-right,
.motion.is-visible.motion-scale,
.motion.is-visible.motion-blur {
  transform: none;
}

.motion.is-visible.motion-blur {
  filter: blur(0);
}

.motion-fast { transition-duration: 0.45s; }
.motion-slow { transition-duration: 1s; }

.motion-delay-1 { transition-delay: 0.08s; }
.motion-delay-2 { transition-delay: 0.16s; }
.motion-delay-3 { transition-delay: 0.24s; }
.motion-delay-4 { transition-delay: 0.32s; }
.motion-delay-5 { transition-delay: 0.40s; }
.motion-delay-6 { transition-delay: 0.48s; }

.motion-stagger {
  > .motion:nth-child(1) { transition-delay: calc(var(--motion-stagger) * 1); }
  > .motion:nth-child(2) { transition-delay: calc(var(--motion-stagger) * 2); }
  > .motion:nth-child(3) { transition-delay: calc(var(--motion-stagger) * 3); }
  > .motion:nth-child(4) { transition-delay: calc(var(--motion-stagger) * 4); }
  > .motion:nth-child(5) { transition-delay: calc(var(--motion-stagger) * 5); }
  > .motion:nth-child(6) { transition-delay: calc(var(--motion-stagger) * 6); }
}

.motion-hover-lift {
  transition: transform 0.35s var(--motion-ease), box-shadow 0.35s var(--motion-ease);
}

.motion-hover-lift:hover {
  transform: translateY(-6px);
}

.motion-hover-arrow img,
.motion-hover-arrow svg {
  transition: transform 0.3s ease;
}

.motion-hover-arrow:hover img,
.motion-hover-arrow:hover svg {
  transform: translate(4px, -4px);
}

.motion-parallax {
  transform: translate3d(0, var(--parallax-y, 0), 0);
  transition: transform 0.08s linear;
}

@media (max-width: 767.98px) {
  .motion-parallax {
    transform: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .motion,
  .motion-hover-lift,
  .motion-hover-arrow img,
  .motion-hover-arrow svg,
  .motion-parallax {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}
