:root{
  --red:#97130d;
  --red-dark:#650a07;
  --cream:#f5eee5;
  --paper:#fffdf9;
  --ink:#241d1a;
  --stage:#201916;
  --toolbar:#120e0c;
  --shadow:0 18px 50px rgba(0,0,0,.35);
  --zoom:1;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--stage);color:#fff}
body{overflow-x:hidden}
button,a{font:inherit}
button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 18px;background:rgba(18,14,12,.96);border-bottom:1px solid rgba(255,255,255,.1);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:linear-gradient(145deg,#b51c14,#6c0906);font-weight:900;letter-spacing:-1px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.brand strong{display:block;font-size:14px;letter-spacing:.08em}.brand small{display:block;margin-top:2px;font-size:10px;opacity:.65;letter-spacing:.16em}
.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.icon-btn,.zoom-label,.text-btn,.download-btn{height:38px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#2a211e;color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.icon-btn{width:38px;font-size:22px}.zoom-label{min-width:62px;padding:0 10px}.text-btn,.download-btn{padding:0 14px}.download-btn{background:var(--red);border-color:var(--red)}
.viewer-shell{min-height:calc(100vh - 61px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 18px 18px;background:radial-gradient(circle at 50% 28%,#463833 0,#2d2421 35%,#171210 100%)}
.book-stage{width:100%;display:grid;place-items:center;perspective:2200px;overflow:auto;padding:12px 4px 18px}
.book{position:relative;display:grid;grid-template-columns:1fr 1fr;width:min(1120px,calc(100vw - 56px));aspect-ratio:1192/842;transform:scale(var(--zoom));transform-origin:center center;filter:drop-shadow(0 28px 35px rgba(0,0,0,.42));transition:transform .15s ease}
.page-slot,.flip-face{background:var(--paper) center/contain no-repeat;overflow:hidden}.page-slot{position:relative}.left-slot{border-radius:10px 2px 2px 10px;box-shadow:inset -16px 0 22px -18px rgba(0,0,0,.7)}.right-slot{border-radius:2px 10px 10px 2px;box-shadow:inset 16px 0 22px -18px rgba(0,0,0,.7)}.page-slot.empty{background:transparent;box-shadow:none}
.spine{position:absolute;z-index:4;left:50%;top:0;bottom:0;width:20px;transform:translateX(-50%);pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,0,0,.22),rgba(255,255,255,.07),rgba(0,0,0,.16),transparent);mix-blend-mode:multiply}
.flip-sheet{display:none;position:absolute;z-index:8;top:0;width:50%;height:100%;transform-style:preserve-3d;backface-visibility:hidden}.flip-sheet.forward{display:block;left:50%;transform-origin:left center;animation:flipForward .62s cubic-bezier(.25,.65,.25,1) forwards}.flip-sheet.backward{display:block;left:0;transform-origin:right center;animation:flipBackward .62s cubic-bezier(.25,.65,.25,1) forwards}.flip-face{position:absolute;inset:0;backface-visibility:hidden;box-shadow:0 0 18px rgba(0,0,0,.2)}.flip-back{transform:rotateY(180deg)}
@keyframes flipForward{0%{transform:rotateY(0)}100%{transform:rotateY(-180deg)}}
@keyframes flipBackward{0%{transform:rotateY(0)}100%{transform:rotateY(180deg)}}
.mobile-page{display:none;width:min(620px,calc(100vw - 30px));aspect-ratio:596/842;background:var(--paper) center/contain no-repeat;border-radius:9px;box-shadow:var(--shadow);transform:scale(var(--zoom));transform-origin:center;transition:transform .15s ease}
.controls{display:flex;align-items:center;gap:16px;margin-top:5px}.nav-btn{width:48px;height:48px;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:rgba(255,255,255,.08);color:white;font-size:32px;line-height:1;transition:.15s}.nav-btn:hover:not(:disabled){background:var(--red);transform:translateY(-1px)}.nav-btn:disabled{opacity:.28;cursor:not-allowed}.page-info{width:min(330px,55vw);text-align:center;font-size:13px}.progress-track{margin-top:8px;height:4px;background:rgba(255,255,255,.16);border-radius:10px;overflow:hidden}.progress-track span{display:block;height:100%;width:2.5%;background:#d44a3c;border-radius:10px;transition:width .25s ease}.hint{margin-top:10px;font-size:12px;opacity:.52;text-align:center}
body.is-fullscreen .topbar{display:none}body.is-fullscreen .viewer-shell{min-height:100vh}.viewer-shell:fullscreen{min-height:100vh}
@media(max-width:760px){.topbar{align-items:flex-start;padding:9px 10px}.brand strong{font-size:12px}.brand small{font-size:9px}.brand-mark{width:34px;height:34px;font-size:12px}.top-actions{gap:5px}.text-btn{display:none}.download-btn{height:34px;padding:0 10px;font-size:12px}.icon-btn{width:34px;height:34px}.zoom-label{display:none}.viewer-shell{padding:14px 8px}.book{display:none}.mobile-page{display:block}.book-stage{padding-top:4px}.controls{margin-top:2px}.nav-btn{width:44px;height:44px}.hint{font-size:11px}}
@media(min-width:761px) and (max-height:760px){.book{width:min(900px,calc(100vw - 60px))}.viewer-shell{padding-top:12px}.topbar{padding-top:7px;padding-bottom:7px}}
