@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap";.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}:root{--color-primary:#2f5d22;--color-primary-light:#5d7f37;--color-primary-glow:#2f5d222e;--color-accent:#a06f12;--color-accent-light:#c8962a;--color-bg-deep:#e3dccf;--color-bg-base:#fffaf1;--color-bg-card:#ffffffc7;--color-bg-card-hover:#ffffffeb;--color-text-primary:#24331f;--color-text-secondary:#3d372e;--color-text-muted:#8a7d69;--color-border:#56462d2e;--color-border-glow:#2f5d2247;--state-healthy:#2f7d4f;--state-overload:#a06f12;--state-loop:#4f7f8f;--state-mask:#8a5d86;--state-grip:#bf5b5b;--state-demon:#9f3e45;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--space-xs:calc(1.33 * var(--vw,3.9px));--space-sm:calc(2.67 * var(--vw,3.9px));--space-md:calc(4 * var(--vw,3.9px));--space-lg:calc(5.33 * var(--vw,3.9px));--space-xl:calc(8 * var(--vw,3.9px));--font-xs:max(12px, calc(2.93 * var(--vw,3.9px)));--font-sm:max(14px, calc(3.73 * var(--vw,3.9px)));--font-md:max(15px, calc(4.27 * var(--vw,3.9px)));--font-lg:max(19px, calc(5.33 * var(--vw,3.9px)));--font-xl:max(22px, calc(6.67 * var(--vw,3.9px)));--font-2xl:max(26px, calc(8 * var(--vw,3.9px)));--glass-bg:#ffffffb8;--glass-border:#56462d29;--glass-blur:blur(16px);--transition-fast:.15s ease;--transition-normal:.3s ease;--transition-slow:.5s ease;--app-max-width:390px;--app-max-width-pc:680px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:Noto Sans SC,Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--font-md);background-color:var(--color-bg-deep);color:var(--color-text-primary);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background-image:radial-gradient(at 12% 44%,#c8962a1f 0%,#0000 58%),radial-gradient(at 88% 28%,#8f5b741a 0%,#0000 56%);min-height:100dvh;line-height:1.6;overflow-x:hidden}button{appearance:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}a{color:inherit;text-decoration:none}#app{max-width:var(--app-max-width);background-color:var(--color-bg-base);isolation:isolate;background-image:linear-gradient(#fffaf1f5 0%,#fcf6ecfa 100%),radial-gradient(at 20% 80%,#2f5d2214 0%,#0000 60%),radial-gradient(at 80% 20%,#a06f1214 0%,#0000 60%);min-height:100dvh;margin:0 auto;position:relative;box-shadow:0 0 0 1px #56462d1a,0 18px 80px #4938202e}.starfield-bg{pointer-events:none;z-index:0;position:absolute;inset:0}.page{z-index:1;min-height:100dvh;padding:0 var(--space-sm);position:relative}.fixed-in-app{left:max(0px, calc(calc(50 * var(--vw)) - 195px));width:min(calc(100 * var(--vw)), var(--app-max-width));z-index:9000;position:fixed}#soul-loading{left:max(0px, calc(calc(50 * var(--vw)) - 195px));width:min(calc(100 * var(--vw)), var(--app-max-width));-webkit-backdrop-filter:blur(8px);z-index:9999;transition:opacity var(--transition-normal);background:#fffaf1e0;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:fixed;top:0;bottom:0}#soul-loading.hidden{opacity:0;pointer-events:none}.soul-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary-light);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.upgrade-wall-overlay{left:max(0px, calc(calc(50 * var(--vw)) - 195px));width:min(calc(100 * var(--vw)), var(--app-max-width));-webkit-backdrop-filter:blur(12px);z-index:10000;padding:var(--space-lg);background:#fffaf1eb;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0}.upgrade-wall-modal{border:1px solid var(--color-border-glow);border-radius:var(--radius-xl);padding:var(--space-lg);text-align:center;background:linear-gradient(135deg,#fffaf1,#f6ead8);width:100%;max-width:340px}.glass-card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-lg)}.text-gold-gradient{background:linear-gradient(135deg,#a06f12 0%,#c8962a 50%,#8c5a10 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.text-purple-gradient{background:linear-gradient(135deg,#2f5d22 0%,#6f8a3a 48%,#b06c83 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.state-badge{border-radius:var(--radius-sm);font-size:var(--font-xs);letter-spacing:.05em;padding:.2em .6em;font-weight:600;display:inline-block}.state-badge--healthy{color:var(--state-healthy);background:#10b98126}.state-badge--overload{color:var(--state-overload);background:#f59e0b26}.state-badge--loop{color:var(--state-loop);background:#3b82f626}.state-badge--mask{color:var(--state-mask);background:#8b5cf626}.state-badge--grip,.state-badge--demon{color:var(--state-grip);background:#ef444426}.no-select{-webkit-user-select:none;user-select:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.page-enter-active,.page-leave-active{transition:opacity var(--transition-normal), transform var(--transition-normal)}.page-enter-from{opacity:0;transform:translateY(16px)}.page-leave-to{opacity:0;transform:translateY(-8px)}@media screen and (width>=481px) and (width<=767px){body{background-color:#e3dccf}#app{box-shadow:0 0 0 1px #56462d24,0 18px 80px #49382029}}@media screen and (width>=768px){body{background-color:#e3dccf;background-image:radial-gradient(at 10%,#2f5d221a 0%,#0000 50%),radial-gradient(at 90% 30%,#b06c831a 0%,#0000 50%)}#app{max-width:var(--app-max-width-pc);padding:0 20px;box-shadow:0 0 0 1px #56462d1f,0 18px 80px #49382029}.page{padding:0}.fixed-in-app{width:min(90vw,480px);left:50%;transform:translate(-50%)}#soul-loading,.upgrade-wall-overlay{width:100%;left:0}}@keyframes shimmer{0%{transform:translate(-100%)skew(-15deg)}to{transform:translate(200%)skew(-15deg)}}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff12 50%,#0000 100%);animation:3s ease-in-out infinite shimmer;position:absolute;inset:0;transform:translate(-100%)skew(-15deg)}.shimmer:nth-child(2):after{animation-delay:1s}.shimmer:nth-child(3):after{animation-delay:2s}@keyframes starTwinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.star-dot{background:#ffffffb3;border-radius:50%;width:3px;height:3px;animation:2s ease-in-out infinite starTwinkle;position:absolute}@keyframes orbitPulse{0%,to{box-shadow:0 0 4px 2px #7c3aed66}50%{box-shadow:0 0 10px 4px #a855f7cc}}.orbit-pulse{animation:2s ease-in-out infinite orbitPulse}.press-scale{transition:transform var(--transition-fast), opacity var(--transition-fast);-webkit-tap-highlight-color:transparent;cursor:pointer}.press-scale:active{opacity:.85;transform:scale(.97)}.arrow-hover{transition:transform var(--transition-fast);display:inline-block}.press-scale:active .arrow-hover{transform:translate(4px)}@keyframes breatheGlow{0%,to{box-shadow:0 0 20px #7c3aed33}50%{box-shadow:0 0 40px #a855f780,0 0 60px #7c3aed33}}.breathe-glow{animation:3s ease-in-out infinite breatheGlow}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}@keyframes floatUp{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.float-anim{animation:4s ease-in-out infinite floatUp}@keyframes dotBounce{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}.loading-dots span{margin:0 1px;animation:1.2s ease-in-out infinite dotBounce;display:inline-block}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes typeReveal{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0% 0 0)}}.type-reveal{animation:.8s ease-out forwards typeReveal}.fade-in-up{animation:.5s ease-out both fadeInUp}
