:root{color-scheme:light;--ink:#302620;--muted:#807163;--accent:#741f28;--paper:#fffaf0;--text-size:19px;--paper-w:420px;--paper-h:620px;--pad:38px;--gutter:20px;--text-w:344px;--text-h:496px;--column-gap:96px;--text-top:54px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#e8dfd2;font-family:Georgia,"Times New Roman",serif}button,select,input,output{font:inherit}button,select{border:1px solid #cbbba7;background:#faf4e8;color:var(--ink);border-radius:7px;padding:8px 12px;font:13px/1.25 system-ui,sans-serif;cursor:pointer}button:hover,select:hover{background:#fffaf1;border-color:#98765e}button:disabled{opacity:.35;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #a85643;outline-offset:3px}button[aria-pressed=true]{background:var(--accent);color:var(--paper)}input[type=range]{accent-color:var(--accent);cursor:pointer}a{color:var(--accent);text-underline-offset:3px}
#app{height:100vh;height:100dvh;display:flex;flex-direction:column}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 24px;border-bottom:1px solid #c9bba7;background:#e9e0d3;flex-shrink:0}.brand{display:flex;flex-direction:column;gap:5px}.eyebrow{font:10px/1.35 system-ui,sans-serif;letter-spacing:.19em;color:var(--accent)}.book-title{font-size:19px}.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.size-control{display:flex;align-items:center;gap:7px;font:15px Georgia,serif}.size-control input{width:100px}.size-control output{font:11px system-ui,sans-serif;min-width:30px;color:#706150}.view-control select{max-width:135px}
#stage{flex:1;min-height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px}#book{position:relative;width:var(--paper-w);height:var(--paper-h);filter:drop-shadow(0 9px 20px #3b2a1a23);perspective:2000px}.paper{position:absolute;top:0;bottom:0;width:var(--paper-w);background:var(--paper);border:1px solid #dbcfbc}.left-paper{left:0;border-radius:3px 0 0 3px;background:linear-gradient(90deg,#fffaf0 94%,#efe5d5)}.right-paper{display:none;right:0;border-radius:0 3px 3px 0;background:linear-gradient(90deg,#efe5d5,#fffaf0 6%)}body[data-columns="2"] #book{width:calc(var(--paper-w)*2 + var(--gutter))}body[data-columns="2"] .right-paper{display:block}.running-head{position:absolute;top:21px;left:var(--pad);right:var(--pad);font:10px/1.3 system-ui,sans-serif;letter-spacing:.04em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.folio{position:absolute;bottom:18px;width:var(--paper-w);text-align:center;font:11px system-ui,sans-serif;color:var(--muted);pointer-events:none}.folio-left{left:0}.folio-right{right:0;display:none}body[data-columns="2"] .folio-right{display:block}
#viewport{position:absolute;left:var(--pad);right:var(--pad);top:var(--text-top);height:var(--text-h);overflow:hidden}#flow,.flow-copy{position:relative;width:var(--text-w);height:var(--text-h);margin:0;will-change:transform}
.chapter{position:absolute;left:0;top:0;font-size:var(--text-size);line-height:1.53;width:var(--text-w);height:var(--text-h);column-width:var(--text-w);column-count:1;column-gap:var(--column-gap);column-fill:auto;overflow:visible;margin:0;overflow-wrap:break-word;hyphens:manual}
#flow h1,.flow-copy h1{font-size:1.8em;font-weight:normal;line-height:1.13;color:var(--accent);margin:0 0 1em}#flow h2,.flow-copy h2{font-size:1.45em;font-weight:normal;line-height:1.2;color:var(--accent);margin:1.2em 0 .7em}#flow h3,.flow-copy h3{font-size:1.06em;line-height:1.3;color:var(--accent);margin:1.3em 0 .7em}#flow p,.flow-copy p{margin:0 0 .65em;orphans:2;widows:2}#flow [data-kind=letter] p,.flow-copy [data-kind=letter] p{text-indent:.8em}#flow [data-kind=letter] h2+p,#flow [data-kind=letter] h3+p,.flow-copy [data-kind=letter] h2+p,.flow-copy [data-kind=letter] h3+p{text-indent:0}#flow blockquote,.flow-copy blockquote{margin:1em 0;border-left:2px solid #b09a7f;padding-left:1em;font-style:italic}#flow h1,#flow h2,#flow h3,.flow-copy h1,.flow-copy h2,.flow-copy h3{break-inside:avoid;break-after:avoid}#flow .keep-next,.flow-copy .keep-next{break-after:avoid}.chapter-start,.entry-start{break-before:auto}.chapter>:first-child{margin-top:0!important}#flow .chapter-start,.flow-copy .chapter-start{margin-top:0}#flow [data-kind=part],.flow-copy [data-kind=part],#flow [data-kind=title],.flow-copy [data-kind=title]{text-align:center}#flow h1[data-kind=part],.flow-copy h1[data-kind=part],#flow h1[data-kind=title],.flow-copy h1[data-kind=title]{padding-top:1.6em}#flow [data-kind=rights],.flow-copy [data-kind=rights]{font-size:.9em}.cover-page{height:var(--text-h);width:var(--text-w);break-inside:avoid}.cover-page img{display:block;width:100%;height:100%;object-fit:contain}#flow ul,.flow-copy ul{padding-left:1.4em}
.reader-footer{display:flex;gap:22px;align-items:center;justify-content:center;padding:12px 24px 16px;flex-shrink:0}.position{width:310px;display:flex;flex-direction:column;align-items:center;gap:5px;font:12px/1.2 system-ui,sans-serif}.position input{width:100%;height:12px;margin:0}#layout-note{font-size:10px;color:#796958}.turn-leaf{position:absolute;top:0;width:var(--paper-w);height:var(--paper-h);background:var(--paper);transform-style:preserve-3d;z-index:4;pointer-events:none}.turn-face{position:absolute;inset:0;overflow:hidden;background:var(--paper);backface-visibility:hidden;border:1px solid #d7c8b4}.turn-face.back{transform:rotateY(180deg)}.turn-face:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#45302118,transparent 40%,#4530211a)}.turn-window{position:absolute;left:var(--pad);top:var(--text-top);width:var(--text-w);height:var(--text-h);overflow:hidden}.turn-number{position:absolute;bottom:18px;width:100%;text-align:center;font:11px system-ui,sans-serif;color:var(--muted)}
dialog{border:1px solid #c4ae91;border-radius:10px;background:var(--paper);color:var(--ink);width:min(640px,calc(100vw - 28px));max-height:85vh;padding:0;box-shadow:0 20px 80px #2b1c1755}dialog::backdrop{background:#21171380}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:22px 25px;border-bottom:1px solid #e1d5c3;position:sticky;top:0;background:var(--paper);z-index:1}.dialog-header h2{margin:7px 0 0;font-weight:normal;font-size:30px}dialog nav{display:flex;flex-direction:column;padding:15px 25px 30px}dialog a{font:14px/1.55 system-ui,sans-serif;text-decoration:none;padding:8px 0;border-bottom:1px solid #eadfce}dialog a:hover{text-decoration:underline}.toc-part{color:#665544;font-weight:600!important;padding-top:24px!important}.toc-letter{padding-left:14px!important}.toc-entry{font-size:12px!important;padding-left:14px!important;color:#67584d}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body[data-view=scroll] #app{height:auto;min-height:100vh}body[data-view=scroll] .toolbar{position:sticky;top:0;z-index:8}body[data-view=scroll] #stage{overflow:visible;display:block;min-height:0;padding:20px 14px}body[data-view=scroll] #book{width:min(760px,100%);height:auto;margin:auto;filter:none;background:var(--paper);padding:48px 55px;box-shadow:0 6px 30px #3b2a1a18}body[data-view=scroll] .paper,body[data-view=scroll] .running-head,body[data-view=scroll] .folio,body[data-view=scroll] .reader-footer{display:none}body[data-view=scroll] #viewport{position:static;height:auto;overflow:visible}body[data-view=scroll] #flow{width:auto;height:auto;columns:auto;transform:none!important;will-change:auto}body[data-view=scroll] .chapter{position:static;width:auto;height:auto;columns:auto;left:auto!important}body[data-view=scroll] .chapter-start,body[data-view=scroll] .entry-start{break-before:auto;margin-top:3em!important;scroll-margin-top:155px}body[data-view=scroll] .cover-page{height:auto;width:min(450px,100%);margin:auto}body[data-view=scroll] .cover-page img{height:auto}body[data-view=scroll] #layout{opacity:.45}body[data-view=scroll] .no-script{padding:0 30px 30px}
@media(max-width:850px){.toolbar{padding:10px 14px;gap:10px;flex-wrap:wrap}.brand{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.book-title{font-size:16px}.eyebrow{font-size:8px}.controls{width:100%;justify-content:space-between;gap:6px}.controls button,.controls select{font-size:11px;padding:7px 9px}.size-control input{width:76px}.size-control output{display:none}.reader-footer{gap:12px;padding:10px 14px}.reader-footer button{font-size:11px;padding:8px}.position{width:220px;font-size:11px}#layout-note{font-size:9px}body[data-view=scroll] #book{padding:30px 24px}.dialog-header{padding:18px}dialog nav{padding:12px 18px 24px}}
.reader-notice{margin:0;font:12px/1.4 system-ui,sans-serif;color:var(--accent)}
#fullscreen-toggle{white-space:nowrap}
/* The opening cover is a single centered leaf even in two-page mode. */
body[data-cover="true"][data-view="paged"] #book{width:var(--paper-w)}
body[data-cover="true"][data-view="paged"] .right-paper,body[data-cover="true"][data-view="paged"] .folio-right{display:none}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{body{background:white}.toolbar,.reader-footer,dialog,.no-script{display:none!important}#app,#stage,#book,#viewport,#flow,.chapter{display:block!important;position:static!important;width:auto!important;height:auto!important;overflow:visible!important;columns:auto!important;transform:none!important;filter:none!important;padding:0!important;margin:0!important}#flow{font-size:11pt;line-height:1.4}.paper,.folio,.running-head{display:none!important}.chapter-start{break-before:page}.cover-page{height:90vh;width:100%}}

/* The cover is an unfragmented image panel, independent of text columns. */
.chapter[data-chapter="cover-0"]{columns:auto;overflow:hidden}
.cover-page{display:flex;align-items:center;justify-content:center;overflow:hidden}
.cover-page img{flex:0 0 auto;max-width:var(--text-w);max-height:var(--text-h);object-position:center}
body[data-view="scroll"] .cover-page img{width:100%!important;height:auto!important;max-width:100%!important;max-height:none!important}

.bookmark-panel{padding:18px 24px;font:14px/1.5 system-ui,sans-serif}.bookmark-panel ul{list-style:none;margin:12px 0 0;padding:0}.bookmark-item{padding:14px 0;border-top:1px solid #d5c8b7}.bookmark-item input{width:100%;font:15px Georgia,serif;border:1px solid #d5c8b7;border-radius:4px;padding:8px;background:var(--paper);color:var(--ink)}.bookmark-detail{font-size:12px;color:var(--muted);margin:8px 0}.bookmark-actions{display:flex;gap:8px}#bookmark-status{font-size:12px;color:var(--muted)}

.toolbar{position:relative;z-index:8;flex-wrap:wrap;gap:10px 18px;padding:9px 18px}.brand{gap:3px}.brand-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.edition-control{display:flex;align-items:center;gap:7px;font:12px system-ui,sans-serif}.edition-control select{min-width:100px}.reading-description{font:11px/1.3 system-ui,sans-serif;color:var(--muted);margin:0}.reader-notice-toast{position:absolute;top:calc(100% + 8px);right:18px;z-index:12;max-width:min(560px,calc(100vw - 36px));padding:9px 12px;border:1px solid #c9bba7;border-radius:6px;background:var(--paper);box-shadow:0 3px 12px #3b2a1a24;pointer-events:none}body[data-view=scroll] #flow [data-block]{scroll-margin-top:calc(var(--reader-toolbar-h,180px) + 12px)}
@media(max-width:850px){.toolbar{padding:7px 12px;gap:7px}.brand{width:100%;gap:8px}.brand-title{min-width:0}.reading-description{display:none}.reader-notice-toast{right:12px;max-width:calc(100vw - 24px)}.edition-control{font-size:11px}.edition-control select{min-width:86px}.brand .eyebrow{letter-spacing:.08em}.reading-description{font-size:10px}}
