:root{--canvas:#faf9f5;--ink:#141413;--ink-2:#3d3d3a;--ink-3:#6c6a64;--ink-muted:#8e8b82;--line:#e6dfd8;--line-strong:#d4ccbf;--surface:#f0ebe2;--surface-card:#ffffffc7;--surface-float:#fffdfaf7;--accent:#b15f43;--accent-deep:#a9583e;--accent-soft:#fdf0ea;--accent-mid:#f5ddd4;--ai:#5b7fa6;--ai-deep:#3d6289;--ai-soft:#5b7fa614;--ai-border:#5b7fa640;--grad-brand:linear-gradient(115deg,#cc785c 0%,#b0668a 48%,#5b7fa6 100%);--grad-ai-line:linear-gradient(180deg,#cc785c,#5b7fa6);--ok:#4a8c5c;--warn:#b87c2a;--danger:#c0563f;--r:8px;--r-lg:12px;--r-xl:18px;--r-2xl:24px;--r-full:9999px;--shadow-md:0 4px 14px #140e0814,0 2px 4px #140e080a;--shadow-lg:0 16px 40px #140e081f,0 4px 10px #140e080d;--shadow-xl:0 30px 70px #140e0829,0 8px 18px #140e080f;--font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",Georgia,serif;--font-sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:"JetBrains Mono","SF Mono",monospace;--t-fast:.12s;--t-base:.2s;--t-slow:.32s;--ease-out:cubic-bezier(.16,1,.3,1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit}.btn{border-radius:var(--r);font-family:var(--font-sans);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;border:1px solid #0000;padding:10px 20px;font-size:13px;font-weight:600}.btn-ghost{border-color:var(--line-strong);color:var(--ink-3);background:0 0}.btn-ghost:hover{background:var(--surface);color:var(--ink-2)}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #cc785c47}.btn-primary:hover{background:var(--accent-deep);transform:translateY(-1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn:active:not(:disabled){transform:translateY(0)scale(.98)}@keyframes flow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes rise{0%{opacity:0;filter:blur(3px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(14px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes route-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.route-enter{animation:.32s cubic-bezier(.16,1,.3,1) backwards route-enter}@keyframes check-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.check-anim path{stroke-dasharray:1;stroke-dashoffset:1px;animation:check-draw var(--t-slow) var(--ease-out) 50ms forwards}.fnav{z-index:50;border-radius:var(--r-full);-webkit-backdrop-filter:blur(16px)saturate(1.15);transition:transform var(--t-slow) var(--ease-out), opacity var(--t-slow) var(--ease-out), box-shadow var(--t-slow) var(--ease-out), top var(--t-slow) var(--ease-out);white-space:nowrap;background:#fffdf9b8;border:1px solid #b4966e47;align-items:center;gap:14px;padding:7px 9px 7px 18px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 34px #3c28141f,inset 0 1px #ffffffa6}.fnav-compact{opacity:.85;top:8px;transform:translate(-50%)scale(.9);box-shadow:0 5px 18px #3c28141a,inset 0 1px #ffffffa6}.fnav-compact:hover{opacity:1;transform:translate(-50%)scale(1)}.fnav-brand{font-family:var(--font-serif);letter-spacing:.05em;background:var(--grad-brand);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:16px;font-weight:700}.fnav-links{align-items:center;gap:2px;display:flex}.fnav-links a{color:var(--ink-3);border-radius:var(--r-full);transition:color var(--t-fast);padding:6px 12px;font-size:13px;position:relative}.fnav-links a:hover{color:var(--ink)}.fnav-links a.on{color:var(--accent-deep);font-weight:600}.fnav-hl{border-radius:var(--r-full);background:var(--accent-soft);position:absolute;inset:0}.fnav-txt{z-index:1;align-items:baseline;gap:6px;display:inline-flex;position:relative}.fnav-txt .sub{font-family:var(--font-serif);color:var(--ink-muted);font-size:11px}.fnav-links a.on .sub{color:var(--accent-deep);opacity:.7}.fnav-user-wrap{position:relative}.fnav-user{color:#6e69608c;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r-full);font-size:11px;font-family:var(--font-serif);letter-spacing:.06em;cursor:pointer;transition:border-color var(--t-fast), background-color var(--t-fast);align-items:center;gap:8px;padding:5px 13px;display:inline-flex}.fnav-user:hover,.fnav-user.open{border-color:var(--accent-mid);background:var(--accent-soft)}.fnav-menu{z-index:60;background:var(--surface-float);border:1px solid var(--line);border-radius:var(--r-lg);min-width:132px;box-shadow:var(--shadow-lg);animation:rise .22s var(--ease-out) both;flex-direction:column;padding:5px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.fnav-menu-item{text-align:left;border-radius:var(--r);width:100%;color:var(--ink-2);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;padding:8px 12px;font-size:12.5px;display:block}.fnav-menu-item:hover{background:var(--accent-soft);color:var(--accent-deep)}.fnav-menu-item.danger:hover{color:var(--danger);background:#c0563f14}.fnav-menu-sep{background:var(--line);height:1px;margin:4px 8px}.fnav-rank{font-family:var(--font-serif);letter-spacing:.12em;color:#9b3228d1;opacity:.8;border:1px solid #9b322873;border-radius:2px;padding:1px 5px;font-size:9px;line-height:1.5;display:inline-block;transform:rotate(-1.5deg);box-shadow:inset 0 0 0 .5px #9b32281a}@media (max-width:720px){.fnav{gap:8px;max-width:calc(100vw - 12px);padding:6px 8px 6px 14px}.fnav-txt .sub{display:none}.fnav-links{scrollbar-width:none;min-width:0;overflow-x:auto}.fnav-links::-webkit-scrollbar{display:none}.fnav-links a{flex-shrink:0;padding:6px 9px;font-size:12.5px}.fnav-user-wrap{flex-shrink:0}.fnav-user{white-space:nowrap;text-overflow:ellipsis;gap:0;max-width:76px;min-height:32px;padding:5px 10px;display:inline-block;overflow:hidden}.fnav-rank{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}
