@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-30px,0)}70%{transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@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)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-fadeIn{animation:fadeIn .6s ease-out}.animate-slideIn{animation:slideIn .6s ease-out}.animate-scaleIn{animation:scaleIn .6s ease-out}.animate-rotate{animation:rotate 2s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-glow{animation:glow 2s ease-in-out infinite alternate}.animate-float{animation:float 3s ease-in-out infinite}.animate-gradient{background-size:200% 200%;animation:gradient 3s ease infinite}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 25px rgba(0,0,0,.15)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px rgba(59,130,246,.4)}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px rgba(0,0,0,.1)}.btn-hover{transition:all .3s ease;position:relative;overflow:hidden}.btn-hover: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-hover:hover:before{left:100%}.text-gradient{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2)}.glass,.glass-dark{backdrop-filter:blur(10px)}.glass-dark{background:rgba(0,0,0,.1);border:1px solid hsla(0,0%,100%,.1)}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.loading-spinner{border:4px solid #f3f3f3;border-top-color:#3498db;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.progress-bar{background:linear-gradient(90deg,#667eea,#764ba2);background-size:200% 100%;animation:progress 2s ease-in-out infinite}@keyframes progress{0%{background-position:200% 0}to{background-position:-200% 0}}.typewriter{overflow:hidden;border-right:2px solid #333;white-space:nowrap;animation:typing 3.5s 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:#333}}