/* ===================================
   MOTION TOKENS
   One shared set of easing curves and durations so everything on the site moves with the same feel.
   Use these instead of linear / ease / ease-in-out.
=================================== */
:root {
	/* Quick start, long soft landing. The default for anything appearing or responding (hovers, reveals, panels). */
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	/* Gentle on both ends. For things that travel across the screen (menus sliding in, scroll jumps). */
	--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	/* Accelerates away. For things leaving. */
	--ease-in: cubic-bezier(0.55, 0, 1, 0.45);
	/* Lands a little past the end and settles back. For small icons that morph or pop in. */
	--ease-overshoot: cubic-bezier(0.34, 1.3, 0.64, 1);

	--dur-micro: 180ms; /* colour changes, small state flips */
	--dur-short: 320ms; /* hovers, icons */
	--dur-medium: 550ms; /* accordions, header show/hide */
	--dur-long: 850ms; /* full-screen menu, popups */
	--dur-reveal: 1100ms; /* scroll-in reveals */
	--stagger: 70ms; /* gap between items revealed in sequence */
}

/* Respect the "reduce motion" system setting everywhere: no movement. Entrances jump to their end.
   State changes keep a short fade: only opacity, colours and visibility
   transition, for 150ms, so hovers and open/close still read as changes; transforms, sizes and
   clip-paths snap. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-property: opacity, color, background-color, border-color, fill, stroke, visibility !important;
		transition-duration: 150ms !important;
		transition-delay: 0s !important;
		scroll-behavior: auto !important;
	}
}

/* A page the browser is prerendering in the background (hover → speculation rules, inc/page-load.php)
   holds every CSS animation where it is, so entrances play when the page is actually shown instead
   of finishing unseen. The head script (inc/page-load.php) removes .is-prerendering on activation. */
html.is-prerendering *,
html.is-prerendering *::before,
html.is-prerendering *::after {
	animation-play-state: paused !important;
}
