@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in-right{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-left{0%{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scale-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-out{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes glow{0%,to{box-shadow:0 0 5px rgba(59,130,246,.5)}50%{box-shadow:0 0 20px rgba(59,130,246,.8),0 0 30px rgba(59,130,246,.6)}}.animate-fade-in{animation:fade-in .3s ease-out}.animate-fade-out{animation:fade-out .3s ease-out}.animate-slide-in-right{animation:slide-in-right .3s ease-out}.animate-slide-in-left{animation:slide-in-left .3s ease-out}.animate-slide-in-up{animation:slide-in-up .3s ease-out}.animate-slide-in-down{animation:slide-in-down .3s ease-out}.animate-scale-in{animation:scale-in .2s ease-out}.animate-scale-out{animation:scale-out .2s ease-out}.animate-bounce{animation:bounce 1s infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-wiggle{animation:wiggle .5s ease-in-out}.animate-spin{animation:spin 1s linear infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.shimmer{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.1) 50%,rgba(255,255,255,0));background-size:1000px 100%;animation:shimmer 2s infinite}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.transition-quick{transition:all .15s cubic-bezier(.4,0,.2,1)}.transition-slow{transition:all .5s cubic-bezier(.4,0,.2,1)}.hover-lift{transition:transform .2s ease-out}.hover-lift:hover{transform:translateY(-2px)}.hover-scale{transition:transform .2s ease-out}.hover-scale:hover{transform:scale(1.05)}.hover-glow:hover{box-shadow:0 0 20px rgba(59,130,246,.4)}.focus-ring:focus{outline:none;ring:2px;ring-color:rgba(59,130,246,.5);ring-offset:2px}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient{background-size:200% 200%;animation:gradient-shift 3s ease infinite}@keyframes loading-dots{0%,20%{opacity:.3}40%{opacity:1}60%,to{opacity:.3}}.loading-dot{animation:loading-dots 1.4s infinite}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes progress-indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-indeterminate{animation:progress-indeterminate 1.5s ease-in-out infinite}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#1f2937 25%,#374151 50%,#1f2937 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}@keyframes typewriter{0%{width:0}to{width:100%}}.typewriter{overflow:hidden;border-right:2px solid;white-space:nowrap;animation:typewriter 3s steps(40) 1s 1 normal both}@keyframes blink{50%{border-color:transparent}}.blink{animation:blink 1s step-end infinite}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.animate-shake{animation:shake .5s ease-in-out}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}.backdrop-blur-in{animation:fade-in .3s ease-out;backdrop-filter:blur(8px)}