.fb2-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.fb2-scroll[data-theme=sepia]{background:#efe6d3}.fb2-scroll[data-theme=light]{background:#fff}.fb2{max-width:44rem;margin:0 auto;padding:32px 22px 40vh;font-family:var(--font-body);font-size:1.125rem;line-height:1.7;color:var(--ink)}.fb2-scroll[data-theme=sepia] .fb2{color:#3b2f1c}.fb2-scroll[data-theme=light] .fb2{color:#1a1a1a}.fb2 p{margin:0 0 .35em;text-indent:1.4em;text-align:justify}.fb2 .fb2-empty{height:1em}.fb2-titlepage{text-align:center;padding:6vh 0;border-bottom:1px solid var(--border);margin-bottom:8vh}.fb2-cover{margin:0 0 4vh}.fb2-cover img{display:inline-block;max-height:78vh;width:auto;border:1px solid var(--border);box-shadow:var(--shadow)}.fb2-titlepage h1{font-size:clamp(1.6rem,5vw,2.4rem)}.fb2-tp-author{color:var(--accent-bright);font-family:var(--font-display)}.fb2-h{font-size:1.5rem;margin:1.8em 0 .8em;text-align:center;color:var(--accent-bright)}.fb2-sub{font-size:1.15rem;margin:1.2em 0 .5em;color:var(--ink-dim);text-indent:0}.fb2 h2.fb2-h+p,.fb2 .fb2-sec>p:first-child{text-indent:0}.fb2-epigraph,.fb2-cite{margin:1em 2em;font-style:italic;color:var(--ink-dim);border-left:2px solid var(--border);padding-left:1em}.fb2-epigraph p,.fb2-cite p{text-indent:0;text-align:left}.fb2-poem{margin:1.2em 0;padding-left:1.5em}.fb2-v{text-indent:0;margin:0}.fb2-author{text-align:right;font-style:italic;color:var(--ink-dim);text-indent:0}.fb2-fig{margin:1.5em auto;text-align:center}.fb2-fig img{display:inline-block;max-height:80vh;border:1px solid var(--border)}.fb2-inline-img{display:inline;max-height:1.4em;vertical-align:middle}.fb2-note{font-size:.8em;vertical-align:super;color:var(--accent-bright)}.fb2-notes{margin-top:4em;border-top:1px solid var(--border);font-size:.9rem;color:var(--ink-dim)}.epub-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.epub-scroll[data-theme=sepia]{background:#efe6d3}.epub-scroll[data-theme=light]{background:#fff}.epub{max-width:44rem;margin:0 auto;padding:32px 22px 40vh;font-family:var(--font-body);font-size:1.125rem;line-height:1.7;color:var(--ink)}.epub-scroll[data-theme=sepia] .epub{color:#3b2f1c}.epub-scroll[data-theme=light] .epub{color:#1a1a1a}.epub p{margin:0 0 .5em}.epub h1,.epub h2,.epub h3{color:var(--accent-bright);margin:1.4em 0 .6em;font-family:var(--font-display)}.epub-scroll[data-theme=light] .epub h1,.epub-scroll[data-theme=light] .epub h2,.epub-scroll[data-theme=light] .epub h3{color:#6c1f12}.epub img,.epub svg{max-width:100%;height:auto;margin:1em auto}.epub blockquote{margin:1em 2em;font-style:italic;color:var(--ink-dim);border-left:2px solid var(--border);padding-left:1em}.epub a{color:var(--accent-bright)}.pdf-scroll{position:absolute;inset:0;overflow-y:auto;background:#2a2a2e;padding:12px 0 40vh}.pdf-page{margin:0 auto 12px;width:max-content;max-width:100%;background:#fff;box-shadow:var(--shadow)}.pdf-page canvas{display:block}.comic-scroll{position:absolute;inset:0;overflow-y:auto;background:#17171a;padding:12px 0 40vh}.comic-col{max-width:var(--cw, 900px);margin:0 auto;display:flex;flex-direction:column;gap:10px;padding:0 8px}.comic-page{display:block;width:100%;height:auto;aspect-ratio:auto 2 / 3;min-height:40px;background:#000;box-shadow:var(--shadow)}.doc .doc-li{text-indent:0;padding-left:1.2em;margin-left:0}.doc .doc-img{display:block;max-width:100%;height:auto;margin:1em auto}.doc .doc-tw{overflow-x:auto;margin:1em 0}.doc .doc-table{border-collapse:collapse;font-size:.9em;line-height:1.45}.doc .doc-table td{border:1px solid var(--border);padding:4px 8px;vertical-align:top}.doc .doc-table td p{text-indent:0;text-align:left;margin:0}[hidden]{display:none!important}html,body{height:100%}.reader-body{margin:0;display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--bg)}.rbar{display:flex;align-items:center;gap:12px;flex:0 0 auto;padding:8px 12px;background:var(--bg-elev);border-bottom:1px solid var(--border);padding-top:max(8px,env(safe-area-inset-top))}.rback{font-size:1.6rem;line-height:1;color:var(--accent-bright);padding:0 6px}.rtitle{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px}.rtitle .t{font-family:var(--font-display);font-size:.95rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{flex:0 0 auto;font-size:.62rem;letter-spacing:.06em;color:var(--accent-bright);border:1px solid var(--border);border-radius:3px;padding:1px 6px}.rctrl{flex:0 0 auto;display:flex;align-items:center;gap:4px}.ic{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--ink);font-family:var(--font-display);font-size:.85rem;cursor:pointer;text-decoration:none}.ic:hover{background:var(--panel-hover);color:#fff}.stage{flex:1 1 auto;min-height:0;position:relative}.status{position:absolute;inset:50px 0 0;display:grid;place-items:center;background:var(--hero);z-index:5;transition:opacity .3s}.status.done{opacity:0;pointer-events:none}.status .box{text-align:center;color:var(--ink-dim);padding:24px;max-width:340px}.status .box p{margin:14px 0}.status.err .box{color:#d8a24a}.spinner{width:40px;height:40px;margin:0 auto;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pbar{height:3px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:8px}.pbar i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}@media(max-width:640px){.fb2{padding:22px 16px 40vh;font-size:1.06rem}.rtitle .t{font-size:.85rem}.rbar{gap:8px;padding-left:8px;padding-right:8px}.rctrl{gap:3px}.ic{min-width:30px;height:30px;padding:0 5px}}
