/* ==========================================================================
   Animationen: Scroll-Reveals (nur transform, nie opacity:0 als Startzustand),
   Hero-Einblendung, Micro-Interactions
   ========================================================================== */

.reveal {
	transform: translateY(28px);
	transition: transform 640ms var(--ease-out);
}

.reveal.is-visible {
	transform: translateY(0);
}

/* Karten im Grid: gestaffelt über --stagger (inline gesetzt) */
.dsk-service-card.reveal {
	transition-delay: var(--stagger, 0ms);
}

.reveal-hero {
	transform: translateY(16px);
	transition: transform 620ms var(--ease-out);
}

.reveal-hero:nth-child(1) { transition-delay: 40ms; }
.reveal-hero:nth-child(2) { transition-delay: 100ms; }
.reveal-hero:nth-child(3) { transition-delay: 160ms; }
.reveal-hero:nth-child(4) { transition-delay: 220ms; }
.reveal-hero:nth-child(5) { transition-delay: 280ms; }

.dsk-hero.is-loaded .reveal-hero {
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.reveal, .reveal-hero {
		transform: none !important;
		transition: none !important;
	}
}

/* Sticky Header: siehe .is-scrolled in layout.css (padding-Übergang) */

/* Karten / Buttons Press-Feedback ist in components.css (transform: scale) */

.dsk-gallery__item,
.dsk-service-card__media img {
	will-change: transform;
}
