@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.5s ease-out forwards fadeIn}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:.4s ease-out forwards slideInRight}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.animate-pulse-slow{animation:2s ease-in-out infinite pulse}@keyframes flow{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.flow-animated{stroke-dasharray:10 5;animation:2s linear infinite flow}@keyframes glow{0%,to{box-shadow:0 0 5px #3b82f680}50%{box-shadow:0 0 20px #3b82f6cc,0 0 30px #3b82f666}}.animate-glow{animation:2s ease-in-out infinite glow}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:.3s ease-out forwards scaleIn}.workflow-node{transition:all .3s}.workflow-node.selected{z-index:10;transform:scale(1.05)}.workflow-node.active{animation:2s ease-in-out infinite pulse}.workflow-node.failed{animation:.5s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes progress{0%{width:0%}}.progress-animated{animation:1s ease-out forwards progress}.step-card{animation:.5s ease-out forwards fadeIn}.step-card:first-child{animation-delay:.1s}.step-card:nth-child(2){animation-delay:.2s}.step-card:nth-child(3){animation-delay:.3s}.step-card:nth-child(4){animation-delay:.4s}.step-card:nth-child(5){animation-delay:.5s}.remediation-suggestion{animation:.4s ease-out forwards slideInRight}.remediation-suggestion:first-child{animation-delay:.1s}.remediation-suggestion:nth-child(2){animation-delay:.2s}.remediation-suggestion:nth-child(3){animation-delay:.3s}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.hover-lift{transition:transform .2s,box-shadow .2s}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 10px 25px #0000001a}@keyframes gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.bg-gradient-animated{background-size:200% 200%;animation:3s infinite gradient}@keyframes scoreAppear{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.score-badge-appear{animation:.5s ease-out forwards scoreAppear}@keyframes drawLine{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.connection-line{stroke-dasharray:5 5;animation:1s ease-out forwards drawLine}@media (max-width:768px){.animate-slide-in{animation-duration:.3s}.workflow-node.selected{transform:scale(1.02)}}
