@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(42,170,234,.4)}50%{box-shadow:0 0 0 15px rgba(42,170,234,0)}}@keyframes float-icon{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}@keyframes progress-slide{0%{width:0}to{width:100%}}@keyframes dot-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.5);opacity:1}}@keyframes fade-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-float-icon{animation:float-icon 3s ease-in-out infinite}.animate-pulse-glow{animation:pulse-glow 2s infinite}.animate-progress-slide{animation:progress-slide 8s cubic-bezier(.1,.5,.9,1) forwards}.animate-dot-pulse{animation:dot-pulse 1.5s ease-in-out infinite}.animate-fade-slide-up{animation:fade-slide-up .5s ease-out forwards}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.processing-dot{width:8px;height:8px;background-color:hsl(var(--primary));border-radius:50%;display:inline-block;margin:0 2px}.processing-dot:first-child{animation:dot-pulse 1s ease-in-out infinite}.processing-dot:nth-child(2){animation:dot-pulse 1s ease-in-out .2s infinite}.processing-dot:nth-child(3){animation:dot-pulse 1s ease-in-out .4s infinite}@keyframes draw-check{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.animate-check{stroke-dasharray:100;stroke-dashoffset:100;animation:draw-check .8s ease-in-out forwards}.hover-card{transition:transform .3s ease,box-shadow .3s ease}.hover-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px rgba(42,170,234,.15)}