@keyframes focusRing{0%{box-shadow:0 0 #3b82f680}70%{box-shadow:0 0 0 4px #3b82f600}to{box-shadow:0 0 #3b82f600}}.focus-ring-animate{animation:.6s ease-out focusRing}@keyframes selectionPulse{0%{box-shadow:0 0 #8b5cf6b3}70%{box-shadow:0 0 0 3px #8b5cf600}to{box-shadow:0 0 #8b5cf600}}.selection-pulse{animation:.8s ease-out selectionPulse}@keyframes dragOverlay{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.drag-overlay{animation:.2s ease-out dragOverlay}@keyframes connectionSuccess{0%{background-color:#22c55e;transform:scale(1)}50%{background-color:#16a34a;transform:scale(1.1)}to{background-color:#22c55e;transform:scale(1)}}.connection-success{animation:.6s ease-out connectionSuccess}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{animation:1s linear infinite spin}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-in-up{animation:.3s ease-out slideInUp}@keyframes bounce{0%,20%,53%,80%,to{transform:translate(0,0)}40%,43%{transform:translateY(-8px)}70%{transform:translateY(-4px)}90%{transform:translateY(-2px)}}.bounce-success{animation:.8s ease-out bounce}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-in{animation:.3s ease-out fadeIn}.fade-out{animation:.3s ease-out fadeOut}.scale-transition{transition:transform .2s cubic-bezier(.4,0,.2,1)}.scale-transition:hover{transform:scale(1.02)}.scale-transition:active{transform:scale(.98)}.matrix-cell-transition{transition:all .2s cubic-bezier(.4,0,.2,1)}.matrix-cell-hover{z-index:10;transform:scale(1.05);box-shadow:0 8px 25px -8px #0000001a}.color-transition{transition:background-color .3s,border-color .3s,color .3s}@keyframes stagger{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stagger-animation{animation:.4s ease-out both stagger}.stagger-delay-1{animation-delay:.1s}.stagger-delay-2{animation-delay:.2s}.stagger-delay-3{animation-delay:.3s}.stagger-delay-4{animation-delay:.4s}.stagger-delay-5{animation-delay:.5s}
