/*
 * Opacity and translate only. Blur filters stay off so the page can scroll
 * without repainting every revealed block.
 */
[data-reveal="block"] {
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity var(--duration-slow) var(--ease-premium),
		transform var(--duration-slow) var(--ease-premium);
}

[data-reveal="block"].is-revealed {
	opacity: 1;
	transform: translateY(0);
}

.reveal-sentence {
	display: inline-block;
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity var(--duration-slow) var(--ease-premium),
		transform var(--duration-slow) var(--ease-premium);
}

.is-revealed .reveal-sentence {
	opacity: 1;
	transform: translateY(0);
}

/* Staggered hero — brand, typed slogan, location, CTAs (usable immediately) */
html:not(.is-loaded) .hero__brand,
html:not(.is-loaded) .hero__eyebrow,
html:not(.is-loaded) .hero__sub,
html:not(.is-loaded) .hero__actions,
html:not(.is-loaded) .hero__scroll {
	opacity: 0;
}

html.is-loaded .hero__brand {
	animation: olv-hero-rise 1.15s var(--ease-premium) 0.12s both;
}

html.is-loaded .hero__tagline {
	opacity: 1;
}

html.is-loaded .hero__eyebrow {
	animation: olv-hero-rise 1s var(--ease-premium) 1.35s both;
}

html.is-loaded .hero__sub {
	animation: olv-hero-rise 1s var(--ease-premium) 1.5s both;
}

html.is-loaded .hero__actions {
	animation: olv-hero-rise 0.9s var(--ease-premium) 0.45s both;
}

html.is-loaded .hero__scroll {
	animation: olv-hero-rise 0.9s var(--ease-premium) 1.7s both;
}

@keyframes olv-hero-rise {
	from {
		opacity: 0;
		transform: translateY(22px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes olv-hero-rule {
	from {
		opacity: 0;
		transform: scaleX(0);
	}
	to {
		opacity: 1;
		transform: scaleX(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal="block"],
	[data-reveal="block"].is-revealed,
	.reveal-sentence,
	.is-revealed .reveal-sentence {
		transform: none;
		transition: opacity var(--duration-fast) var(--ease-standard);
		transition-delay: 0s !important;
	}

	html:not(.is-loaded) .hero__brand,
	html:not(.is-loaded) .hero__eyebrow,
	html:not(.is-loaded) .hero__sub,
	html:not(.is-loaded) .hero__actions,
	html:not(.is-loaded) .hero__scroll,
	html.is-loaded .hero__eyebrow,
	html.is-loaded .hero__brand,
	html.is-loaded .hero__sub,
	html.is-loaded .hero__actions,
	html.is-loaded .hero__scroll {
		animation: none;
		opacity: 1;
		transform: none;
	}
}
