/* ============================================================
   motion.css — Scroll-Reveal-Zustände + Parallax (L2, galerie-sanft)
   "Schichten"-Reveal als Echo der Maltechnik (Sediment/Schicht).
   JS (gsap-init.js) togglet .is-inview. prefers-reduced-motion → alles sichtbar.
   ============================================================ */

[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--dur-3) var(--ease-out), transform var(--dur-3) var(--ease-out);
  will-change: opacity, transform;
}
[data-reveal="fade"] { transform: none; }
[data-reveal="left"] { transform: translateX(-32px); }
[data-reveal="right"] { transform: translateX(32px); }
[data-reveal="scale"] { transform: scale(.96); }

[data-reveal].is-inview {
  opacity: 1;
  transform: none;
}

/* Gestaffeltes Erscheinen (Galerie-Raster, Schicht für Schicht) */
[data-stagger] > * {
  opacity: 0; transform: translateY(34px);
  transition: opacity var(--dur-3) var(--ease-out), transform var(--dur-3) var(--ease-out);
}
[data-stagger].is-inview > * { opacity: 1; transform: none; }
[data-stagger].is-inview > *:nth-child(2) { transition-delay: .08s; }
[data-stagger].is-inview > *:nth-child(3) { transition-delay: .16s; }
[data-stagger].is-inview > *:nth-child(4) { transition-delay: .24s; }
[data-stagger].is-inview > *:nth-child(5) { transition-delay: .32s; }
[data-stagger].is-inview > *:nth-child(6) { transition-delay: .40s; }
[data-stagger].is-inview > *:nth-child(n+7) { transition-delay: .48s; }

/* Parallax-Ziel (gsap-init.js setzt --py per rAF) */
[data-parallax] { will-change: transform; transform: translate3d(0, var(--py, 0), 0); }

/* Wort-/Zeilen-Reveal (SplitText-ähnlich, vanilla) */
.split-line { display: block; overflow: hidden; }
.split-line > span {
  display: block; transform: translateY(105%);
  transition: transform var(--dur-3) var(--ease-out);
}
.is-inview .split-line > span { transform: translateY(0); }
.is-inview .split-line:nth-child(2) > span { transition-delay: .08s; }
.is-inview .split-line:nth-child(3) > span { transition-delay: .16s; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-stagger] > *, .split-line > span {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  [data-parallax] { transform: none !important; }
}
