/* ==========================================================================
   Animations — scroll reveals, floating device, keyframes
   ========================================================================== */

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

@keyframes mct-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

@keyframes mct-dna-drift {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-22px); }
}

@keyframes mct-particles-drift {
	from { background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0; }
	to { background-position: 20px -30px, -25px 20px, 15px 25px, -20px -15px, 10px 30px, -15px -25px; }
}

/* ---------- Scroll reveal ---------- */
[data-mct-reveal] {
	opacity: 0;
	transition: opacity 0.8s var(--mct-ease), transform 0.8s var(--mct-ease);
	transition-delay: var(--mct-reveal-delay, 0ms);
	will-change: transform, opacity;
}

[data-mct-reveal="fade-up"] {
	transform: translateY(36px);
}

[data-mct-reveal="fade-left"] {
	transform: translateX(-36px);
}

[data-mct-reveal="fade-right"] {
	transform: translateX(36px);
}

[data-mct-reveal].is-visible {
	opacity: 1;
	transform: translate(0, 0);
}

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

	.mct-hero__device,
	.mct-hero__ring,
	.mct-hero__particles,
	.mct-hero__dna,
	.mct-hero__scroll-line {
		animation: none !important;
	}
}
