@keyframes pageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes softGlow{0%,to{box-shadow:0 0 15px rgba(109,40,217,.3)}50%{box-shadow:0 0 25px rgba(109,40,217,.5)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 0 rgba(109,40,217,.7)}50%{box-shadow:0 0 0 10px rgba(109,40,217,0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes bounceIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.animate-page-slide-in{animation:pageSlideIn .5s ease-out}.animate-soft-glow{animation:softGlow 3s ease-in-out infinite}.animate-pulse-glow{animation:pulseGlow 2s ease-in-out infinite}.animate-bounce-in{animation:bounceIn .3s ease-out}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-shake{animation:shake .5s ease-in-out}.animate-float{animation:float 3s ease-in-out infinite}.animate-gradient-shift{background-size:200% 200%;animation:gradientShift 8s ease infinite}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}