/* Vertical Word Stagger - aktiv für Elemente mit der Klasse .text-animation */
.text-animation .vws-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(30px);
  will-change: transform, opacity;
}

.text-animation.vws-visible .vws-word {
  animation-name: var(--vws-anim, vwsInUp);
  animation-duration: var(--vws-duration, 760ms);
  animation-timing-function: var(--vws-ease, cubic-bezier(.17,.84,.27,1.08));
  animation-fill-mode: both;
  animation-delay: var(--vws-delay, 0ms);
}

@keyframes vwsInUp {
  0% { opacity: 0; transform: translateY(36px); }
  60% { opacity: 1; transform: translateY(-4px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes vwsInDown {
  0% { opacity: 0; transform: translateY(-32px); }
  58% { opacity: 1; transform: translateY(3px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes vwsInLeft {
  0% { opacity: 0; transform: translateX(-36px); }
  60% { opacity: 1; transform: translateX(4px); }
  100% { opacity: 1; transform: translateX(0); }
}

@keyframes vwsInRight {
  0% { opacity: 0; transform: translateX(36px); }
  60% { opacity: 1; transform: translateX(-4px); }
  100% { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .text-animation .vws-word {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
