.has-motion [data-reveal] {
	opacity: 0;
	clip-path: inset(0 0 16% 0 round var(--apex-radius-sm));
	transform: translateY(2rem);
	transition:
		opacity 680ms ease,
		clip-path 860ms var(--apex-ease),
		transform 860ms var(--apex-ease);
}

.has-motion [data-reveal].is-revealed {
	opacity: 1;
	clip-path: inset(0 0 0 0 round var(--apex-radius-sm));
	transform: translateY(0);
}

[data-parallax] {
	will-change: transform;
}

[data-tilt] {
	transform: perspective(900px) rotateX(var(--apex-tilt-x, 0deg)) rotateY(var(--apex-tilt-y, 0deg));
	transform-style: preserve-3d;
	transition: transform 300ms var(--apex-ease), color 260ms ease, padding 260ms var(--apex-ease);
}

.apex-magnetic {
	transform: translate3d(var(--apex-magnetic-x, 0), var(--apex-magnetic-y, 0), 0);
	will-change: transform;
}

.apex-service-ticker__track,
.apex-final-cta__marquee,
.apex-risk__text-loop {
	animation: apex-marquee 30s linear infinite;
}

.apex-risk__text-loop {
	animation-duration: 36s;
	animation-direction: reverse;
}

.apex-hero__orbit {
	animation: apex-orbit-spin 24s linear infinite;
}

.apex-benefit-card__graphic {
	animation: apex-breathe 8s ease-in-out infinite;
}

@keyframes apex-marquee {
	to { transform: translateX(-50%); }
}

@keyframes apex-orbit-spin {
	to { transform: rotate(360deg); }
}

@keyframes apex-breathe {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.has-motion [data-reveal] {
		opacity: 1;
		clip-path: none;
		transform: none;
	}

	[data-parallax],
	[data-tilt],
	.apex-magnetic {
		transform: none !important;
	}
}
