/**
 * Sitewide motion — hero text rise, scroll reveals, staggered children.
 */

:root {
	--st-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--st-motion-dur: 0.85s;
	--st-motion-dur-fast: 0.55s;
}

/* ── Hero entrance (page load) ── */
.st-motion-hero > * {
	opacity: 0;
	transform: translateY(1.15rem);
	animation: st-motion-rise var(--st-motion-dur) var(--st-motion-ease) forwards;
}

.st-motion-hero > *:nth-child(1) { animation-delay: 0.08s; }
.st-motion-hero > *:nth-child(2) { animation-delay: 0.18s; }
.st-motion-hero > *:nth-child(3) { animation-delay: 0.28s; }
.st-motion-hero > *:nth-child(4) { animation-delay: 0.4s; }
.st-motion-hero > *:nth-child(5) { animation-delay: 0.5s; }

@keyframes st-motion-rise {
	to {
		opacity: 1;
		transform: none;
	}
}

/* ── Scroll reveal blocks ── */
.st-reveal {
	opacity: 0;
	transform: translateY(1.75rem);
	transition:
		opacity var(--st-motion-dur) var(--st-motion-ease),
		transform var(--st-motion-dur) var(--st-motion-ease);
	will-change: opacity, transform;
}

.st-reveal.is-in {
	opacity: 1;
	transform: none;
}

.st-reveal--left {
	transform: translateX(-1.25rem);
}

.st-reveal--right {
	transform: translateX(1.25rem);
}

.st-reveal--left.is-in,
.st-reveal--right.is-in {
	transform: none;
}

.st-reveal--scale {
	transform: translateY(1rem) scale(0.98);
}

.st-reveal--scale.is-in {
	transform: none;
}

/* Stagger delays for direct children marked as st-reveal-item */
.st-reveal-stagger > .st-reveal-item,
.st-reveal .st-reveal-stagger > .st-reveal-item {
	opacity: 0;
	transform: translateY(1.1rem);
	transition:
		opacity var(--st-motion-dur-fast) var(--st-motion-ease),
		transform var(--st-motion-dur-fast) var(--st-motion-ease);
}

.st-reveal-stagger.is-in > .st-reveal-item,
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item {
	opacity: 1;
	transform: none;
}

.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(1),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(1) { transition-delay: 0.04s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(2),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(2) { transition-delay: 0.1s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(3),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(3) { transition-delay: 0.16s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(4),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(4) { transition-delay: 0.22s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(5),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(5) { transition-delay: 0.28s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(6),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(6) { transition-delay: 0.34s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(7),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(7) { transition-delay: 0.4s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(8),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(8) { transition-delay: 0.46s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(9),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(9) { transition-delay: 0.52s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(10),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(10) { transition-delay: 0.58s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(11),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(11) { transition-delay: 0.64s; }
.st-reveal.is-in .st-reveal-stagger > .st-reveal-item:nth-child(12),
.st-reveal-stagger.is-in > .st-reveal-item:nth-child(12) { transition-delay: 0.7s; }

/* Soft hover lift on interactive cards (both homes) */
.st-home--glass .gl-dest-card,
.st-home--glass .v2-trip-card,
.st-home--v2 .gl-hcard,
.st-home--v2 .v2-act,
.st-home--v2 .v2-dest-card {
	transition:
		transform 0.45s var(--st-motion-ease),
		box-shadow 0.45s var(--st-motion-ease),
		border-color 0.35s ease,
		background 0.35s ease;
}

.st-home--glass .gl-dest-card:hover,
.st-home--glass .v2-trip-card:hover,
.st-home--v2 .gl-hcard:hover,
.st-home--v2 .v2-act:hover,
.st-home--v2 .v2-dest-card:hover {
	transform: translateY(-4px);
}

/* Search dock float-in after hero */
.st-home--glass .gl-search-dock.st-reveal {
	transform: translateY(1.25rem);
}

@media (prefers-reduced-motion: reduce) {
	.st-motion-hero > *,
	.st-reveal,
	.st-reveal-stagger > .st-reveal-item {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
		transition: none !important;
	}

	.st-home--glass .gl-dest-card:hover,
	.st-home--glass .v2-trip-card:hover,
	.st-home--v2 .gl-hcard:hover,
	.st-home--v2 .v2-act:hover,
	.st-home--v2 .v2-dest-card:hover {
		transform: none;
	}
}
