/* Scroll Reveal Animations */

/* ---------- Base State (before entering viewport) ---------- */
[data-animate] {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------- Animated (in viewport) ---------- */
[data-animate].is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Animation Variants ---------- */
[data-animate="fade-up"] {
	transform: translateY(30px);
}

[data-animate="fade-in"] {
	transform: none;
}

[data-animate="fade-left"] {
	transform: translateX(-30px);
}

[data-animate="fade-right"] {
	transform: translateX(30px);
}

[data-animate="scale-up"] {
	transform: scale(0.95);
}

[data-animate="fade-left"].is-visible,
[data-animate="fade-right"].is-visible,
[data-animate="scale-up"].is-visible {
	opacity: 1;
	transform: none;
}

/* ---------- Staggered Children ---------- */
[data-animate-stagger] {
	transition-delay: calc(var(--stagger-index, 0) * 0.1s);
}

/* Stagger up to 12 items */
[data-animate-stagger]:nth-child(1) { --stagger-index: 0; }
[data-animate-stagger]:nth-child(2) { --stagger-index: 1; }
[data-animate-stagger]:nth-child(3) { --stagger-index: 2; }
[data-animate-stagger]:nth-child(4) { --stagger-index: 3; }
[data-animate-stagger]:nth-child(5) { --stagger-index: 4; }
[data-animate-stagger]:nth-child(6) { --stagger-index: 5; }
[data-animate-stagger]:nth-child(7) { --stagger-index: 6; }
[data-animate-stagger]:nth-child(8) { --stagger-index: 7; }
[data-animate-stagger]:nth-child(9) { --stagger-index: 8; }
[data-animate-stagger]:nth-child(10) { --stagger-index: 9; }
[data-animate-stagger]:nth-child(11) { --stagger-index: 10; }
[data-animate-stagger]:nth-child(12) { --stagger-index: 11; }

/* ---------- Reduced Motion ---------- */
@media (prefers-reduced-motion: reduce) {
	[data-animate] {
		opacity: 1;
		transform: none;
		transition: none;
	}

	[data-animate-stagger] {
		transition-delay: 0s;
	}
}
