/**
 * Motion system — scroll reveals, hero load-in, counting stat numbers.
 * Scoped by the body class the theme sets from Branding → Motion:
 *   fns-motion-off | fns-motion-minimal | fns-motion-subtle | fns-motion-energetic
 * Reveals only hide once motion.js marks the page ready, so a JS-off visitor
 * (and the first paint) always sees everything. Reduced-motion is a hard off.
 */
@media (prefers-reduced-motion: no-preference) {
	/* Scroll reveals */
	body.fns-motion-ready.fns-motion-subtle .fnkit-reveal,
	body.fns-motion-ready.fns-motion-energetic .fnkit-reveal {
		opacity: 0;
		transform: translateY(16px);
		transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1);
	}
	body.fns-motion-ready.fns-motion-energetic .fnkit-reveal { transform: translateY(28px); }
	body.fns-motion-ready .fnkit-reveal.is-in { opacity: 1 !important; transform: none !important; }

	/* Hero load-in (subtle + energetic) */
	body.fns-motion-subtle .fnkit-hero__inner,
	body.fns-motion-energetic .fnkit-hero__inner,
	body.fns-motion-subtle .fnkit-hero__text,
	body.fns-motion-energetic .fnkit-hero__text,
	body.fns-motion-subtle .fnkit-hero__editorial,
	body.fns-motion-energetic .fnkit-hero__editorial {
		animation: fnkit-hero-up 0.75s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}
}
@keyframes fnkit-hero-up {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.fnkit-reveal { opacity: 1 !important; transform: none !important; }
}
