/**
 * Framework — Animation utilities (CSS)
 * =====================================
 * Paired with assets/js/animations.js. Every class here is a BEHAVIOUR hook:
 * it sets only the pre-animation state. It must never carry design styling
 * (colour, size, spacing) — that belongs on the element or a c-* class.
 *
 * Migrated from WPCodeBox 2026-09-03 (snippets 32, 39, 41).
 * Requires: GSAP + ScrollTrigger (+ SplitText for the text utilities).
 */

/* ==========================================================
   REVEAL — clip-path curtain
   .u-reveal-ltr        starts 30% visible (teaser strip)
   .u-reveal-ltr--full  starts fully hidden
   ========================================================== */

.u-reveal-ltr {
	clip-path: inset(0 70% 0 0);
	transition: none; /* GSAP drives this, not CSS */
}

.u-reveal-ltr--full {
	clip-path: inset(0 100% 0 0);
	transition: none;
}

.u-reveal-rtl {
	clip-path: inset(0 0 0 70%);
	transition: none;
}

.u-reveal-rtl--full {
	clip-path: inset(0 0 0 100%);
	transition: none;
}

/* ==========================================================
   SPLIT TEXT — word and line reveals
   SplitText must be able to measure the element, so it stays
   visible; the JS hides the split fragments, not the element.
   ========================================================== */

.u-split-words,
.u-split-words--slow,
.u-line-reveal,
.u-line-reveal--slow {
	visibility: visible;
}

/* ==========================================================
   ACCESSIBILITY — reduced motion (CURRENTLY DISABLED)
   ----------------------------------------------------------
   Decision 2026-09-03: animations run for every visitor.
   Motion is core to the design language on these projects.

   TO RE-ENABLE, uncomment the block below AND set
   RESPECT_REDUCED_MOTION = true in assets/js/animations.js.
   Both are required — the flag alone leaves these start states
   clipped, the CSS alone leaves the tweens running.
   ========================================================== */

/*
@media (prefers-reduced-motion: reduce) {

	.u-reveal-ltr,
	.u-reveal-ltr--full,
	.u-reveal-rtl,
	.u-reveal-rtl--full {
		clip-path: none;
	}
}
*/
