/* ================================================================
   ATZ — SCROLL-REVEAL ANIMATIONS
   Lekkie, fast (250ms ease-out), bez disorienting bouncy efektów.
   Każdy element startuje opacity 0 + translateY(16px) i animuje do
   normalnej pozycji gdy IntersectionObserver doda klasę .is-in.
   ================================================================ */

/* Default initial state — wszystko z .atz-reveal */
.atz-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 0.6s var(--ease, cubic-bezier(.2,.7,.2,1)),
		transform 0.6s var(--ease, cubic-bezier(.2,.7,.2,1));
	will-change: opacity, transform;
}
.atz-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* Variants */
.atz-reveal--up    { transform: translateY(24px); }
.atz-reveal--right { transform: translateX(-24px); }
.atz-reveal--left  { transform: translateX(24px); }
.atz-reveal--scale { transform: scale(0.98); }

.atz-reveal--up.is-in,
.atz-reveal--right.is-in,
.atz-reveal--left.is-in,
.atz-reveal--scale.is-in { transform: none; }

/* Stagger — auto-delays for children */
.atz-stagger > * {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 0.5s var(--ease, cubic-bezier(.2,.7,.2,1)),
		transform 0.5s var(--ease, cubic-bezier(.2,.7,.2,1));
}
.atz-stagger.is-in > * { opacity: 1; transform: none; }
.atz-stagger.is-in > *:nth-child(1) { transition-delay: 0ms; }
.atz-stagger.is-in > *:nth-child(2) { transition-delay: 80ms; }
.atz-stagger.is-in > *:nth-child(3) { transition-delay: 160ms; }
.atz-stagger.is-in > *:nth-child(4) { transition-delay: 240ms; }
.atz-stagger.is-in > *:nth-child(5) { transition-delay: 320ms; }
.atz-stagger.is-in > *:nth-child(6) { transition-delay: 400ms; }
.atz-stagger.is-in > *:nth-child(7) { transition-delay: 480ms; }
.atz-stagger.is-in > *:nth-child(8) { transition-delay: 560ms; }
.atz-stagger.is-in > *:nth-child(9) { transition-delay: 640ms; }

/* HERO — word-by-word reveal on initial load (no IO needed) */
.atz-hero-photo__title .word {
	display: inline-block;
	opacity: 0;
	transform: translateY(20px);
	animation: atz-word-up 0.6s var(--ease, cubic-bezier(.2,.7,.2,1)) forwards;
}
.atz-hero-photo__title .word:nth-child(1) { animation-delay: 0.15s; }
.atz-hero-photo__title .word:nth-child(2) { animation-delay: 0.30s; }
.atz-hero-photo__title .word:nth-child(3) { animation-delay: 0.45s; }
.atz-hero-photo__title .word:nth-child(4) { animation-delay: 0.60s; }
.atz-hero-photo__title .word:nth-child(5) { animation-delay: 0.75s; }
.atz-hero-photo__title .word:nth-child(6) { animation-delay: 0.90s; }

@keyframes atz-word-up {
	to { opacity: 1; transform: none; }
}

/* HERO eyebrow + lead + CTA — fade in slightly later */
.atz-hero-photo__eyebrow,
.atz-hero-photo__lead,
.atz-hero-photo__cta,
.atz-hero-photo__card {
	opacity: 0;
	animation: atz-fade-in 0.5s var(--ease, cubic-bezier(.2,.7,.2,1)) forwards;
}
.atz-hero-photo__eyebrow { animation-delay: 0.05s; }
.atz-hero-photo__lead    { animation-delay: 1.05s; }
.atz-hero-photo__cta     { animation-delay: 1.20s; }
.atz-hero-photo__card    { animation-delay: 1.35s; }

@keyframes atz-fade-in {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: none; }
}

/* HERO spec strip — bottom up cascade */
.atz-hero-photo__strip-cell {
	opacity: 0;
	animation: atz-fade-in 0.5s var(--ease, cubic-bezier(.2,.7,.2,1)) forwards;
}
.atz-hero-photo__strip-cell:nth-child(1) { animation-delay: 1.40s; }
.atz-hero-photo__strip-cell:nth-child(2) { animation-delay: 1.50s; }
.atz-hero-photo__strip-cell:nth-child(3) { animation-delay: 1.60s; }
.atz-hero-photo__strip-cell:nth-child(4) { animation-delay: 1.70s; }

/* Mobile menu — already has stagger keyframe (atz-stagger), keep it.
   For non-mobile-menu element with same name pattern — fine. */

/* Reduced motion — disable everything */
@media (prefers-reduced-motion: reduce) {
	.atz-reveal,
	.atz-reveal--up,
	.atz-reveal--right,
	.atz-reveal--left,
	.atz-reveal--scale,
	.atz-stagger > *,
	.atz-hero-photo__title .word,
	.atz-hero-photo__eyebrow,
	.atz-hero-photo__lead,
	.atz-hero-photo__cta,
	.atz-hero-photo__card,
	.atz-hero-photo__strip-cell {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
		transition: none !important;
	}
}
