/* Elementy jeszcze „uśpione” */
.slow-motion,
[data-slow] {
  transform: translateY(20px);
  opacity: 0;
  transition: transform 800ms ease, opacity 800ms ease;
  will-change: transform, opacity;
}

/* Widoczne (po wejściu w viewport) */
.is-slow-visible {
  transform: translateY(0);
  opacity: 1;
}

[data-slow] {
  transform: translateY(20px) scale(0.96);
  opacity: 0;
  transition: transform 700ms cubic-bezier(.25,.8,.25,1), opacity 700ms ease;
}
.is-slow-visible {
  transform: translateY(0) scale(1);
  opacity: 1;
}

/* Użytkownik woli mniej ruchu */
@media (prefers-reduced-motion: reduce) {
  .slow-motion,
  [data-slow] {
    transition: none;
    transform: none;
    opacity: 1;
  }
}
