.reader-shell{width:calc(100% - 2rem);max-width:72rem;padding-block:var(--space-2xl) var(--space-4xl);margin-inline:auto}.reader-sidebar{display:none}.reader-main{min-width:0}.reader-shell__head{justify-content:space-between;align-items:end;gap:var(--space-lg);flex-wrap:wrap;margin-block-end:var(--space-xl);display:flex}.reader-shell__label{font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;font-weight:800;color:var(--color-accent)!important}.reader-shell__back{width:fit-content;min-height:2.5rem;color:var(--color-accent);font-size:var(--text-sm);text-decoration-thickness:var(--rule-thin);text-underline-offset:var(--space-2xs);align-items:center;font-weight:700;display:inline-flex}.reader-type-controls{align-items:center;gap:var(--space-2xs);padding:var(--space-2xs);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper-raised);display:flex}.reader-type-controls>span{padding-inline:var(--space-xs);color:var(--color-ink-soft);font-size:var(--text-xs);font-weight:750}.reader-type-controls button{border-radius:var(--radius-sm);width:2.5rem;min-height:2.5rem;color:var(--color-ink);cursor:pointer;font:inherit;background:0 0;border:0;font-weight:800}.reader-type-controls output{min-width:3.2rem;color:var(--color-ink-soft);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:center}.reader-type-controls button:disabled{cursor:not-allowed;opacity:.45}.reader-shell h1{max-width:22ch;font-size:var(--text-section);overflow-wrap:anywhere;margin:0}.reader-shell__head p,.epub-reader p{color:var(--color-ink-soft);margin:0}.reader-contributors{gap:var(--space-2xs);color:var(--color-ink-soft);font-size:var(--text-xs);margin:0;display:grid}.reader-contributors div{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.reader-contributors dt{font-weight:800}.reader-contributors dd{margin:0}.reader-contributors--head{margin-block-start:var(--space-sm)}.epub-reader{border:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-raised);height:min(70dvh,52rem);min-height:32rem;position:relative}.reader-progress{background:var(--color-paper-deep);height:.25rem;overflow:hidden}.reader-progress span{background:var(--color-accent);width:4%;height:100%;transition:width var(--dur-normal) var(--ease-out);display:block}#epub-reader{height:calc(100% - 2.5rem);padding:var(--space-sm)}#epub-reader iframe{border:0;width:100%;height:100%}.reader-edge-nav{display:none}@media (hover:hover) and (pointer:fine){.reader-edge-nav{z-index:2;pointer-events:none;grid-template-columns:1fr 1fr;justify-content:space-between;display:grid;position:absolute;inset:.25rem 0 2.5rem}.reader-edge-nav button{align-items:center;gap:var(--space-xs);width:min(12vw,6.25rem);min-height:100%;padding-inline:var(--space-sm);background:color-mix(in srgb, var(--color-paper-raised) 76%, transparent);color:var(--color-ink);cursor:pointer;font:inherit;font-size:var(--text-xs);opacity:0;pointer-events:auto;transition:opacity var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border:0;font-weight:800;display:flex}.reader-edge-nav button:first-child{justify-content:flex-start;justify-self:start}.reader-edge-nav button:last-child{text-align:end;justify-content:flex-end;justify-self:end}.reader-edge-nav button>span[aria-hidden=true]{font-size:1.35rem;line-height:1}.reader-edge-nav button:hover:not(:disabled),.reader-edge-nav button:focus-visible{opacity:1}.reader-edge-nav button:hover:not(:disabled){background:color-mix(in srgb, var(--color-paper-raised) 94%, transparent)}.reader-edge-nav button:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.reader-edge-nav button:disabled{cursor:default;pointer-events:none}}.reader-loading{z-index:2;place-content:center;justify-items:center;gap:var(--space-md);padding:var(--space-xl);background:color-mix(in srgb, var(--color-paper-raised) 94%, transparent);color:var(--color-ink);text-align:center;display:grid;position:absolute;inset:.25rem 0 0}.reader-loading__mark{align-items:end;gap:var(--space-xs);height:2.5rem;display:flex}.reader-loading__mark i{background:var(--color-accent);width:.5rem;height:.5rem;animation:reader-loading-bounce .9s var(--ease-in-out) infinite both;border-radius:50%;display:block}.reader-loading__mark i:nth-child(2){animation-delay:.12s}.reader-loading__mark i:nth-child(3){animation-delay:.24s}.reader-loading strong{font-size:var(--text-lead);margin-block-end:var(--space-2xs);display:block}.reader-loading p{color:var(--color-ink-soft);font-size:var(--text-sm);margin:0}.reader-loading[data-state=error] .reader-loading__mark{display:none}.reader-loading[data-state=error] strong{color:var(--color-error)}@keyframes reader-loading-bounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{transform:translateY(calc(var(--space-sm) * -1));opacity:1}}.epub-reader>p{padding:0 var(--space-md) var(--space-md);font-size:var(--text-sm)}.epub-reader>p[data-state=success]{color:var(--color-success)}.epub-reader>p[data-state=error]{color:var(--color-error)}.reader-controls{align-items:center;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);justify-content:space-between;margin-block-start:var(--space-lg);display:grid}.reader-controls p{color:var(--color-ink-soft);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;margin:0}.reader-controls button{min-height:2.75rem;padding-inline:var(--space-md);border:var(--rule-thin) solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);cursor:pointer;font:inherit;white-space:nowrap;font-weight:700}.reader-controls button:last-child{justify-self:end}.reader-hint{margin:var(--space-md) 0 0;color:var(--color-ink-soft);font-size:var(--text-xs);text-align:center}.reader-shell__back:focus-visible,.reader-controls button:focus-visible,.reader-type-controls button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (hover:hover) and (pointer:fine){.reader-controls button:hover{background:var(--color-ink);border-color:var(--color-ink)}.reader-type-controls button:not(:disabled):hover{background:var(--color-paper-deep);color:var(--color-accent)}}.reader-controls button:active{transform:translateY(1px)}.reader-controls button:disabled{cursor:not-allowed;opacity:.55}.reader-source{gap:var(--space-md);padding:var(--space-lg);border:var(--rule-thin) solid var(--color-rule);border-inline-start:.25rem solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-paper-deep);margin-block-start:var(--space-xl);display:grid}.reader-source__label{margin:0 0 var(--space-2xs);color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:800}.reader-source h2{font-size:var(--text-lead);margin:0}.reader-source__link{align-items:center;gap:var(--space-xs);min-height:2.75rem;padding-inline:var(--space-md);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);font-size:var(--text-sm);white-space:nowrap;margin-block-start:var(--space-sm);font-weight:750;text-decoration:none;display:inline-flex}.reader-source__unavailable{margin:var(--space-sm) 0 0;color:var(--color-ink-soft);font-size:var(--text-sm)}.reader-source__notice{max-width:68ch;color:var(--color-ink-soft);font-size:var(--text-sm);margin:0;line-height:1.6}.reader-source__notice strong{color:var(--color-ink)}.reader-source__link:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.reader-source__link:active{transform:translateY(1px)}@media (hover:hover) and (pointer:fine){.reader-source__link{transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out)}.reader-source__link:hover{background:var(--color-ink);color:var(--color-paper)}}@media (prefers-reduced-motion:reduce){.reader-loading__mark i{opacity:1;animation:none}}@media (width>=40rem){.reader-shell{width:calc(100% - 3rem)}}@media (width<=39.99rem){.reader-shell{width:calc(100% - 1rem);padding-block:var(--space-lg) var(--space-xl)}.reader-shell__head{align-items:stretch;gap:var(--space-sm);margin-block-end:var(--space-md)}.reader-shell h1{font-size:clamp(1.8rem,8vw,2.4rem)}.reader-type-controls{width:fit-content}.epub-reader{height:62dvh;min-height:25rem}.reader-controls{gap:var(--space-xs);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.reader-controls p{grid-area:1/1/auto/-1}.reader-controls button{padding-inline:var(--space-sm);grid-row:2}.reader-controls button:last-child,.reader-controls button:first-child{justify-self:stretch}.reader-hint{display:none}}@media (width>=72rem){.reader-shell{gap:var(--space-xl);grid-template-columns:15rem minmax(0,1fr);align-items:start;max-width:90rem;display:grid}.reader-sidebar{gap:var(--space-md);padding:var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-raised);display:grid;position:sticky;inset-block-start:var(--space-xl)}.reader-sidebar .book-cover{min-height:15rem}.reader-sidebar h2{margin:0;font-size:1.3rem;line-height:1.15}.reader-sidebar>p{color:var(--color-ink-soft);font-size:var(--text-sm);margin:0}.reader-sidebar__nav{gap:var(--space-2xs);border-block-start:var(--rule-thin) solid var(--color-rule);padding-block-start:var(--space-sm);display:grid}.reader-sidebar__nav a{min-height:2.5rem;padding-inline:var(--space-sm);border-radius:var(--radius-sm);color:var(--color-ink-soft);font-size:var(--text-sm);white-space:nowrap;align-items:center;font-weight:700;text-decoration:none;display:flex}.reader-sidebar__nav a:first-child{background:var(--color-paper-deep);color:var(--color-accent)}.reader-source{grid-template-columns:minmax(13rem,.45fr) minmax(0,1fr);align-items:center}}body:has(.reader-shell) .app-mobile-nav{display:none}body:has(.reader-shell) .app-workspace{padding-block-end:0}
