.app-root{min-height:100vh;background:#1a1a2e}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:HarmonyOS Sans SC,Noto Sans SC,sans-serif;font-size:15px;line-height:22px;color:#fff;background-color:#1a1a2e;min-height:100vh;overflow-x:hidden}#app{min-height:100vh;display:flex;flex-direction:column}a{color:#4361ee;text-decoration:none;transition:color .15s ease}a:hover{color:#06d6a0}button{font-family:inherit;cursor:pointer;border:none;outline:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit;outline:none;border:none;background:none}img{max-width:100%;height:auto}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}h1{font-size:32px;line-height:44px}h2{font-size:24px;line-height:32px}h3{font-size:20px;line-height:28px}h4{font-size:16px;line-height:24px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fff3;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}::selection{background:#4361ee;color:#fff}::placeholder{color:#9e9e9e}.text-primary{color:#fff}.text-secondary{color:#e0e0e0}.text-tertiary{color:#9e9e9e}.text-brand{color:#4361ee}.text-accent{color:#06d6a0}.bg-primary{background-color:#1a1a2e}.bg-card{background-color:#ffffff14}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@keyframes breathe{0%,to{transform:scale(1);box-shadow:0 0 20px #4361ee66}50%{transform:scale(1.2);box-shadow:0 0 40px #4361ee99}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}@keyframes glow{0%,to{box-shadow:0 0 20px #4361ee66}50%{box-shadow:0 0 40px #4361eecc}}@keyframes starTwinkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-breathe{animation:breathe 3s ease-in-out infinite}.animate-rotate{animation:rotate 3s linear infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);background-size:200% 100%;animation:shimmer 2s linear infinite}.animate-fade-in{animation:fadeIn .5s ease-out forwards}.animate-slide-in{animation:slideIn .5s ease-out forwards}.animate-scale-in{animation:scaleIn .3s ease-out forwards}.animate-glow{animation:glow 2s ease-in-out infinite}.animate-twinkle{animation:starTwinkle 2s ease-in-out infinite}.animate-gradient{background-size:200% 200%;animation:gradientShift 5s ease infinite}
