@font-face{font-family:'Source Serif 4';src:url('./fonts/source-serif-4.ttf') format('truetype');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('./fonts/source-serif-4-italic.ttf') format('truetype');font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:Literata;src:url('./fonts/literata.ttf') format('truetype');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:Literata;src:url('./fonts/literata-italic.ttf') format('truetype');font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:'PT Serif';src:url('./fonts/pt-serif.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'PT Serif';src:url('./fonts/pt-serif-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Roboto Flex';src:url('./fonts/roboto-flex.ttf') format('truetype');font-weight:100 1000;font-style:normal;font-display:swap}
body[data-theme=paper]{--bg:#FAF8F2;--surface:#FAF8F2;--paper:#FAF8F2;--paper-text:#292B28;--text:#292B28;--muted:#686B62;--border:#DCDCD2;--sidebar:#F0EEE6;--accent:#3D493B;--accent-soft:#E8EBDF}
body[data-theme=sepia]{--bg:#F1E7D0;--surface:#F1E7D0;--paper:#F1E7D0;--paper-text:#453B2E;--text:#453B2E;--muted:#75664E;--border:#D8CBB0;--sidebar:#E9DEC4;--accent:#67583B;--accent-soft:#E6DAC0}
body[data-theme=dark]{--bg:#232522;--surface:#232522;--paper:#232522;--paper-text:#DDDCD2;--text:#DDDCD2;--muted:#B0B2A6;--border:#45483F;--sidebar:#292C27;--accent:#C2D0B5;--accent-soft:#343C2E}
body[data-theme=night]{--bg:#101214;--surface:#101214;--paper:#101214;--paper-text:#C9C8C0;--text:#C9C8C0;--muted:#A0A39B;--border:#33383A;--sidebar:#181B1E;--accent:#B9C6CD;--accent-soft:#242C30}
body[data-theme=dark] .primary-button,body[data-theme=night] .primary-button{color:var(--bg)}
.book-body{font-weight:var(--read-weight,400);font-optical-sizing:var(--read-optical,auto);font-variation-settings:var(--read-variations,normal);word-spacing:var(--read-word,0em);text-align:var(--read-align,left);hyphens:var(--read-hyphens,auto);-webkit-hyphens:var(--read-hyphens,auto)}
.book-body p{margin-bottom:var(--read-paragraph,1em)}.book-body p+p{text-indent:var(--read-indent,1.15em)}
.reader-paper{max-width:calc(var(--read-width) + 96px)}.paper-title{font-optical-sizing:var(--read-optical,auto)}
.reading-themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reading-theme{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:4px;min-height:48px;padding:8px 10px;background:transparent;color:var(--text);font-size:13px;text-align:left}.reading-theme[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.theme-ink{display:grid;place-items:center;width:28px;height:30px;font:18px Georgia,serif;border:1px solid #80808055;flex:0 0 auto}.theme-ink.paper{background:#FAF8F2;color:#292B28}.theme-ink.sepia{background:#F1E7D0;color:#453B2E}.theme-ink.dark{background:#232522;color:#DDDCD2}.theme-ink.night{background:#101214;color:#C9C8C0}
.reading-options details{border-top:1px solid var(--border);padding-top:14px}.reading-options summary{min-height:44px;font-size:13px;cursor:pointer;font-weight:500}.reading-options .muted-help{font-size:12px;line-height:1.65}.reading-options .control-group{margin-bottom:20px}.reading-options input:disabled{opacity:.35}.reading-options label:has(input:disabled){color:var(--muted)}
.reader-scroll.is-paged{overflow-y:hidden;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.reader-scroll.is-paged::-webkit-scrollbar{display:none}
.reader-scroll.is-paged .reader-paper{--page-pad:44px;width:var(--page-width);max-width:none;min-height:0;height:100%;margin:0;padding:30px var(--page-pad) 28px;display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.reader-scroll.is-paged .paper-eyebrow{margin-bottom:10px}.reader-scroll.is-paged .paper-title{font-size:24px;margin-bottom:22px;max-width:calc(var(--page-width) - 88px)}
.reader-scroll.is-paged .book-body{height:100%;min-height:0;column-count:var(--page-columns,1);column-gap:calc(var(--page-pad)*2);column-fill:auto;overflow:visible;scroll-snap-align:start}
.reader-scroll.is-paged .book-body p{orphans:2;widows:2}.reader-scroll.is-paged .book-body img{max-height:50vh;break-inside:avoid}.reader-scroll.is-paged .read-end-note{display:none}.reader-view.minimal .reader-scroll.is-paged .reader-paper{padding-top:30px}
.reading-fit-modal{width:min(800px,100%)}.fit-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.fit-option{background:var(--paper);color:var(--paper-text);padding:0;border:0;text-align:left;min-width:0}.fit-sample{display:block;font-family:var(--candidate-font);font-size:21px;line-height:1.6;font-optical-sizing:auto;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);min-height:245px}.fit-option:hover .fit-sample{border-color:var(--accent)}.fit-choice{display:block;font:14px -apple-system,BlinkMacSystemFont,sans-serif;padding:12px 0}.fit-step{font-size:12px;color:var(--muted);margin-bottom:16px}.fit-result{font:22px var(--read-font);line-height:1.6;margin:18px 0}.fit-result-name{font-weight:600}.reading-comparison-note{font-size:12px;line-height:1.6;color:var(--muted)}
@media(max-width:600px){.reader-scroll.is-paged .reader-paper{--page-pad:24px;padding-top:20px;padding-bottom:20px}.fit-options{gap:14px}.fit-sample{font-size:18px;min-height:290px}.reading-fit-modal{padding:20px}}
.reader-paper{font-family:var(--read-font);font-size:var(--read-size)}
@font-face{font-family:'PT Serif';src:url('./fonts/pt-serif-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'PT Serif';src:url('./fonts/pt-serif-bold-italic.ttf') format('truetype');font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:'Roboto Flex';src:url('./fonts/roboto-flex.ttf') format('truetype');font-weight:100 1000;font-style:oblique 0deg 10deg;font-display:swap}
.reader-paper{transition:none}.reader-scroll.is-paged{scroll-snap-type:none;touch-action:pan-x pinch-zoom}
.reader-scroll.is-paged .reader-paper{position:relative}.reader-scroll.is-paged .reader-paper:after{content:'';position:absolute;top:0;left:var(--page-end,0px);width:1px;height:1px;pointer-events:none}
/* Let chapter headings flow only on the first page instead of reserving blank header space on every page. */
.reader-scroll.is-paged .reader-paper{display:block;column-count:var(--page-columns,1);column-gap:calc(var(--page-pad)*2);column-fill:auto}
.reader-scroll.is-paged .book-body{display:contents}.reader-scroll.is-paged .paper-title{break-after:avoid;max-width:100%}.reader-scroll.is-paged .paper-eyebrow{break-after:avoid}
