/*
 * happ — Motion layer
 * ---------------------------------------------------------------------------
 * Movement (translate) + subtle opacity only. Mirrors 05-motion-spec.md.
 * Loaded after style.css. Driven by js/happ-motion.js + CSS state classes.
 */

/* --- List item entrance (stagger) -------------------------------------------
 * Items slide in from the side + fade, one after another (100ms step, set by
 * happ-motion.js). Runs on first load AND replays on every tab switch
 * (Contracts <-> Payments) via happ-motion.js reStagger(). */
@keyframes happ-stagger-in-kf {
	from { opacity: 0; transform: translateX(28px); }
	to   { opacity: 1; transform: translateX(0); }
}
.happ-stagger-in {
	animation: happ-stagger-in-kf var(--happ-motion-base) var(--happ-ease-out) both;
	will-change: transform, opacity;
}

/* --- Accessibility: honor reduced-motion ----------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.happ-stagger-in {
		animation: none !important;
	}
}
