/* Shared scroll-reveal animations. JS adds .mea-anim-ready to a section, then
   .is-visible when it scrolls into view. */
.mea-anim-ready [data-mea-reveal] {
	opacity: 0;
	transition: opacity 0.7s ease, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--mea-delay, 0s);
	will-change: opacity, transform;
}

.mea-anim-ready [data-mea-reveal="up"] {
	transform: translateY(40px);
}

.mea-anim-ready [data-mea-reveal="left"] {
	transform: translateX(-60px);
}

.mea-anim-ready [data-mea-reveal="right"] {
	transform: translateX(60px);
}

.mea-anim-ready [data-mea-reveal="zoom"] {
	transform: scale(0.92);
}

.mea-anim-ready.is-visible [data-mea-reveal] {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.mea-anim-ready [data-mea-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
