@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(168,85,247,.3)}50%{box-shadow:0 0 40px rgba(168,85,247,.6)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes smooth-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-up{0%{transform:scale(1)}to{transform:scale(1.05)}}@keyframes rainbow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:1}}@keyframes wave{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.float{animation:float 3s ease-in-out infinite}.smooth-spin{animation:smooth-spin 1s linear infinite}.slide-up{animation:slide-up .6s ease-out}.scale-hover:hover{animation:scale-up .3s ease-out forwards}.rainbow-bg{background:linear-gradient(-45deg,#ee7752,#e73c7e,#23a6d5,#23d5ab);background-size:400% 400%;animation:rainbow 4s ease infinite}.twinkle{animation:twinkle 2s ease-in-out infinite}.glow-hover{transition:all .3s ease}.glow-hover:hover{box-shadow:0 0 30px rgba(168,85,247,.4);transform:translateY(-2px)}.wave-progress{position:relative;overflow:hidden}.wave-progress:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:wave 2s infinite}.glass-effect{background:rgba(255,255,255,.05);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.gradient-border{position:relative;background:linear-gradient(45deg,#1a1a1a,#2a2a2a)}.gradient-border:before{content:"";position:absolute;inset:0;padding:2px;background:linear-gradient(45deg,#8b5cf6,#ec4899,#06b6d4);border-radius:inherit;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}.btn-modern{position:relative;overflow:hidden;transition:all .3s ease}.btn-modern:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-modern:hover:before{left:100%}.gradient-text{background:linear-gradient(45deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.card-3d{transform-style:preserve-3d;transition:transform .3s ease}.card-3d:hover{transform:rotateY(5deg) rotateX(5deg)}.loading-dots:after{content:"";animation:loading-dots 1.5s infinite}@keyframes loading-dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.animated-progress{position:relative;overflow:hidden;background:linear-gradient(90deg,#374151,#4b5563)}.animated-progress .progress-fill{position:relative;transition:width 1s ease-out}.animated-progress .progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.3),rgba(255,255,255,0));animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.typewriter{overflow:hidden;border-right:2px solid #8b5cf6;white-space:nowrap;animation:typing 3s steps(40),blink-caret .75s step-end infinite}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:#8b5cf6}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:768px){.float{animation:none}.card-3d:hover,.glow-hover:hover{transform:none}}