:root{--paper:#f0e5cf;--paper-2:#e7d8ba;--page-bg:#f6eeda;--page-edge:#d8c39c;--ink:#3a2b1a;--ink-soft:#6a5334;--faint:#9c8563;--accent:#8a5324;--accent-2:#a8703a;--line:#d9c6a1;--line-soft:#e3d4b3;--leather:#6d3f22;--leather-2:#8a5230;--leather-line:#caa06a;--shadow:rgba(70,45,18,.2);--shadow-strong:rgba(30,18,6,.45);--body:"Special Elite","Courier New",monospace;--title:"IM Fell English SC","IM Fell English",Georgia,serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#140f08;--paper-2:#1d1610;--page-bg:#241c11;--page-edge:#120c06;--ink:#e9dcbe;--ink-soft:#b6a079;--faint:#8a7654;--accent:#cf9f52;--accent-2:#d9b160;--line:#3a2d1a;--line-soft:#2c2113;--leather:#3d2413;--leather-2:#59371f;--leather-line:#b78a4d;--shadow:rgba(0,0,0,.5);--shadow-strong:rgba(0,0,0,.7);color-scheme:dark}}:root[data-theme=dark]{--paper:#140f08;--paper-2:#1d1610;--page-bg:#241c11;--page-edge:#120c06;--ink:#e9dcbe;--ink-soft:#b6a079;--faint:#8a7654;--accent:#cf9f52;--accent-2:#d9b160;--line:#3a2d1a;--line-soft:#2c2113;--leather:#3d2413;--leather-2:#59371f;--leather-line:#b78a4d;--shadow:rgba(0,0,0,.5);--shadow-strong:rgba(0,0,0,.7);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow:hidden}::selection{background:var(--accent);color:#fff}#hero{position:fixed;inset:0;z-index:0;background:var(--paper-2) url(/images/hero.jpg) center/cover no-repeat}#hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#140c0400 40%,#140c048c)}:root[data-theme=dark] #hero{filter:brightness(.6) saturate(.9)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #hero{filter:brightness(.6) saturate(.9)}}#title{position:fixed;top:6vh;left:0;right:0;text-align:center;z-index:2;pointer-events:none;transition:opacity .6s}#title h1{font-family:var(--title);font-weight:400;color:#f4e8cc;font-size:clamp(30px,6vw,58px);margin:0;letter-spacing:.02em;text-shadow:0 2px 10px rgba(0,0,0,.5)}#title p{font-family:var(--body);color:#e6d3ad;font-size:13px;letter-spacing:.06em;margin:10px 0 0}body.reading #title{opacity:0}#stage{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.book-loading{color:#f0e2c2;font-family:var(--body);font-size:13px;letter-spacing:.2em;text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.6)}.flipbook{margin:0 auto}.page{background:var(--page-bg);overflow:hidden}.page-inner{height:100%;padding:34px 30px;overflow:hidden;color:var(--ink);background:linear-gradient(90deg,rgba(120,90,50,.1),transparent 6%),radial-gradient(120% 100% at 100% 50%,var(--paper-2),var(--page-bg) 55%);box-shadow:inset 0 0 60px -30px var(--shadow)}.page.--right .page-inner{background:linear-gradient(270deg,rgba(120,90,50,.1),transparent 6%),radial-gradient(120% 100% at 0% 50%,var(--paper-2),var(--page-bg) 55%)}.page-inner h2{font-family:var(--title);font-weight:400;color:var(--ink);font-size:clamp(22px,3vw,30px);line-height:1.1;margin:0 0 .3em}.page-inner h3{font-family:var(--title);font-weight:400;font-size:19px;margin:1em 0 .3em}.page-inner p{margin:0 0 .85em;line-height:1.62;font-size:14px;text-align:justify;hyphens:auto;break-inside:avoid}.page-inner blockquote{margin:1em 0;padding-left:14px;border-left:2px solid var(--accent);color:var(--ink-soft);font-style:italic;break-inside:avoid}.page-inner ul,.page-inner ol{margin:0 0 .85em;padding-left:1.3em;font-size:14px;line-height:1.6}.page-inner li{break-inside:avoid}.page-inner a{color:var(--accent);text-underline-offset:2px}.page-inner code{font-family:var(--body);background:var(--paper-2);padding:0 4px;border-radius:2px;font-size:12.5px}.page-inner pre{background:var(--paper-2);padding:12px;border-radius:3px;overflow:auto;font-size:12px;break-inside:avoid}.page-inner img{max-width:100%;border-radius:2px}.page-inner table{width:100%;border-collapse:collapse;font-size:12.5px;break-inside:avoid}.page-inner th,.page-inner td{border:1px solid var(--line);padding:5px 8px;text-align:left}.page-inner hr{border:none;text-align:center;margin:1.1em 0;color:var(--accent)}.page-inner hr:before{content:"§";letter-spacing:.4em}.art-head{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.art-head .eyebrow{font-family:var(--body);text-transform:uppercase;letter-spacing:.24em;font-size:10px;color:var(--accent);margin:0 0 6px}.art-head .dek{font-family:var(--title);font-size:15px;color:var(--ink-soft);margin:.2em 0 0;text-align:left}.art-head .meta{font-family:var(--body);font-size:10.5px;color:var(--faint);letter-spacing:.1em;margin:8px 0 0}.chapter-start .page-inner .art-first:first-letter{font-family:var(--title);float:left;font-size:3.1em;line-height:.7;padding:6px 8px 0 0;color:var(--accent)}.page-num{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-family:var(--title);font-size:13px;color:var(--faint)}.page.cover{background:radial-gradient(120% 120% at 30% 20%,var(--leather-2),var(--leather) 60%,#38200f 100%)}.cover-inner{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#f3e4c6;padding:36px;position:relative}.cover-inner .frame{position:absolute;inset:16px;border:1px solid var(--leather-line);opacity:.5}.cover-inner .ck{font-family:var(--body);text-transform:uppercase;letter-spacing:.34em;font-size:10px;color:var(--leather-line);margin-bottom:18px}.cover-inner h2{font-family:var(--title);font-weight:400;font-size:clamp(24px,4vw,34px);color:#f6e8ca;margin:0}.cover-inner .emblem{width:52px;height:52px;stroke:var(--leather-line);fill:none;margin:18px 0}.cover-inner .byline{font-family:var(--title);font-size:14px;color:#dcc7a0}.page.cover-image{padding:0;overflow:hidden;background:var(--page-bg)}.page.cover-image img{width:100%;height:100%;object-fit:cover;display:block}.page.blank .page-inner{background:var(--page-bg)}.toc-inner h2{font-family:var(--title);font-weight:400;font-size:clamp(22px,3vw,30px);margin:0 0 2px}.toc-inner .sub{font-family:var(--title);font-size:14px;color:var(--ink-soft);margin:0 0 10px}.toc-list{list-style:none;margin:0;padding:0}.toc-list li a{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:baseline;text-decoration:none;color:inherit;padding:9px 4px;border-bottom:1px dotted var(--line);cursor:pointer}.toc-list li a:hover{background:#8a53241a}.toc-list .n{font-family:var(--title);font-size:16px;color:var(--accent)}.toc-list .t{font-family:var(--title);font-size:17px;line-height:1.1}.toc-list .t small{display:block;font-family:var(--body);font-size:11px;color:var(--ink-soft);margin-top:2px}.toc-list .rt{font-family:var(--body);font-size:10px;color:var(--faint);white-space:nowrap}#bar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:40px;background:color-mix(in srgb,var(--page-bg) 90%,transparent);border:1px solid var(--page-edge);box-shadow:0 10px 30px -14px var(--shadow-strong);backdrop-filter:blur(6px)}#bar button{font-family:var(--body);font-size:12px;color:var(--ink);background:none;border:none;cursor:pointer;padding:7px 12px;border-radius:30px;display:flex;align-items:center;gap:6px}#bar button:hover:not(:disabled){background:#8a532424;color:var(--accent)}#bar button:disabled{opacity:.35;cursor:default}#bar .ind{font-family:var(--title);font-size:13px;color:var(--ink-soft);min-width:96px;text-align:center}#bar .div{width:1px;height:18px;background:var(--page-edge)}#bar svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.7}#themeToggle{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:14px;z-index:6;width:40px;height:40px;border-radius:50%;cursor:pointer;background:color-mix(in srgb,var(--page-bg) 85%,transparent);border:1px solid var(--page-edge);color:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px -10px var(--shadow-strong)}#themeToggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6}#themeToggle .moon{display:none}:root[data-theme=dark] #themeToggle .sun{display:none}:root[data-theme=dark] #themeToggle .moon{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #themeToggle .sun{display:none}:root:not([data-theme=light]) #themeToggle .moon{display:block}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}#source{display:none}
