:root{--green:#193e30;--cream:#f4efdf;--surface:#e5e9db}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--surface);color:var(--green);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #9c642e;outline-offset:4px}[hidden]{display:none!important}#scroll-track{position:relative;min-height:100dvh}.reader-stage{position:sticky;top:0;height:100dvh;min-height:440px;overflow:hidden;background:radial-gradient(ellipse at center,#f1f2e8 0,#e5e9db 75%)}.reader-bar{position:absolute;z-index:5;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:17px 4%;gap:20px}.brand{font:27px Georgia,serif;letter-spacing:.06em;line-height:1.1}.brand span{display:block;font:6px Arial,sans-serif;letter-spacing:.23em;text-align:center;margin-top:7px}.top-actions{display:flex;align-items:center;gap:20px;font-size:10px}#fullscreen{background:transparent;border:1px solid #bcc9b0;border-radius:30px;padding:9px 15px;font-size:10px}.chapter-bar{position:absolute;z-index:5;top:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;font-size:10px}.chapter-bar label{letter-spacing:.1em;text-transform:uppercase}.chapter-bar select{background:transparent;border:0;border-bottom:1px solid #b9c6ac;max-width:250px;padding:8px 25px 8px 8px;font-size:11px}.reader-viewport{position:absolute;inset:88px 80px 113px;perspective:1800px;min-height:0}.scene-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-origin:50% 50%;will-change:transform,opacity}.scene-layer[aria-hidden=true]{pointer-events:none}.scene-book{display:flex;position:relative;flex-shrink:0;background:var(--cream);box-shadow:3px 3px 0 #d3d5c3,6px 6px 0 #c7cdb9,0 22px 65px #193e3026;overflow:hidden;border-radius:2px}.page-face{position:relative;width:100%;height:100%;min-width:0;flex:1}.page-face img{display:block;width:100%;height:100%;object-fit:contain;user-select:none}.page-face:first-child:not(:last-child):after{content:'';position:absolute;right:0;inset-block:0;width:15px;pointer-events:none;background:linear-gradient(90deg,transparent,#193e3020)}.magnify{position:absolute;right:10px;bottom:10px;background:#f4efdfed;border:1px solid #c4cdb7;border-radius:20px;padding:7px 12px;font-size:10px}.magnify:hover{background:var(--green);color:var(--cream)}.side-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:42px;height:42px;border:1px solid #adbea3;border-radius:50%;background:transparent;font-size:21px}.side-arrow.previous{left:22px}.side-arrow.next{right:22px}.arrow{width:32px;height:32px;border:1px solid #b6c5ab;border-radius:50%;background:transparent;font-size:17px}.side-arrow:hover:enabled,.arrow:hover:enabled{background:var(--green);color:var(--cream)}button:disabled{opacity:.22;cursor:default}.bottom-bar{position:absolute;z-index:5;bottom:0;left:0;right:0;padding:0 4% 16px;text-align:center}.progress{width:min(220px,40vw);height:2px;background:#c6d0b9;margin:0 auto 13px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--green);width:0;transition:width .15s linear}.navigation{display:flex;align-items:center;justify-content:center;gap:22px}.navigation>div{min-width:200px}#page-status{display:block;font-size:12px;font-variant-numeric:tabular-nums}#page-title{display:block;font-size:9px;line-height:1.6;margin-top:3px}.scroll-hint{font-size:9px;letter-spacing:.03em;margin:10px 0 0;opacity:.65}.scroll-hint span{margin-left:8px}.pdf-link{position:absolute;bottom:20px;right:4%;font-size:10px;text-decoration:underline;text-underline-offset:4px}#load-error{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:4;background:var(--cream);padding:12px;font-size:11px;max-width:90%;text-align:center}#load-error a{text-decoration:underline}.no-script{position:fixed;inset:40% 10% auto;background:var(--cream);padding:30px;z-index:10;text-align:center}.no-script a{text-decoration:underline}dialog{width:96vw;max-width:1200px;height:94dvh;max-height:94dvh;margin:auto;padding:0;border:1px solid #9fae94;background:var(--cream);color:var(--green)}dialog::backdrop{background:#10261fe8}.zoom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 16px;border-bottom:1px solid #c6ceba}.zoom-toolbar h2{font:22px Georgia,serif;margin:0}.zoom-toolbar>div{display:flex;align-items:center;gap:8px}.zoom-toolbar button{min-width:38px;min-height:40px;border:1px solid #a9b89e;background:var(--cream);font-size:18px;border-radius:25px}#zoom-close{padding:8px 12px;font-size:12px;margin-left:10px}#zoom-level{font-size:11px;min-width:40px;text-align:center}.zoom-hint{font-size:10px;margin:10px 16px}.zoom-scroll{height:calc(100% - 102px);overflow:auto;touch-action:pan-x pan-y;overscroll-behavior:contain}.zoom-scroll img{display:block;width:100%;height:auto;max-width:none;margin:auto}.reader-stage:has(~*){isolation:isolate}@media(max-width:899px){.reader-bar{padding:18px 5%}.brand{font-size:24px}.top-actions{font-size:9px}#fullscreen{display:none}.chapter-bar{top:70px;left:50%;max-width:90%;width:max-content;gap:10px}.chapter-bar select{max-width:245px;font-size:11px}.reader-viewport{inset:120px 22px 120px}.side-arrow{display:none}.navigation>div{min-width:190px}.pdf-link{bottom:17px;font-size:9px}.bottom-bar{padding-bottom:17px}.magnify{bottom:8px;right:8px;padding:8px 12px}.scene-book{box-shadow:3px 3px 0 #d3d5c3,5px 5px 0 #c7cdb9,0 15px 40px #193e3020}.zoom-toolbar{padding:10px;gap:5px}.zoom-toolbar h2{font-size:16px}.zoom-toolbar>div{gap:4px}#zoom-close{margin-left:4px}.zoom-scroll{height:calc(100% - 99px)}}@media(max-width:380px){.brand{font-size:21px}.reader-viewport{inset-inline:15px}.navigation{gap:13px}.navigation>div{min-width:180px}}@media(max-height:560px) and (min-width:900px){.reader-viewport{inset-block:70px 98px}.bottom-bar{padding-bottom:8px}.scroll-hint{margin-top:5px}}@media(prefers-reduced-motion:reduce){.scene-layer{will-change:auto}.progress>span{transition:none}}

/* Horizontal reader: a native, swipeable viewport; the controls stay fixed. */
html,body{height:100%;overflow:hidden}
#scroll-track{height:100dvh;min-height:0}
.reader-stage{position:relative;min-height:0}
.reader-viewport{display:flex;overflow-x:auto;overflow-y:hidden;perspective:none;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pinch-zoom;scrollbar-width:none}
.reader-viewport::-webkit-scrollbar{display:none}
.reader-viewport:focus-visible{outline:2px solid #9c642e;outline-offset:4px}
.reader-scene{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 100%;width:100%;height:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.reader-scene img{user-select:none;-webkit-user-drag:none}
@media(prefers-reduced-motion:reduce){.reader-viewport{scroll-behavior:auto}}
