@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes glowPulse{0%,100%{box-shadow:0 0 20px rgba(0,212,255,0.3)}50%{box-shadow:0 0 40px rgba(0,212,255,0.6)}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-15px)}60%{transform:translateY(-7px)}}@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInLeft{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes textGradient{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes borderGlow{0%,100%{border-color:rgba(0,212,255,0.3)}50%{border-color:rgba(0,212,255,0.8)}}.animate-fadeIn{animation:fadeIn 0.6s ease forwards}.animate-fadeInUp{animation:fadeInUp 0.6s ease forwards}.animate-fadeInDown{animation:fadeInDown 0.6s ease forwards}.animate-fadeInLeft{animation:fadeInLeft 0.6s ease forwards}.animate-fadeInRight{animation:fadeInRight 0.6s ease forwards}.animate-scaleIn{animation:scaleIn 0.5s ease forwards}.animate-pulse{animation:pulse 2s infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-glow{animation:glowPulse 2s infinite}.animate-bounce{animation:bounce 2s infinite}.animate-rotate{animation:rotate 10s linear infinite}.hover-lift{transition:transform 0.3s ease,box-shadow 0.3s ease}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,0.3)}.hover-scale{transition:transform 0.3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow 0.3s ease}.hover-glow:hover{box-shadow:0 0 30px rgba(0,212,255,0.5)}.hover-border-glow{transition:border-color 0.3s ease,box-shadow 0.3s ease}.hover-border-glow:hover{border-color:var(--accent);box-shadow:0 0 20px rgba(0,212,255,0.3)}.hover-underline{position:relative}.hover-underline::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--accent);transition:width 0.3s ease}.hover-underline:hover::after{width:100%}.hover-rotate-icon i{transition:transform 0.3s ease}.hover-rotate-icon:hover i{transform:rotate(360deg)}.hover-fill{position:relative;overflow:hidden;z-index:1}.hover-fill::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform 0.4s ease;z-index:-1}.hover-fill:hover::before{transform:scaleX(1);transform-origin:left}.skeleton{background:linear-gradient( 90deg,var(--bg-card) 25%,var(--bg-card-hover) 50%,var(--bg-card) 75% );background-size:200% 100%;animation:shimmer 1.5s infinite}.spinner{width:40px;height:40px;border:3px solid var(--glass-border);border-top-color:var(--accent);border-radius:50%;animation:rotate 0.8s linear infinite}.loading-dots{display:inline-flex;gap:5px}.loading-dots span{width:8px;height:8px;background:var(--accent);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-0.32s}.loading-dots span:nth-child(2){animation-delay:-0.16s}.scroll-animate{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease,transform 0.6s ease}.scroll-animate.visible{opacity:1;transform:translateY(0)}.stagger-children>*{opacity:0;transform:translateY(20px);transition:opacity 0.4s ease,transform 0.4s ease}.stagger-children.visible>*:nth-child(1){transition-delay:0.1s}.stagger-children.visible>*:nth-child(2){transition-delay:0.2s}.stagger-children.visible>*:nth-child(3){transition-delay:0.3s}.stagger-children.visible>*:nth-child(4){transition-delay:0.4s}.stagger-children.visible>*:nth-child(5){transition-delay:0.5s}.stagger-children.visible>*:nth-child(6){transition-delay:0.6s}.stagger-children.visible>*{opacity:1;transform:translateY(0)}.animated-gradient-text{background:linear-gradient( 90deg,var(--primary),var(--accent),var(--primary-light),var(--accent) );background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textGradient 5s ease infinite}.neon-glow{text-shadow:0 0 5px var(--accent),0 0 10px var(--accent),0 0 20px var(--accent),0 0 40px var(--accent)}.tilt-card{transform-style:preserve-3d;transition:transform 0.3s ease}.ripple{position:relative;overflow:hidden}.ripple::after{content:'';position:absolute;width:100%;height:100%;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);background:rgba(255,255,255,0.2);border-radius:50%;transition:transform 0.5s ease}.ripple:active::after{transform:translate(-50%,-50%) scale(2);opacity:0;transition:transform 0.5s ease,opacity 0.5s ease}.delay-100{transition-delay:0.1s !important}.delay-200{transition-delay:0.2s !important}.delay-300{transition-delay:0.3s !important}.delay-400{transition-delay:0.4s !important}.delay-500{transition-delay:0.5s !important}.delay-600{transition-delay:0.6s !important}.delay-700{transition-delay:0.7s !important}.delay-800{transition-delay:0.8s !important}.duration-fast{animation-duration:0.3s !important}.duration-normal{animation-duration:0.5s !important}.duration-slow{animation-duration:0.8s !important}.duration-slower{animation-duration:1.2s !important}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}.scroll-animate{opacity:1;transform:none}}