@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.animate-marquee{display:flex;width:fit-content;animation:marquee 30s linear infinite}.animate-marquee:hover{animation-play-state:paused}@keyframes floatUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.animate-float-up{opacity:0;animation:floatUp .9s cubic-bezier(.16,1,.3,1) forwards}.delay-100{animation-delay:.12s}.delay-200{animation-delay:.24s}.delay-300{animation-delay:.36s}.delay-400{animation-delay:.48s}.section-reveal{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.section-reveal.visible{opacity:1;transform:translateY(0)}@keyframes flowLine{0%{background-position:200% 0}to{background-position:-200% 0}}.pipeline-line{background-image:linear-gradient(90deg,#bfb8d92e 0% 38%,#bfb8d9 50%,#bfb8d92e 62% 100%);background-size:200% 100%;animation:flowLine 3s linear infinite}@keyframes nodePulse{0%,to{box-shadow:0 0 #bfb8d973}50%{box-shadow:0 0 0 7px #bfb8d900}}.pipeline-node{animation:nodePulse 2.4s ease-in-out infinite}@keyframes arrowSlide{0%,to{transform:translate(0);opacity:.5}50%{transform:translate(4px);opacity:1}}.pipeline-arrow{animation:arrowSlide 1.8s ease-in-out infinite}@keyframes pulseGlow{0%,to{transform:scale(1);opacity:.45}50%{transform:scale(1.15);opacity:.7}}.animate-pulse-glow{animation:pulseGlow 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.pipeline-line,.pipeline-node,.pipeline-arrow,.animate-pulse-glow{animation:none}}
