/**
 * Scroll animations — subtle fade-in-up driven by IntersectionObserver.
 * Elements with .acd-fade-up start slightly offset + transparent, then get
 * .is-visible added when they enter the viewport.
 */

.acd-fade-up {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}

.acd-fade-up.is-visible {
	opacity: 1;
	transform: none;
}

/* Stagger cards within a grid for a nicer cascade. */
.acd-grid .acd-fade-up.is-visible {
	transition-delay: calc(var(--acd-stagger, 0) * 70ms);
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
	.acd-fade-up {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
