/* BridgeWP motion presets — progressive enhancement */

.bridgewp-motion {
	--bridge-motion-d: var(--bridge-motion-duration-normal, 280ms);
	--bridge-motion-e: var(--bridge-motion-easing-entrance);
	--bridge-motion-x: var(--bridge-motion-distance-medium, 24px);
}

.bridgewp-motion[data-bridgewp-motion-duration="instant"] { --bridge-motion-d: var(--bridge-motion-duration-instant); }
.bridgewp-motion[data-bridgewp-motion-duration="fast"] { --bridge-motion-d: var(--bridge-motion-duration-fast); }
.bridgewp-motion[data-bridgewp-motion-duration="slow"] { --bridge-motion-d: var(--bridge-motion-duration-slow); }
.bridgewp-motion[data-bridgewp-motion-duration="slower"] { --bridge-motion-d: var(--bridge-motion-duration-slower); }

.bridgewp-motion[data-bridgewp-motion-easing="standard"] { --bridge-motion-e: var(--bridge-motion-easing-standard); }
.bridgewp-motion[data-bridgewp-motion-easing="exit"] { --bridge-motion-e: var(--bridge-motion-easing-exit); }
.bridgewp-motion[data-bridgewp-motion-easing="spring-soft"] { --bridge-motion-e: var(--bridge-motion-easing-spring-soft); }

.bridgewp-motion[data-bridgewp-motion-distance="small"] { --bridge-motion-x: var(--bridge-motion-distance-small); }
.bridgewp-motion[data-bridgewp-motion-distance="large"] { --bridge-motion-x: var(--bridge-motion-distance-large); }

/* Without JS, content stays visible */
.bridgewp-motion:not(.is-motion-ready):not(.is-inview) {
	opacity: 1;
	transform: none;
	filter: none;
}

.js .bridgewp-motion.is-motion-ready:not(.is-inview) {
	opacity: 0;
	will-change: transform, opacity;
}

.js .bridgewp-motion.is-motion-ready.is-inview {
	opacity: 1;
	transform: none;
	filter: none;
	transition:
		opacity var(--bridge-motion-d) var(--bridge-motion-e),
		transform var(--bridge-motion-d) var(--bridge-motion-e),
		filter var(--bridge-motion-d) var(--bridge-motion-e);
}

.js .bridgewp-motion--fade.is-motion-ready:not(.is-inview) { opacity: 0; }
.js .bridgewp-motion--fade-up.is-motion-ready:not(.is-inview) { opacity: 0; transform: translateY(var(--bridge-motion-x)); }
.js .bridgewp-motion--fade-down.is-motion-ready:not(.is-inview) { opacity: 0; transform: translateY(calc(var(--bridge-motion-x) * -1)); }
.js .bridgewp-motion--fade-left.is-motion-ready:not(.is-inview) { opacity: 0; transform: translateX(var(--bridge-motion-x)); }
.js .bridgewp-motion--fade-right.is-motion-ready:not(.is-inview) { opacity: 0; transform: translateX(calc(var(--bridge-motion-x) * -1)); }
.js .bridgewp-motion--scale-in.is-motion-ready:not(.is-inview) { opacity: 0; transform: scale(0.94); }
.js .bridgewp-motion--zoom-soft.is-motion-ready:not(.is-inview) { opacity: 0; transform: scale(1.06); }
.js .bridgewp-motion--rotate-soft.is-motion-ready:not(.is-inview) { opacity: 0; transform: rotate(-2deg) translateY(8px); }
.js .bridgewp-motion--blur-in.is-motion-ready:not(.is-inview) { opacity: 0; filter: blur(8px); }
.js .bridgewp-motion--reveal.is-motion-ready:not(.is-inview) { clip-path: inset(0 0 100% 0); opacity: 1; }
.js .bridgewp-motion--reveal.is-inview { clip-path: inset(0 0 0 0); transition: clip-path var(--bridge-motion-d) var(--bridge-motion-e); }
.js .bridgewp-motion--slide-up.is-motion-ready:not(.is-inview) { transform: translateY(var(--bridge-motion-x)); opacity: 0; }

.js .bridgewp-motion--stagger-children.is-motion-ready:not(.is-inview) > * {
	opacity: 0;
	transform: translateY(12px);
}
.js .bridgewp-motion--stagger-children.is-inview > * {
	opacity: 1;
	transform: none;
	transition:
		opacity var(--bridge-motion-d) var(--bridge-motion-e),
		transform var(--bridge-motion-d) var(--bridge-motion-e);
}
.js .bridgewp-motion--stagger-children.is-inview > *:nth-child(1) { transition-delay: 0ms; }
.js .bridgewp-motion--stagger-children.is-inview > *:nth-child(2) { transition-delay: var(--bridge-motion-stagger-fast, 40ms); }
.js .bridgewp-motion--stagger-children.is-inview > *:nth-child(3) { transition-delay: var(--bridge-motion-stagger-normal, 80ms); }
.js .bridgewp-motion--stagger-children.is-inview > *:nth-child(4) { transition-delay: calc(var(--bridge-motion-stagger-normal, 80ms) * 1.5); }
.js .bridgewp-motion--stagger-children.is-inview > *:nth-child(5) { transition-delay: calc(var(--bridge-motion-stagger-normal, 80ms) * 2); }
.js .bridgewp-motion--stagger-children.is-inview > *:nth-child(n+6) { transition-delay: calc(var(--bridge-motion-stagger-slow, 140ms) * 2); }

@media (prefers-reduced-motion: reduce) {
	.js .bridgewp-motion.is-motion-ready:not(.is-inview),
	.js .bridgewp-motion--stagger-children.is-motion-ready:not(.is-inview) > * {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		clip-path: none !important;
	}
}
