*{margin:0;padding:0}:root{--paper:#f0eadc;--glow:#f8f4ea;--ink:#191513;--accent:#7a2e26;--muted:#1915139e;--soft:#191513c2;--vignette:#604c2c1a;--grain:.032;--grain-blend:multiply;--scrim:#efe8daeb;--pad:clamp(22px, 4.5vw, 64px);--serif:"Gentium Book Plus", "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:"Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--ease:cubic-bezier(.16, 1, .3, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#0e0c0a;--glow:#17130f;--ink:#e7dfd0;--accent:#c0996a;--muted:#e7dfd094;--soft:#e7dfd0bd;--vignette:#0000008c;--grain:.05;--grain-blend:screen;--scrim:#070605e6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--paper)}body{background:radial-gradient(78% 62% at 50% 42%, var(--glow) 0%, var(--paper) 78%);min-height:100svh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color .4s var(--ease), color .4s var(--ease);margin:0;overflow:hidden}body:after{content:"";z-index:6;pointer-events:none;opacity:var(--grain);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none}:focus-visible{outline:1px solid var(--accent);outline-offset:5px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}#stage{z-index:0;opacity:0;width:100%;height:100%;transition:opacity 1.1s var(--ease) .1s;display:block;position:fixed;inset:0}body.is-ready #stage{opacity:1}body.is-ready .fallback{opacity:0;visibility:hidden}.scrim{z-index:2;pointer-events:none;opacity:0;transition:opacity 1s var(--ease) .2s;position:fixed;left:0;right:0}body.is-ready .scrim{opacity:1}.scrim-top{background:linear-gradient(#0000008c 0%,#0000 100%);height:120px;top:0}.scrim-bottom{height:18vh;transition:opacity 1s var(--ease) .2s, height .8s var(--ease);background:linear-gradient(#0000 0%,#0009 100%);bottom:0}.scrim-bottom.has-book{background:linear-gradient(to top, var(--scrim) 0%, var(--scrim) 30%, #0000 100%);height:46vh}:root[data-theme=light] .scrim-top{background:linear-gradient(#f0eadc99 0%,#f0eadc00 100%)}:root[data-theme=light] .scrim-bottom{background:linear-gradient(#f0eadc00 0%,#f0eadca6 100%)}:root[data-theme=light] .scrim-bottom.has-book{background:linear-gradient(to top, var(--scrim) 0%, var(--scrim) 30%, #f0eadc00 100%)}.fallback{z-index:1;aspect-ratio:1.35/1.95;background:var(--fb-cover,#4b211d);height:clamp(260px,44vh,470px);color:var(--fb-foil,#e2be7e);transition:opacity .3s var(--ease), visibility 0s .3s;pointer-events:none;border-radius:2px 5px 5px 2px;position:fixed;top:43.5%;left:50%;transform:translate(-50%,-50%);box-shadow:0 34px 70px #0000006b,0 3px 8px #00000047,inset -10px 0 22px #00000047}.fallback:after{content:"";background:linear-gradient(90deg,#00000073,#ffffff0f 60%,#0000002e);border-radius:2px 0 0 2px;width:11px;position:absolute;top:3%;bottom:3%;left:0}.fb-inner{text-align:center;border:1px solid;flex-direction:column;justify-content:center;align-items:center;padding:12% 10%;display:flex;position:absolute;inset:7% 9%}.fb-inner:before{content:"";opacity:.55;border:1px solid;position:absolute;inset:4px}.fb-orn{background:currentColor;width:6px;height:6px;margin-bottom:1.6em;transform:rotate(45deg)}.fb-title{font-family:var(--serif);letter-spacing:.16em;text-transform:uppercase;text-indent:.16em;font-size:clamp(13px,2.1vh,23px);font-weight:700;line-height:1.5}.fb-author{font-family:var(--serif);letter-spacing:.03em;opacity:.92;margin-top:1.4em;font-size:clamp(11px,1.55vh,17px);font-style:italic}.page{z-index:3;padding:var(--pad);pointer-events:none;flex-direction:column;display:flex;position:fixed;inset:0}.top,.caption,footer{pointer-events:auto}.top{justify-content:space-between;align-items:center;gap:24px;display:flex}.mark,nav a,.theme,footer,.next{font-family:var(--sans);text-transform:uppercase;letter-spacing:.17em;font-size:10.5px;line-height:1}.mark{transition:color .2s var(--ease);font-weight:500}.top-right{align-items:center;gap:clamp(24px,3.6vw,48px);display:flex}nav{color:var(--muted);gap:clamp(16px,2.4vw,32px);display:flex}nav a,.theme{transition:color .2s var(--ease)}.mark:hover,nav a:hover,.theme:hover,footer a:hover,.next:hover{color:var(--accent)}.theme{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.theme .dot{width:7px;height:7px;transition:background-color .2s var(--ease);background:0 0;border:1px solid;border-radius:50%}:root[data-theme=dark] .theme .dot{background:currentColor}.caption{left:var(--pad);right:var(--pad);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 32px;display:flex;position:absolute;top:68.5%}.caption.mode-room .book-copy,.caption.mode-room .next,.caption.mode-book .room-copy{display:none}.copy{max-width:56ch}.page-copy{animation:page-in .9s var(--ease) both}.page-hint{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:8px 0 0;font-size:9.5px}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.page-copy{animation:none}}.hint{font-family:var(--serif);color:var(--soft);text-wrap:pretty;margin:0;font-size:clamp(17px,1.6vw,22px);font-style:italic;line-height:1.4}.quote{font-family:var(--serif);color:var(--ink);text-wrap:pretty;margin:0;font-size:clamp(17px,1.55vw,22px);font-style:italic;line-height:1.35}.meta{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:0 9px;margin:10px 0 0;font-size:9.5px;line-height:1.5;display:flex}.folio{color:var(--accent)}.sep{opacity:.5}.work{transition:color .2s var(--ease), border-color .2s var(--ease);border-bottom:1px solid #0000}.work:hover{color:var(--accent);border-bottom-color:var(--accent)}.next{color:var(--muted);cursor:pointer;transition:color .2s var(--ease);background:0 0;border:0;align-items:center;gap:9px;margin-left:auto;padding:0;display:inline-flex}.toc{gap:14px;margin-top:13px;display:flex}.toc-item{font-family:var(--sans);letter-spacing:.14em;color:var(--muted);cursor:pointer;transition:color .2s var(--ease);background:0 0;border:0;padding:7px 2px;font-size:10.5px;line-height:1}.toc-item:hover{color:var(--accent)}.read-link{width:max-content;font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid #c0996a59;margin-top:14px;padding-bottom:3px;font-size:10px;text-decoration:none;display:none}.read-link:hover{border-bottom-color:var(--accent)}.clock{color:var(--muted);font-family:var(--sans);letter-spacing:.14em;cursor:pointer;transition:color .2s var(--ease);background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:10.5px;display:inline-flex}.clock:hover{color:var(--accent)}.clock-dot{width:7px;height:7px;transition:background-color .2s var(--ease), box-shadow .2s var(--ease);background:currentColor;border-radius:50%;box-shadow:0 0 9px #c0996a8c}.clock.paused .clock-dot{box-shadow:none;background:0 0;border:1px solid}.next .arrow{transition:transform .25s var(--ease);font-size:13px;line-height:1;display:inline-block}.next:hover .arrow{transform:translate(-4px)}@keyframes capIn{0%{opacity:.1;transform:translateY(5px)}to{opacity:1;transform:none}}.caption.swap .copy,.caption.swap .next{animation:capIn .55s var(--ease) both}footer{color:var(--muted);justify-content:space-between;align-items:center;gap:18px;margin-top:auto;display:flex}footer a{transition:color .2s var(--ease);align-items:center;gap:6px;display:inline-flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=640px){.top{flex-direction:column;align-items:flex-start;gap:18px}.top-right{justify-content:flex-end;width:100%}.caption{top:69%}.quote,.hint{font-size:16px}.meta{letter-spacing:.14em;font-size:9px}.credit,.walk-hint{display:none}.fallback{height:clamp(250px,43vh,400px)}}@media (height<=680px){.caption{top:70%}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;margin:0;padding:0}body{background:radial-gradient(78% 62% at 50% 42%, var(--glow) 0%, var(--paper) 78%);min-height:100svh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow:hidden}#stage{z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}#stage canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.read-link{cursor:pointer;background:0 0;display:inline-block}.read-link:disabled{opacity:.5;cursor:wait}.caption.is-reading{top:auto;bottom:calc(var(--pad) + 32px)}.caption.is-reading .book-copy{display:none}.scrim-bottom.is-reading{height:25vh}.reader{z-index:30;-webkit-backdrop-filter:blur(14px)saturate(.85);backdrop-filter:blur(14px)saturate(.85);color:var(--ink);font:12px var(--sans);animation:reader-in .5s var(--ease) both;background:#090705a3;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:12px 0 10px;display:flex;position:fixed;inset:0}:root[data-theme=light] .reader{background:#ece5d6b8}@keyframes reader-in{0%{opacity:0}}.reader button{color:var(--soft);font:inherit;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:10px 6px}.reader button:hover{color:var(--accent)}.reader button:disabled{opacity:.3;cursor:default}.reader-bar,.reader-nav{justify-content:space-between;align-items:center;gap:12px;width:min(1100px,100% - 32px);display:flex}.reader-name{font:italic 17px var(--serif);color:var(--ink)}.reader-tools{align-items:center;gap:14px;display:flex}.reader-size{text-transform:none;gap:2px;display:inline-flex}.reader-size button{letter-spacing:0;text-transform:none;font:14px var(--serif)}.reader-status{font:italic 17px var(--serif)}.reader-book{touch-action:pan-y;-webkit-user-select:text;user-select:text;position:relative}.reader-spread{background:#f4ecdd;border-radius:4px;height:100%;display:flex;overflow:hidden;box-shadow:0 30px 80px #00000080,inset 0 2px #e8dcc4}.reader-spread.fwd{animation:turn-fwd .32s var(--ease) both}.reader-spread.back{animation:turn-back .32s var(--ease) both}@keyframes turn-fwd{0%{opacity:.35;transform:translate(10px)}}@keyframes turn-back{0%{opacity:.35;transform:translate(-10px)}}@media (prefers-reduced-motion:reduce){.reader,.reader-spread.fwd,.reader-spread.back{animation:none}}.reader-page{color:#2a2119;flex:1;position:relative}.reader-page.left{background:linear-gradient(90deg,#0000 88%,#4630181a 97%,#46301833)}.reader-page.right{background:linear-gradient(90deg,#46301833,#4630181a 3%,#0000 12%)}.page-head,.folio{text-align:center;font:11px var(--serif);letter-spacing:.18em;text-transform:uppercase;color:#8a7458;margin:0;position:absolute;left:0;right:0}.page-head{top:24px}.folio{letter-spacing:0;font-size:12px;bottom:18px}.page-text{font-family:var(--serif);-webkit-font-smoothing:antialiased;position:relative}.page-text .ln{white-space:nowrap;text-align:justify;text-align-last:justify;margin:0;position:absolute;left:0;right:0}.page-text .ln.end,.reader-page.single .ln{text-align:left;text-align-last:left}.page-text h2{text-align:center;color:#3a2c1e;margin:0;font-weight:400;line-height:1.35}.page-title,.page-colophon{text-align:center;flex-direction:column;justify-content:center;height:100%;display:flex}.page-title h1{font:400 2.6em/1.1 var(--serif);letter-spacing:.02em;margin:6px 0 0}.page-title .sub{margin:4px 0 28px;font-size:1.15em;font-style:italic}.page-title .by{margin:0 0 6px;font-size:1.1em}.page-title .small,.page-colophon h2{letter-spacing:.22em;text-transform:uppercase;color:#8a7458;margin:0;font-size:.7em}.page-colophon h2{margin-bottom:18px;font-weight:400}.page-colophon p{max-width:26em;margin:0 auto 1em;font-size:.9em}.page-finis{text-align:center;font-size:1.3em;font-style:italic;position:absolute;top:40%;left:0;right:0}.reader-where{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.reader-chapter{font:italic 14px var(--serif);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:40%;overflow:hidden}.reader-track{background:#ffffff24;flex:1;height:2px;position:relative}:root[data-theme=light] .reader-track{background:#0000001f}.reader-track i{background:var(--accent);position:absolute;inset:0 auto 0 0}.reader-percent{color:var(--muted);letter-spacing:.08em}.reader-contents{width:min(440px,94vw);max-width:none;height:100dvh;max-height:none;color:var(--ink);background:#17130f;border:0;border-left:1px solid #6a5434;margin:0;padding:0;position:fixed;inset:0 0 0 auto}.reader-contents::backdrop{background:#0008}.reader-contents button{text-transform:none;letter-spacing:0}.contents-inner{padding:30px}.contents-inner header{justify-content:space-between;align-items:center;display:flex}.contents-inner h2{font:32px var(--serif)}.contents-inner header button{padding:10px;font-size:28px}.contents-inner p{color:var(--muted);font:13px/1.6 var(--serif)}.contents-inner nav{flex-direction:column;gap:0;margin-top:24px;display:flex}.contents-inner nav button{text-align:left;font:16px/1.45 var(--serif);border-bottom:1px solid #ffffff0a;padding:9px 0}.contents-inner nav button[aria-current]{color:var(--accent)}.contents-note{margin-top:24px}.accessible-books{z-index:10;background:#17130f;flex-direction:column;padding:20px;display:flex;position:fixed;top:80px;left:-10000px}.accessible-books:focus-within{left:var(--pad)}.accessible-books button{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;padding:9px}@media (width<=899px),(height<=519px){.reader{gap:6px;padding:4px 0}.reader-spread{box-shadow:none;border-radius:0}.reader button{min-height:44px}.reader-tools{gap:4px}.reader-chapter,.reader-name{display:none}.reader-bar{justify-content:flex-end}.reader-nav button span{display:none}}@media (width<=420px){.reader-tools>button:not(.reader-close){letter-spacing:.06em;padding:10px 4px}}.loader{z-index:50;text-align:center;color:#e7dfd0;transition:opacity 1s var(--ease) .15s, visibility 0s 1.2s;background:#0b0907;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.loader:before{content:"";pointer-events:none;background:radial-gradient(42% 38% at 50% 47%,#96623442 0%,#462c181a 45%,#0000 75%);animation:6s ease-in-out infinite alternate loader-glow;position:absolute;inset:0}@keyframes loader-glow{0%{opacity:.7}to{opacity:1}}.loader:after{content:"";opacity:.05;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.loader>*{position:relative}.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}.loader-title{font:italic 400 clamp(30px, 4vw, 42px)/1.1 var(--serif);letter-spacing:.01em;margin:0}.loader-quote{max-width:30em;min-height:1.5em;font:italic 400 clamp(15px, 1.5vw, 18px)/1.5 var(--serif);color:#e7dfd094;margin:16px 0 34px;animation:3.2s ease-in-out both loader-line}@keyframes loader-line{0%{opacity:0;transform:translateY(4px)}18%,80%{opacity:1;transform:none}to{opacity:0;transform:translateY(-3px)}}.loader-status{min-height:1.5em;font:10.5px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#e7dfd080;margin:0 0 12px}.loader-line{background:#e7dfd01f;width:min(200px,56vw);height:1px;position:relative;overflow:hidden}.loader-line i{transform-origin:0;transition:transform .6s var(--ease);background:#c0996a;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.loader:before,.loader-quote{animation:none}.loader{transition:opacity .3s linear,visibility 0s .3s}}
