/*!
 * WellMade Axis Core - Animate On Scroll (entrance library)
 * Module: aos
 *
 * The full entrance-animation engine, free. Five families with directional
 * variants (Fade, Flip, Slide, Zoom in/out, Slide Reveal), matching what paid
 * page builders gate behind a license, so a site migrating to GeneratePress
 * keeps every entrance animation it had.
 *
 * Engine model (Hybrid, mirrors the shared engine):
 *   Once mode  -> element starts at a hidden "from" state. When it enters the
 *                 viewport the IntersectionObserver adds .wma-aos-in, the keyframe
 *                 runs once, then the observer disconnects for that node.
 *   Scrub mode -> element uses native CSS animation-timeline: view(), so progress
 *                 is bound to scroll position. No JS observer involved.
 *
 * Shared tunables are CSS custom properties written per-element by the engine
 * from data-* attributes, so a single keyframe set serves every duration / ease
 * / delay / distance:
 *   --wma-aos-duration  (e.g. 600ms)
 *   --wma-aos-delay     (e.g. 50ms)         [Once only; Scrub ignores delay]
 *   --wma-aos-ease      (e.g. cubic-bezier) [Once only; Scrub is linear by nature]
 *   --wma-aos-distance  (px, axis-translate effects only)
 *
 * Easing: the curated default is easeOutExpo cubic-bezier(0.16, 1, 0.3, 1) -
 * elements move in fast and settle gently, the entrance feel used across
 * high-end sites. The author can pick another curve per block.
 *
 * Accessibility: prefers-reduced-motion disables all motion and forces the final
 * visible state. We never override the visitor's reduced-motion choice.
 *
 * Dark mode: this module is color-agnostic. It animates opacity/transform/filter
 * only, so it inherits the page palette automatically and needs no dark rules.
 */

/* ============================================================
   TUNABLE DEFAULTS (overridden per-element by the engine)
   ============================================================ */
