/* ============================================================
   ANIMATIONS — NoisyPixel.com
   @keyframes definitions and scroll-reveal animation classes.
   ============================================================ */

/* ===== @keyframes ===== */

@keyframes ticker {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@keyframes fadeUp {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes glowPulse {
	0%,
	100% {
		opacity: 0.6;
	}
	50% {
		opacity: 1;
	}
}

@keyframes float {
	0%,
	100% {
		transform: translateY(0px);
	}
	50% {
		transform: translateY(-12px);
	}
}

/* ===== Scroll Reveal ===== */
/* Single element: add .reveal, JS adds .visible when entering viewport */
.reveal {
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 0.6s ease,
		transform 0.6s ease;
}
.reveal.visible {
	opacity: 1;
	transform: translateY(0);
}

/* ===== Staggered Children Reveal ===== */
/* Parent wrapper: add .reveal-stagger; JS adds .visible to each child */
.reveal-stagger > * {
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 0.6s ease,
		transform 0.6s ease;
}
.reveal-stagger > *.visible {
	opacity: 1;
	transform: translateY(0);
}

/* Stagger delay per child (up to 10 items) */
.reveal-stagger > *:nth-child(1) {
	transition-delay: 0ms;
}
.reveal-stagger > *:nth-child(2) {
	transition-delay: 80ms;
}
.reveal-stagger > *:nth-child(3) {
	transition-delay: 160ms;
}
.reveal-stagger > *:nth-child(4) {
	transition-delay: 240ms;
}
.reveal-stagger > *:nth-child(5) {
	transition-delay: 320ms;
}
.reveal-stagger > *:nth-child(6) {
	transition-delay: 400ms;
}
.reveal-stagger > *:nth-child(7) {
	transition-delay: 480ms;
}
.reveal-stagger > *:nth-child(8) {
	transition-delay: 560ms;
}
.reveal-stagger > *:nth-child(9) {
	transition-delay: 640ms;
}
.reveal-stagger > *:nth-child(10) {
	transition-delay: 720ms;
}
