/* ==========================================================================
   Animate on Scroll — fade + rise entrance effect
   Progressive enhancement: only activates when JS adds .ac-will-animate.
   Content is always fully visible without JS (no opacity:0 in base styles).
   ========================================================================== */

/* JS adds this class to each card before observing it */
.ac-will-animate {
	opacity:    0;
	transform:  translateY( 52px );
	transition:
		opacity   0.65s cubic-bezier( 0.22, 1, 0.36, 1 ) var(--ac-anim-delay, 0ms),
		transform 0.65s cubic-bezier( 0.22, 1, 0.36, 1 ) var(--ac-anim-delay, 0ms);
}

/* JS adds this class when the element enters the viewport */
.ac-will-animate.ac-animated {
	opacity:   1;
	transform: translateY( 0 );
}

/* ------------------------------------------------------------------
   WCAG 2.1 SC 2.3.3 / prefers-reduced-motion safety net
   Even if JS somehow adds .ac-will-animate, motion is suppressed here.
   JS also exits early for this preference, so this is a double-guard.
   ------------------------------------------------------------------ */
@media ( prefers-reduced-motion: reduce ) {
	.ac-will-animate {
		opacity:    1 !important;
		transform:  none !important;
		transition: none !important;
	}
}
