@layer utilities{.animate-pulse-slow{animation:pulse 3s cubic-bezier(.4,0,.6,1) infinite}}@keyframes flowParticle{0%{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{offset-distance:100%;opacity:0}}@keyframes connectionPulse{0%,to{stroke-opacity:.6}50%{stroke-opacity:.9}}@keyframes nodeGlow{0%,to{filter:drop-shadow(0 0 3px currentColor)}50%{filter:drop-shadow(0 0 8px currentColor)}}@keyframes slideInCard{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.graph-connection-animated{animation:connectionPulse 3s ease-in-out infinite}.graph-particle{animation:flowParticle 2.5s linear infinite}.graph-node-glow{animation:nodeGlow 2s ease-in-out infinite}.graph-card-enter{animation:slideInCard .3s ease-out forwards}.graph-scale-in{animation:scaleIn .2s ease-out forwards}.graph-mini-map-item{animation:fadeSlideIn .2s ease-out forwards}.graph-scroll::-webkit-scrollbar{height:8px;width:8px}.graph-scroll::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.graph-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.graph-scroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media print{body{background:#fff!important;color:#000!important}.print\:hidden{display:none!important}.print\:block{display:block!important}.print\:max-w-none{max-width:none!important}.print\:p-0{padding:0!important}.print\:shadow-none{box-shadow:none!important}.print\:border-none{border:none!important}.print\:prose-p\:text-black p,.print\:prose-headings\:text-black h1,.print\:prose-headings\:text-black h2,.print\:prose-headings\:text-black h3,.print\:prose-headings\:text-black h4{color:#000!important}.break-inside-avoid{break-inside:avoid}}@keyframes blob{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.animate-blob{animation:blob 7s infinite ease-in-out}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes float-delayed{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.animate-float-delayed{animation:float-delayed 4s ease-in-out infinite;animation-delay:1s}@keyframes scroll-indicator{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(6px);opacity:.5}}.animate-scroll-indicator{animation:scroll-indicator 2s ease-in-out infinite}@keyframes bounce-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-bounce-slow{animation:bounce-slow 2s ease-in-out infinite}@keyframes dash{to{stroke-dashoffset:0}}.animate-dash{stroke-dasharray:100;stroke-dashoffset:100;animation:dash 3s linear infinite alternate}.animate-dash-delayed{stroke-dasharray:100;stroke-dashoffset:100;animation:dash 3s linear infinite alternate;animation-delay:1.5s}@keyframes progress-bar{0%{width:0%}to{width:100%}}.animate-progress-bar{animation:progress-bar 4s linear infinite}@keyframes progress{0%{width:0%}}.animate-progress{animation:progress 2s ease-out forwards}@keyframes grow-1{0%,to{transform:scaleY(.6)}50%{transform:scaleY(1)}}@keyframes grow-2{0%,to{transform:scaleY(.7)}50%{transform:scaleY(1)}}.animate-grow-1{animation:grow-1 2s ease-in-out infinite}.animate-grow-2{animation:grow-2 2.5s ease-in-out infinite}@keyframes float-particle{0%,to{transform:translateY(0) translate(0)}25%{transform:translateY(-5px) translate(3px)}75%{transform:translateY(3px) translate(-3px)}}.animate-float-particle{animation:float-particle 3s ease-in-out infinite}@keyframes pulse-ring{0%,to{box-shadow:0 0 0 0 currentColor}50%{box-shadow:0 0 0 8px transparent}}.animate-pulse-ring{animation:pulse-ring 2s ease-out infinite}@keyframes flow-line{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}.animate-flow-line{stroke-dasharray:5 5;animation:flow-line 1s linear infinite}@keyframes draw{to{stroke-dashoffset:0}}.animate-draw{animation:draw .5s ease-out forwards;animation-delay:.5s}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-from-bottom{0%{transform:translateY(10px)}to{transform:translateY(0)}}@keyframes slide-in-from-bottom-2{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-from-bottom-4{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-in{animation-duration:.5s;animation-fill-mode:both}.fade-in{animation-name:fade-in}.slide-in-from-bottom-2{animation-name:slide-in-from-bottom-2}.slide-in-from-bottom-4{animation-name:slide-in-from-bottom-4}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}html{scroll-behavior:smooth}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.perspective-1000{perspective:1000px}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.animate-gradient{background-size:200% auto;animation:gradient-shift 3s ease infinite}@keyframes terminal-line{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.animate-terminal-line{animation:terminal-line .3s ease-out forwards}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.animate-slide-in-right{animation:slide-in-right .5s ease-out forwards}@keyframes fade-slide-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.animate-fade-slide-in{animation:fade-slide-in .4s ease-out forwards}@keyframes gradient-x{0%,to{background-size:200% 200%;background-position:left center}50%{background-size:200% 200%;background-position:right center}}.animate-gradient-x{animation:gradient-x 3s ease infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes glow-pulse{0%,to{box-shadow:0 0 5px #3b82f64d}50%{box-shadow:0 0 20px #3b82f699}}.animate-glow-pulse{animation:glow-pulse 2s ease-in-out infinite}@keyframes scale-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-scale-bounce{animation:scale-bounce 2s ease-in-out infinite}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.animate-cursor-blink{animation:cursor-blink 1s step-end infinite}.stagger-children>*:nth-child(1){animation-delay:0ms}.stagger-children>*:nth-child(2){animation-delay:.1s}.stagger-children>*:nth-child(3){animation-delay:.2s}.stagger-children>*:nth-child(4){animation-delay:.3s}.stagger-children>*:nth-child(5){animation-delay:.4s}.stagger-children>*:nth-child(6){animation-delay:.5s}@keyframes count-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-count-up{animation:count-up .6s ease-out forwards}@keyframes orbit{0%{transform:rotate(0) translate(100px) rotate(0)}to{transform:rotate(360deg) translate(100px) rotate(-360deg)}}.animate-orbit{animation:orbit 20s linear infinite}@keyframes morph{0%,to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30%}}.animate-morph{animation:morph 8s ease-in-out infinite}@keyframes ripple{0%{transform:scale(.8);opacity:1}to{transform:scale(2.4);opacity:0}}.animate-ripple{animation:ripple 1.5s linear infinite}@keyframes enter-from-left{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes enter-from-right{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes enter-from-top{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes enter-from-bottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-enter-left{animation:enter-from-left .6s ease-out forwards}.animate-enter-right{animation:enter-from-right .6s ease-out forwards}.animate-enter-top{animation:enter-from-top .6s ease-out forwards}.animate-enter-bottom{animation:enter-from-bottom .6s ease-out forwards}@keyframes gradient-border{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.animate-gradient-border{background:linear-gradient(90deg,#3b82f6,#8b5cf6,#ec4899,#3b82f6);background-size:300% 300%;animation:gradient-border 4s ease infinite}
