@keyframes fadeIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{opacity:1;transform:scale(1)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes glow{0%{box-shadow:0 0 5px rgba(138,43,226,.5)}50%{box-shadow:0 0 20px rgba(138,43,226,.8)}100%{box-shadow:0 0 5px rgba(138,43,226,.5)}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes floatSlow{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.fade-in{animation:fadeIn .8s ease-out}.slide-in-left{animation:slideInLeft .8s ease-out}.slide-in-right{animation:slideInRight .8s ease-out}.scale-in{animation:scaleIn .6s ease-out}.bounce-in{animation:bounceIn .8s ease-out}.pulse{animation:pulse 2s infinite}.shake{animation:shake .5s ease-in-out}.glow{animation:glow 2s infinite}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-dots{display:inline-block;position:relative;width:80px;height:80px}.loading-dots div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:var(--primary-color);animation-timing-function:cubic-bezier(0,1,1,0)}.loading-dots div:first-child{left:8px;animation:loading-dots1 .6s infinite}.loading-dots div:nth-child(2){left:8px;animation:loading-dots2 .6s infinite}.loading-dots div:nth-child(3){left:32px;animation:loading-dots2 .6s infinite}.loading-dots div:nth-child(4){left:56px;animation:loading-dots3 .6s infinite}@keyframes loading-dots1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes loading-dots3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes loading-dots2{0%{transform:translate(0,0)}100%{transform:translate(24px,0)}}.page-transition-enter{opacity:0;transform:translateY(20px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s,transform .3s}.page-transition-exit{opacity:1;transform:translateY(0)}.page-transition-exit-active{opacity:0;transform:translateY(-20px);transition:opacity .3s,transform .3s}.notification-enter{transform:translateX(100%);opacity:0}.notification-enter-active{transform:translateX(0);opacity:1;transition:transform .3s,opacity .3s}.notification-exit{transform:translateX(0);opacity:1}.notification-exit-active{transform:translateX(100%);opacity:0;transition:transform .3s,opacity .3s}.modal-backdrop-enter{opacity:0}.modal-backdrop-enter-active{opacity:1;transition:opacity .3s}.modal-backdrop-exit{opacity:1}.modal-backdrop-exit-active{opacity:0;transition:opacity .3s}.modal-content-enter{opacity:0;transform:scale(.8) translateY(-50px)}.modal-content-enter-active{opacity:1;transform:scale(1) translateY(0);transition:opacity .3s,transform .3s}.modal-content-exit{opacity:1;transform:scale(1) translateY(0)}.modal-content-exit-active{opacity:0;transform:scale(.8) translateY(-50px);transition:opacity .3s,transform .3s}.form-group{transition:all .3s ease}.form-group.focused{transform:translateY(-5px)}.input-glow{transition:box-shadow .3s ease}.input-glow:focus{animation:glow 2s infinite}.card-hover{transition:all .3s ease}.card-hover:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 15px 30px rgba(0,0,0,.2)}.btn-animate{position:relative;overflow:hidden;transition:all .3s ease}.btn-animate::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.btn-animate:hover::before{left:100%}.text-gradient{background:linear-gradient(45deg,var(--primary-color),var(--secondary-color));background-size:200% 200%;animation:gradientShift 3s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.text-typing{overflow:hidden;border-right:2px solid var(--primary-color);white-space:nowrap;animation:typing 3.5s steps(40,end),blink-caret .75s step-end infinite}@keyframes typing{from{width:0}to{width:100%}}@keyframes blink-caret{from,to{border-color:transparent}50%{border-color:var(--primary-color)}}.progress-bar{width:100%;height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--primary-color);border-radius:2px;animation:progressFill 2s ease-in-out}@keyframes progressFill{from{width:0%}to{width:100%}}.list-item{animation:slideInLeft .5s ease-out}.list-item:nth-child(2n){animation:slideInRight .5s ease-out}.grid-item{animation:scaleIn .6s ease-out}.grid-item:first-child{animation-delay:.1s}.grid-item:nth-child(2){animation-delay:.2s}.grid-item:nth-child(3){animation-delay:.3s}.grid-item:nth-child(4){animation-delay:.4s}.grid-item:nth-child(5){animation-delay:.5s}.grid-item:nth-child(6){animation-delay:.6s}@media (prefers-reduced-motion:reduce){*{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}.bounce-in,.fade-in,.glow,.pulse,.scale-in,.shake,.slide-in-left,.slide-in-right{animation:none}}@supports not (animation:fadeIn){.fade-in{opacity:1}}