.fallback-spinner{position:relative;display:flex;height:100vh;width:100%}.loading{position:absolute;left:calc(50% - 35px);top:50%;width:55px;height:55px;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;border:3px solid transparent}.effect-1,.effect-2{position:absolute;width:100%;height:100%;border:3px solid transparent;border-left:3px solid #2962ff;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box}.effect-1{animation:rotate 1s ease infinite}.effect-2{animation:rotateOpacity 1s ease infinite .1s}.effect-3{width:100%;height:100%;border:3px solid transparent;border-left:3px solid #2962ff;-webkit-animation:rotateOpacity 1s ease infinite .2s;animation:rotateOpacity 1s ease infinite .2s;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box}.loading .effects{transition:all .3s ease}.fallback-logo{position:absolute;left:calc(50% - 45px);top:40%}@keyframes rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotateOpacity{0%{-webkit-transform:rotate(0deg);transform:rotate(0);opacity:.1}to{-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInDown{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bounceIn{0%{transform:scale(.9);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes rotateIn{0%{transform:rotate(-10deg) scale(.95);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-fadeIn{animation:fadeIn .8s ease-in-out}.animate-slideInUp{animation:slideInUp .5s cubic-bezier(.4,0,.2,1)}.animate-slideInDown{animation:slideInDown .5s cubic-bezier(.4,0,.2,1)}.animate-slideInLeft{animation:slideInLeft .5s cubic-bezier(.4,0,.2,1)}.animate-slideInRight{animation:slideInRight .5s cubic-bezier(.4,0,.2,1)}.animate-scaleIn{animation:scaleIn .3s cubic-bezier(.4,0,.2,1)}.animate-bounceIn{animation:bounceIn .6s cubic-bezier(.68,-.55,.265,1.55)}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-rotateIn{animation:rotateIn .5s cubic-bezier(.4,0,.2,1)}.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}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.smooth-transform{transition:transform .3s cubic-bezier(.4,0,.2,1)}.smooth-opacity{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.hover-lift{transition:all .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001f}.hover-scale:hover{transform:scale(1.02)}.hover-glow:hover{box-shadow:0 0 20px #677eea66}.gradient-animated{background:linear-gradient(270deg,#667eea,#764ba2,#f093fb,#4facfe);background-size:800% 800%;animation:gradientShift 15s ease infinite}.shimmer{background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);background-size:200% 100%;animation:shimmer 1.5s infinite}.glass-effect{background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #1f268726}.neumorphism{background:#f0f0f3;box-shadow:8px 8px 16px #a3b1c699,-8px -8px 16px #ffffff80;border-radius:16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.neumorphism:hover{box-shadow:4px 4px 8px #a3b1c699,-4px -4px 8px #ffffff80}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:#94a3b8}*:focus-visible{outline:2px solid #667eea;outline-offset:2px;border-radius:4px}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.modal-enter{animation:scaleIn .3s cubic-bezier(.4,0,.2,1)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;transition:all .3s cubic-bezier(.4,0,.2,1)}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;background:#ffffff80;border-radius:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none}.ripple-effect:active:after{animation:ripple .6s ease-out}
