@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.animate-gradient{background:linear-gradient(-45deg,#3b82f6,#6366f1,#8b5cf6,#3b82f6);background-size:400% 400%;animation:gradient 15s ease infinite}.animate-float{animation:float 6s ease-in-out infinite}.animate-pulse-slow{animation:pulse 3s ease-in-out infinite}.shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200px 100%;animation:shimmer 2s infinite}.glass{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2)}.glass,.glass-dark{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.glass-dark{background:rgba(0,0,0,.1);border:1px solid hsla(0,0%,100%,.1)}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.1)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 30px rgba(59,130,246,.3)}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#3b82f6;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#2563eb}.loading-dots{display:inline-block}.loading-dots:after{content:"";animation:dots 1.5s steps(5) infinite}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.chart-line{stroke-dasharray:1000;stroke-dashoffset:1000;animation:drawLine 2s ease-in-out forwards}@keyframes drawLine{to{stroke-dashoffset:0}}.chart-area{opacity:0;animation:fadeInArea 2s ease-in-out .5s forwards}@keyframes fadeInArea{to{opacity:1}}.progress-animate{transition:width 1s ease-in-out}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:scale(1.02);box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.btn-animate{position:relative;overflow:hidden}.btn-animate:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s}.btn-animate:hover:before{left:100%}.text-reveal{opacity:0;transform:translateY(20px);animation:textReveal .8s ease-out forwards}@keyframes textReveal{to{opacity:1;transform:translateY(0)}}.icon-bounce{animation:iconBounce 2s ease-in-out infinite}@keyframes iconBounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.bg-pattern{background-image:radial-gradient(circle at 25% 25%,rgba(59,130,246,.1) 0,transparent 50%),radial-gradient(circle at 75% 75%,rgba(99,102,241,.1) 0,transparent 50%)}.gradient-text{background:linear-gradient(135deg,#3b82f6,#6366f1,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-color-scheme:dark){.glass{background:rgba(0,0,0,.1);border:1px solid hsla(0,0%,100%,.1)}.glass-dark{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2)}}