/* D148 reader template: one quiet, white reading system for every long work. */
:root{--reader-ink:#111416;--reader-muted:#58656b;--reader-line:#dfe4e6;--reader-rail:#f5f7f7;--reader-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Noto Sans SC","PingFang SC",sans-serif;--reader-serif:"Iowan Old Style","Songti SC","STSong","Noto Serif CJK SC",serif;--reader-mono:"SFMono-Regular","Roboto Mono","Noto Sans Mono CJK SC",monospace;--reader-body-font:var(--reader-sans);--reader-heading-font:var(--reader-sans);--reader-body-size:16.5px}
html[data-reader-font="song"]{--reader-body-font:var(--reader-serif)}
html[data-reader-font="song"]{--reader-heading-font:var(--reader-serif)}
html[data-reader-size="small"]{--reader-body-size:15px}
html[data-reader-size="large"]{--reader-body-size:19px}
html,body{background:#fff!important;color:var(--reader-ink)!important}
body{font-family:var(--reader-sans)!important;line-height:1.6}
/* The accepted AI page is the dimensional source of truth. */
.shell,.history-book-shell,.reading-layout,body>main:not(.shell){box-sizing:border-box}
.shell{width:min(100%,1160px)!important;margin:0 auto!important;padding:32px clamp(18px,4vw,56px) 80px!important}
.reading-layout{display:grid!important;grid-template-columns:minmax(0,664px) minmax(260px,300px)!important;gap:clamp(36px,6vw,84px)!important;justify-content:center!important;align-items:start!important}
.reading-layout>article{min-width:0!important}
.reading-layout h1,.shell h1{font:500 clamp(34px,4vw,48px)/1.16 var(--reader-heading-font)!important;letter-spacing:-.016em!important;margin:0!important}
.reading-layout .intro,.shell .intro{margin:14px 0 0;color:var(--reader-muted);font-size:15px;line-height:1.65}
.reading-layout .chapter{margin-top:38px;padding-top:16px;border-top:1px solid var(--reader-line);scroll-margin-top:56px}
.reading-layout .chapter h2{margin:0 0 16px;font:500 25px/1.35 var(--reader-body-font)!important}
.reading-layout .paragraph,.reading-layout .node-paragraph{max-width:74ch;margin:0 0 18px;font:var(--reader-body-size)/1.82 var(--reader-body-font)!important;overflow-wrap:anywhere}
.reading-layout .rail{position:sticky;top:16px;background:var(--reader-rail);border-top:3px solid var(--reader-ink)}
.reading-layout .rail section,.reading-layout .rail details{padding:14px 16px;border-bottom:1px solid var(--reader-line)}
/* Backbone index: route directory becomes the same restrained right rail. */
body#top>.site-head{height:40px;min-height:40px;padding:0 16px;font:11px/1 var(--reader-mono)}
body#top>.site-head .brand{font:700 14px/1 var(--reader-sans)}
body#top>.site-head nav{gap:12px}
body#top>main{width:min(100%,1160px);display:grid;grid-template-columns:minmax(0,664px) 300px;column-gap:clamp(36px,6vw,84px);row-gap:0;justify-content:center;padding:32px clamp(18px,4vw,56px) 80px;background:#fff;position:relative;align-content:start}
body#top>main>.hero{grid-column:1;max-width:none}
body#top>main>.hero h1{font:500 clamp(34px,4vw,48px)/1.16 var(--reader-heading-font);letter-spacing:-.016em;margin:0 0 14px}
body#top>main>.hero>p:not(.eyebrow){font:15px/1.65 var(--reader-sans);max-width:664px;color:var(--reader-muted)}
body#top>main>.hero .status{margin-top:24px;border-left:0;border-top:1px solid var(--reader-line);border-bottom:1px solid var(--reader-line);background:#fff;padding:14px 0;font:12px/1.6 var(--reader-sans);color:var(--reader-muted)}
body#top>main>.contents{grid-column:2;grid-row:1 / span 2;position:sticky;top:16px;display:block;margin:0;border-top:3px solid var(--reader-ink);border-bottom:0}
body#top>main>.contents a{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:10px 0;border-bottom:1px solid var(--reader-line);font:12px/1.45 var(--reader-sans);color:var(--reader-muted)}
body#top>main>.contents a span{font:10px/1.7 var(--reader-mono);color:#899499}
body#top>main>.reading{grid-column:1;grid-row:2;max-width:none;margin:0}
body#top>main>.reading article{margin:38px 0 96px;padding-top:16px;border-top:1px solid var(--reader-line);scroll-margin-top:56px}
body#top>main>.reading article>header{border-top:0;padding-top:0}
body#top>main>.reading article>header h1{font:500 25px/1.35 var(--reader-heading-font);letter-spacing:0;margin:0 0 16px}
body#top>main>.reading h2{font:500 21px/1.4 var(--reader-heading-font);margin:32px 0 14px}
body#top>main>.reading p,body#top>main>.reading .node-paragraph{font:var(--reader-body-size)/1.82 var(--reader-body-font);margin:0 0 18px;max-width:74ch}
/* Chinese An Lushan book: main prose 664px, directory 300px, no black paper or giant title. */
body.integrated-reading{background:#fff!important}
.integrated-reading .history-book-shell{width:min(100%,1160px)!important;margin:0 auto!important;padding:32px clamp(18px,4vw,56px) 80px!important;background:#fff!important}
.integrated-reading .book-hero{display:grid;grid-template-columns:minmax(0,664px) 300px;column-gap:clamp(36px,6vw,84px);row-gap:8px;max-width:none;padding:0 0 32px;border-bottom:1px solid var(--reader-line);height:auto;min-height:0;align-content:start;align-items:start;grid-auto-rows:max-content}
.integrated-reading .book-hero>.eyebrow,.integrated-reading .book-hero>h1,.integrated-reading .book-hero>.book-subtitle,.integrated-reading .book-hero>.book-standfirst,.integrated-reading .book-hero>.book-meta{grid-column:1}
.integrated-reading .book-hero h1{font:500 48px/1.16 var(--reader-heading-font)!important;letter-spacing:-.016em;margin:0!important}
.integrated-reading .book-hero>.eyebrow{margin:0 0 8px}
.integrated-reading .book-subtitle{font:500 20px/1.55 var(--reader-heading-font);margin:14px 0 0;max-width:664px}
.integrated-reading .book-standfirst{max-width:664px;margin:24px 0 0;padding-top:18px;border-top:1px solid var(--reader-line);font:var(--reader-body-size)/1.82 var(--reader-body-font)}
.integrated-reading .book-meta{margin-top:18px;padding-top:14px;border-top:1px solid var(--reader-line);font:11px/1.5 var(--reader-mono)}
.integrated-reading .edition-panel{grid-column:2;grid-row:1 / span 6;align-self:start;margin:0;padding:16px;background:var(--reader-rail);border-top:3px solid var(--reader-ink);border-bottom:0;display:block;min-height:0;height:auto}
.integrated-reading .edition-panel p{font:12px/1.6 var(--reader-sans);max-width:none}
.integrated-reading .edition-panel nav{align-items:flex-start;margin-top:16px}
.integrated-reading .history-book-layout{display:grid;grid-template-columns:minmax(0,664px) 300px;gap:clamp(36px,6vw,84px);max-width:none;justify-content:center;padding-top:32px}
.integrated-reading .book-body{grid-column:1;grid-row:1;min-width:0}
.integrated-reading .book-toc{grid-column:2;grid-row:1;position:sticky;top:16px;margin:0;border-top:3px solid var(--reader-ink);max-height:calc(100vh - 32px);overflow:auto}
.integrated-reading .book-toc section>p{font:700 11px/1.5 var(--reader-sans);padding:14px 0 6px}
.integrated-reading .book-toc section a{font:11px/1.45 var(--reader-sans);padding:8px 0;color:var(--reader-muted)}
.integrated-reading .volume-header{margin:0 0 36px;padding:16px 0 18px;border-top:3px solid var(--reader-ink);border-bottom:1px solid var(--reader-line)}
.integrated-reading .volume-header h2{font:500 28px/1.3 var(--reader-heading-font);letter-spacing:0}
.integrated-reading .book-chapter{padding:0 0 36px}
.integrated-reading .book-chapter+.book-chapter{margin-top:44px;padding-top:40px;border-top:1px solid var(--reader-line)}
.integrated-reading .book-chapter>header{grid-template-columns:44px minmax(0,1fr);gap:16px;margin-bottom:22px}
.integrated-reading .book-chapter>header h2{font:500 25px/1.35 var(--reader-heading-font);letter-spacing:0}
.integrated-reading .book-chapter>p,.integrated-reading .book-chapter .p0-revision{font:var(--reader-body-size)/1.82 var(--reader-body-font);text-align:left;margin:0 0 18px}
.integrated-reading .chapter-subhead{font:500 20px/1.4 var(--reader-heading-font);margin:30px 0 14px}
.integrated-reading .chapter-materials-title{margin:36px 0 0;padding:14px 16px 8px;border-top:1px solid var(--reader-ink);background:var(--reader-rail);font:700 11px/1.5 var(--reader-sans)}
.integrated-reading .chapter-materials{padding:6px 16px 16px;background:var(--reader-rail);font:12px/1.65 var(--reader-sans)}
/* English legacy shell follows the same two-column contract. */
body:not(#top):not(.integrated-reading) .shell{background:#fff}
body:not(#top):not(.integrated-reading) .reading-layout h1{font-family:var(--reader-heading-font)!important}
@media(max-width:1000px){body#top>main,.integrated-reading .book-hero,.integrated-reading .history-book-layout,.reading-layout{display:block!important;width:100%!important}.contents,.integrated-reading .edition-panel,.integrated-reading .book-toc,.reading-layout .rail{position:static!important;margin:28px 0!important;max-height:none!important}.integrated-reading .book-body{margin-top:32px}.integrated-reading .book-hero h1{font-size:42px!important}}
@media(max-width:600px){.shell,.integrated-reading .history-book-shell,body#top>main{padding:22px 18px 60px!important}.reading-layout .paragraph,.reading-layout .node-paragraph,.integrated-reading .book-chapter>p,.integrated-reading .book-chapter .p0-revision,body#top>main>.reading p{font-size:var(--reader-body-size)!important;line-height:1.82}.integrated-reading .book-hero h1,body#top>main>.hero h1{font-size:36px!important}.integrated-reading .book-subtitle{font-size:19px}.integrated-reading .book-chapter>header h2{font-size:23px}}

/* Backbone metadata stays available without becoming a competing panel. */
body#top>main>.reading .candidate-note{margin:0 0 26px;border:1px solid var(--reader-line);border-left:0;background:var(--reader-rail);padding:10px 14px;color:var(--reader-muted);font:12px/1.6 var(--reader-sans)}
body#top>main>.reading .candidate-note p{font:12px/1.6 var(--reader-sans);margin:4px 0;color:var(--reader-muted)}
body#top .reading{position:relative}
body#top .reading .reader-preferences{position:absolute!important;top:-2px!important;right:0!important;z-index:30;margin:0!important}
body#top .reading .reader-preferences .panel{right:0;top:32px}

.integrated-reading .volume-header{border-top:1px solid var(--reader-line)}
body#top>main>.contents,.integrated-reading .book-toc{background:var(--reader-rail);padding:12px 16px;box-sizing:border-box}
