@keyframes flow-pulse {
  0% { top: -30%; opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .slide { transition: none; }
  .step-hidden { transition: none; }
  .stream-list li { transition: none; opacity: 1; transform: none; }
  .flow-connector-line::after { animation: none; }
}
