/* ==========================================================================
   Motion — Scroll-Reveals (transform-only), Micro-Interactions, Reduced-Motion
   Reveals starten NIE bei opacity:0 (sonst leere Full-Page-Screenshots/Crawler) —
   Inhalt bleibt immer sichtbar, nur eine sanfte Transform-Verschiebung animiert ein.
   ========================================================================== */

.reveal {
	transform: translateY(28px);
	transition: transform var(--dur-slow) var(--ease-out);
	will-change: transform;
}
.reveal.is-visible { transform: translateY(0); }

.reveal-stagger > * {
	transform: translateY(24px);
	transition: transform var(--dur-slow) var(--ease-out);
}
.reveal-stagger.is-visible > * { transform: translateY(0); }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 60ms; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 120ms; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 180ms; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 240ms; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 300ms; }

.svm-hero__inner {
	transform: translateY(16px);
	opacity: 1;
	animation: svm-hero-in var(--dur-slow) var(--ease-out) 80ms both;
}
@keyframes svm-hero-in {
	from { transform: translateY(16px); }
	to { transform: translateY(0); }
}

/* Micro-interactions bereits in components.css (.btn:active); ergänzend Karten/Links */
.svm-team-card, .svm-news-card, .svm-nav__list a, .btn, .svm-card-link {
	will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
	.reveal, .reveal-stagger > *, .svm-hero__inner {
		transition: none !important;
		animation: none !important;
		transform: none !important;
	}
	.svm-news-card, .svm-team-card {
		transition: none !important;
	}
	html { scroll-behavior: auto; }
}
