:root{--stage:#ece5e2;--surface:#f6f2f1;--paper:#fff;--oxblood:#5f1c19;--crimson:#780d0d;--ink:#4a1f1c;--ink-muted:#6c6b6b;--on-oxblood:#e5dfdf;--on-oxblood-muted:#968984;--font:"Jost", "Futura", "Century Gothic", system-ui, sans-serif;--dash:1.5px dashed var(--oxblood);--topbar-h:56px;--band-h:48px;--gutter:24px;--turn-ms:.7s;--ease:cubic-bezier(.2, .7, .2, 1)}@media (max-width:640px){:root{--topbar-h:48px;--band-h:44px;--gutter:12px}}@media (max-height:500px) and (orientation:landscape){:root{--topbar-h:40px;--band-h:36px;--gutter:12px}}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--stage);color:var(--ink);font:400 16px/1.5 var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit}:focus-visible{outline:var(--dash);outline-offset:4px}.app{grid-template-rows:var(--topbar-h) 1fr var(--band-h);height:100dvh;display:grid}.noscript{text-align:center;padding:0 var(--gutter);position:fixed;inset:auto 0 40%}.load-error{text-align:center;color:var(--ink-muted);letter-spacing:.04em}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.stage{min-height:0;padding:var(--gutter);position:relative;overflow:hidden}.book{width:100%;height:100%;position:relative}.flip-host{filter:drop-shadow(0 18px 28px #4a1f1c29)drop-shadow(0 2px 4px #4a1f1c1a);width:100%;height:100%}.page-slot>.page{width:100%;height:100%}.page{background-color:var(--paper);background-repeat:no-repeat}.page--left,.page--right{background-size:200% 100%}.page--left{background-position:0}.page--right{background-position:100%}.page--whole{background-position:50%;background-size:contain}[data-mode=spread] .page--solo{background-color:#0000}.page.is-missing{place-items:center;display:grid;background-image:none!important}.page.is-missing:after{content:attr(data-label);font:500 13px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}.fade-host{filter:drop-shadow(0 18px 28px #4a1f1c29);justify-content:center;align-items:center;width:100%;height:100%;display:flex;container-type:size}.fade-host .page{aspect-ratio:var(--page-aspect);width:min(50cqw, calc(100cqh * var(--page-aspect)));opacity:0;transition:opacity .25s linear, display .25s allow-discrete;display:none}[data-mode=spread] .fade-host .page{width:min(100cqw, calc(100cqh * var(--page-aspect)))}.fade-host .page.is-visible{opacity:1;display:block}@starting-style{.fade-host .page.is-visible{opacity:0}}.fade-host .page.is-missing.is-visible{display:grid}.topbar{padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar__name{font:600 14px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--oxblood);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.topbar__nav{flex-shrink:0;gap:24px;display:flex}.navlink{font:500 12px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid #0000;padding:6px 0;text-decoration:none;transition:color .16s,border-color .16s}.navlink:hover{color:var(--crimson);border-bottom-color:currentColor}.navlink .short{display:none}.band{padding:0 var(--gutter);background:var(--oxblood);color:var(--on-oxblood);align-items:center;gap:20px;display:flex}.band__counter{font:500 12px/1 var(--font);letter-spacing:.16em;white-space:nowrap;font-variant-numeric:tabular-nums;margin:0}.progress{cursor:pointer;flex:1;height:28px;position:relative}.progress:before{content:"";background:var(--on-oxblood-muted);height:1px;position:absolute;inset:50% 0 auto}.progress__fill{background:var(--on-oxblood);height:3px;transition:width var(--turn-ms) var(--ease);position:absolute;top:calc(50% - 1px);left:0}.progress:focus-visible{outline:1.5px dashed var(--on-oxblood);outline-offset:2px}.progress__thumb{background:var(--surface);pointer-events:none;padding:6px;position:absolute;bottom:38px;transform:translate(-50%);box-shadow:0 10px 24px #4a1f1c33}.progress__thumb img{width:200px;height:auto;display:block}.progress__thumb span{text-align:center;font:500 11px/1 var(--font);letter-spacing:.14em;color:var(--ink);margin-top:6px;display:block}.zoom-btn{right:calc(var(--gutter) + 8px);bottom:calc(var(--gutter) + 8px);z-index:5;background:var(--surface);font:500 11px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);outline:var(--dash);outline-offset:0;padding:8px 12px;position:absolute}.zoom-btn:hover{background:var(--oxblood);color:var(--on-oxblood)}.zoom-btn:focus-visible{outline-offset:4px;background:var(--oxblood);color:var(--on-oxblood)}.hint{left:50%;bottom:calc(var(--gutter) + 56px);background:var(--oxblood);color:var(--on-oxblood);font:500 11px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;animation:hint 4s var(--ease) forwards;margin:0;padding:10px 14px;position:absolute;transform:translate(-50%)}@keyframes hint{0%{opacity:0}10%,85%{opacity:1}to{opacity:0}}.intro{z-index:40;text-align:center;background:var(--stage);transition:opacity .4s var(--ease);place-content:center;display:grid;position:fixed;inset:0}.intro.is-leaving{opacity:0}.intro__name{font:600 clamp(34px, 8vw, 96px)/1.02 var(--font);letter-spacing:.02em;text-transform:uppercase;color:var(--oxblood);animation:rise .9s var(--ease) both;margin:0}.intro__name span{display:block}.intro__title{font:500 clamp(12px, 1.6vw, 16px)/1 var(--font);letter-spacing:.32em;text-transform:uppercase;color:var(--ink-muted);animation:rise .9s .2s var(--ease) both;margin:18px 0 0}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@media (max-width:640px){.topbar__nav{gap:16px}.navlink{letter-spacing:.12em;font-size:11px}.topbar__name{font-size:12px}.band{gap:12px}.band__counter{font-size:11px}}@media (max-width:420px){.topbar__nav{gap:12px}.navlink .long{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.navlink .short{display:inline}}.overlay{z-index:20;background:var(--oxblood);color:var(--on-oxblood);animation:overlay-in .32s var(--ease);position:fixed;inset:0;overflow:auto}@keyframes overlay-in{0%{opacity:0;transform:translateY(12px)}}.overlay__inner{max-width:880px;padding:clamp(28px, 7vw, 88px) var(--gutter);margin:0 auto}.overlay__head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:clamp(28px,6vw,64px);display:flex}.overlay__title{font:600 clamp(34px, 7vw, 72px)/1 var(--font);letter-spacing:.01em;text-transform:uppercase;color:var(--on-oxblood-muted);margin:0}.overlay__close{font:500 12px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid;padding:8px 0}.overlay :focus-visible{outline:1.5px dashed var(--on-oxblood);outline-offset:6px}.toc{gap:clamp(22px,3.6vw,38px);margin:0;padding:0;list-style:none;display:grid}.toc__item{text-align:left;outline-offset:0;outline:1.5px dashed #0000;width:calc(100% + 24px);margin:-8px -12px;padding:8px 12px;transition:outline-color .16s;display:block}.toc__title{font:500 clamp(18px, 2.8vw, 30px)/1.15 var(--font);letter-spacing:.03em;text-transform:uppercase;color:var(--on-oxblood);display:block}.toc__type{font:500 clamp(13px, 1.7vw, 19px)/1 var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--on-oxblood-muted);margin-top:6px;display:block}.toc__item:hover{outline-color:var(--on-oxblood)}.overlay__close:hover{color:var(--on-oxblood-muted)}.contact{gap:20px;margin:0;padding:0;list-style:none;display:grid}.contact__link{font:500 clamp(18px, 2.8vw, 28px)/1.2 var(--font);letter-spacing:.03em;border-bottom:1px solid var(--on-oxblood-muted);text-decoration:none}.zoom{z-index:30;background:var(--stage);grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.zoom__bar{padding:12px var(--gutter);justify-content:space-between;align-items:center;display:flex}.zoom__title,.zoom__close{font:500 12px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0}.zoom__close{outline:var(--dash);outline-offset:0;padding:8px 12px}.zoom__viewer{min-height:0;position:relative}.zoom__fallback{touch-action:pan-x pan-y pinch-zoom;width:100%;height:100%;overflow:auto}.zoom__fallback img{width:200%;max-width:none;display:block}.zoom__hint{text-align:center;color:var(--ink-muted);margin:0;padding:8px;font-size:12px}
