:root{--bg: #0A0A0F;--bg-panel: #12121C;--bg-card: #16161F;--bg-elevated: rgba(18, 18, 28, .85);--border: #2A2A3A;--border-strong: #3A3A4E;--text-primary: #E8E0D0;--text-secondary: #9B9385;--text-dim: #6B6355;--text-strong: #EDE6D6;--shadow: rgba(0, 0, 0, .5);--theme-primary: #9A7615;--theme-light: #E6C463;--theme-dim: #6E5611;--theme-glow: rgba(154, 118, 21, .3);--theme-glow-strong: rgba(154, 118, 21, .5);--theme-bg-tint: rgba(154, 118, 21, .05);--theme-accent: #B5791F;--theme-heading: var(--theme-light);--theme-active: var(--theme-light)}[data-mode=dark]{--bg: #0A0A0F;--bg-panel: #12121C;--bg-card: #16161F;--bg-elevated: rgba(18, 18, 28, .85);--border: #2A2A3A;--border-strong: #3A3A4E;--text-primary: #E8E0D0;--text-secondary: #9B9385;--text-dim: #6B6355;--text-strong: #EDE6D6;--shadow: rgba(0, 0, 0, .5)}[data-mode=light]{--bg: #F4EFE6;--bg-panel: #FBF8F1;--bg-card: #FFFFFF;--bg-elevated: rgba(251, 248, 241, .88);--border: #E2DACB;--border-strong: #CFC4AE;--text-primary: #3A342A;--text-secondary: #6E6657;--text-dim: #7C7263;--text-strong: #241F16;--shadow: rgba(60, 50, 30, .14)}[data-accent=fire]{--theme-primary: #9A7615;--theme-light: #E6C463;--theme-dim: #6E5611;--theme-glow: rgba(154, 118, 21, .3);--theme-glow-strong: rgba(154, 118, 21, .5);--theme-bg-tint: rgba(154, 118, 21, .05);--theme-accent: #B5791F}[data-accent=nether]{--theme-primary: #8E44AD;--theme-light: #C89BD8;--theme-dim: #5B2C6F;--theme-glow: rgba(142, 68, 173, .3);--theme-glow-strong: rgba(142, 68, 173, .5);--theme-bg-tint: rgba(142, 68, 173, .05);--theme-accent: #7D3C98}[data-accent=jade]{--theme-primary: #138D75;--theme-light: #4FC8AE;--theme-dim: #0B5E4D;--theme-glow: rgba(19, 141, 117, .3);--theme-glow-strong: rgba(19, 141, 117, .5);--theme-bg-tint: rgba(19, 141, 117, .05);--theme-accent: #0F9B82}[data-accent=cinnabar]{--theme-primary: #C0392B;--theme-light: #E8746A;--theme-dim: #8A261C;--theme-glow: rgba(192, 57, 43, .3);--theme-glow-strong: rgba(192, 57, 43, .5);--theme-bg-tint: rgba(192, 57, 43, .05);--theme-accent: #A93226}[data-accent=frost]{--theme-primary: #2471A3;--theme-light: #7FBFE6;--theme-dim: #185A85;--theme-glow: rgba(36, 113, 163, .3);--theme-glow-strong: rgba(36, 113, 163, .5);--theme-bg-tint: rgba(36, 113, 163, .05);--theme-accent: #1F618D}[data-mode=dark]{--theme-heading: var(--theme-light);--theme-active: var(--theme-light)}[data-mode=light]{--theme-heading: var(--theme-primary);--theme-active: var(--theme-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 8px var(--theme-glow)}50%{box-shadow:0 0 20px var(--theme-glow-strong)}}@keyframes float-particle{0%{transform:translateY(0) translate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100vh) translate(20px);opacity:0}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}*,*:before,*:after{transition:background-color .4s ease,border-color .4s ease,color .4s ease,box-shadow .4s ease,fill .4s ease,outline-color .4s ease}html{scroll-behavior:smooth}body{font-family:"Noto Serif SC",SimSun,serif;background:var(--bg);color:var(--text-primary);min-height:100vh;overflow-x:hidden}body::-webkit-scrollbar{width:6px}body::-webkit-scrollbar-track{background:transparent}body::-webkit-scrollbar-thumb{background:var(--theme-glow);border-radius:3px}body::-webkit-scrollbar-thumb:hover{background:var(--theme-glow-strong)}body{transition:background-color .4s ease,color .4s ease}#app{min-height:100vh}.particle-bg{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.particle-bg .particle{position:absolute;bottom:-10px;width:3px;height:3px;background:var(--theme-primary);border-radius:50%;opacity:0;animation:float-particle linear infinite;transition:background .4s ease}.navbar{position:fixed;top:0;left:0;right:0;height:64px;background:var(--bg-elevated);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--theme-glow);z-index:100;display:flex;align-items:center;padding:0 24px;transition:border-color .4s ease,background-color .4s ease}.navbar .nav-brand{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:24px;color:var(--theme-heading);text-shadow:0 0 10px var(--theme-glow),0 0 20px var(--theme-glow);margin-right:40px;white-space:nowrap}.navbar .nav-links{display:flex;gap:8px;list-style:none;flex:1}.navbar .nav-links .nav-link{padding:8px 16px;font-size:14px;color:var(--text-secondary);cursor:pointer;border-radius:4px;transition:all .3s ease;font-family:"Noto Serif SC",SimSun,serif;letter-spacing:2px}.navbar .nav-links .nav-link:hover{color:var(--theme-active);background:var(--theme-bg-tint)}.navbar .nav-links .nav-link.active{color:var(--theme-active);background:var(--theme-bg-tint);box-shadow:inset 0 -2px 0 var(--theme-primary)}.navbar .nav-stats{font-size:12px;color:var(--text-dim);white-space:nowrap}.navbar .nav-stats span{color:var(--theme-primary);font-weight:600}.navbar .theme-switcher{display:flex;gap:6px;margin-left:20px;padding-left:16px;border-left:1px solid var(--border)}.navbar .theme-switcher .theme-dot{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid transparent;background:var(--dot);color:var(--dot);transition:all .3s ease;position:relative}.navbar .theme-switcher .theme-dot:hover{transform:scale(1.2)}.navbar .theme-switcher .theme-dot.active{border-color:var(--text-strong);box-shadow:0 0 8px currentColor}.navbar .theme-mode-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:16px;border-radius:50%;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:16px;line-height:1;transition:all .3s ease}.navbar .theme-mode-toggle:hover{color:var(--theme-active);border-color:var(--theme-active);transform:scale(1.1)}.main-content{padding-top:64px;position:relative;z-index:1}.section{display:none;padding:32px 24px 60px;max-width:1400px;margin:0 auto}.section.active{display:block;animation:fadeIn .6s ease 0s both}.section .section-header{text-align:center;margin-bottom:32px}.section .section-header h2{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:36px;color:var(--theme-heading);text-shadow:0 0 10px var(--theme-glow),0 0 20px var(--theme-glow);margin-bottom:8px}.section .section-header .section-subtitle{font-size:14px;color:var(--text-secondary);letter-spacing:4px}.section .section-header .section-divider{width:120px;height:2px;background:linear-gradient(90deg,transparent,var(--theme-primary),transparent);margin:16px auto 0;transition:background .4s ease}.novel-reader{background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;position:relative;border:1px solid var(--theme-glow);box-shadow:0 0 15px var(--theme-glow),inset 0 0 15px var(--theme-bg-tint)}.novel-reader:before,.novel-reader:after{content:"";position:absolute;width:16px;height:16px;border-color:var(--theme-primary);border-style:solid;opacity:.6}.novel-reader:before{top:-1px;left:-1px;border-width:2px 0 0 2px}.novel-reader:after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}.novel-reader{position:relative;padding:32px;max-width:860px;margin:0 auto;transition:border-color .4s ease,box-shadow .4s ease}.novel-reader .toc-toggle{position:static;flex-shrink:0;padding:8px 14px;font-size:13px;font-family:"Noto Serif SC",SimSun,serif;letter-spacing:2px;color:var(--text-secondary);background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:all .3s ease}.novel-reader .toc-toggle:hover{color:var(--theme-active);border-color:var(--theme-primary);background:var(--theme-bg-tint)}.novel-reader .toc-floating{position:absolute;top:calc(100% + 8px);right:0;z-index:22;width:260px;max-height:70vh;display:none;flex-direction:column;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel);box-shadow:0 12px 32px var(--shadow),0 0 0 1px var(--theme-glow);overflow:hidden;transition:opacity .25s ease,transform .25s ease,border-color .4s ease,background-color .4s ease}.novel-reader.toc-open .toc-floating{display:flex;animation:toc-pop .22s ease}@keyframes toc-pop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.novel-reader .toc-floating-header{display:flex;align-items:center;padding:12px 14px 10px;border-bottom:1px solid var(--border)}.novel-reader .toc-floating-header .toc-floating-title{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:18px;color:var(--theme-active)}.novel-reader .toc-floating-header .toc-floating-count{font-size:12px;color:var(--text-dim);margin-left:auto;margin-right:10px}.novel-reader .toc-floating-header .toc-floating-close{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;color:var(--text-secondary);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .25s ease}.novel-reader .toc-floating-header .toc-floating-close:hover{color:var(--theme-active);background:var(--theme-bg-tint)}.novel-reader .toc-search-input{margin:12px 16px;padding:8px 12px;font-size:13px;font-family:"Noto Serif SC",SimSun,serif;color:var(--text-primary);background:var(--bg);border:1px solid var(--border);border-radius:4px;outline:none;transition:border-color .3s ease,background-color .4s ease,color .4s ease}.novel-reader .toc-search-input::placeholder{color:var(--text-dim)}.novel-reader .toc-search-input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 2px var(--theme-bg-tint)}.novel-reader .toc-list{max-height:52vh;overflow-y:auto;padding:4px 8px 12px}.novel-reader .toc-list::-webkit-scrollbar{width:6px}.novel-reader .toc-list::-webkit-scrollbar-track{background:transparent}.novel-reader .toc-list::-webkit-scrollbar-thumb{background:var(--theme-glow);border-radius:3px}.novel-reader .toc-list::-webkit-scrollbar-thumb:hover{background:var(--theme-glow-strong)}.novel-reader .toc-list .toc-item{padding:10px 12px;border-radius:4px;cursor:pointer;border-left:2px solid transparent;transition:all .25s ease}.novel-reader .toc-list .toc-item:hover{background:var(--theme-bg-tint)}.novel-reader .toc-list .toc-item:hover .toc-item-title{color:var(--theme-active)}.novel-reader .toc-list .toc-item.active{background:var(--theme-bg-tint);border-left-color:var(--theme-primary)}.novel-reader .toc-list .toc-item.active .toc-item-title{color:var(--theme-active)}.novel-reader .toc-list .toc-item .toc-item-title{font-size:15px;font-weight:600;color:var(--text-strong);font-family:"Noto Serif SC",SimSun,serif;transition:color .4s ease}.novel-reader .toc-list .toc-item .toc-item-sub{font-size:12px;color:var(--text-dim);margin-top:2px;line-height:1.5;transition:color .4s ease}.novel-reader .toc-list .toc-empty{padding:16px 12px;font-size:13px;color:var(--text-dim);text-align:center}.novel-reader .chapter-panel{min-width:0}.novel-reader .chapter-content{font-size:16px;line-height:2.2;color:var(--text-primary);text-align:justify;padding:8px 4px 0}.novel-reader .chapter-section{padding-bottom:8px}.novel-reader .chapter-bar{position:sticky;top:64px;z-index:12;display:flex;align-items:center;gap:16px;padding:14px 4px;margin-bottom:8px;border-bottom:1px solid var(--border);background:var(--bg-panel);transition:border-color .4s ease,background-color .4s ease}.novel-reader .chapter-bar .chapter-bar-info{min-width:0;flex:1}.novel-reader .chapter-bar .chapter-bar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.novel-reader .chapter-bar .chapter-bar-title{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:22px;color:var(--theme-heading);text-shadow:0 0 10px var(--theme-glow),0 0 20px var(--theme-glow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.novel-reader .chapter-bar .chapter-bar-sub{font-size:13px;color:var(--text-secondary);margin-top:4px;letter-spacing:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .4s ease}.novel-reader .chapter-bar .chapter-bar-tts{display:flex;align-items:center;gap:8px;flex-shrink:0}.novel-reader .tts-voice{max-width:120px;padding:6px 8px;font-size:13px;font-family:"Noto Serif SC",SimSun,serif;color:var(--text-primary);background:var(--bg);border:1px solid var(--border);border-radius:4px;outline:none;cursor:pointer;transition:border-color .3s ease,background-color .4s ease,color .4s ease}.novel-reader .tts-voice:focus{border-color:var(--theme-primary)}.novel-reader .tts-voice:disabled{opacity:.5;cursor:not-allowed}.novel-reader .tts-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-secondary);background:transparent;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:all .25s ease}.novel-reader .tts-btn:hover:not(:disabled){color:var(--theme-active);border-color:var(--theme-primary);background:var(--theme-bg-tint)}.novel-reader .tts-btn:disabled{opacity:.5;cursor:not-allowed}.novel-reader .chapter-foot{margin-top:32px;padding-top:24px;border-top:1px solid var(--border);text-align:center}.novel-reader .chapter-foot .chapter-foot-end{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:18px;color:var(--text-dim);letter-spacing:4px}.novel-reader .chapter-foot .chapter-next-btn{padding:10px 22px;font-size:14px;font-family:"Noto Serif SC",SimSun,serif;letter-spacing:2px;color:var(--theme-active);background:var(--theme-bg-tint);border:1px solid var(--theme-primary);border-radius:4px;cursor:pointer;transition:all .3s ease}.novel-reader .chapter-foot .chapter-next-btn:hover{color:var(--bg-panel);background:var(--theme-primary)}.novel-reader .scroll-sentinel{height:1px;margin:0;padding:0}.novel-reader .chapter-body p{margin-bottom:16px;text-indent:2em}.novel-reader .chapter-body h1,.novel-reader .chapter-body h2,.novel-reader .chapter-body h3,.novel-reader .chapter-body h4,.novel-reader .chapter-body h5,.novel-reader .chapter-body h6{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;color:var(--theme-active);margin:20px 0 12px;line-height:1.6;text-indent:0}.novel-reader .chapter-body h4{font-size:19px}.novel-reader .chapter-body h5{font-size:17px}.novel-reader .chapter-body h6{font-size:15px}.novel-reader .chapter-body blockquote{margin:16px 0;padding:12px 18px;border-left:3px solid var(--theme-primary);background:var(--theme-bg-tint);color:var(--text-secondary);border-radius:0 4px 4px 0;font-style:italic}.novel-reader .chapter-body blockquote p{text-indent:0;margin-bottom:8px}.novel-reader .chapter-body blockquote p:last-child{margin-bottom:0}.novel-reader .chapter-body hr{border:none;height:1px;background:var(--border);margin:24px 0}.novel-reader .chapter-body ul,.novel-reader .chapter-body ol{margin:0 0 16px 1.6em;padding:0}.novel-reader .chapter-body ul li,.novel-reader .chapter-body ol li{margin-bottom:8px}.novel-reader .chapter-body code{font-family:JetBrains Mono,Fira Code,Consolas,Menlo,monospace;font-size:.9em;padding:2px 6px;border-radius:4px;background:var(--bg-panel);border:1px solid var(--border);color:var(--theme-active)}.novel-reader .chapter-body strong{color:var(--text-strong);font-weight:600}.novel-reader .chapter-body em{color:var(--text-secondary)}.novel-reader .chapter-body a{color:var(--theme-active);text-decoration:underline;text-underline-offset:2px}.relation-graph{background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;border:1px solid var(--theme-glow);box-shadow:0 0 15px var(--theme-glow),inset 0 0 15px var(--theme-bg-tint);padding:24px;position:relative;transition:border-color .4s ease,box-shadow .4s ease}.relation-graph .graph-controls{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.relation-graph .graph-controls .filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.relation-graph .graph-controls .filter-row .filter-label{font-size:12px;color:var(--text-dim);letter-spacing:2px;margin-right:4px;flex-shrink:0}.relation-graph .graph-controls .faction-filter{padding:6px 14px;font-size:12px;border-radius:20px;cursor:pointer;transition:all .3s;border:1px solid var(--border);color:var(--text-secondary);background:transparent;font-family:"Noto Serif SC",SimSun,serif}.relation-graph .graph-controls .faction-filter .count{font-size:10px;color:var(--text-dim);margin-left:4px}.relation-graph .graph-controls .faction-filter:hover{border-color:var(--theme-primary);color:var(--theme-active)}.relation-graph .graph-controls .faction-filter.active{background:var(--theme-bg-tint);border-color:var(--theme-primary);color:var(--theme-active)}.relation-graph .graph-controls .faction-filter.active .count{color:var(--theme-dim)}.relation-graph .graph-controls .type-filter{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:11px;border-radius:14px;cursor:pointer;transition:all .25s;border:1px solid var(--border);color:var(--text-dim);background:transparent;font-family:"Noto Serif SC",SimSun,serif}.relation-graph .graph-controls .type-filter .type-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.relation-graph .graph-controls .type-filter:hover{border-color:var(--theme-primary);color:var(--text-secondary)}.relation-graph .graph-controls .type-filter.active{background:var(--theme-bg-tint);border-color:var(--theme-primary);color:var(--text-primary)}.relation-graph .graph-controls .type-reset{padding:4px 10px;font-size:11px;border-radius:14px;cursor:pointer;border:1px dashed var(--border);color:var(--text-dim);background:transparent;font-family:"Noto Serif SC",SimSun,serif;transition:all .25s}.relation-graph .graph-controls .type-reset:hover{color:var(--theme-active);border-color:var(--theme-primary)}.relation-graph .graph-controls .graph-stats{font-size:12px;color:var(--text-dim);letter-spacing:1px}.relation-graph .graph-controls .graph-legend{margin-left:auto;display:flex;gap:12px;font-size:11px;color:var(--text-dim)}.relation-graph .graph-controls .graph-legend .legend-item{display:flex;align-items:center;gap:4px}.relation-graph .graph-controls .graph-legend .legend-item .legend-dot{width:8px;height:8px;border-radius:50%}.relation-graph .graph-canvas{width:100%;height:620px;border-radius:8px;background:radial-gradient(ellipse at center,var(--theme-bg-tint),transparent 70%);position:relative;overflow:hidden;transition:background .4s ease}.relation-graph .graph-canvas .vis-network:focus{outline:none}.relation-graph .node-info{background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;position:relative;border:1px solid var(--theme-glow);box-shadow:0 0 15px var(--theme-glow),inset 0 0 15px var(--theme-bg-tint);padding:16px 18px;margin-bottom:16px;transition:border-color .4s ease,background-color .4s ease}.relation-graph .node-info .ni-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}.relation-graph .node-info .ni-head .ni-name{font-family:"Noto Serif SC",SimSun,serif;font-size:18px;font-weight:600;color:var(--theme-active)}.relation-graph .node-info .ni-head .ni-role{font-size:12px;color:var(--text-secondary)}.relation-graph .node-info .ni-desc{font-size:13px;line-height:1.7;color:var(--text-secondary)}.relation-graph .node-info .ni-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.relation-graph .node-info .ni-tags .ni-tag{font-size:10px;padding:2px 8px;border-radius:10px;border:1px solid var(--border);color:var(--text-dim)}.relation-graph .node-info .ni-lines-label{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:11px;letter-spacing:2px;color:var(--theme-primary)}.relation-graph .node-info .ni-lines{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.relation-graph .node-info .ni-lines .ni-line{font-size:12px;padding:4px 12px;border-radius:14px;cursor:pointer;border:1px solid var(--theme-primary);color:var(--theme-active);background:var(--theme-bg-tint);font-family:"Noto Serif SC",SimSun,serif;transition:all .25s}.relation-graph .node-info .ni-lines .ni-line:hover{color:var(--bg-panel);background:var(--theme-primary)}.relation-graph .node-info .ni-lines .ni-line.disabled{cursor:default;opacity:.5;border-style:dashed;border-color:var(--border);color:var(--text-dim);background:transparent}.relation-graph .node-info .ni-hint{margin-top:12px;font-size:11px;color:var(--text-dim);letter-spacing:1px}.relation-graph .node-tooltip{position:absolute;background:var(--bg-panel);border:1px solid var(--theme-primary);border-radius:4px;padding:12px 16px;font-size:12px;pointer-events:none;z-index:10;max-width:320px;display:none;transition:border-color .4s ease;box-shadow:0 4px 20px #0000002e}.relation-graph .node-tooltip .tooltip-name{font-size:15px;font-weight:600;color:var(--theme-active);margin-bottom:4px;font-family:"Noto Serif SC",SimSun,serif}.relation-graph .node-tooltip .tooltip-role{color:var(--text-secondary);margin-bottom:6px}.relation-graph .node-tooltip .tooltip-desc{color:var(--text-dim);line-height:1.6}.relation-graph .node-tooltip .tooltip-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.relation-graph .node-tooltip .tooltip-tags .tt-tag{font-size:10px;padding:2px 7px;border-radius:10px;border:1px solid var(--border);color:var(--text-dim)}.relation-graph .node-tooltip .tooltip-sub{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:11px;color:var(--theme-active);letter-spacing:1px}.relation-graph .node-tooltip .tooltip-rels{margin-top:6px;max-height:190px;overflow-y:auto}.relation-graph .node-tooltip .tooltip-rels::-webkit-scrollbar{width:6px}.relation-graph .node-tooltip .tooltip-rels::-webkit-scrollbar-track{background:transparent}.relation-graph .node-tooltip .tooltip-rels::-webkit-scrollbar-thumb{background:var(--theme-glow);border-radius:3px}.relation-graph .node-tooltip .tooltip-rels::-webkit-scrollbar-thumb:hover{background:var(--theme-glow-strong)}.relation-graph .node-tooltip .tooltip-rels .tt-rel{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:11px;line-height:1.5}.relation-graph .node-tooltip .tooltip-rels .tt-rel .tt-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.relation-graph .node-tooltip .tooltip-rels .tt-rel .tt-type{color:var(--text-primary);flex-shrink:0}.relation-graph .node-tooltip .tooltip-rels .tt-rel .tt-other{color:var(--theme-active);flex-shrink:0}.relation-graph .node-tooltip .tooltip-rels .tt-rel .tt-label{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-atlas .faction-tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;justify-content:center}.character-atlas .faction-tabs .faction-tab{padding:8px 20px;font-size:13px;border-radius:4px;cursor:pointer;transition:all .3s;border:1px solid var(--border);color:var(--text-secondary);background:transparent;font-family:"Noto Serif SC",SimSun,serif;letter-spacing:2px}.character-atlas .faction-tabs .faction-tab:hover{border-color:var(--theme-primary);color:var(--theme-active)}.character-atlas .faction-tabs .faction-tab.active{background:var(--theme-bg-tint);border-color:var(--theme-primary);color:var(--theme-active)}.character-atlas .faction-tabs .faction-tab .count{font-size:11px;color:var(--text-dim);margin-left:4px}.character-atlas .character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.character-atlas .character-grid .char-empty{grid-column:1/-1;padding:40px;text-align:center;color:var(--text-dim);font-size:14px;background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;position:relative;border:1px solid var(--theme-glow);box-shadow:0 0 15px var(--theme-glow),inset 0 0 15px var(--theme-bg-tint)}.character-atlas .character-grid .char-card{background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;padding:16px;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.character-atlas .character-grid .char-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--faction-color, var(--theme-primary));opacity:.6}.character-atlas .character-grid .char-card:hover{transform:translateY(-3px);border-color:var(--theme-glow);box-shadow:0 8px 24px var(--shadow),0 0 15px var(--theme-glow)}.character-atlas .character-grid .char-card .char-name{font-size:16px;font-weight:600;color:var(--theme-active);margin-bottom:4px;font-family:"Noto Serif SC",SimSun,serif}.character-atlas .character-grid .char-card .char-role{font-size:12px;color:var(--faction-color, var(--theme-primary));margin-bottom:8px}.character-atlas .character-grid .char-card .char-desc{font-size:12px;color:var(--text-secondary);line-height:1.6;margin-bottom:8px}.character-atlas .character-grid .char-card .char-lines{display:flex;gap:4px;flex-wrap:wrap}.character-atlas .character-grid .char-card .char-lines .line-tag{font-size:10px;padding:2px 6px;border-radius:3px;background:var(--theme-bg-tint);color:var(--theme-dim)}.character-atlas .character-grid .char-card .char-lines .line-tag.clickable{cursor:pointer;color:var(--theme-active);border:1px solid var(--border);transition:all .25s}.character-atlas .character-grid .char-card .char-lines .line-tag.clickable:hover{border-color:var(--theme-primary);background:var(--theme-bg-tint);box-shadow:0 0 6px var(--theme-glow)}.character-atlas .character-grid .char-card.char-highlight{border-color:var(--theme-primary);box-shadow:0 0 0 2px var(--theme-primary),0 8px 24px var(--shadow);animation:char-pulse 1.2s ease}.character-atlas .character-grid .char-card.char-highlight:before{opacity:1;width:4px}@keyframes char-pulse{0%{box-shadow:0 0 #9a761580}to{box-shadow:0 0 0 2px var(--theme-primary),0 8px 24px var(--shadow)}}.storyline-map .storyline-list{display:flex;flex-direction:column;gap:16px}.storyline-map .storyline-card{background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;position:relative}.storyline-map .storyline-card:before,.storyline-map .storyline-card:after{content:"";position:absolute;width:16px;height:16px;border-color:var(--theme-primary);border-style:solid;opacity:.6}.storyline-map .storyline-card:before{top:-1px;left:-1px;border-width:2px 0 0 2px}.storyline-map .storyline-card:after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}.storyline-map .storyline-card{padding:24px 28px;cursor:pointer;transition:all .3s}.storyline-map .storyline-card:hover{border-color:var(--theme-glow)}.storyline-map .storyline-card.expanded{border-color:var(--theme-primary);background:linear-gradient(145deg,var(--bg-panel),var(--theme-bg-tint))}.storyline-map .storyline-card.highlight{border-color:var(--theme-primary);box-shadow:0 0 0 2px var(--theme-primary),0 8px 24px var(--shadow);animation:char-pulse 1.2s ease}.storyline-map .storyline-card .storyline-header{display:flex;align-items:center;gap:16px}.storyline-map .storyline-card .storyline-header .line-number{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:32px;color:var(--theme-primary);opacity:.6;min-width:48px}.storyline-map .storyline-card .storyline-header .line-info{flex:1}.storyline-map .storyline-card .storyline-header .line-info .line-name{font-size:20px;font-weight:600;color:var(--theme-active);margin-bottom:4px}.storyline-map .storyline-card .storyline-header .line-info .line-chars{font-size:12px;color:var(--text-dim)}.storyline-map .storyline-card .storyline-header .line-info .line-chars .core-chip{color:var(--theme-active);cursor:pointer;padding:1px 6px;border-radius:3px;border:1px solid transparent;transition:all .25s}.storyline-map .storyline-card .storyline-header .line-info .line-chars .core-chip:hover{border-color:var(--theme-primary);background:var(--theme-bg-tint);box-shadow:0 0 6px var(--theme-glow)}.storyline-map .storyline-card .storyline-header .line-toggle{font-size:20px;color:var(--theme-dim);transition:transform .3s}.storyline-map .storyline-card .storyline-header.expanded .line-toggle{transform:rotate(45deg)}.storyline-map .storyline-card .storyline-detail{display:none;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.storyline-map .storyline-card .storyline-detail.show{display:block}.storyline-map .storyline-card .storyline-detail .detail-section{margin-bottom:12px}.storyline-map .storyline-card .storyline-detail .detail-section .detail-label{font-size:12px;color:var(--theme-primary);margin-bottom:6px;letter-spacing:2px}.storyline-map .storyline-card .storyline-detail .detail-section .detail-text{font-size:14px;color:var(--text-secondary);line-height:1.8}.storyline-map .storyline-card .storyline-detail .detail-section .detail-conflict{color:var(--theme-accent);font-style:italic}.world-view .world-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.world-view .world-card{background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;position:relative;border:1px solid var(--theme-glow);box-shadow:0 0 15px var(--theme-glow),inset 0 0 15px var(--theme-bg-tint);padding:24px;transition:border-color .4s ease,box-shadow .4s ease}.world-view .world-card .world-icon{font-size:32px;margin-bottom:12px}.world-view .world-card .world-title{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:22px;color:var(--theme-heading);text-shadow:0 0 10px var(--theme-glow),0 0 20px var(--theme-glow);margin-bottom:12px}.world-view .world-card .world-desc{font-size:14px;color:var(--text-secondary);line-height:1.8}.world-view .core-theme{margin-top:32px;text-align:center;padding:32px;background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;position:relative;border:1px solid var(--theme-glow);box-shadow:0 0 15px var(--theme-glow),inset 0 0 15px var(--theme-bg-tint)}.world-view .core-theme .theme-text{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:24px;color:var(--theme-heading);text-shadow:0 0 10px var(--theme-glow),0 0 20px var(--theme-glow);line-height:2}.world-view .world-realms{margin-top:32px}.world-view .world-realms .realm-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px}.world-view .world-realms .realm-item{display:flex;align-items:center;gap:6px}.world-view .world-realms .realm-name{font-family:"Noto Serif SC",SimSun,serif;font-size:15px;color:var(--theme-active);padding:5px 12px;border:1px solid var(--border);border-radius:4px;background:var(--theme-bg-tint);letter-spacing:2px}.world-view .world-realms .realm-arrow{color:var(--text-dim);font-size:14px}.world-view .world-realms .realm-note{margin-top:14px;text-align:center;font-size:12px;color:var(--text-dim);line-height:1.8}.world-view .world-forces{margin-top:32px}.world-view .world-forces-title{font-family:Ma Shan Zheng,STKaiti,KaiTi,cursive;font-size:24px;color:var(--theme-heading);text-shadow:0 0 10px var(--theme-glow),0 0 20px var(--theme-glow);text-align:center;margin-bottom:20px;letter-spacing:4px}.world-view .world-forces-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.world-view .force-card{background:linear-gradient(145deg,var(--bg-panel),var(--bg-card));border:1px solid var(--border);border-radius:8px;position:relative;border:1px solid var(--theme-glow);box-shadow:0 0 15px var(--theme-glow),inset 0 0 15px var(--theme-bg-tint);padding:18px 20px;transition:border-color .4s ease,box-shadow .4s ease}.world-view .force-card .force-name{font-family:"Noto Serif SC",SimSun,serif;font-size:17px;color:var(--theme-active);margin-bottom:8px;letter-spacing:2px}.world-view .force-card .force-desc{font-size:13px;color:var(--text-secondary);line-height:1.7}@media (max-width: 768px){.navbar{padding:0 12px}.navbar .nav-brand{font-size:18px;margin-right:16px}.navbar .nav-links{gap:4px}.navbar .nav-links .nav-link{padding:6px 10px;font-size:12px}.navbar .nav-stats{display:none}.navbar .theme-switcher{gap:4px;margin-left:8px;padding-left:8px}.navbar .theme-switcher .theme-dot{width:16px;height:16px}.navbar .theme-mode-toggle{width:28px;height:28px;margin-left:8px;font-size:14px}.section{padding:20px 12px 40px}.novel-reader{padding:24px 20px}.novel-reader .toc-floating{top:calc(100% + 8px);right:0;left:0;width:auto;max-height:64vh}.novel-reader .toc-list{max-height:44vh}.novel-reader .chapter-bar{flex-direction:column;align-items:stretch;gap:10px}.novel-reader .chapter-bar .chapter-bar-tts{justify-content:space-between}.novel-reader .tts-voice{max-width:none;flex:1}.character-grid{grid-template-columns:1fr}.graph-canvas{height:400px}}
