:root{color-scheme:light;--fs-xs: 12px;--fs-sm: 13px;--fs-ui: 14px;--fs-ui-l: 15px;--fs-body: 16px;--fs-lead: 18px;--fs-h4: 21px;--fs-h3: 24px;--fs-h2: 30px;--fs-h1: 40px;--fs-display: 52px;--sp-0-5: 2px;--sp-1: 4px;--sp-1-5: 6px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-14: 56px;--sp-16: 64px;--r-cover: 2px;--r-ctl: 4px;--r-card: 6px;--r-round: 999px;--lh-tight: 1.2;--lh-snug: 1.4;--lh-ui: 1.6;--lh-read: 1.8;--bg: #f7f4ee;--surface: #fffdf8;--surface-2: #efe9df;--surface-3: #e7e0d3;--text: #1f1b16;--text-2: #4d463d;--muted: #776e62;--faint: #ada395;--border: #e2dacb;--rule: #1f1b16;--divider: #e7e0d4;--accent: #c2410c;--logo-b1: #25211c;--logo-b2: #c2410c;--logo-b3: #cdb68c;--logo-shelf: #25211c;--logo-ink: #25211c;--logo-red: #c2410c;--accent-hover: #a33508;--accent-ink: #ffffff;--accent-soft: #f8e4d8;--focus: #c2410c;--mark: #f8e4d8;--st-r: #3b7a57;--st-n: #d3cabb;--st-c: #a5562f;--tr-1: #1f1b16;--tr-2: #c2410c;--tr-3: #3b7a57;--tr-4: #5b5fa8;--tr-5: #a0466a;--shadow-sm: 0 1px 2px rgba(48, 36, 20, .08);--shadow-book: 0 1px 1px rgba(48, 36, 20, .1), 0 4px 10px -2px rgba(48, 36, 20, .16), 0 14px 28px -12px rgba(48, 36, 20, .28);--shadow-book-hover: 0 2px 3px rgba(48, 36, 20, .12), 0 10px 20px -4px rgba(48, 36, 20, .22), 0 22px 40px -14px rgba(48, 36, 20, .34);--shadow-pop: 0 10px 40px -10px rgba(30, 20, 10, .35);--radius: 6px;--radius-sm: 4px;--topbar-h: 62px;--tabbar-h: 0px;--side-w: 236px;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif;--serif: "Book Serif", "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--latin: "Newsreader", "Book Serif", "Noto Serif SC", "Songti SC", Georgia, serif;--ease: cubic-bezier(.23, 1, .32, 1)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #15130f;--surface: #1c1915;--surface-2: #24201b;--surface-3: #2d2822;--text: #ede6da;--text-2: #c6bdae;--muted: #968c7e;--faint: #5f574b;--border: #322c25;--rule: #ede6da;--divider: #2b2620;--logo-b1: #5a5044;--logo-b2: #d4531c;--logo-b3: #e9dcc4;--logo-shelf: #d9ccb4;--logo-ink: #efe6d6;--logo-red: #ec6a3c;--accent: #f08552;--accent-hover: #f59a6d;--accent-ink: #1a1009;--accent-soft: #3a2418;--focus: #f08552;--mark: #3a2418;--st-r: #6fbf8f;--st-n: #4a433a;--st-c: #d98a62;--tr-1: #ede6da;--tr-2: #f08552;--tr-3: #6fbf8f;--tr-4: #9fa3e6;--tr-5: #e08aae;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-book: 0 1px 1px rgba(0, 0, 0, .35), 0 6px 14px -4px rgba(0, 0, 0, .55);--shadow-book-hover: 0 2px 3px rgba(0, 0, 0, .45), 0 14px 28px -8px rgba(0, 0, 0, .7);--shadow-pop: 0 10px 40px -10px rgba(0, 0, 0, .8)}}:root[data-theme=dark]{color-scheme:dark;--bg: #15130f;--surface: #1c1915;--surface-2: #24201b;--surface-3: #2d2822;--text: #ede6da;--text-2: #c6bdae;--muted: #968c7e;--faint: #5f574b;--border: #322c25;--rule: #ede6da;--divider: #2b2620;--logo-b1: #5a5044;--logo-b2: #d4531c;--logo-b3: #e9dcc4;--logo-shelf: #d9ccb4;--logo-ink: #efe6d6;--logo-red: #ec6a3c;--accent: #f08552;--accent-hover: #f59a6d;--accent-ink: #1a1009;--accent-soft: #3a2418;--focus: #f08552;--mark: #3a2418;--st-r: #6fbf8f;--st-n: #4a433a;--st-c: #d98a62;--tr-1: #ede6da;--tr-2: #f08552;--tr-3: #6fbf8f;--tr-4: #9fa3e6;--tr-5: #e08aae;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-book: 0 1px 1px rgba(0, 0, 0, .35), 0 6px 14px -4px rgba(0, 0, 0, .55);--shadow-book-hover: 0 2px 3px rgba(0, 0, 0, .45), 0 14px 28px -8px rgba(0, 0, 0, .7);--shadow-pop: 0 10px 40px -10px rgba(0, 0, 0, .8)}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-padding-top:calc(var(--topbar-h) + 12px)}body{margin:0;background:var(--bg);color:var(--text);font:var(--fs-ui-l)/var(--lh-ui) var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:1px}img{max-width:100%}h1,h2,h3{line-height:var(--lh-snug);margin:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip:focus{position:fixed;z-index:100;top:8px;left:8px;background:var(--text);color:var(--bg);padding:var(--sp-1-5) var(--sp-3)}.noscript{padding:var(--sp-6) var(--sp-4)}kbd{font:var(--fs-sm) var(--latin);color:var(--muted);border:1px solid var(--border);padding:0 var(--sp-2);line-height:20px}.topbar{position:sticky;top:0;z-index:30;height:var(--topbar-h);display:flex;align-items:center;gap:var(--sp-1-5);padding:0 var(--sp-5);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--border)}.icon-btn{flex:none;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:var(--r-round);background:transparent;color:var(--text-2);cursor:pointer;transition:color .16s var(--ease),background .16s var(--ease)}.icon-btn:hover{color:var(--text);background:var(--surface-2)}.icon-btn svg,.search-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.logo{display:flex;align-items:flex-end;gap:var(--sp-2);flex:none;margin:0 var(--sp-5) 0 var(--sp-1-5);color:var(--text)}.logo svg{display:block;height:30px;width:auto;flex:none}.logo:hover{text-decoration:none}.logo:hover .logo-word{opacity:.86}.search{position:relative;flex:1;max-width:560px;margin:0 auto;display:flex;align-items:center;min-width:0;height:40px;padding:0 var(--sp-3) 0 var(--sp-10);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctl);transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.search-ico{position:absolute;left:13px;top:50%;width:17px;height:17px;transform:translateY(-50%);fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;pointer-events:none}.search-kbd{flex:none;margin-left:var(--sp-1-5);border-radius:var(--r-card);background:var(--surface-2);border-color:var(--border)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.search input{flex:1;min-width:0;height:38px;padding:0 var(--sp-0-5);font:inherit;font-size:var(--fs-ui-l);color:var(--text);background:transparent;border:0;border-radius:0;outline:none}.search input:focus+.search-kbd{display:none}.search input::placeholder{color:var(--faint)}.search input::-webkit-search-cancel-button{display:none}.search-btn{width:36px;height:36px;border:0;background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center}.search-btn:hover{color:var(--text)}.i-moon{display:none}:root[data-theme=dark] .i-sun{display:none}:root[data-theme=dark] .i-moon{display:block}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .i-sun{display:none}:root:not([data-theme=light]) .i-moon{display:block}}.layout{display:flex;align-items:flex-start;min-height:calc(100vh - var(--topbar-h) - 120px)}.sidebar{position:sticky;top:var(--topbar-h);flex:none;width:var(--side-w);max-height:calc(100vh - var(--topbar-h));overflow-y:auto;padding:var(--sp-5) var(--sp-3) var(--sp-8) var(--sp-4);border-right:1px solid var(--border);scrollbar-width:thin}.nav{list-style:none;margin:0;padding:0}.nav a{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1-5) var(--sp-3);margin:1px 0;border-radius:var(--radius-sm);color:var(--text-2);font-size:var(--fs-ui-l);font-weight:500;transition:color .16s var(--ease),background .16s var(--ease)}.nav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav a:focus-visible{outline:none}.nav a.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.nav a.active svg{stroke:var(--accent)!important}.nav-badge{margin-left:auto;min-width:20px;padding:0 var(--sp-1-5);border-radius:var(--r-round);background:var(--surface-3);color:var(--text-2);font:600 var(--fs-xs)/18px var(--sans);text-align:center}.nav a svg,.nav-more svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--muted);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;transition:stroke .16s var(--ease)}.nav a:hover svg,.nav a.active svg,.nav-more:hover svg{stroke:var(--text)}.nav-more{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-1-5) var(--sp-3);border-radius:var(--radius-sm);border:0;background:none;color:var(--text-2);font:500 var(--fs-ui-l) var(--sans);cursor:pointer;text-align:left;transition:color .16s var(--ease)}.nav-more:hover{color:var(--text)}.nav-more:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.nav-more .chev{width:14px;height:14px;margin-left:auto;transition:transform .2s var(--ease)}.nav-more[aria-expanded=true] .chev{transform:rotate(180deg)}.nav-extra{margin-top:var(--sp-0-5)}.nav.topics a{justify-content:space-between;font-size:var(--fs-ui);font-weight:400;padding:var(--sp-1) var(--sp-3)}.nav.topics a.active{font-weight:700}.nav.topics .count{color:var(--muted);font:var(--fs-sm) var(--latin)}.nav-h{margin:var(--sp-6) var(--sp-3) var(--sp-2);padding-top:var(--sp-6);border-top:1px solid var(--divider);font:600 var(--fs-xs)/1 var(--sans);letter-spacing:.12em;color:var(--muted)}.main,main{flex:1;min-width:0;padding:30px clamp(20px,3.4vw,48px) 64px}body.side-collapsed .sidebar,.scrim{display:none}@media (max-width: 899px){.topbar{padding:0 var(--sp-3)}.sidebar{position:fixed;z-index:40;top:var(--topbar-h);bottom:0;left:0;max-height:none;background:var(--bg);transform:translate(-102%);transition:transform .22s var(--ease);border-right:1px solid var(--border);box-shadow:var(--shadow-pop);padding-bottom:calc(28px + var(--tabbar-h))}body.drawer-open .sidebar{transform:none}body.drawer-open .scrim{display:block;position:fixed;inset:var(--topbar-h) 0 0 0;z-index:35;background:#00000073}.main,main{padding:var(--sp-6) var(--sp-4) var(--sp-12)}.logo{margin:0 var(--sp-1-5) 0 0}.logo svg{height:28px}.hide-sm{display:none}.search{max-width:none}}.page-h{margin-bottom:var(--sp-1-5);padding-top:var(--sp-3)}.page-h h1{font:700 clamp(28px,3.2vw,var(--fs-h1))/1.25 var(--serif);letter-spacing:.01em}.sub{color:var(--text-2);margin:var(--sp-3) 0 0;max-width:46em;font-size:var(--fs-body)}.sub a{color:var(--text);font-weight:500;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:.22em}.sub a:hover{color:var(--accent)}.sub a:hover{text-decoration-color:currentColor}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1-5) var(--sp-1-5);margin:var(--sp-4) 0 var(--sp-1)}.chips .lbl{margin-right:var(--sp-1-5);min-width:5.5em}.chip{display:inline-block;padding:var(--sp-1) var(--sp-3);border:1px solid transparent;border-radius:var(--r-ctl);background:none;font-size:var(--fs-ui);color:var(--text-2);transition:color .16s var(--ease),background .16s var(--ease),border-color .16s var(--ease)}.chip:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.chip.on{color:var(--accent-ink);background:var(--text);font-weight:600}.chip.topic{color:var(--text-2);border:1px solid var(--border);background:var(--surface);padding:var(--sp-0-5) var(--sp-3);font-size:var(--fs-sm)}.chip.topic:hover{color:var(--accent);border-color:var(--accent)}.empty{padding:var(--sp-10) 0;color:var(--muted);text-align:center}.empty h2{font:700 var(--fs-h4) var(--serif);color:var(--text);margin-bottom:var(--sp-2)}.skel{padding:var(--sp-14) 0;color:var(--muted);text-align:center}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--sp-8) var(--sp-6);margin-top:var(--sp-6)}.row{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--sp-8) var(--sp-6);padding:var(--sp-1-5) 0 var(--sp-3)}.card{display:flex;flex-direction:column;min-width:0}.card{position:relative}.wl{position:absolute;z-index:2;top:8px;right:8px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--r-round);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-sm);color:var(--text-2);cursor:pointer;opacity:0;transform:translateY(-2px);transition:opacity .16s var(--ease),color .16s var(--ease),transform .16s var(--ease)}.card:hover .wl,.wl.on,.wl.read,.wl:focus-visible{opacity:1;transform:none}.wl:hover{color:var(--text)}.wl.on{color:var(--accent-ink);background:var(--accent)}.wl svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.wl.on svg{fill:currentColor}@media (hover: none){.wl{opacity:1}}dialog.share-box{padding:var(--sp-5) var(--sp-5) var(--sp-5);max-width:min(94vw,460px);width:460px;max-height:94vh;overflow:auto}.share-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.share-head h2{margin:0;font-size:var(--fs-h4)}.seg-group{display:inline-flex;gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--r-card);background:var(--surface-2)}.seg-group .chip{cursor:pointer;font-family:var(--sans)}.share-stage{position:relative;aspect-ratio:3 / 4;border-radius:var(--r-card);overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow-book)}.share-stage img{display:block;width:100%;height:100%;object-fit:cover;margin:0;-webkit-touch-callout:default}.share-stage .skel{position:absolute;inset:0;padding:0}.share-qr{display:flex;gap:var(--sp-3);align-items:flex-start;margin:var(--sp-3) 0 0;padding:var(--sp-3) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;font-size:var(--fs-sm);line-height:var(--lh-ui);color:var(--muted)}.share-qr input{flex:none;width:17px;height:17px;margin:var(--sp-0-5) 0 0;accent-color:var(--accent)}.share-qr b{display:block;color:var(--text);font-size:var(--fs-ui)}.share-tip{margin:var(--sp-3) 0 0;color:var(--muted);font-size:var(--fs-sm);text-align:center}.share-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.share-actions .btn{flex:1}.btn.ghost{border-color:transparent;background:transparent}.card:hover{text-decoration:none}.card h3{font:500 var(--fs-body)/var(--lh-snug) var(--latin);margin:var(--sp-3) 0 var(--sp-0-5);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.2em;transition:text-decoration-color .16s var(--ease)}.card:hover h3{color:var(--accent);text-decoration-color:transparent}.card .t-en{margin:0;color:var(--muted);font:var(--fs-sm)/var(--lh-snug) var(--latin);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .au{margin:1px 0 0;color:var(--muted);font:var(--fs-ui) var(--latin);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .rec{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--muted)}.card .rec b{color:var(--text);font:500 var(--fs-ui) var(--latin)}.cover{position:relative;aspect-ratio:2 / 3;width:100%;overflow:hidden;border-radius:2px 4px 4px 2px;background:var(--surface-2);box-shadow:var(--shadow-book);transition:transform .24s var(--ease),box-shadow .24s var(--ease)}.cover:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(90deg,#0000002e 0,#ffffff38 1.2%,#fff0 3.2%,#0000000f 4.2%,#0000 7%);box-shadow:inset 0 0 0 1px #0000000f}a.card:hover .cover,a.wcard:hover .cover{transform:translateY(-4px);box-shadow:var(--shadow-book-hover)}.cover img{width:100%;height:100%;object-fit:cover;display:block}.badge{position:absolute;z-index:1;left:8px;bottom:8px;border-radius:var(--r-ctl);background:#14100cb8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#f4eee4;font:500 var(--fs-xs)/1 var(--latin);padding:var(--sp-1) var(--sp-1-5);letter-spacing:.02em}.cover.ph{container-type:inline-size;display:flex;flex-direction:column;justify-content:flex-start;padding:20% 14% 12% 16%;background:linear-gradient(160deg,var(--c1, #45525e),var(--c2, #2a333c));color:#f3ead8}.cover.ph:before{content:"";position:absolute;inset:5.5% 6% 5.5% 8%;border:1px solid rgba(222,190,128,.5);border-radius:1px;pointer-events:none}.ph-g{position:absolute;right:-2%;bottom:-10%;font:700 86cqw/1 var(--serif);color:#f3ead817;pointer-events:none;-webkit-user-select:none;user-select:none}.ph-t{position:relative;font:700 clamp(11px,10.5cqw,var(--fs-h3))/1.3 var(--serif);letter-spacing:.02em;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;text-wrap:balance}.ph-rule{position:relative;width:24%;height:1px;background:#debe80d9;margin:7cqw 0 6cqw}.ph-a{position:relative;font:clamp(9px,7cqw,var(--fs-ui))/1.4 var(--latin);color:#f3ead8b8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sentinel{padding:var(--sp-6) 0 var(--sp-2);color:var(--muted);font-size:var(--fs-ui);text-align:center}.sentinel.end{padding-bottom:0}.rec .rl,.rec .rm,.rec .rs,.rec .rx{display:none}.rec-st .rs{display:inline}@container card (min-width: 160px){.rec-st .rl{display:inline}.rec-st .rs{display:none}}.card{container-type:inline-size;container-name:card}.book{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--sp-10);max-width:920px;padding-top:var(--sp-5)}.book>.sec,.book>#related{grid-column:1 / -1}.book>div:first-child{align-self:start}.book h1{font:500 clamp(30px,3.6vw,var(--fs-h1))/1.18 var(--latin);letter-spacing:-.005em}.book .st{color:var(--muted);font:var(--fs-h4)/var(--lh-snug) var(--latin);margin:var(--sp-2) 0 0}.book .t-en{color:var(--muted);font:var(--fs-ui-l)/var(--lh-ui) var(--latin);margin:var(--sp-1-5) 0 0;max-width:40em;overflow-wrap:anywhere}.book .by{margin:var(--sp-3) 0 0;color:var(--text-2);font:var(--fs-lead) var(--latin)}.book .by span{color:var(--muted);font-family:var(--sans);font-size:var(--fs-ui)}.book .by a{color:var(--text);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:.22em}.stats{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-10);margin:var(--sp-6) 0 var(--sp-1);padding-top:var(--sp-4);border-top:1px solid var(--border)}.stat b{display:block;font:400 var(--fs-h2)/var(--lh-tight) var(--latin)}.stat span{color:var(--muted);font-size:var(--fs-sm)}.stance{margin:var(--sp-5) 0 0;max-width:440px}.sbar{display:flex;gap:var(--sp-0-5);height:8px;overflow:hidden;border-radius:var(--r-round);background:var(--surface-2)}.sbar i{display:block}.s-r{background:var(--st-r)}.s-n{background:var(--st-n)}.s-c{background:var(--st-c)}.slg{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--muted)}.slg .dot{display:inline-block;width:8px;height:8px;margin-right:var(--sp-1-5)}.desc{margin:var(--sp-5) 0 0;color:var(--text);max-width:40em;font-size:var(--fs-body);line-height:var(--lh-read)}details.orig{margin:var(--sp-2) 0 0;max-width:40em}details.orig summary{cursor:pointer;color:var(--muted);font-size:var(--fs-ui);list-style:none;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:.25em;transition:color .16s var(--ease)}details.orig summary::-webkit-details-marker{display:none}details.orig summary:before{content:"▸ ";font-size:var(--fs-xs)}details.orig[open] summary:before{content:"▾ "}details.orig summary:hover{color:var(--text)}details.orig[open] summary{margin-bottom:var(--sp-0-5)}details.orig .desc{margin:var(--sp-1-5) 0 0;font-size:var(--fs-ui-l);color:var(--text-2)}.comment .c-zh{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-body);line-height:var(--lh-read);color:var(--text)}.comment details.c-orig{margin:var(--sp-1-5) 0 0;max-width:none}.comment details.c-orig summary{font-size:var(--fs-sm)}.comment .c-orig .c-en{margin:var(--sp-1) 0 0}.comment .c-en{margin:var(--sp-2) 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font:var(--fs-ui-l)/var(--lh-ui) var(--latin);color:var(--muted)}.buy-row{display:flex;align-items:center;gap:var(--sp-3) var(--sp-3);margin:var(--sp-6) 0 var(--sp-0-5);flex-wrap:wrap}.buy-lbl,.shelf-lbl,.chips .lbl{font:600 var(--fs-xs)/var(--lh-ui) var(--sans);letter-spacing:.12em;color:var(--muted)}.nd-rate{margin:var(--sp-6) 0 calc(-1 * var(--sp-4));font-size:var(--fs-ui);color:var(--muted)}.nd-rate b{font:400 var(--fs-h4)/1 var(--latin);color:var(--text);margin:0 var(--sp-0-5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:38px;padding:var(--sp-2) var(--sp-5);border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);color:var(--text);font:600 var(--fs-ui) var(--sans);cursor:pointer;transition:background .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease)}.btn:hover{background:var(--surface-2);border-color:var(--faint);text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}.aff-note{color:var(--muted);font-size:var(--fs-sm);margin:var(--sp-1-5) 0 0}.links{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);margin:var(--sp-4) 0 0}.links a,.links .btn{font-weight:500}.sec{margin-top:var(--sp-12);max-width:920px}.sec h2{font:700 var(--fs-h3) var(--serif);letter-spacing:.01em;padding-top:var(--sp-5);border-top:1px solid var(--border);margin-bottom:var(--sp-4)}.chart{width:100%;max-width:680px;height:auto}.chart text,.tr-bump text,.tr-cmpchart text{font:var(--fs-xs) var(--latin);fill:var(--muted)}.chart rect.bar{fill:var(--accent)}.chart line{stroke:var(--border)}.chart line[stroke-dasharray]{stroke:var(--muted)}.comments{list-style:none;margin:0;padding:0}.comment{padding:var(--sp-5) 0;border-bottom:1px solid var(--divider)}.comment-h{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--sp-1-5);display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3)}.comment-h a{color:var(--text-2);font:var(--fs-ui) var(--latin)}.comment p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:var(--fs-body)/var(--lh-ui) var(--latin);color:var(--text)}.comment mark{background:var(--mark);color:var(--text);font-weight:600;padding:0 var(--sp-0-5);border-radius:var(--r-ctl)}.thread{font-size:var(--fs-sm);color:var(--muted)}.tag{display:inline-block;padding:0 var(--sp-2);border:1px solid currentColor;border-radius:var(--r-ctl);font-size:var(--fs-xs);font-weight:600;line-height:var(--lh-ui)}.tag-recommends{color:var(--st-r)}.tag-mentions{color:var(--muted)}.tag-critical{color:var(--st-c)}@media (max-width: 640px){.book{display:block;padding-top:var(--sp-2)}.book>div:first-child{float:left;width:104px;margin:var(--sp-1) var(--sp-4) var(--sp-3) 0}.book h1{font-size:var(--fs-h3);line-height:var(--lh-tight)}.book .st{font-size:var(--fs-body);margin-top:var(--sp-1)}.book .t-en{font-size:var(--fs-ui)}.book .by{font-size:var(--fs-ui-l)}.book .stats,.book>.sec,.book>#related{clear:both}.book .stats{gap:var(--sp-3) var(--sp-6);margin-top:var(--sp-4)}.book .stat b{font-size:var(--fs-h3)}}.tr-sec{margin-top:var(--sp-12);max-width:1100px}.tr-sec h2{font:700 var(--fs-h3) var(--serif);letter-spacing:.01em;padding-top:var(--sp-5);border-top:1px solid var(--border);margin-bottom:var(--sp-2)}.tr-gh{font:600 var(--fs-ui-l) var(--sans);margin:var(--sp-6) 0 var(--sp-0-5)}.tr-gh span{color:var(--muted);font-weight:400;font-size:var(--fs-ui)}.tr-box{position:relative;border:1px solid var(--border);background:var(--bg);margin-top:var(--sp-4)}.tr-scroll{overflow-x:auto;padding:var(--sp-2)}.tr-tip{position:absolute;top:0;left:0;z-index:5;pointer-events:auto;background:var(--bg);border:1px solid var(--rule);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);max-width:300px}.tr-tip b{font-family:var(--latin);font-weight:500}.tr-tip a{color:var(--text);text-decoration:underline;white-space:nowrap}.tr-tip .pin:after{content:""}.tr-bump .bk{cursor:pointer}.tr-bump .bk-l{fill:none;stroke:var(--border);stroke-width:2}.tr-bump .bk-d{fill:var(--bg);stroke:var(--muted);stroke-width:1.4}.tr-bump.has-hl .bk:not(.on){opacity:.9}.tr-bump .hl-l{fill:none;stroke:var(--text);stroke-width:2.5}.tr-bump .hl-d{fill:var(--text);stroke:var(--text)}.tr-bump .cur{fill:none;stroke:var(--text);stroke-width:1.6}.tr-bump .tl{font:var(--fs-xs) var(--latin);fill:var(--text)}.tr-bump .tl.top{font-weight:600;fill:var(--text)}.tr-bump .hl-t{font-weight:600}.tr-bump .ax{fill:var(--muted)}.spark{width:100%;height:auto;display:block}.spark .ln{fill:none;stroke:var(--text);stroke-width:1.6}.spark .ar{fill:var(--surface-2);stroke:none}.spark .pk{fill:var(--text);stroke:var(--bg);stroke-width:1.5}.spark line{stroke:var(--border)}.spark-x{display:flex;justify-content:space-between;color:var(--muted);font:var(--fs-xs) var(--latin)}.tr-card .rec{color:var(--text)}.tr-search{position:relative;max-width:460px;margin:var(--sp-4) 0}.tr-search input{width:100%;height:40px;padding:0 var(--sp-0-5);font:inherit;color:var(--text);background:transparent;border:0;border-bottom:1px solid var(--rule);border-radius:0;outline:none}.tr-search input:disabled{opacity:.55}#tr-list{position:absolute;z-index:10;left:0;right:0;top:44px;margin:0;padding:var(--sp-1) 0;list-style:none;background:var(--bg);border:1px solid var(--rule);max-height:320px;overflow-y:auto}#tr-list li{padding:var(--sp-2) var(--sp-3);cursor:pointer}#tr-list li.on,#tr-list li:hover{background:var(--surface-2)}#tr-list li span{color:var(--muted);font-size:var(--fs-sm)}#tr-list li.none{color:var(--muted);cursor:default}.tr-legend{display:flex;flex-wrap:wrap;gap:var(--sp-1-5) var(--sp-5);list-style:none;margin:var(--sp-3) 0;padding:0}.tr-legend li{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-ui)}.tr-legend .sw{width:14px;height:3px;background:var(--c, var(--text))}.tr-legend .x{border:0;background:none;color:var(--muted);font-size:var(--fs-body);cursor:pointer;padding:0 var(--sp-0-5)}.tr-legend .x:hover{color:var(--text)}.tr-cmpchart .cl{fill:none;stroke-width:2}.tr-cmpchart line{stroke:var(--border)}.tr-cmpchart .vl{stroke:var(--muted);stroke-dasharray:3 3}.tr-cmpchart .ax{fill:var(--muted)}.tr-cmpchart .tl{font:var(--fs-xs) var(--latin);fill:var(--text)}.tr-empty{padding:var(--sp-10) var(--sp-4)}.r{display:flex;align-items:center;gap:var(--sp-1-5)}.r .sw{width:12px;height:3px;background:var(--c)}.prose{max-width:40em}.prose h1{font:700 clamp(28px,3.2vw,var(--fs-h1))/1.25 var(--serif);letter-spacing:.01em;padding-top:var(--sp-1-5);margin-bottom:var(--sp-4)}.prose h2{font:700 var(--fs-h4) var(--serif);margin:var(--sp-8) 0 var(--sp-3)}.prose p,.prose li{color:var(--text-2);font-size:var(--fs-body);line-height:var(--lh-read)}.prose a{color:var(--text);font-weight:500;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:.22em}.prose a:hover{color:var(--accent)}.prose a:hover{text-decoration-color:currentColor}.prose ol,.prose ul{padding-left:var(--sp-6)}.prose li{margin:var(--sp-1-5) 0}.footer{border-top:1px solid var(--border);background:var(--surface-2);padding:30px clamp(20px,3.4vw,48px) 48px;color:var(--muted);font-size:var(--fs-ui)}.foot-cols{display:flex;flex-wrap:wrap;gap:var(--sp-5) var(--sp-14);max-width:1100px}.foot-about{flex:1 1 380px;max-width:46em}.foot-about p{margin:0 0 var(--sp-1-5)}.foot-about a,.foot-links a{color:var(--text-2);font-weight:500}.foot-about a:hover,.foot-links a:hover{color:var(--text)}.foot-brand{display:flex;align-items:flex-end;gap:var(--sp-1-5);margin:0}.foot-brand svg{display:block;height:26px;width:auto}.foot-links{display:flex;flex-direction:column;gap:var(--sp-1-5)}#footer-meta{margin:var(--sp-4) 0 0;font:var(--fs-sm) var(--latin)}@media (max-width: 899px){.footer{padding:var(--sp-6) var(--sp-4) var(--sp-12)}}dialog{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);color:var(--text);padding:var(--sp-6) var(--sp-8) var(--sp-6);max-width:min(92vw,400px);box-shadow:var(--shadow-pop)}dialog::backdrop{background:#140e0873;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog h2{font:700 var(--fs-h4) var(--serif);letter-spacing:.02em;margin:0 0 var(--sp-2)}dialog img{display:block;margin:var(--sp-4) auto;background:#fff}.qr-note{color:var(--text-2);font-size:var(--fs-ui);margin:0}.qr-links{text-align:center;font-size:var(--fs-ui)}.qr-links a{color:var(--text);font-weight:500}.keys{margin:var(--sp-3) 0 var(--sp-4)}.keys div{display:flex;align-items:baseline;gap:var(--sp-3);margin:var(--sp-2) 0}.keys dt{flex:none;min-width:72px}.keys dd{margin:0;color:var(--text-2);font-size:var(--fs-ui)}@media (pointer: coarse){.icon-btn{width:44px;height:44px}.nav a,.nav-more{padding:var(--sp-2) 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important}}@media print{.topbar,.sidebar,.footer{display:none}}.buy-row .btn,.links .btn:not(.primary){border:0;padding:var(--sp-1) 0;background:none;font-weight:500;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.25em;transition:text-decoration-color .16s var(--ease)}.buy-row .btn:hover,.links .btn:not(.primary):hover{background:none;text-decoration-color:currentColor}.buy-row .btn[target=_blank]:after,.links .btn[target=_blank]:not(.primary):after{content:" ↗"}.buy-row{gap:var(--sp-1-5) var(--sp-6)}.shelf-row{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-6);flex-wrap:wrap}.shelf-lbl{color:var(--muted);font-size:var(--fs-ui)}.seg{display:inline-flex;align-items:center;gap:var(--sp-1-5);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);color:var(--text-2);font:600 var(--fs-ui) var(--sans);cursor:pointer;transition:all .16s var(--ease)}.seg svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}.seg:hover{color:var(--text)}.seg.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.seg.on svg{fill:currentColor}.stars{display:inline-flex;gap:var(--sp-0-5);margin-left:var(--sp-1)}.star{width:28px;height:28px;display:grid;place-items:center;border:0;background:none;color:var(--border);cursor:pointer;transition:color .12s var(--ease)}.star svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.stars.on .star{color:var(--muted)}.stars.on .star:hover,.stars.on .star.on{color:var(--text)}.stars.on .star.on svg{fill:currentColor}.stars:not(.on) .star{opacity:.45;cursor:default}.wl.read{color:var(--text);border-color:var(--text)}.shelf-tabs{margin:var(--sp-4) 0 var(--sp-1)}.totop{position:fixed;z-index:40;right:22px;bottom:calc(26px + var(--tabbar-h));width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--r-round);box-shadow:var(--shadow-sm);background:var(--surface);color:var(--text);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:all .2s var(--ease)}.totop.show{opacity:1;pointer-events:auto;transform:none}.totop:hover{background:var(--surface-2)}.totop svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.years .yr{margin:0 0 var(--sp-12)}.years .yr h2{font:700 var(--fs-h2) var(--serif);padding-top:var(--sp-4);border-top:1px solid var(--divider);margin:0 0 var(--sp-4)}.years .yr:first-of-type h2{border-top:0;padding-top:0}.gem-wrap{max-width:680px}.gem-wrap svg{width:100%;height:auto}.gem-wrap svg circle{cursor:pointer}.gem-list{margin:var(--sp-5) 0 0}.gem-wrap{position:relative}.gem-tip{position:absolute;z-index:5;pointer-events:none;background:var(--text);color:var(--bg);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);line-height:var(--lh-ui);max-width:200px}.gem-tip b{display:block;font-weight:600}.gem-tip span{opacity:.75;font-size:var(--fs-xs)}.gemdot:hover{stroke:var(--text);stroke-width:1.5}.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--sp-5) var(--sp-4);margin-top:var(--sp-3)}.wcard{display:flex;flex-direction:column;gap:var(--sp-1-5);text-decoration:none;color:inherit;min-width:0}.wcard:hover{text-decoration:none}.wcard img,.wcard .cover{width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--surface-2)}.wcard .wt{font:500 var(--fs-sm)/var(--lh-snug) var(--serif);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.wcard:hover .wt{text-decoration:underline;text-underline-offset:.2em}.wcard .wm{color:var(--muted);font-size:var(--fs-xs)}.card .qv{display:inline-block;min-width:24px;margin-right:var(--sp-1-5);padding:0 var(--sp-1-5);border-radius:var(--r-ctl);background:var(--accent-soft);color:var(--accent-hover);font:600 var(--fs-xs)/18px var(--latin);text-align:center}.card .why1{margin:var(--sp-1-5) 0 0;font-size:var(--fs-sm);line-height:var(--lh-ui);color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qbox{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-8);margin:var(--sp-8) 0 0;padding:var(--sp-4) 0 0;border-top:1px solid var(--divider);max-width:600px}.qn b{display:block;font:500 var(--fs-h1)/1 var(--latin);color:var(--accent)}.qn span{color:var(--muted);font-size:var(--fs-sm)}.qbars{list-style:none;margin:0;padding:0;flex:1 1 240px;display:grid;gap:var(--sp-1-5)}.qbars li{display:grid;grid-template-columns:4em 1fr 2em;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-2)}.qbars i{display:block;height:6px;border-radius:var(--r-round);overflow:hidden;background:var(--surface-3)}.qbars em{display:block;height:100%;border-radius:var(--r-round);background:var(--accent)}.qbars b{font:500 var(--fs-sm) var(--latin);text-align:right;color:var(--text)}.qhow{font-size:var(--fs-sm);color:var(--muted);text-decoration:underline;text-underline-offset:.2em}.whybox{margin:var(--sp-6) 0 0;max-width:600px}.whybox h2{margin:0 0 var(--sp-3);font:600 var(--fs-xs)/var(--lh-ui) var(--sans);letter-spacing:.16em;color:var(--muted)}.why-lead{font:500 var(--fs-lead)/var(--lh-ui) var(--serif);margin:0 0 var(--sp-1-5)}.why-list{margin:0 0 var(--sp-3);padding-left:1.1em;list-style:"— ";color:var(--text-2);font-size:var(--fs-ui-l);line-height:var(--lh-ui)}.why-meta{margin:var(--sp-0-5) 0;font-size:var(--fs-ui-l);color:var(--text-2)}.why-meta b{display:inline-block;min-width:3em;margin-right:var(--sp-2);font-size:var(--fs-xs);font-weight:600;letter-spacing:.12em;color:var(--muted)}.why-note{margin:var(--sp-1-5) 0 0;font-size:var(--fs-xs);color:var(--muted)}.st-chart rect.s-r{fill:var(--st-r)}.st-chart rect.s-n{fill:var(--st-n)}.st-chart rect.s-c{fill:var(--st-c)}.sec.wide{max-width:none}.paths{margin:var(--sp-6) 0 var(--sp-2)}.paths h2{font:700 var(--fs-h4) var(--serif);padding-top:var(--sp-4);border-top:1px solid var(--border);margin:0}.path-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-2) var(--sp-8);margin-top:var(--sp-4)}.path-col h3{font:600 var(--fs-ui) var(--sans);color:var(--muted);letter-spacing:.08em;margin:0 0 var(--sp-1-5)}.path-col ol{list-style:none;margin:0;padding:0}.path-col li a{display:grid;grid-template-columns:44px 1fr;gap:var(--sp-3);padding:var(--sp-2) 0;border-top:1px solid var(--divider);color:var(--text)}.path-col li a:hover{text-decoration:none;background:var(--surface-2)}.path-c .cover{width:44px}.path-c .ph-t{font-size:8px;-webkit-line-clamp:3}.path-c .ph-a,.path-c .ph-rule{display:none}.path-t b{display:block;font:500 var(--fs-body)/var(--lh-snug) var(--latin)}.path-t span{display:block;margin-top:var(--sp-0-5);font-size:var(--fs-sm);line-height:var(--lh-ui);color:var(--text-2)}.ex-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3) var(--sp-5);margin:var(--sp-5) 0 var(--sp-2);padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-width:1000px}.ex-f{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--muted)}.ex-f select,.ex-f input{font:var(--fs-ui) var(--sans);color:var(--text);background:var(--bg);border:1px solid var(--border);padding:var(--sp-2) var(--sp-2);border-radius:var(--radius-sm);min-width:0}.ex-cs{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);align-items:center;font-size:var(--fs-ui);color:var(--text-2)}.ex-c input{accent-color:var(--text)}.ex-n{margin:var(--sp-4) 0 var(--sp-1);font-size:var(--fs-ui);color:var(--muted)}.map-bar{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-3)}.map-bar input{flex:1 1 220px;font:var(--fs-ui) var(--sans);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:0}.map-bar .btn{padding:var(--sp-2) var(--sp-4)}.map-box{position:relative;max-width:1000px;border:1px solid var(--border);background:var(--bg);touch-action:none}#map-svg{display:block;width:100%;height:auto;aspect-ratio:1;cursor:grab;-webkit-user-select:none;user-select:none}#map-svg:active{cursor:grabbing}.m-edges line{stroke:var(--border);stroke-width:.8;vector-effect:non-scaling-stroke}.m-nodes circle{r:calc(var(--r) * var(--s, 1) * 1px);fill:var(--text);opacity:.72;cursor:pointer;transition:opacity .12s var(--ease)}.m-labels text{font:600 var(--lf, var(--fs-h4)) var(--sans);fill:var(--muted);paint-order:stroke;stroke:var(--bg);stroke-width:calc(var(--lf, 22px) / 4);pointer-events:none;letter-spacing:.06em}#map-svg.focus circle{opacity:.14}#map-svg.focus line{opacity:.25}#map-svg.focus circle.on{opacity:1}#map-svg.focus line.on{opacity:1;stroke:var(--text);stroke-width:1.4}.heat-scroll{overflow-x:auto}.heat table{border-collapse:separate;border-spacing:2px;font-size:var(--fs-sm);min-width:640px}.heat th{font-weight:400;color:var(--muted);font-family:var(--latin);padding:0 var(--sp-0-5)}.heat tbody th{text-align:right;padding-right:var(--sp-2);white-space:nowrap;font-family:var(--sans)}.heat tbody th a{color:var(--text-2)}.heat td{width:26px;height:20px;background:color-mix(in srgb,var(--text) var(--a),var(--surface-2))}.heat td.heat-r{background:none;width:auto;padding-left:var(--sp-2);white-space:nowrap;font:500 var(--fs-sm) var(--latin);color:var(--text)}@media (max-width: 520px){.ex-form{grid-template-columns:1fr 1fr;gap:var(--sp-3) var(--sp-3);padding:var(--sp-3)}}.nav-h2{margin-top:var(--sp-5);padding-top:var(--sp-5)}.nav-sub{margin:var(--sp-4) var(--sp-3) var(--sp-1);font:600 var(--fs-xs)/1 var(--sans);letter-spacing:.08em;color:var(--muted);opacity:.8}.nav-sub:first-child{margin-top:var(--sp-1)}.paths-more{display:none;margin:var(--sp-1) 0 0}@media (max-width: 640px){.chips:not(.shelf-tabs){flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;gap:0 var(--sp-4);margin-right:calc(-1 * var(--sp-4));padding-right:var(--sp-4);scrollbar-width:none;-webkit-overflow-scrolling:touch}.chips:not(.shelf-tabs)::-webkit-scrollbar{display:none}.chips .lbl{flex:none;position:sticky;left:0;z-index:1;background:var(--bg);padding-right:var(--sp-3);margin-right:calc(-1 * var(--sp-1-5))}.chip{flex:none}.chips.book-topics,.book .chips{flex-wrap:wrap;overflow:visible;margin-right:0;padding-right:0;gap:var(--sp-2)}.chart text,#gem-chart svg text{font-size:var(--fs-h4)}.paths:not(.open) .path-col:not(:first-child){display:none}.paths-more{display:inline-flex}}@media (pointer: coarse){.chip{padding:var(--sp-2) var(--sp-3)}.chip.topic{padding:var(--sp-1-5) var(--sp-3)}.seg{padding:var(--sp-3) var(--sp-5)}.star{width:40px;height:40px}.logo{padding:var(--sp-3) 0}.map-bar .btn{padding:var(--sp-3) var(--sp-4)}}body{background:var(--bg)}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}a:hover{text-decoration-color:color-mix(in srgb,var(--accent) 60%,transparent)}.eyebrow{display:inline-flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-4);color:var(--accent);font:600 var(--fs-sm)/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}.eyebrow a{color:inherit}.eyebrow .dot{width:7px;height:7px;border-radius:var(--r-round);background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.skel{display:flex;align-items:center;justify-content:center;gap:var(--sp-3)}.spinner{width:16px;height:16px;border-radius:var(--r-round);border:2px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);align-items:center;gap:var(--sp-6) var(--sp-10);margin:calc(-1 * var(--sp-1-5)) 0 var(--sp-5);padding:clamp(28px,4vw,52px) clamp(22px,3.6vw,52px);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;background:var(--surface)}.hero-h{font:700 clamp(30px,4.2vw,var(--fs-display))/1.16 var(--serif);letter-spacing:.005em;margin:0;text-wrap:balance}.hero-lede{max-width:34em;margin:var(--sp-4) 0 0;color:var(--text-2);font-size:clamp(15px,1.3vw,17px);line-height:var(--lh-read)}.hero-search{position:relative;display:flex;align-items:center;gap:var(--sp-2);max-width:560px;margin:var(--sp-6) 0 0;padding:var(--sp-1-5) var(--sp-1-5) var(--sp-1-5) var(--sp-12);border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--bg);box-shadow:var(--shadow-sm);transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.hero-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)}.hero-search svg{position:absolute;left:16px;width:19px;height:19px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}.hero-search input{flex:1;min-width:0;height:42px;border:0;background:transparent;color:var(--text);font:var(--fs-body) var(--sans);outline:none}.hero-search input::-webkit-search-cancel-button{display:none}.hero-search .btn{min-height:42px;padding:var(--sp-2) var(--sp-6)}.hero-try{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1-5);margin:var(--sp-4) 0 0}.hero-try>span{color:var(--muted);font-size:var(--fs-sm);margin-right:var(--sp-1)}.hero-try .chip{border-color:var(--border);background:var(--bg);font-size:var(--fs-sm)}.hero-stats{display:flex;flex-wrap:wrap;gap:var(--sp-4) var(--sp-8);list-style:none;margin:var(--sp-8) 0 0;padding:var(--sp-5) 0 0;border-top:1px solid var(--border)}.hero-stats b{display:block;font:500 var(--fs-h3)/var(--lh-tight) var(--latin)}.hero-stats span{color:var(--muted);font-size:var(--fs-sm)}.hero-art{position:relative;height:clamp(260px,26vw,340px);margin-right:calc(-1 * var(--sp-2))}.hero-book{position:absolute;top:50%;left:50%;width:clamp(108px,9.6vw,146px);transition:transform .32s var(--ease)}.hero-book .cover{box-shadow:var(--shadow-book-hover)}.hb-0{transform:translate(-50%,-50%) rotate(-2deg);z-index:5}.hb-1{transform:translate(-95%,-47%) rotate(-9deg);z-index:4}.hb-2{transform:translate(-5%,-47%) rotate(8deg);z-index:4}.hb-3{transform:translate(-132%,-42%) rotate(-16deg) scale(.92);z-index:3}.hb-4{transform:translate(32%,-42%) rotate(15deg) scale(.92);z-index:3}.hero-art:hover .hb-1{transform:translate(-102%,-49%) rotate(-11deg)}.hero-art:hover .hb-2{transform:translate(2%,-49%) rotate(10deg)}.hero-book:hover{z-index:6}@media (max-width: 1080px){.hero{grid-template-columns:1fr}.hero-art{display:none}}@media (max-width: 640px){.hero{margin:calc(-1 * var(--sp-2)) calc(-1 * var(--sp-1)) var(--sp-3);padding:var(--sp-6) var(--sp-5) var(--sp-6);border-radius:var(--r-card)}.hero-h{font-size:var(--fs-h2)}.hero-search{padding-left:var(--sp-10)}.hero-search .btn{padding:var(--sp-2) var(--sp-4)}.hero-stats{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:var(--sp-3)}.hero-stats b{font-size:var(--fs-lead)}.hero-stats span{font-size:var(--fs-xs)}.hero-try .chip{padding:var(--sp-1-5) var(--sp-3)}.book .shelf-row .stars{order:5}}.hshelf{margin-top:var(--sp-12)}.hshelf-h{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-1)}.hshelf-h h2{font:700 clamp(21px,2vw,var(--fs-h3))/1.3 var(--serif)}.hshelf-h p{margin:var(--sp-1) 0 0;color:var(--muted);font-size:var(--fs-ui)}.hshelf-h .more{flex:none;display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--accent);font-size:var(--fs-ui);font-weight:600;white-space:nowrap}.hshelf-h .more svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .16s var(--ease)}.hshelf-h .more:hover{text-decoration:none}.hshelf-h .more:hover svg{transform:translate(3px)}.hrow{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(138px,calc((100% - 5 * 24px) / 6),200px);gap:var(--sp-6);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:var(--sp-4) var(--sp-1) var(--sp-5);margin:0 calc(-1 * var(--sp-1));scrollbar-width:thin;scrollbar-color:var(--border) transparent}.hrow>.card{scroll-snap-align:start}@media (max-width: 640px){.hrow{grid-auto-columns:42%;gap:var(--sp-4);margin-right:calc(-1 * var(--sp-4));padding-right:var(--sp-4)}}.home-wall-sep{height:1px;margin:var(--sp-14) 0 var(--sp-6);background:var(--border)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-3);margin-top:var(--sp-4)}.tile{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease)}.tile:hover{text-decoration:none;border-color:color-mix(in srgb,var(--accent) 50%,var(--border));transform:translateY(-2px);box-shadow:var(--shadow-sm)}.tile-covers{position:relative;flex:none;width:66px;height:54px}.tile-covers img{position:absolute;top:0;width:36px;height:54px;object-fit:cover;border-radius:2px 3px 3px 2px;box-shadow:var(--shadow-book);background:var(--surface-2)}.tile-covers img:nth-child(1){left:0;z-index:3}.tile-covers img:nth-child(2){left:15px;z-index:2;transform:scale(.94)}.tile-covers img:nth-child(3){left:30px;z-index:1;transform:scale(.88)}.tile-t{min-width:0}.tile-t b{display:block;font:600 var(--fs-body)/var(--lh-snug) var(--serif)}.tile:hover .tile-t b{color:var(--accent)}.tile-t span{display:block;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book{grid-template-columns:240px minmax(0,1fr);gap:var(--sp-12);max-width:1000px}.book-cover{position:relative}.book-cover .cover{border-radius:3px 6px 6px 3px}.book h1{font:600 clamp(28px,3.4vw,var(--fs-h1))/1.22 var(--serif);letter-spacing:0;margin-top:var(--sp-1-5);text-wrap:balance}.book .book-topics{margin:0 0 var(--sp-1-5)}.stats{gap:var(--sp-3) var(--sp-10);border-top-color:var(--border)}.stat.hi b{color:var(--accent)}.shelf-row{gap:var(--sp-2);padding:var(--sp-4) 0;margin-top:var(--sp-5);border-top:1px solid var(--divider);border-bottom:1px solid var(--divider)}.seg.ghost{margin-left:auto}.pull{position:relative;margin:var(--sp-6) 0 0;max-width:600px;padding:var(--sp-1) 0 0 var(--sp-8)}.pull:before{content:"“";position:absolute;left:-2px;top:-14px;color:var(--accent);font:700 var(--fs-display)/1 var(--latin);opacity:.9}.pull blockquote{margin:0;font:500 var(--fs-lead)/var(--lh-read) var(--serif);color:var(--text)}.pull figcaption{margin-top:var(--sp-2);color:var(--muted);font-size:var(--fs-ui)}.pull figcaption a{color:var(--text-2);text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:.2em}.desc{color:var(--text-2)}.cm-filter{margin:0 0 var(--sp-1-5)}.cm-filter .chip span{opacity:.65;font-size:var(--fs-xs);margin-left:var(--sp-0-5)}.cm-filter button.chip{cursor:pointer;font-family:var(--sans)}@media (max-width: 640px){.book-cover{position:static}.seg.ghost{margin-left:0}.pull{padding-left:var(--sp-6)}.pull blockquote{font-size:var(--fs-body)}}.author-h .eyebrow{margin-bottom:var(--sp-2)}.ssr-note{color:var(--muted);font-size:var(--fs-ui)}.tabbar{display:none}@media (max-width: 899px){:root{--tabbar-h: calc(58px + env(safe-area-inset-bottom)) }body{padding-bottom:var(--tabbar-h)}.tabbar{position:fixed;z-index:45;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--border)}.tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);border:0;background:none;color:var(--muted);font:500 var(--fs-xs) var(--sans);cursor:pointer}.tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tabbar a.active{color:var(--accent)}.tabbar a:hover{text-decoration:none}body.drawer-open .sidebar,.sidebar{bottom:var(--tabbar-h)}.logo{margin-right:var(--sp-2);gap:var(--sp-1-5)}.logo svg{height:26px}}@media (max-width: 420px){.logo .logo-word{display:none}}.toast{position:fixed;z-index:60;left:50%;bottom:calc(28px + var(--tabbar-h));transform:translate(-50%,10px);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-ctl);background:var(--text);color:var(--bg);font-size:var(--fs-ui);box-shadow:var(--shadow-pop);opacity:0;transition:opacity .2s var(--ease),transform .2s var(--ease);pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}a.card:hover .cover,.tile:hover{transform:none}}@media print{.tabbar,.hero-search,.shelf-row{display:none}}.au-hit{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3);margin:var(--sp-4) 0 0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.au-hit:hover{text-decoration:none;border-color:var(--accent)}.au-hit span{color:var(--accent);font-size:var(--fs-xs);font-weight:600;letter-spacing:.1em}.au-hit b{font:600 var(--fs-lead) var(--latin)}.au-hit em{color:var(--muted);font-style:normal;font-size:var(--fs-ui)}.ac{position:absolute;z-index:50;top:calc(100% + 8px);left:0;right:0;max-height:min(70vh,520px);overflow-y:auto;padding:var(--sp-1-5);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-pop)}.ac-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-card);color:var(--text)}.ac-item:hover,.ac-item.on{background:var(--surface-2);text-decoration:none}.ac-item.on{outline:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}.ac-cv{flex:none;width:30px;height:45px;border-radius:2px 3px 3px 2px;overflow:hidden;background:var(--surface-3);box-shadow:var(--shadow-sm)}.ac-cv img{display:block;width:100%;height:100%;object-fit:cover}.ac-ic{flex:none;width:30px;text-align:center;color:var(--accent);font-size:var(--fs-xs);font-weight:600}.ac-t{flex:1;min-width:0}.ac-t b{display:block;font:500 var(--fs-ui-l)/var(--lh-snug) var(--latin);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ac-t em{display:block;color:var(--muted);font:normal var(--fs-sm)/var(--lh-snug) var(--latin);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ac-n{flex:none;color:var(--muted);font-size:var(--fs-xs)}.ac-foot{justify-content:center;margin-top:var(--sp-1);border-top:1px solid var(--divider);border-radius:0 0 5px 5px}.ac-all{color:var(--accent);font-size:var(--fs-ui);font-weight:600}.ac-empty{margin:var(--sp-1) var(--sp-3) var(--sp-2);color:var(--muted);font-size:var(--fs-sm)}@media (max-width: 640px){.ac{position:fixed;top:calc(var(--topbar-h) + 4px);left:8px;right:8px;max-height:calc(100vh - var(--topbar-h) - var(--tabbar-h) - 16px)}}.ltiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-4);margin-top:var(--sp-5)}.ltiles.home{margin-top:var(--sp-4)}.lgroup{margin-top:var(--sp-8)}.lgroup-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--divider)}.lgroup-h h2{margin:0;font:700 var(--fs-h4)/var(--lh-snug) var(--serif)}.lgroup-h p{margin:0;flex:1;min-width:14em;color:var(--muted);font-size:var(--fs-ui)}.lgroup-h span{color:var(--faint);font:var(--fs-sm) var(--latin)}.lgroup .ltiles{margin-top:var(--sp-4)}.ltile{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-4) var(--sp-5);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease)}.ltile:hover{text-decoration:none;border-color:color-mix(in srgb,var(--accent) 50%,var(--border));transform:translateY(-2px);box-shadow:var(--shadow-sm)}.ltile-covers{position:relative;flex:none;width:104px;height:96px}.ltile-covers img{position:absolute;top:4px;width:60px;height:90px;object-fit:cover;border-radius:2px 3px 3px 2px;box-shadow:var(--shadow-book);background:var(--surface-2)}.ltile-covers img:nth-child(1){left:0;z-index:3;transform:rotate(-4deg)}.ltile-covers img:nth-child(2){left:22px;z-index:2}.ltile-covers img:nth-child(3){left:44px;z-index:1;transform:rotate(4deg)}.ltile-t{min-width:0}.ltile-t b{display:block;font:700 var(--fs-lead)/var(--lh-snug) var(--serif)}.ltile:hover .ltile-t b{color:var(--accent)}.ltile-t span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:var(--sp-1);color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-ui)}.ltile-t em{display:block;margin-top:var(--sp-1-5);color:var(--accent);font:normal 600 var(--fs-sm) var(--sans)}.lprog{max-width:560px;margin:var(--sp-5) 0 0}.lprog-bar{display:flex;height:8px;border-radius:var(--r-round);overflow:hidden;background:var(--surface-3)}.lprog-bar i{display:block;background:var(--accent);transition:width .3s var(--ease)}.lprog-bar i.w{background:color-mix(in srgb,var(--accent) 35%,transparent)}.lprog p{margin:var(--sp-2) 0 0;color:var(--muted);font-size:var(--fs-ui)}.lprog b{color:var(--text);font:600 var(--fs-lead) var(--latin)}.lbtns{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-1-5)}.lbtns .btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sub.lbtns{margin-top:var(--sp-3)}.lrows{list-style:none;margin:var(--sp-4) 0 0;padding:0;max-width:980px}.lrow{display:grid;grid-template-columns:52px 64px minmax(0,1fr) auto;align-items:center;gap:var(--sp-5);padding:var(--sp-5) 0;border-top:1px solid var(--divider)}.lrank{color:var(--faint);font:500 var(--fs-h2)/1 var(--latin);text-align:right;font-variant-numeric:tabular-nums}.lrow:nth-child(-n+3) .lrank{color:var(--accent)}.lcv .cover{width:64px}.lcv .ph-t{font-size:9px;-webkit-line-clamp:4}.lcv .ph-a,.lcv .ph-rule{display:none}.lmain h2{margin:0;font:600 var(--fs-lead)/var(--lh-snug) var(--latin)}.lmain a:hover h3{color:var(--accent)}.lmain a:hover{text-decoration:none}.lsub{margin:var(--sp-0-5) 0 0;color:var(--muted);font:var(--fs-ui) var(--latin)}.lnote{display:inline-block;margin:var(--sp-1-5) 0 0;padding:1px var(--sp-2);border-radius:var(--r-ctl);background:var(--accent-soft);color:var(--accent-hover);font-size:var(--fs-sm);font-weight:600}.lwhy{margin:var(--sp-1-5) 0 0;color:var(--text-2);font-size:var(--fs-ui-l);line-height:var(--lh-ui)}.lmeta{margin:var(--sp-1-5) 0 0;color:var(--muted);font-size:var(--fs-sm)}.qv-badge{display:inline-block;min-width:24px;margin-right:var(--sp-1-5);padding:0 var(--sp-1-5);border-radius:var(--r-ctl);background:var(--accent-soft);color:var(--accent-hover);font:600 var(--fs-xs)/18px var(--latin);text-align:center}.lact{display:flex;flex-direction:column;gap:var(--sp-1-5)}.lact .seg{padding:var(--sp-1-5) var(--sp-3);font-size:var(--fs-sm)}@media (max-width: 640px){.ltiles{grid-template-columns:1fr}.lrow{grid-template-columns:30px 52px minmax(0,1fr);gap:var(--sp-3)}.lrank{font-size:var(--fs-h4)}.lcv .cover{width:52px}.lact{grid-column:3;flex-direction:row}.lmain h2{font-size:var(--fs-body)}}