[data-wma-anim] {
	--wma-aos-duration: 600ms;
	--wma-aos-delay: 0ms;
	--wma-aos-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ============================================================
   ONCE MODE - initial "from" states
   ------------------------------------------------------------
   Applied only while the engine is active (html.wma-aos-ready) and the element
   has NOT yet entered (no .wma-aos-in). Gating on .wma-aos-ready guarantees
   no-JS / failed-JS pages show content normally (progressive enhancement):
   if the script never runs, the html element never gets .wma-aos-ready, so
   none of these hiding rules apply and everything is visible.
   ============================================================ */
html.wma-aos-ready [data-wma-anim][data-wma-trigger="once"]:not(.wma-aos-in) {
	opacity: 0;
	will-change: opacity, transform, filter;
}

/* ---- Fade family (opacity + optional directional translate) ---- */
html.wma-aos-ready [data-wma-anim="fade-up"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateY(var(--wma-aos-distance, 32px));
}
html.wma-aos-ready [data-wma-anim="fade-down"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateY(calc(-1 * var(--wma-aos-distance, 32px)));
}
html.wma-aos-ready [data-wma-anim="fade-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateX(var(--wma-aos-distance, 32px));
}
html.wma-aos-ready [data-wma-anim="fade-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateX(calc(-1 * var(--wma-aos-distance, 32px)));
}
html.wma-aos-ready [data-wma-anim="fade-up-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translate(var(--wma-aos-distance, 32px), var(--wma-aos-distance, 32px));
}
html.wma-aos-ready [data-wma-anim="fade-up-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translate(calc(-1 * var(--wma-aos-distance, 32px)), var(--wma-aos-distance, 32px));
}
html.wma-aos-ready [data-wma-anim="fade-down-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translate(var(--wma-aos-distance, 32px), calc(-1 * var(--wma-aos-distance, 32px)));
}
html.wma-aos-ready [data-wma-anim="fade-down-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translate(calc(-1 * var(--wma-aos-distance, 32px)), calc(-1 * var(--wma-aos-distance, 32px)));
}

/* ---- Flip family (3D rotate, no fade so the turn reads cleanly) ---- */
html.wma-aos-ready [data-wma-anim^="flip-"][data-wma-trigger="once"]:not(.wma-aos-in) {
	opacity: 1;
	backface-visibility: hidden;
}
html.wma-aos-ready [data-wma-anim="flip-up"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: perspective(800px) rotateX(-90deg);
}
html.wma-aos-ready [data-wma-anim="flip-down"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: perspective(800px) rotateX(90deg);
}
html.wma-aos-ready [data-wma-anim="flip-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: perspective(800px) rotateY(90deg);
}
html.wma-aos-ready [data-wma-anim="flip-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: perspective(800px) rotateY(-90deg);
}

/* ---- Slide family (translate only, stays opaque) ---- */
html.wma-aos-ready [data-wma-anim^="slide-"][data-wma-trigger="once"]:not(.wma-aos-in) {
	opacity: 1;
}
html.wma-aos-ready [data-wma-anim="slide-up"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateY(var(--wma-aos-distance, 48px));
}
html.wma-aos-ready [data-wma-anim="slide-down"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateY(calc(-1 * var(--wma-aos-distance, 48px)));
}
html.wma-aos-ready [data-wma-anim="slide-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateX(var(--wma-aos-distance, 48px));
}
html.wma-aos-ready [data-wma-anim="slide-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: translateX(calc(-1 * var(--wma-aos-distance, 48px)));
}

/* ---- Zoom In family (scale up from below 1, + optional directional) ---- */
html.wma-aos-ready [data-wma-anim="zoom-in"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(0.6);
}
html.wma-aos-ready [data-wma-anim="zoom-in-up"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(0.6) translateY(var(--wma-aos-distance, 40px));
}
html.wma-aos-ready [data-wma-anim="zoom-in-down"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(0.6) translateY(calc(-1 * var(--wma-aos-distance, 40px)));
}
html.wma-aos-ready [data-wma-anim="zoom-in-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(0.6) translateX(var(--wma-aos-distance, 40px));
}
html.wma-aos-ready [data-wma-anim="zoom-in-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(0.6) translateX(calc(-1 * var(--wma-aos-distance, 40px)));
}

/* ---- Zoom Out family (scale down from above 1, + optional directional) ---- */
html.wma-aos-ready [data-wma-anim="zoom-out"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(1.3);
}
html.wma-aos-ready [data-wma-anim="zoom-out-up"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(1.3) translateY(var(--wma-aos-distance, 40px));
}
html.wma-aos-ready [data-wma-anim="zoom-out-down"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(1.3) translateY(calc(-1 * var(--wma-aos-distance, 40px)));
}
html.wma-aos-ready [data-wma-anim="zoom-out-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(1.3) translateX(var(--wma-aos-distance, 40px));
}
html.wma-aos-ready [data-wma-anim="zoom-out-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	transform: scale(1.3) translateX(calc(-1 * var(--wma-aos-distance, 40px)));
}

/* ---- Slide Reveal family (clip-path wipe, content stays opaque) ---- */
html.wma-aos-ready [data-wma-anim^="reveal-"][data-wma-trigger="once"]:not(.wma-aos-in) {
	opacity: 1;
}
html.wma-aos-ready [data-wma-anim="reveal-up"][data-wma-trigger="once"]:not(.wma-aos-in) {
	clip-path: inset(100% 0 0 0);
	transform: translateY(20px);
}
html.wma-aos-ready [data-wma-anim="reveal-down"][data-wma-trigger="once"]:not(.wma-aos-in) {
	clip-path: inset(0 0 100% 0);
	transform: translateY(-20px);
}
html.wma-aos-ready [data-wma-anim="reveal-left"][data-wma-trigger="once"]:not(.wma-aos-in) {
	clip-path: inset(0 0 0 100%);
	transform: translateX(20px);
}
html.wma-aos-ready [data-wma-anim="reveal-right"][data-wma-trigger="once"]:not(.wma-aos-in) {
	clip-path: inset(0 100% 0 0);
	transform: translateX(-20px);
}

/* ---- Blur In (opacity + blur; WellMade extra over the parity set) ---- */
html.wma-aos-ready [data-wma-anim="blur-in"][data-wma-trigger="once"]:not(.wma-aos-in) {
	filter: blur(12px);
}

/* ============================================================
   ONCE MODE - reveal (run keyframe once when .wma-aos-in lands)
   ============================================================ */
[data-wma-anim][data-wma-trigger="once"].wma-aos-in {
	animation-duration: var(--wma-aos-duration);
	animation-delay: var(--wma-aos-delay);
	animation-timing-function: var(--wma-aos-ease);
	animation-fill-mode: both;
	animation-iteration-count: 1;
}

/* Fade */
[data-wma-anim="fade"][data-wma-trigger="once"].wma-aos-in             { animation-name: wma-aos-fade; }
[data-wma-anim="fade-up"][data-wma-trigger="once"].wma-aos-in          { animation-name: wma-aos-fade-up; }
[data-wma-anim="fade-down"][data-wma-trigger="once"].wma-aos-in        { animation-name: wma-aos-fade-down; }
[data-wma-anim="fade-left"][data-wma-trigger="once"].wma-aos-in        { animation-name: wma-aos-fade-left; }
[data-wma-anim="fade-right"][data-wma-trigger="once"].wma-aos-in       { animation-name: wma-aos-fade-right; }
[data-wma-anim="fade-up-left"][data-wma-trigger="once"].wma-aos-in     { animation-name: wma-aos-fade-up-left; }
[data-wma-anim="fade-up-right"][data-wma-trigger="once"].wma-aos-in    { animation-name: wma-aos-fade-up-right; }
[data-wma-anim="fade-down-left"][data-wma-trigger="once"].wma-aos-in   { animation-name: wma-aos-fade-down-left; }
[data-wma-anim="fade-down-right"][data-wma-trigger="once"].wma-aos-in  { animation-name: wma-aos-fade-down-right; }
/* Flip */
[data-wma-anim="flip-up"][data-wma-trigger="once"].wma-aos-in          { animation-name: wma-aos-flip-up; }
[data-wma-anim="flip-down"][data-wma-trigger="once"].wma-aos-in        { animation-name: wma-aos-flip-down; }
[data-wma-anim="flip-left"][data-wma-trigger="once"].wma-aos-in        { animation-name: wma-aos-flip-left; }
[data-wma-anim="flip-right"][data-wma-trigger="once"].wma-aos-in       { animation-name: wma-aos-flip-right; }
/* Slide */
[data-wma-anim="slide-up"][data-wma-trigger="once"].wma-aos-in         { animation-name: wma-aos-slide-up; }
[data-wma-anim="slide-down"][data-wma-trigger="once"].wma-aos-in       { animation-name: wma-aos-slide-down; }
[data-wma-anim="slide-left"][data-wma-trigger="once"].wma-aos-in       { animation-name: wma-aos-slide-left; }
[data-wma-anim="slide-right"][data-wma-trigger="once"].wma-aos-in      { animation-name: wma-aos-slide-right; }
/* Zoom In */
[data-wma-anim="zoom-in"][data-wma-trigger="once"].wma-aos-in          { animation-name: wma-aos-zoom-in; }
[data-wma-anim="zoom-in-up"][data-wma-trigger="once"].wma-aos-in       { animation-name: wma-aos-zoom-in-up; }
[data-wma-anim="zoom-in-down"][data-wma-trigger="once"].wma-aos-in     { animation-name: wma-aos-zoom-in-down; }
[data-wma-anim="zoom-in-left"][data-wma-trigger="once"].wma-aos-in     { animation-name: wma-aos-zoom-in-left; }
[data-wma-anim="zoom-in-right"][data-wma-trigger="once"].wma-aos-in    { animation-name: wma-aos-zoom-in-right; }
/* Zoom Out */
[data-wma-anim="zoom-out"][data-wma-trigger="once"].wma-aos-in         { animation-name: wma-aos-zoom-out; }
[data-wma-anim="zoom-out-up"][data-wma-trigger="once"].wma-aos-in      { animation-name: wma-aos-zoom-out-up; }
[data-wma-anim="zoom-out-down"][data-wma-trigger="once"].wma-aos-in    { animation-name: wma-aos-zoom-out-down; }
[data-wma-anim="zoom-out-left"][data-wma-trigger="once"].wma-aos-in    { animation-name: wma-aos-zoom-out-left; }
[data-wma-anim="zoom-out-right"][data-wma-trigger="once"].wma-aos-in   { animation-name: wma-aos-zoom-out-right; }
/* Slide Reveal */
[data-wma-anim="reveal-up"][data-wma-trigger="once"].wma-aos-in        { animation-name: wma-aos-reveal-up; }
[data-wma-anim="reveal-down"][data-wma-trigger="once"].wma-aos-in      { animation-name: wma-aos-reveal-down; }
[data-wma-anim="reveal-left"][data-wma-trigger="once"].wma-aos-in      { animation-name: wma-aos-reveal-left; }
[data-wma-anim="reveal-right"][data-wma-trigger="once"].wma-aos-in     { animation-name: wma-aos-reveal-right; }
/* Blur In */
[data-wma-anim="blur-in"][data-wma-trigger="once"].wma-aos-in          { animation-name: wma-aos-blur-in; }

/* will-change cleanup after the animation finishes (engine adds .wma-aos-done). */
[data-wma-anim].wma-aos-done {
	will-change: auto;
}

/* ============================================================
   KEYFRAMES
   ============================================================ */

/* ---- Fade ---- */
@keyframes wma-aos-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes wma-aos-fade-up {
	from { opacity: 0; transform: translateY(var(--wma-aos-distance, 32px)); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes wma-aos-fade-down {
	from { opacity: 0; transform: translateY(calc(-1 * var(--wma-aos-distance, 32px))); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes wma-aos-fade-left {
	from { opacity: 0; transform: translateX(var(--wma-aos-distance, 32px)); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes wma-aos-fade-right {
	from { opacity: 0; transform: translateX(calc(-1 * var(--wma-aos-distance, 32px))); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes wma-aos-fade-up-left {
	from { opacity: 0; transform: translate(var(--wma-aos-distance, 32px), var(--wma-aos-distance, 32px)); }
	to   { opacity: 1; transform: translate(0, 0); }
}
@keyframes wma-aos-fade-up-right {
	from { opacity: 0; transform: translate(calc(-1 * var(--wma-aos-distance, 32px)), var(--wma-aos-distance, 32px)); }
	to   { opacity: 1; transform: translate(0, 0); }
}
@keyframes wma-aos-fade-down-left {
	from { opacity: 0; transform: translate(var(--wma-aos-distance, 32px), calc(-1 * var(--wma-aos-distance, 32px))); }
	to   { opacity: 1; transform: translate(0, 0); }
}
@keyframes wma-aos-fade-down-right {
	from { opacity: 0; transform: translate(calc(-1 * var(--wma-aos-distance, 32px)), calc(-1 * var(--wma-aos-distance, 32px))); }
	to   { opacity: 1; transform: translate(0, 0); }
}

/* ---- Flip (no opacity change; the turn carries the reveal) ---- */
@keyframes wma-aos-flip-up {
	from { transform: perspective(800px) rotateX(-90deg); }
	to   { transform: perspective(800px) rotateX(0); }
}
@keyframes wma-aos-flip-down {
	from { transform: perspective(800px) rotateX(90deg); }
	to   { transform: perspective(800px) rotateX(0); }
}
@keyframes wma-aos-flip-left {
	from { transform: perspective(800px) rotateY(90deg); }
	to   { transform: perspective(800px) rotateY(0); }
}
@keyframes wma-aos-flip-right {
	from { transform: perspective(800px) rotateY(-90deg); }
	to   { transform: perspective(800px) rotateY(0); }
}

/* ---- Slide (translate only) ---- */
@keyframes wma-aos-slide-up {
	from { transform: translateY(var(--wma-aos-distance, 48px)); }
	to   { transform: translateY(0); }
}
@keyframes wma-aos-slide-down {
	from { transform: translateY(calc(-1 * var(--wma-aos-distance, 48px))); }
	to   { transform: translateY(0); }
}
@keyframes wma-aos-slide-left {
	from { transform: translateX(var(--wma-aos-distance, 48px)); }
	to   { transform: translateX(0); }
}
@keyframes wma-aos-slide-right {
	from { transform: translateX(calc(-1 * var(--wma-aos-distance, 48px))); }
	to   { transform: translateX(0); }
}

/* ---- Zoom In ---- */
@keyframes wma-aos-zoom-in {
	from { opacity: 0; transform: scale(0.6); }
	to   { opacity: 1; transform: scale(1); }
}
@keyframes wma-aos-zoom-in-up {
	from { opacity: 0; transform: scale(0.6) translateY(var(--wma-aos-distance, 40px)); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes wma-aos-zoom-in-down {
	from { opacity: 0; transform: scale(0.6) translateY(calc(-1 * var(--wma-aos-distance, 40px))); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes wma-aos-zoom-in-left {
	from { opacity: 0; transform: scale(0.6) translateX(var(--wma-aos-distance, 40px)); }
	to   { opacity: 1; transform: scale(1) translateX(0); }
}
@keyframes wma-aos-zoom-in-right {
	from { opacity: 0; transform: scale(0.6) translateX(calc(-1 * var(--wma-aos-distance, 40px))); }
	to   { opacity: 1; transform: scale(1) translateX(0); }
}

/* ---- Zoom Out ---- */
@keyframes wma-aos-zoom-out {
	from { opacity: 0; transform: scale(1.3); }
	to   { opacity: 1; transform: scale(1); }
}
@keyframes wma-aos-zoom-out-up {
	from { opacity: 0; transform: scale(1.3) translateY(var(--wma-aos-distance, 40px)); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes wma-aos-zoom-out-down {
	from { opacity: 0; transform: scale(1.3) translateY(calc(-1 * var(--wma-aos-distance, 40px))); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes wma-aos-zoom-out-left {
	from { opacity: 0; transform: scale(1.3) translateX(var(--wma-aos-distance, 40px)); }
	to   { opacity: 1; transform: scale(1) translateX(0); }
}
@keyframes wma-aos-zoom-out-right {
	from { opacity: 0; transform: scale(1.3) translateX(calc(-1 * var(--wma-aos-distance, 40px))); }
	to   { opacity: 1; transform: scale(1) translateX(0); }
}

/* ---- Slide Reveal (clip-path wipe + small settle translate) ---- */
@keyframes wma-aos-reveal-up {
	from { clip-path: inset(100% 0 0 0); transform: translateY(20px); }
	to   { clip-path: inset(0 0 0 0); transform: translateY(0); }
}
@keyframes wma-aos-reveal-down {
	from { clip-path: inset(0 0 100% 0); transform: translateY(-20px); }
	to   { clip-path: inset(0 0 0 0); transform: translateY(0); }
}
@keyframes wma-aos-reveal-left {
	from { clip-path: inset(0 0 0 100%); transform: translateX(20px); }
	to   { clip-path: inset(0 0 0 0); transform: translateX(0); }
}
@keyframes wma-aos-reveal-right {
	from { clip-path: inset(0 100% 0 0); transform: translateX(-20px); }
	to   { clip-path: inset(0 0 0 0); transform: translateX(0); }
}

/* ---- Blur In ---- */
@keyframes wma-aos-blur-in {
	from { opacity: 0; filter: blur(12px); }
	to   { opacity: 1; filter: blur(0); }
}

/* ============================================================
   SCRUB MODE - native scroll-driven animations
   ------------------------------------------------------------
   Progress is bound to the element's visibility within the viewport. We
   feature-detect support and only hide the "from" state when the browser can
   actually drive the timeline, so unsupported browsers show content normally.
   Every entrance effect is scrub-capable; the engine emits the same keyframe.
   ============================================================ */
@supports (animation-timeline: view()) {
	[data-wma-anim][data-wma-trigger="scrub"] {
		animation-fill-mode: both;
		animation-timing-function: linear;
		animation-timeline: view();
		animation-range: entry 0% cover 45%;
	}

	/* Fade */
	[data-wma-anim="fade"][data-wma-trigger="scrub"]            { animation-name: wma-aos-fade; }
	[data-wma-anim="fade-up"][data-wma-trigger="scrub"]         { animation-name: wma-aos-fade-up; }
	[data-wma-anim="fade-down"][data-wma-trigger="scrub"]       { animation-name: wma-aos-fade-down; }
	[data-wma-anim="fade-left"][data-wma-trigger="scrub"]       { animation-name: wma-aos-fade-left; }
	[data-wma-anim="fade-right"][data-wma-trigger="scrub"]      { animation-name: wma-aos-fade-right; }
	[data-wma-anim="fade-up-left"][data-wma-trigger="scrub"]    { animation-name: wma-aos-fade-up-left; }
	[data-wma-anim="fade-up-right"][data-wma-trigger="scrub"]   { animation-name: wma-aos-fade-up-right; }
	[data-wma-anim="fade-down-left"][data-wma-trigger="scrub"]  { animation-name: wma-aos-fade-down-left; }
	[data-wma-anim="fade-down-right"][data-wma-trigger="scrub"] { animation-name: wma-aos-fade-down-right; }
	/* Flip */
	[data-wma-anim="flip-up"][data-wma-trigger="scrub"]         { animation-name: wma-aos-flip-up; }
	[data-wma-anim="flip-down"][data-wma-trigger="scrub"]       { animation-name: wma-aos-flip-down; }
	[data-wma-anim="flip-left"][data-wma-trigger="scrub"]       { animation-name: wma-aos-flip-left; }
	[data-wma-anim="flip-right"][data-wma-trigger="scrub"]      { animation-name: wma-aos-flip-right; }
	/* Slide */
	[data-wma-anim="slide-up"][data-wma-trigger="scrub"]        { animation-name: wma-aos-slide-up; }
	[data-wma-anim="slide-down"][data-wma-trigger="scrub"]      { animation-name: wma-aos-slide-down; }
	[data-wma-anim="slide-left"][data-wma-trigger="scrub"]      { animation-name: wma-aos-slide-left; }
	[data-wma-anim="slide-right"][data-wma-trigger="scrub"]     { animation-name: wma-aos-slide-right; }
	/* Zoom In */
	[data-wma-anim="zoom-in"][data-wma-trigger="scrub"]         { animation-name: wma-aos-zoom-in; }
	[data-wma-anim="zoom-in-up"][data-wma-trigger="scrub"]      { animation-name: wma-aos-zoom-in-up; }
	[data-wma-anim="zoom-in-down"][data-wma-trigger="scrub"]    { animation-name: wma-aos-zoom-in-down; }
	[data-wma-anim="zoom-in-left"][data-wma-trigger="scrub"]    { animation-name: wma-aos-zoom-in-left; }
	[data-wma-anim="zoom-in-right"][data-wma-trigger="scrub"]   { animation-name: wma-aos-zoom-in-right; }
	/* Zoom Out */
	[data-wma-anim="zoom-out"][data-wma-trigger="scrub"]        { animation-name: wma-aos-zoom-out; }
	[data-wma-anim="zoom-out-up"][data-wma-trigger="scrub"]     { animation-name: wma-aos-zoom-out-up; }
	[data-wma-anim="zoom-out-down"][data-wma-trigger="scrub"]   { animation-name: wma-aos-zoom-out-down; }
	[data-wma-anim="zoom-out-left"][data-wma-trigger="scrub"]   { animation-name: wma-aos-zoom-out-left; }
	[data-wma-anim="zoom-out-right"][data-wma-trigger="scrub"]  { animation-name: wma-aos-zoom-out-right; }
	/* Slide Reveal */
	[data-wma-anim="reveal-up"][data-wma-trigger="scrub"]       { animation-name: wma-aos-reveal-up; }
	[data-wma-anim="reveal-down"][data-wma-trigger="scrub"]     { animation-name: wma-aos-reveal-down; }
	[data-wma-anim="reveal-left"][data-wma-trigger="scrub"]     { animation-name: wma-aos-reveal-left; }
	[data-wma-anim="reveal-right"][data-wma-trigger="scrub"]    { animation-name: wma-aos-reveal-right; }
	/* Blur In */
	[data-wma-anim="blur-in"][data-wma-trigger="scrub"]         { animation-name: wma-aos-blur-in; }
}

/* ============================================================
   REDUCED MOTION - kill all motion, force visible end state
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
	html.wma-aos-ready [data-wma-anim],
	html.wma-aos-ready [data-wma-anim]:not(.wma-aos-in),
	[data-wma-anim][data-wma-trigger="scrub"] {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		clip-path: none !important;
		animation: none !important;
		animation-timeline: auto !important;
	}
}
