:root{--bg:#f7f4ef;--bg-elevated:#fffdf9;--ink:#1c1a17;--ink-muted:#5c574f;--accent:#8b3a2a;--rule:#d9d2c6;--progress:#8b3a2a;--font-body:"Literata", "PT Serif", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-ui:"Source Sans 3", "Source Sans Pro", "Segoe UI", system-ui, sans-serif;--measure:min(48rem, 100%);--pad:clamp(1.25rem, 4vw, 2rem)}@media (prefers-color-scheme:dark){:root{--bg:#161412;--bg-elevated:#1e1b18;--ink:#ebe6de;--ink-muted:#a39c92;--accent:#d47864;--rule:#3a342c;--progress:#d47864}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:clamp(1.125rem,.4vw + 1.05rem,1.25rem);line-height:1.55}a{color:var(--accent);text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}img{max-width:100%;height:auto;display:block}.site-header,.site-footer{font-family:var(--font-ui);font-size:.95rem}.site-header{max-width:calc(var(--measure) + 2 * var(--pad));padding:1.25rem var(--pad);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:1rem;margin:0 auto;display:flex}.site-header a{color:var(--ink);text-decoration:none}.site-header a:hover{color:var(--accent)}.site-header nav{gap:1.25rem;display:flex}.site-footer{max-width:calc(var(--measure) + 2 * var(--pad));padding:1.5rem var(--pad) 2.5rem;border-top:1px solid var(--rule);color:var(--ink-muted);margin:3rem auto 0}.wrap{max-width:calc(var(--measure) + 2 * var(--pad));padding:2rem var(--pad) 1rem;margin:0 auto}.hero{border-bottom:1px solid var(--rule);gap:1.75rem;padding-bottom:2rem;display:grid}@media (width>=720px){.hero{grid-template-columns:11rem 1fr;align-items:start}}.hero__cover-btn{cursor:zoom-in;background:0 0;border:0;border-radius:2px;width:100%;max-width:11rem;margin:0;padding:0;transition:transform .2s,box-shadow .2s;display:block}.hero__cover-btn:hover,.hero__cover-btn:focus-visible{outline:none;transform:translateY(-2px);box-shadow:0 16px 40px #00000038}.hero__cover-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hero__cover{border-radius:2px;width:100%;display:block;box-shadow:0 12px 32px #0000002e}.cover-lightbox{background:0 0;border:0;max-width:min(90vw,32rem);max-height:90vh;margin:auto;padding:0;position:relative}.cover-lightbox::backdrop{backdrop-filter:blur(4px);background:#000000b8}.cover-lightbox__img{object-fit:contain;border-radius:2px;width:100%;height:auto;max-height:90vh;display:block;box-shadow:0 20px 60px #00000073}.cover-lightbox__close{z-index:1;color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:2px;place-items:center;width:2.25rem;height:2.25rem;margin:0;padding:0;font-size:1.5rem;line-height:1;display:grid;position:absolute;top:.5rem;right:.5rem}.cover-lightbox__close:hover,.cover-lightbox__close:focus-visible{background:#000000bf;outline:none}.cover-lightbox[open]{animation:.2s cover-lightbox-in}@keyframes cover-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.hero__title{letter-spacing:-.02em;margin:0 0 .35rem;font-size:clamp(2.25rem,4vw,3.25rem);font-weight:700;line-height:1.15}.hero__author{color:var(--ink-muted);font-family:var(--font-ui);margin:0 0 1rem}.hero__blurb{color:var(--ink-muted);white-space:pre-line;margin:0 0 1.5rem}.cta-row{flex-wrap:wrap;gap:.75rem;display:flex}.button{border:1px solid var(--accent);background:var(--accent);color:#fff;font-family:var(--font-ui);border-radius:2px;justify-content:center;align-items:center;padding:.65rem 1.15rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{filter:brightness(1.05);text-decoration:none}.button--ghost{color:var(--accent);background:0 0}.toc{margin:2.5rem 0 0;padding:0;list-style:none}.toc li{border-bottom:1px solid var(--rule)}.toc a{color:var(--ink);font-family:var(--font-ui);justify-content:space-between;gap:1rem;padding:.85rem 0;text-decoration:none;display:flex}.toc a:hover{color:var(--accent)}.toc__num{font-variant-numeric:tabular-nums;color:var(--ink-muted)}.chapter{max-width:var(--measure);padding:1.5rem var(--pad) 3rem;margin:0 auto}.chapter__label{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 .5rem;font-size:.9rem}.chapter__book-title{font-family:var(--font-body);letter-spacing:-.03em;margin:.5rem 0 2rem;font-size:clamp(2.75rem,8vw,4.25rem);font-weight:700;line-height:1.05}.chapter h1{margin:0 0 1.75rem;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700}.chapter--opening .prose>h1:first-of-type{color:var(--ink-muted);margin:2rem 0 1.5rem;font-size:clamp(1.35rem,2.5vw,1.75rem);font-weight:600}.prose p{text-indent:1.35em;hyphens:manual;overflow-wrap:break-word;margin:0}.prose blockquote+p{text-indent:0}.chapter--opening .prose>p:not(:is(h1~p)){text-indent:0;margin:.15em 0}.prose em{font-style:italic}.prose strong{font-weight:700}.prose hr,.prose p.scene-break{text-align:center;color:var(--ink-muted);letter-spacing:.4em;border:0;margin:1.75em 0}.prose hr:before,.prose p.scene-break{content:none}.prose hr{height:auto}.prose hr:after{content:"* * *";letter-spacing:.45em;color:var(--ink-muted);display:block}.prose blockquote{border-left:2px solid var(--rule);color:var(--ink-muted);margin:1.5em 0;padding:0 0 0 1em;font-style:italic}.prose blockquote p{text-indent:0}.prose .footnotes{border-top:1px solid var(--rule);color:var(--ink-muted);margin-top:3rem;padding-top:1.5rem;font-size:.92em}.prose .footnotes ol{padding-left:1.25rem}.prose .footnotes p{text-indent:0;margin-bottom:.6em}.prose .footnote-ref{font-family:var(--font-ui);vertical-align:super;font-size:.75em;line-height:0}.chapter-nav{border-top:1px solid var(--rule);font-family:var(--font-ui);justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1.25rem;font-size:.95rem;display:flex}.chapter-nav a{color:var(--ink);text-decoration:none}.chapter-nav a:hover{color:var(--accent)}.chapter-nav__spacer{flex:1}.reading-progress{background:var(--progress);z-index:40;pointer-events:none;width:0;height:3px;position:fixed;top:0;left:0}.download-list{margin:2rem 0 0;padding:0;list-style:none}.download-list li{border-bottom:1px solid var(--rule)}.download-list a{color:var(--ink);font-family:var(--font-ui);justify-content:space-between;gap:1rem;padding:1rem 0;text-decoration:none;display:flex}.download-list a:hover{color:var(--accent)}.download-list .meta{color:var(--ink-muted);font-size:.9rem}.muted{color:var(--ink-muted)}
