@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glow{0%,to{box-shadow:0 0 5px #00f3ff66}50%{box-shadow:0 0 20px #00f3ffcc}}.animate-fadeIn{animation:fadeIn .5s ease-out forwards}.animate-fadeInUp{animation:fadeInUp .6s ease-out forwards}.animate-fadeInDown{animation:fadeInDown .6s ease-out forwards}.animate-fadeInLeft{animation:fadeInLeft .6s ease-out forwards}.animate-fadeInRight{animation:fadeInRight .6s ease-out forwards}.animate-scaleIn{animation:scaleIn .4s ease-out forwards}.animate-slideInUp{animation:slideInUp .5s ease-out forwards}.animate-slideInDown{animation:slideInDown .5s ease-out forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,#fff0,#ffffff0d,#fff0);background-size:1000px 100%;animation:shimmer 2s infinite}.animate-spin{animation:spin 1s linear infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-400{animation-delay:.4s}.animate-delay-500{animation-delay:.5s}.animate-delay-600{animation-delay:.6s}.animate-delay-700{animation-delay:.7s}.animate-delay-800{animation-delay:.8s}.transition-smooth{transition:all .3s ease-in-out}.transition-fast{transition:all .15s ease-in-out}.transition-slow{transition:all .5s ease-in-out}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000004d}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px #00f3ff80}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.skeleton{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s,transform .3s}.page-exit{opacity:1}.page-exit-active{opacity:0;transition: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(.9)}.modal-content-enter-active{opacity:1;transform:scale(1);transition:opacity .3s,transform .3s}.modal-content-exit{opacity:1;transform:scale(1)}.modal-content-exit-active{opacity:0;transform:scale(.9);transition:opacity .3s,transform .3s}.tab-enter{opacity:0;transform:translate(20px)}.tab-enter-active{opacity:1;transform:translate(0);transition:opacity .3s,transform .3s}.tab-exit{opacity:1;position:absolute;width:100%}.tab-exit-active{opacity:0;transform:translate(-20px);transition:opacity .3s,transform .3s}@keyframes flipIn{0%{transform:rotateY(-90deg);opacity:0}to{transform:rotateY(0);opacity:1}}.animate-flipIn{animation:flipIn .6s ease-out forwards;transform-style:preserve-3d}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-gradient{background-size:200% 200%;animation:gradient 3s ease infinite}@keyframes typing{0%{width:0}to{width:100%}}.animate-typing{overflow:hidden;white-space:nowrap;animation:typing 2s steps(40,end)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
