/* =========================================
   GLOBAL MOTION SYSTEM
   Reusable / Lightweight / Multi-page Ready
========================================= */
:root {
	--motion-duration: 1.5s;
	--motion-distance: 24px;
	--motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--motion-stagger: 0.3s;
	--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;
	}
  }
  