:root{--bg: #f6f2ea;--panel: rgba(255, 255, 255, .94);--ink: #141210;--muted: #5a5652;--stroke: #e1d9cc;--accent: #14524b;--accent-2: #e26d5c;--shadow: 0 18px 50px rgba(0, 0, 0, .07);--rounded: 12px;color-scheme:light}html,body,#root{height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.appRoot{height:100%;position:relative;background:var(--bg);color:var(--ink)}.readerShell{position:relative;height:100%;width:100%;overflow:hidden;transition:opacity .2s ease}.readerShellHidden{opacity:0;pointer-events:none}.readerViewport{position:absolute;inset:0}.tapOverlay{position:absolute;inset:0;background:transparent;z-index:10;touch-action:none}.chrome{pointer-events:none}.chromeVisible{pointer-events:auto}.topBar,.bottomBar{position:absolute;left:0;right:0;z-index:20;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(120,120,140,.18)}.topBar{top:0;height:54px;display:flex;align-items:center;padding:0 12px;transform:translateY(-110%);transition:transform .18s ease}.chromeVisible .topBar{transform:translateY(0)}.topTitle{flex:1;text-align:center;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 10px}.topActions{display:flex;gap:8px}.appTopBar{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--stroke);background:var(--panel)}.appTitle{font-weight:700;font-size:15px;color:var(--ink)}.bottomBar{bottom:0;padding:10px 12px 14px;transform:translateY(110%);transition:transform .18s ease;border-top:1px solid rgba(120,120,140,.18);border-bottom:0}.chromeVisible .bottomBar{transform:translateY(0)}.progressRow{display:flex;align-items:center;gap:10px;margin-bottom:8px}.progressLeft{font-size:12px;font-weight:600;width:52px}.progressCenter{font-size:12px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scrubber{width:100%}.iconBtn{appearance:none;border:1px solid var(--stroke);background:var(--panel);color:var(--accent);border-radius:var(--rounded);padding:8px 10px;font-size:13px;min-width:44px}.iconBtn:active{transform:scale(.98)}.drawer{position:absolute;top:0;bottom:0;right:0;width:min(360px,92vw);z-index:30;transform:translate(105%);transition:transform .2s ease;box-shadow:-16px 0 40px #00000038;border-left:1px solid rgba(120,120,140,.18);display:flex;flex-direction:column}.drawerOpen{transform:translate(0)}.drawerHeader{height:54px;display:flex;align-items:center;padding:0 12px;border-bottom:1px solid rgba(120,120,140,.18)}.drawerTitle{flex:1;font-weight:700;font-size:14px}.drawerBody{flex:1;overflow:auto;padding:10px 10px 18px}.tocList{display:flex;flex-direction:column;gap:6px}.tocItem{width:100%;text-align:left;border:1px solid rgba(120,120,140,.18);background:#ffffff0d;color:inherit;border-radius:14px;padding:10px 12px;font-size:14px}.tocItem:active{transform:scale(.99)}.tocLabel{display:inline-block;line-height:1.2}.settingsPanel{display:flex;flex-direction:column;gap:14px}.settingsSection{border:1px solid rgba(120,120,140,.18);border-radius:16px;padding:12px;background:#ffffff0d}.settingsLabel{font-weight:700;font-size:13px;margin-bottom:10px}.segmented{display:flex;gap:8px}.segBtn{flex:1;border:1px solid rgba(120,120,140,.2);background:#ffffff12;color:inherit;border-radius:14px;padding:10px;font-weight:650;font-size:13px}.segActive{background:#78788c38}.stepper{display:flex;align-items:center;gap:10px}.stepBtn{border:1px solid rgba(120,120,140,.2);background:#ffffff12;color:inherit;border-radius:14px;padding:10px 12px;font-weight:800;width:44px}.stepVal{flex:1;text-align:center;font-weight:650;font-size:13px}.settingsHint{font-size:12px;padding:2px 4px}.lockedOverlay{position:absolute;inset:0;z-index:50;display:grid;place-items:center}.lockedCard{width:min(520px,92vw);border:1px solid;border-radius:18px;padding:18px;background:#ffffff0f;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lockedTitle{font-weight:800;font-size:16px;margin-bottom:8px}.lockedText{font-size:13px;margin-bottom:14px}.lockedActions{display:flex;gap:10px;justify-content:flex-end}.btn,.btnSecondary{border-radius:14px;padding:10px 12px;font-weight:700;border:1px solid rgba(120,120,140,.22);background:#ffffff14;color:inherit}.btnSecondary{background:#ffffff0a}.emptyState{padding:10px 4px;font-size:13px}.centerScreen{height:100vh;display:grid;place-items:center;background:var(--bg)}.authCard{width:min(420px,92vw);border:1px solid var(--stroke);border-radius:calc(var(--rounded) + 6px);padding:22px;background:var(--panel);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.authTitle{font-weight:800;font-size:18px;color:var(--ink)}.authLabel{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}.authInput{border:1px solid var(--stroke);border-radius:var(--rounded);padding:12px;font-size:14px;background:#fff;color:var(--ink)}.authActions{display:flex;gap:10px;justify-content:flex-end}.authError{color:#c33;font-size:13px}.btn,.btnSecondary{border-radius:var(--rounded);padding:10px 12px;font-weight:700;border:1px solid var(--stroke);background:#fff;color:var(--accent)}.btn{background:var(--accent);color:#fdfbf8;border-color:var(--accent)}.btnSecondary{background:var(--panel)}.bookFrame{position:absolute;inset:14px;border-radius:4px;box-shadow:0 20px 50px #0000002e,0 2px 10px #00000014;overflow:hidden;background:inherit;perspective:1600px}.turnLayer{position:absolute;inset:0;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,opacity}.curlShade{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;background:linear-gradient(to right,rgba(0,0,0,.32),rgba(0,0,0,.08) 30%,transparent 55%)}.bookGutter{position:absolute;top:0;bottom:0;left:50%;width:26px;margin-left:-13px;z-index:5;pointer-events:none;background:linear-gradient(to right,transparent,rgba(0,0,0,.06) 45%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.06) 55%,transparent);opacity:0;transition:opacity .2s ease}.bookGutterVisible{opacity:1}.navChevron{position:absolute;top:50%;transform:translateY(-50%);z-index:15;width:40px;height:40px;border-radius:999px;border:none;display:flex;align-items:center;justify-content:center;background:#14121047;color:#fff;opacity:.4;transition:opacity .16s ease,background .16s ease,transform .16s ease}.navChevron:hover,.navChevron:focus-visible{opacity:.9;background:#14121080}.navChevron:active{transform:translateY(-50%) scale(.94)}.navChevronLeft{left:8px}.navChevronRight{right:8px}@media(hover:none){.navChevron{opacity:.32;width:36px;height:36px}}@media(min-width:720px){.bookFrame{inset:24px 40px}.navChevron{width:48px;height:48px}.navChevronLeft{left:20px}.navChevronRight{right:20px}}@media(min-width:1200px){.bookFrame{inset:32px 72px}}@media(max-width:719px)and (orientation:landscape){.bookFrame{inset:8px 54px}}.coverScreen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:28px 20px calc(env(safe-area-inset-bottom) + 28px);background:radial-gradient(130% 95% at 50% 6%,#26241f,#121110 58%,#08070a);overflow:hidden}.coverStage{perspective:1600px;flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}.coverBook{position:relative;width:min(78vw,420px);max-height:72vh;aspect-ratio:683 / 1024;border-radius:3px 8px 8px 3px;box-shadow:0 40px 80px #0009,0 12px 26px #0006;transform-style:preserve-3d;will-change:transform}.coverArt{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px 8px 8px 3px}.coverSpine{position:absolute;inset:0;border-radius:3px 8px 8px 3px;box-shadow:inset 8px 0 18px #00000073;z-index:2;pointer-events:none}.coverPageEdges{position:absolute;top:2%;bottom:2%;right:-4px;width:6px;background:repeating-linear-gradient(to bottom,#ffffff8c 0px 1px,#d2c8b966 1px 2px);border-radius:0 4px 4px 0;box-shadow:1px 0 4px #00000059;z-index:1}.coverChrome{display:flex;flex-direction:column;align-items:center;gap:10px;flex:none}.coverOpenBtn{padding:15px 34px;font-size:15px;letter-spacing:.02em;border-radius:999px;box-shadow:0 10px 24px #14524b66}.coverOpenBtn:disabled{opacity:.75}.coverByline{color:#ffffff8c;font-size:12px;letter-spacing:.14em;text-transform:uppercase}@media(max-height:480px)and (orientation:landscape){.coverScreen{flex-direction:row;gap:32px;padding:16px 28px}.coverStage{flex:none;width:auto}.coverBook{width:min(34vw,220px);max-height:88vh}.coverChrome{flex:1}}@media(min-width:720px){.coverBook{width:min(46vw,460px)}}@media(min-width:1200px){.coverBook{width:min(30vw,480px)}}
