.reader{position:fixed;inset:0;z-index:30;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:#46392b;background:#f3ead8;color-scheme:light;--reader-size:18px}
.reader:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.17;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.2' filter='url(%23p)'/%3E%3C/svg%3E")}
.reader-toolbar{position:relative;display:grid;grid-template-columns:100px minmax(0,1fr) 100px;align-items:center;gap:16px;padding:14px max(28px,calc((100vw - 1040px)/2));border-bottom:1px solid #a48b5d33;background:#f3ead8f5}
.reader-tool{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:8px 12px;background:transparent;border:1px solid transparent;border-radius:4px;color:#5e4b31;font-size:13px;white-space:nowrap}
.reader-tool:hover{background:#9270440b;border-color:#92704430}
.reader-book{text-align:center;min-width:0}.reader-book>span{font:9px Georgia,serif;letter-spacing:.22em;color:#92744a}.reader-book h1{font-size:15px;font-weight:400;letter-spacing:.14em;margin:5px 0 0}
.reader-scroll{position:relative;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b6a17a #f3ead8;outline-offset:-5px;scroll-behavior:auto}
.reader-page{width:min(100%,780px);margin:auto;padding:70px 54px 38px}
.chapter-heading{text-align:center;padding-bottom:45px;border-bottom:1px solid #a48b5d40;margin-bottom:38px}
.chapter-volume{font-size:12px;letter-spacing:.24em;color:#8d6c40}.chapter-ornament{display:block;font-size:19px;color:#b28c4e;margin:20px 0 19px}.chapter-heading h2{font-size:clamp(24px,2.3vw,31px);font-weight:400;line-height:1.65;letter-spacing:.07em;outline:none;text-wrap:balance}.chapter-heading>p:last-child{font-size:11px;letter-spacing:.1em;color:#947d5c;margin-top:17px}
.chapter-body{font-size:var(--reader-size);line-height:2.05;letter-spacing:.025em;overflow-wrap:anywhere;line-break:strict}
.chapter-body p{margin:0 0 1.05em;white-space:pre-wrap;text-align:justify;text-justify:inter-ideograph}
.reader ::selection,.toc-dialog ::selection{background:#cbb17a77;color:#31291e}
.chapter-navigation{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:54px;border-top:1px solid #a48b5d40;padding-top:20px}
.chapter-navigation button{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-height:70px;padding:12px 8px;background:transparent;color:#5a4328;border-radius:3px;text-align:left;font-size:14px}
.chapter-navigation button:last-child{align-items:flex-end;text-align:right}.chapter-navigation small{font-size:11px;line-height:1.7;color:#8a7352}.chapter-navigation button:hover{background:#9e7b4910}.chapter-navigation button:disabled{visibility:hidden}
.reader-colophon{text-align:center;font:9px Georgia,serif;letter-spacing:.16em;color:#ab956e;margin-top:38px}.reader-colophon span{padding:0 9px}
.reader-bottom{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:63px;padding:5px max(32px,calc((100vw - 920px)/2)) max(5px,env(safe-area-inset-bottom));border-top:1px solid #a48b5d33;background:#f3ead8f5}
.reader-progress{background:transparent;display:grid;gap:8px;min-height:44px;align-content:center;text-align:left;padding:5px 0;width:200px;color:#7d6441;font-size:11px;letter-spacing:.06em}
.progress-track{display:block;height:2px;background:#c7b59055;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:#a47c3d;transition:width .15s}
.font-controls{display:flex;align-items:center;color:#6e5435}.font-controls button{min-width:44px;min-height:44px;background:transparent;font:16px Georgia,serif;border-radius:3px}.font-controls button:hover{background:#9e7b4910}.font-controls button:disabled{opacity:.3}.font-controls>span{min-width:26px;text-align:center;font:11px Georgia,serif;color:#927a58;font-variant-numeric:tabular-nums}
.reader button:focus-visible,.toc-dialog button:focus-visible{outline:2px solid #8e672e;outline-offset:2px}.reader button:active,.toc-dialog button:active{background-color:#9e7b4920}
.reader-status{text-align:center;color:#8a7352;line-height:1.9;padding:28px 0;font-size:14px}.reader-retry{display:block;margin:0 auto 30px;min-height:44px;padding:12px 24px;background:#4b3925;color:#f4e5c8;border-radius:3px}
.book-end{margin-top:42px;padding:32px 0;text-align:center;color:#80623a}.book-end>span{font-size:22px;color:#b79760}.book-end p{margin:19px 0 14px;letter-spacing:.2em;font-size:18px}.book-end small{font-size:10px;letter-spacing:.17em;color:#a28b66}
.toc-dialog{padding:0;width:min(520px,calc(100vw - 40px));max-height:calc(100svh - 72px);border:1px solid #c7ae7d;border-radius:6px;color:#493923;background:#f3ead8;box-shadow:0 18px 90px #070c1466;color-scheme:light;overflow:hidden}
.toc-dialog[open]{display:flex;flex-direction:column}.toc-dialog::backdrop{background:#0c162bd1;backdrop-filter:blur(6px)}
.toc-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 28px 21px;border-bottom:1px solid #b79a6755}.toc-header p{font:9px Georgia,serif;letter-spacing:.17em;color:#9e8050}.toc-header h2{font-weight:400;font-size:24px;letter-spacing:.17em;margin-top:8px}.toc-header .reader-tool{font-size:27px;font-family:Georgia,serif}
.toc-list{overflow-y:auto;overscroll-behavior:contain;padding:12px 28px 24px;scrollbar-width:thin;scrollbar-color:#b6a17a #f3ead8}.toc-group h3{font-size:11px;letter-spacing:.17em;font-weight:400;color:#9c7c4c;margin:24px 0 11px;padding-bottom:11px;border-bottom:1px solid #b79a6740}.toc-group:first-child h3{margin-top:11px}.toc-group button{display:flex;align-items:center;gap:12px;width:100%;min-height:47px;padding:11px 10px;color:#5b4830;background:transparent;text-align:left;line-height:1.65;font-size:13px;border-radius:3px}.toc-group button>span{color:#ac9875;font:10px Georgia,serif;width:18px;flex-shrink:0}.toc-group button:hover{background:#a68a5210}.toc-group button[aria-current]{background:#dac8a244;color:#513713;box-shadow:inset 2px 0 #aa8042}.toc-note{font-size:10px;line-height:1.7;text-align:center;padding:15px 22px;border-top:1px solid #b79a6733;color:#947e5b}
@media(max-width:700px){
 .reader-toolbar{grid-template-columns:68px minmax(0,1fr) 68px;padding:8px 12px;gap:4px;padding-top:max(8px,env(safe-area-inset-top))}.reader-tool{padding:6px 8px;font-size:12px;gap:5px}.reader-book>span{font-size:8px;letter-spacing:.13em}.reader-book h1{font-size:12px;letter-spacing:.04em;margin-top:4px}
 .reader-page{padding:42px 25px 30px}.chapter-heading{padding-bottom:30px;margin-bottom:29px}.chapter-heading h2{font-size:24px;letter-spacing:.03em}.chapter-volume{font-size:11px}.chapter-heading>p:last-child{font-size:10px}.chapter-ornament{margin:17px 0}.chapter-body{line-height:1.95;letter-spacing:.015em}.chapter-body p{margin-bottom:1em}
 .reader-bottom{padding-left:22px;padding-right:15px;gap:18px;min-height:59px}.reader-progress{width:160px;font-size:10px;letter-spacing:0}.font-controls button{min-width:42px}.font-controls>span{min-width:19px}.chapter-navigation{gap:16px;margin-top:38px}.chapter-navigation button{padding:10px 0;font-size:13px}.chapter-navigation small{font-size:10px}.reader-colophon{font-size:8px;letter-spacing:.1em}
 .toc-dialog{width:100%;max-width:100%;max-height:88svh;margin:auto 0 0;border:0;border-top:1px solid #c7ae7d;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom)}.toc-header{padding:23px 24px 17px}.toc-list{padding:8px 24px 20px}.toc-header h2{font-size:23px}.toc-note{padding:13px 16px}
}
@media(max-width:360px){.reader-page{padding-right:20px;padding-left:20px}.reader-toolbar{padding-left:6px;padding-right:6px;grid-template-columns:60px minmax(0,1fr) 60px}.reader-book h1{font-size:11px}.reader-bottom{padding-left:18px;padding-right:8px;gap:12px}.reader-progress{width:136px}.chapter-heading h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.progress-track i{transition:none}}

.chapter-warning{display:block;font-size:.45em;line-height:1.8;letter-spacing:.06em;color:var(--reader-muted);margin-top:12px;font-weight:400}
.toc-group button>.toc-chapter-title{width:auto;min-width:0;flex:1;color:inherit;font:inherit;line-height:1.65}
.toc-chapter-title .chapter-warning{font-size:10px;margin-top:3px;letter-spacing:.03em;color:var(--reader-soft)}
.toc-locked button:disabled{opacity:.72;cursor:not-allowed;color:var(--reader-muted);background:transparent}
.reader-bottom .reader-progress{width:auto;max-width:260px;flex:1;min-width:0;gap:5px;font-variant-numeric:tabular-nums;letter-spacing:0}
#chapter-character-progress{font-size:11px;white-space:nowrap;color:var(--reader-ink)}
#reader-progress-label{font-size:10px}
@media(max-width:360px){#chapter-character-progress{font-size:10px}.reader-bottom{gap:8px}.reader-bottom .reader-toc-trigger{min-width:64px}}
