:root{--paper:#fffaf0;--ink:#17283a;--size:21px;--bg:#e8e2d7;--line:#baa477}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Georgia,serif}body.dark{--paper:#19212b;--ink:#ece5d6;--bg:#111820;--line:#8e7954}a{color:inherit}button{font:inherit;cursor:pointer;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:10px 14px;border-radius:5px}button:disabled{opacity:.4;cursor:default}a:focus-visible,button:focus-visible{outline:3px solid #b8862e;outline-offset:3px}.toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px;background:var(--paper);border-bottom:1px solid var(--line);font:14px system-ui}.toolbar strong{margin-right:auto}#status{font-size:12px}#contents{position:fixed;z-index:5;top:80px;left:12px;max-height:70vh;overflow:auto;max-width:min(420px,94vw);padding:22px;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 40px #0004}#contents a{display:block;padding:10px}main{max-width:880px;margin:28px auto;background:var(--paper);box-shadow:0 12px 40px #0001;min-height:70vh}.page{padding:60px 70px}.page[hidden]{display:none}.prose{font-size:var(--size);line-height:1.8}.prose p{margin:0 0 1.2em}.prose h2,.prose h3{line-height:1.3}.prose a{overflow-wrap:anywhere}.prose blockquote{margin:25px 0;border-left:3px solid var(--line);padding-left:24px}.title-page{text-align:center;min-height:75vh;display:flex;flex-direction:column;justify-content:center;gap:25px}.title-page h1{font-size:clamp(32px,5vw,50px);line-height:1.18}.subtitle{font-style:italic;font-size:21px;line-height:1.5}.cover-page{text-align:center;padding:24px}.cover{width:min(100%,520px);aspect-ratio:2/3;background-size:200% 100%;background-repeat:no-repeat;margin:0 auto 22px;box-shadow:0 14px 30px #0004}.front{background-position:right center}.back{background-position:left center}.navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:880px;margin:24px auto;padding:0 18px}footer{text-align:center;padding:24px;font:13px system-ui}footer p{font-size:12px}html{scroll-padding-top:120px}@media(max-width:600px){.toolbar{gap:6px;padding:8px}.toolbar button{padding:8px 10px}.toolbar strong{display:none}.page{padding:30px 22px}.cover-page{padding:12px}main{margin:12px}.prose{line-height:1.7}}@media print{.toolbar,#contents,.navigation,footer{display:none!important}.page[hidden]{display:block}.page{break-before:page}main{box-shadow:none}}
