:root{--bg: #0d0f14;--bg-soft: #141822;--bg-card: #1a1f2b;--bg-header: #0a0c10f2;--line: #262d3d;--text: #d8dee9;--text-dim: #8a93a5;--accent: #f2a950;--accent-2: #e2574c;--link: #7ab7ff;--radius: 10px;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--mono);font-size:.9em;background:var(--bg-soft);padding:1px 5px;border-radius:4px}.app{min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:40;background:var(--bg-header);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.site-header-inner{max-width:1200px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:700}.brand:hover{text-decoration:none}.brand-mark{font-size:22px}.brand-text{letter-spacing:.02em;white-space:nowrap}.brand-text em{color:var(--accent);font-style:normal;font-weight:600}.site-nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}.site-nav a{color:var(--text-dim);padding:6px 10px;border-radius:6px;font-size:14px}.site-nav a:hover{color:var(--text);text-decoration:none;background:var(--bg-soft)}.site-nav a.active{color:var(--accent);background:var(--bg-soft)}.searchbox{position:relative;flex:1 1 260px;max-width:460px}.searchbox input{width:100%;padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:var(--bg-card);color:var(--text);font-size:14px;outline:none}.searchbox input:focus{border-color:var(--accent)}.searchbox-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 40px #0009}.searchbox-row,.searchbox-all{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 14px;background:none;border:0;color:var(--text);cursor:pointer;font:inherit;font-size:14px}.searchbox-row:hover,.searchbox-all:hover{background:var(--bg-soft)}.searchbox-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchbox-mentions{color:var(--text-dim);font-size:12px;font-family:var(--mono)}.searchbox-empty{padding:10px 14px;color:var(--text-dim);font-size:14px}.searchbox-all{color:var(--accent);border-top:1px solid var(--line)}.site-main{flex:1;width:100%}.page{max-width:1200px;margin:0 auto;padding:26px 20px 60px}.loading-line{color:var(--text-dim);padding:18px 0;font-style:italic}.error-box{background:#2b1516;border:1px solid #5c2a2a;color:#ffb3a7;padding:12px 16px;border-radius:var(--radius);margin:14px 0}.breadcrumbs{color:var(--text-dim);font-size:13px;margin-bottom:10px}.crumb-sep{margin:0 6px;opacity:.6}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-header h1{margin:0;font-size:30px;letter-spacing:-.01em}.page-header-meta{color:var(--text-dim);font-size:14px;margin-top:4px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12.5px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-dim)}.chip-cat{color:var(--accent);border-color:#4a3a1a;background:#241d10}.chip-warn{color:#ffb08f;background:#2b1d14;border-color:#4a2f1c}.chip-sm{font-size:11px;padding:1px 8px}.chip-link:hover{text-decoration:none;filter:brightness(1.15)}.hero{padding:40px 0 28px;text-align:center}.hero h1{font-size:42px;margin:0 0 8px;letter-spacing:-.02em}.hero h1 em{color:var(--accent);font-style:normal}.hero-sub{color:var(--text-dim);max-width:720px;margin:0 auto 22px}.hero-search{display:flex;gap:8px;max-width:620px;margin:0 auto;flex-wrap:wrap}.hero-search input{flex:1;min-width:220px;padding:13px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-card);color:var(--text);font-size:16px}.hero-search input:focus{border-color:var(--accent);outline:none}.hero-search button,.btn-ghost{padding:12px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--accent);color:#14100a;font-weight:700;cursor:pointer;font-size:15px}.hero-search button:hover,.btn-ghost:hover{filter:brightness(1.08);text-decoration:none}.btn-ghost{display:inline-block;background:transparent;color:var(--accent);border:1px solid #4a3a1a}.btn-ghost.disabled{opacity:.35;pointer-events:none}.hero-results{list-style:none;padding:0;max-width:620px;margin:14px auto 0;text-align:left}.hero-results li{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--bg-soft)}.hero-results li:first-child{border-radius:var(--radius) var(--radius) 0 0}.hero-results li:last-child{border-radius:0 0 var(--radius) var(--radius);border-bottom:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:10px 0 34px}.stat-card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px;text-align:center;color:var(--text);transition:border-color .15s}.stat-card:hover{text-decoration:none;border-color:var(--accent)}.stat-num{font-size:26px;font-weight:800;color:var(--accent);font-family:var(--mono)}.stat-label{color:var(--text-dim);font-size:13px;margin-top:2px}.home-cols{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}@media(max-width:860px){.home-cols{grid-template-columns:1fr}}.home-col h2{font-size:18px;color:var(--text);border-bottom:1px solid var(--line);padding-bottom:8px}.top-list{padding-left:22px}.top-list li{margin:7px 0}.book-list{list-style:none;padding:0}.book-list li{padding:8px 0;border-bottom:1px solid var(--line)}.book-list li:last-child{border-bottom:0}.book-meta{color:var(--text-dim);font-size:13px}.book-num{font-family:var(--mono);color:var(--accent);font-weight:700;background:#241d10;padding:1px 8px;border-radius:6px;font-size:13px;white-space:nowrap}.book-num.big{font-size:16px}.home-note{color:var(--text-dim);font-size:14px}.entity-link{color:var(--text);font-weight:600;display:inline-flex;gap:8px;align-items:baseline}.entity-link:hover{color:var(--accent)}.entity-link-mentions{color:var(--text-dim);font-size:12px;font-family:var(--mono);font-weight:400}.entity-table{width:100%;border-collapse:collapse;margin-top:8px}.entity-table th{text-align:left;color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--line)}.entity-table td{padding:8px 10px;border-bottom:1px solid var(--line)}.entity-table tr:hover td{background:var(--bg-soft)}.num{text-align:right;font-family:var(--mono)}.table-wrap{overflow-x:auto}.toolbar{display:flex;gap:12px;align-items:center;margin:8px 0 14px;flex-wrap:wrap}.toolbar input{flex:1;min-width:200px;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg-card);color:var(--text)}.toolbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.sort-label{color:var(--text-dim);font-size:13px;display:flex;gap:6px;align-items:center}.sort-label select{background:var(--bg-card);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:7px 8px}.pagination{display:flex;gap:14px;align-items:center;justify-content:center;padding:18px 0}.pagination button{background:var(--bg-card);color:var(--accent);border:1px solid var(--line);padding:8px 16px;border-radius:8px;cursor:pointer}.pagination button:disabled{opacity:.35;cursor:default}.pagination span{color:var(--text-dim);font-size:14px}.entity-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px}@media(max-width:960px){.entity-layout{grid-template-columns:1fr}}.entity-side section{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px}.entity-side h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.side-list{list-style:none;margin:0;padding:0}.side-list li{padding:3px 0;color:var(--text);font-size:14px}.ref-list li{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line)}.ref-list li:last-child{border-bottom:0}.ref-link{background:var(--bg-soft);border:1px solid var(--line);padding:1px 8px;border-radius:6px;font-size:12.5px;font-family:var(--mono);color:var(--link)}.notes li{color:var(--text-dim);font-style:italic}.markdown{max-width:76ch}.markdown h1{font-size:26px;letter-spacing:-.01em}.markdown h2{font-size:19px;margin-top:28px;padding-bottom:6px;border-bottom:1px solid var(--line);color:var(--accent)}.markdown h3{font-size:16px;margin-top:20px}.markdown p{margin:12px 0}.markdown li{margin:4px 0}.markdown blockquote{border-left:3px solid var(--accent);background:var(--bg-soft);margin:12px 0;padding:8px 16px;border-radius:0 8px 8px 0;color:var(--text-dim)}.markdown table{border-collapse:collapse;margin:14px 0}.markdown th,.markdown td{border:1px solid var(--line);padding:6px 10px;font-size:14px}.markdown th{background:var(--bg-soft)}.markdown hr{border:0;border-top:1px solid var(--line);margin:24px 0}.markdown img{max-width:100%}.reader-head{text-align:center;margin:26px auto 30px;max-width:66ch}.reader-overline{font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600}.reader-title{font-family:Georgia,Iowan Old Style,Palatino Linotype,Times New Roman,serif;font-size:46px;margin:10px 0 4px;letter-spacing:-.01em;font-weight:600}.reader-sub{color:var(--text-dim);font-size:13.5px;font-style:italic}.reader-body{font-family:Georgia,Iowan Old Style,Palatino Linotype,Times New Roman,serif;font-size:17.5px;line-height:1.78;text-align:justify;hyphens:auto;max-width:66ch;margin:0 auto;color:#cfd6e2}.reader-p p{text-indent:2em;margin:0}.reader-p:first-child p{text-indent:0;margin-bottom:.35em}.reader-p:first-child p:first-letter{float:left;font-size:3.3em;line-height:.85;padding:.05em .1em 0 0;color:var(--accent)}.reader-p{border-left:3px solid transparent;border-radius:4px;padding:0 6px;margin:0 -9px;transition:background .25s}.reader-p.reading{background:#241d10cc;border-left-color:var(--accent);box-shadow:0 0 24px #f2a95014}.reader-p.reading p{color:#f4e9d8}.reader-p.reading{scroll-margin-block:40vh}.chapter-ornament{text-align:center;color:var(--accent);font-size:20px;margin-top:36px;user-select:none}.chapter-loc{color:var(--text-dim);font-style:italic;font-size:14px}.chapter-nav{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.chapter-nav.bottom{justify-content:space-between;border-top:none;margin-top:10px}.audio-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;gap:12px;padding:10px 18px;background:#0a0c10f5;border-top:1px solid var(--line);backdrop-filter:blur(10px)}.audio-play{width:44px;height:44px;border-radius:50%;border:1px solid #4a3a1a;background:var(--accent);color:#14100a;font-size:15px;font-weight:800;cursor:pointer;flex-shrink:0}.audio-play:hover{filter:brightness(1.08)}.audio-skip{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--bg-card);color:var(--text);font-size:11.5px;font-weight:700;cursor:pointer;flex-shrink:0}.audio-skip:hover{border-color:var(--accent);color:var(--accent)}.audio-progress{flex:1;display:flex;align-items:center;gap:10px;min-width:0}.audio-time{color:var(--text-dim);font-family:var(--mono);font-size:12px;flex-shrink:0}.audio-track{flex:1;height:6px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);overflow:hidden;cursor:pointer;position:relative}.audio-fill{height:100%;background:linear-gradient(90deg,#c47f24,var(--accent));border-radius:999px}.audio-rate{background:var(--bg-card);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px 4px;font-size:12.5px;flex-shrink:0}.audio-follow{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:12.5px;flex-shrink:0;cursor:pointer;user-select:none}.audio-follow input{accent-color:var(--accent)}.reader .page-header h1{font-size:24px}.search-results,.candidate-list{list-style:none;padding:0}.search-result,.candidate-list li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg-card)}.search-result:first-child,.candidate-list li:first-child{border-radius:var(--radius) var(--radius) 0 0}.search-result:last-child,.candidate-list li:last-child{border-radius:0 0 var(--radius) var(--radius);border-bottom:0}.search-aliases{color:var(--text-dim);font-size:13px}.notfound{text-align:center;padding:80px 0}.notfound-code{font-size:84px;font-weight:900;color:var(--accent-2);font-family:var(--mono)}.notfound p{color:var(--text-dim)}.site-footer{border-top:1px solid var(--line);background:var(--bg-header);color:var(--text-dim);font-size:13px;padding:18px 20px;text-align:center}.foot-note{margin-top:4px}@media(max-width:720px){.hero h1{font-size:30px}.page-header h1{font-size:24px}.searchbox{order:3;flex-basis:100%}}.auth-nav{color:var(--text-dim);background:none;border:0;cursor:pointer;padding:6px 10px;border-radius:6px;font:inherit;font-size:14px}.auth-nav:hover{color:var(--accent);background:var(--bg-soft);text-decoration:none}.login-page{display:flex;justify-content:center;padding-top:7vh}.login-card{width:min(420px,92vw);margin:0 auto;padding:34px 32px;background:var(--bg-card);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:14px}.login-mark{font-size:34px;text-align:center}.login-card h1{font-size:22px;margin:0;text-align:center;letter-spacing:.01em}.login-sub{color:var(--text-dim);font-size:14px;margin:0 0 6px;text-align:center}.login-card label{display:flex;flex-direction:column;gap:5px;color:var(--text-dim);font-size:12.5px;text-transform:uppercase;letter-spacing:.08em}.login-card input{padding:11px 13px;border-radius:8px;border:1px solid var(--line);background:var(--bg-soft);color:var(--text);font-size:15px;outline:none}.login-card input:focus{border-color:var(--accent)}.login-card button{padding:12px;border-radius:8px;border:1px solid #4a3a1a;background:var(--accent);color:#14100a;font-weight:700;cursor:pointer;font-size:15px}.login-card button:disabled{opacity:.5;cursor:default}.login-back{text-align:center;font-size:13.5px;color:var(--text-dim)}
