.reader-workspace{max-width:1230px;margin:0 auto;padding-bottom:76px;color:#302e29}
main:has(.reader-workspace){padding-top:16px}
.reader-workspace .heading{margin-bottom:10px;align-items:center}
.reader-workspace .heading .overline,.reader-workspace .heading .subtitle{display:none}
.reader-workspace .heading h1{font-size:23px;margin:0}
.reader-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.reader-toolbar label{display:flex;gap:8px;align-items:center;font-size:12px;color:#706b60}
.reader-toolbar-spacer{flex:1}
.reader-toolbar .select{max-width:230px;background:#fffefa}
.reader-status{font-size:12px;color:#786f5e;margin:5px 0 9px;min-height:18px}
.reader-book{border-radius:18px;padding:13px 18px 16px;background:radial-gradient(circle at 50% 9%,#efe9dc,#d9d0bf 80%);box-shadow:inset 0 0 0 1px #b9ab94,0 18px 38px #2d2b2425}
.reader-book.single-book{background:transparent;box-shadow:none}
.reader-spread{display:flex;width:100%;height:700px;margin:0 auto;position:relative;filter:drop-shadow(0 9px 13px #3a312f36)}
.reader-spread:after{content:"";position:absolute;width:16px;left:calc(50% - 8px);top:0;bottom:0;z-index:5;pointer-events:none;background:linear-gradient(90deg,#5149391c,#271d1652 46%,#fff6e76b 54%,#4a352414)}
.reader-page{width:50%;height:100%;flex:0 0 50%;min-width:0;display:flex;flex-direction:column;position:relative;overflow:hidden;background:#f7f0df;color:#292b27}
.reader-page:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.32;background:repeating-linear-gradient(0deg,transparent 0 3px,#725c3110 4px 5px),repeating-linear-gradient(90deg,transparent 0 6px,#725c3109 7px 8px)}
.reader-page.left{border-radius:5px 0 0 4px;background:linear-gradient(90deg,#efe5d2,#f8f2e4 13%,#f7f0df 90%,#ded0b8)}
.reader-page.right{border-radius:0 5px 4px 0;background:linear-gradient(90deg,#e1d4be,#f7f0df 12%,#f8f2e4 88%,#eee2ce)}
.reader-page-head,.reader-page-foot{position:relative;z-index:1;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#746d5f;font-family:"Noto Serif SC","Source Han Serif SC",SimSun,serif;font-size:11px;letter-spacing:.12em;white-space:nowrap;overflow:hidden}
.reader-page-head{height:50px;padding-top:14px;padding-bottom:6px;border-bottom:1px solid #6c63503a}
.reader-page-foot{height:40px;padding-top:6px;padding-bottom:12px}
.reader-page-body{position:relative;z-index:1;flex:1;min-height:0;overflow:hidden;padding-top:16px;padding-bottom:12px;font-family:"Noto Serif SC","Source Han Serif SC",SimSun,serif;font-size:16px;line-height:1.7;text-align:start}
.reader-page.left .reader-page-head,.reader-page.left .reader-page-foot,.reader-page.left .reader-page-body{padding-left:42px;padding-right:50px}
.reader-page.right .reader-page-head,.reader-page.right .reader-page-foot,.reader-page.right .reader-page-body{padding-left:50px;padding-right:42px}
.book-paragraph{margin:0;text-indent:2em;overflow-wrap:anywhere}
.book-paragraph.continued{text-indent:0}
.book-section{font-size:17px;text-align:center;margin:.85em 0 1em;letter-spacing:.18em;font-weight:500}
.reader-insert .reader-page-body{padding-top:16px;padding-bottom:12px}
.book-card{height:100%;position:relative;font-family:"Noto Serif SC","Source Han Serif SC",SimSun,serif;text-align:left}
.book-piece{position:absolute;box-sizing:border-box;min-width:0}
.book-figure{margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1}
.book-figure img{display:block;max-width:100%;max-height:calc(100% - 20px);object-fit:contain;filter:grayscale(1) sepia(.09) contrast(1.14);mix-blend-mode:multiply;-webkit-user-drag:none;user-select:none}
.book-figure figcaption{font-size:10px;letter-spacing:.1em;color:#857966;text-align:center;margin-top:4px}
.book-zoom-trigger{position:absolute;right:0;bottom:0;padding:3px 7px;border:1px solid #a99c8380;border-radius:3px;background:#f8f1e8df;color:#655b4a;font:11px "Noto Serif SC","Source Han Serif SC",SimSun,serif;cursor:pointer}
.book-zoom-trigger:hover,.book-zoom-trigger:focus-visible{background:#fffaf1;color:#382f24}
.reader-workspace.editing-mode .book-zoom-trigger{display:none}
.reader-zoom-dialog{width:min(900px,92vw);max-height:92vh;box-sizing:border-box;padding:14px 20px 18px;border:1px solid #ab9d84;border-radius:8px;background:#f7f0df;color:#544d3f;box-shadow:0 24px 70px #211a17a0;text-align:center}
.reader-zoom-dialog::backdrop{background:#201c19ad}
.reader-zoom-dialog>button{display:block;margin-left:auto}
.reader-zoom-dialog img{display:block;max-width:100%;max-height:calc(92vh - 96px);margin:4px auto 0;object-fit:contain;filter:grayscale(1) sepia(.09) contrast(1.14)}
.reader-zoom-dialog p{margin:8px 0 0;font:12px "Noto Serif SC","Source Han Serif SC",SimSun,serif;letter-spacing:.12em}
.book-note{z-index:2;color:#3b3a34;font-size:14px;line-height:1.8}
.book-note-kicker{font-family:KaiTi,STKaiti,SimSun,serif;font-size:12px;letter-spacing:.12em;color:#776c5a}
.book-note h2{font-weight:400;font-size:25px;letter-spacing:.09em;margin:10px 0 19px}
.book-note p{margin:0;max-width:24em}
.book-aside{z-index:2;color:#766b58;font-family:KaiTi,STKaiti,SimSun,serif;font-size:12px;line-height:1.8;transform:rotate(-3deg);border-top:1px solid #9a8a6d;padding-top:9px}
.book-card.editing .book-piece{outline:1px dashed #756d5db5;outline-offset:6px;cursor:grab;touch-action:none;user-select:none}
.book-card.editing .book-piece:active{cursor:grabbing}
.reader-composer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:11px 0 2px}
.reader-composer:has([data-action="reader-edit"]:disabled){display:none}
.reader-composer .reader-composer-hint{font-size:11px;color:#827968;flex:1;min-width:230px}
.reader-composer button[data-action^="reader-image"],.reader-composer button[data-action^="reader-note"]{display:none}
.reader-workspace.editing-mode .reader-composer button[data-action^="reader-image"],.reader-workspace.editing-mode .reader-composer button[data-action^="reader-note"]{display:inline-flex}
.reader-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#817765}
.reader-empty-glyph{font-size:33px;opacity:.65}
.reader-empty h2{font-weight:400;font-size:18px;margin:24px 0 8px}
.reader-empty p{font-size:12px;max-width:210px}
.reader-pagination{position:fixed;left:calc(228px + (100vw - 228px)/2);bottom:12px;transform:translateX(-50%);z-index:30;display:flex;align-items:center;justify-content:center;gap:12px;width:max-content;max-width:calc(100vw - 250px);padding:8px 12px;border:1px solid #c9c3b4;border-radius:12px;background:#fffdf4f2;box-shadow:0 8px 30px #30291f2e;backdrop-filter:blur(8px)}
.reader-pagination span{min-width:140px;text-align:center;font-size:12px;color:#726d62;white-space:nowrap}
.reader-pagination button:disabled{cursor:default}
.reader-note{font-size:11px;color:#847d70;line-height:1.8;margin:76px 0 14px}
.reader-page.measuring{position:fixed;left:-10000px;top:0;visibility:hidden;z-index:-1}
.reader-page.single-measuring .reader-page-head,.reader-page.single-measuring .reader-page-foot,.reader-page.single-measuring .reader-page-body{padding-left:var(--reader-single-inset);padding-right:var(--reader-single-inset)}
.reader-spread.single-page:after{display:none}
.reader-spread.single-page .reader-page{width:100%;flex-basis:100%;border-radius:5px;background:linear-gradient(90deg,#eee2ce,#f8f2e4 9%,#f7f0df 91%,#eee2ce)}
.reader-spread.single-page .reader-page-head,.reader-spread.single-page .reader-page-foot,.reader-spread.single-page .reader-page-body{padding-left:var(--reader-single-inset);padding-right:var(--reader-single-inset)}
@media(max-width:1150px){.reader-pagination{left:calc(192px + (100vw - 192px)/2);max-width:calc(100vw - 210px)}}
@media(max-width:820px){.reader-pagination{left:calc(72px + (100vw - 72px)/2);max-width:calc(100vw - 90px)}.reader-workspace .heading .badge{display:none}}
@media(max-width:620px){.reader-book{padding:9px}.reader-pagination{gap:6px;padding:6px;bottom:7px}.reader-pagination .btn{padding:7px 8px;font-size:11px}.reader-pagination span{min-width:98px;font-size:10px}.reader-workspace{padding-bottom:68px}}

/* Adopted frontmatter is a reading stage, separate from chapter pagination. */
.reader-frontmatter-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 auto 10px;max-width:560px}
.reader-frontmatter-stage{display:flex;justify-content:center;align-items:flex-start;padding:0 8px 14px}
.reader-frontmatter-art{display:block;padding:0;border:0;border-radius:3px;width:min(100%,520px,calc(max(90px,100dvh - 280px)*2/3));aspect-ratio:2/3;background:#f7f0df;box-shadow:0 12px 30px #3a312f25,0 2px 5px #3a312f20;cursor:zoom-in}
.reader-frontmatter-art img{display:block;width:100%;height:100%;object-fit:contain;border-radius:3px}
.reader-frontmatter-art:focus-visible{outline:3px solid var(--primary);outline-offset:5px}
.reader-frontmatter-dialog{background:#f7f0df}
.reader-frontmatter-dialog .reader-cover-dialog-bar{background:#eee5d4;color:#655d50}
.reader-frontmatter-dialog .reader-cover-dialog-bar .quiet{color:var(--primary)}
@media(max-width:620px){.reader-frontmatter-toolbar{margin-bottom:8px}.reader-frontmatter-stage{padding:0 2px 12px}}

/* Live contents uses formal chapter records and keeps the reader's paper palette. */
.reader-contents-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:680px;margin:0 auto 12px}
.reader-contents-toolbar>span{font-size:11px;color:#827968}
.reader-contents-page{box-sizing:border-box;display:flex;flex-direction:column;width:min(100%,680px);height:560px;margin:0 auto;padding:34px 48px 20px;border:1px solid #d7cbb4;border-radius:4px;background:linear-gradient(90deg,#eee2ce,#f7f0df 6%,#f8f2e4 94%,#eee2ce);box-shadow:0 12px 30px #3a312f20;color:#514b40;font-family:"Noto Serif SC","Source Han Serif SC",SimSun,serif}
.reader-contents-heading{text-align:center;flex:none;padding-bottom:14px}
.reader-contents-heading p{margin:0;font-size:12px;letter-spacing:.18em;color:#867859}
.reader-contents-heading h2{margin:14px 0 10px;font-weight:400;font-size:30px;letter-spacing:.22em}
.reader-contents-heading>div{display:flex;align-items:center;gap:14px;justify-content:center;font-size:14px;color:#9a835d}
.reader-contents-heading>div:before,.reader-contents-heading>div:after{content:"";width:70px;height:1px;background:#b8a78570}
.reader-contents-list{display:block;flex:1;min-height:0;margin-top:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#c6b99e transparent;padding:0 6px}
.reader-contents-group h3{margin:22px 0 10px;font-size:15px;font-weight:500;letter-spacing:.12em;color:#766849}
.reader-contents-row{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:3px;padding:13px 5px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.reader-contents-row:hover{background:#e6dcc880}
.reader-contents-row:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.reader-contents-row.current{color:var(--primary-deep)}
.reader-contents-title{font-size:16px;line-height:1.65;overflow-wrap:anywhere;max-width:70%}
.reader-contents-leader{flex:1;min-width:12px;border-bottom:1px dotted #b7a88b;align-self:center}
.reader-contents-info{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-family:inherit;color:#827661;font-size:11px;white-space:nowrap}
.reader-contents-info small{font-size:10px;color:#9b8d76}
.reader-contents-summary{flex:none;text-align:center;padding-top:16px;font-size:11px;letter-spacing:.08em;color:#95866c}
.reader-contents-empty{text-align:center;font-size:13px;line-height:1.9;color:#93856d;margin:30px 0}
@media(max-width:620px){.reader-contents-page{padding:24px 18px 16px}.reader-contents-heading h2{font-size:25px}.reader-contents-row{gap:8px}.reader-contents-title{font-size:14px}.reader-contents-toolbar{gap:6px}.reader-contents-toolbar>span{font-size:10px}}

/* Reading navigation is independent of the book's contents page. */
.reader-prose-workspace{max-width:1470px}
.reader-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;position:relative;align-items:start}
.reader-stage{min-width:0}
.reader-toc{box-sizing:border-box;display:flex;flex-direction:column;position:sticky;top:16px;height:560px;min-height:240px;border:1px solid #ddd7ce;border-radius:12px;background:#fbf9f5;overflow:hidden;color:#514f5f}
.reader-toc-header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:20px 16px 14px;border-bottom:1px solid #e6e0d7}
.reader-toc-header h2{font-size:15px;letter-spacing:.08em;color:var(--primary-deep)}
.reader-toc-header p{margin:7px 0 0;font-size:10px;color:#8b8490}
.reader-toc-header .quiet{padding:8px}
.reader-toc-list{display:block;min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bcb4cc transparent;margin:0;padding:12px 10px 18px}
.reader-toc-group h3{font-size:11px;font-weight:500;letter-spacing:.12em;color:#8d8396;margin:15px 8px 7px}
.reader-toc-group:first-child h3{margin-top:4px}
.reader-toc-chapter{display:flex;flex-direction:column;gap:6px;width:100%;border:0;border-radius:7px;background:transparent;padding:11px 10px;text-align:left;color:#655f6c;font:13px/1.6 "Microsoft YaHei",sans-serif;cursor:pointer;overflow-wrap:anywhere}
.reader-toc-chapter small{font-size:10px;color:#99909e}
.reader-toc-chapter:hover{background:#eeebf3}
.reader-toc-chapter.current{background:#e9e5f3;color:var(--primary-deep);box-shadow:inset 3px 0 0 #7a68a7}
.reader-toc-chapter.current small{color:#827493}
.reader-toc-chapter:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.reader-toc-footer{flex:none;padding:12px 16px;border-top:1px solid #e6e0d7}
.reader-toc-footer .quiet{font-size:11px}
.reader-toc-empty{padding:14px;font-size:12px;color:#938697;line-height:1.8}
.reader-toc-backdrop{display:none}
.reader-layout.toc-collapsed{grid-template-columns:minmax(0,1fr)}
.reader-layout.toc-collapsed .reader-toc{display:none}
@media(max-width:1179px){
  .reader-layout,.reader-layout.toc-collapsed{grid-template-columns:minmax(0,1fr)}
  .reader-layout .reader-toc{display:none;position:absolute;top:0;left:0;width:min(290px,90%);z-index:41;box-shadow:8px 0 24px #31263e2a}
  .reader-layout.toc-drawer-open .reader-toc{display:flex}
  .reader-layout.toc-drawer-open .reader-toc-backdrop{display:block;position:absolute;inset:0;z-index:40;border:0;border-radius:12px;background:#27213145;cursor:pointer}
}
