.book-reader{--book-reader-page-width: clamp(18rem, 34vw, 30rem);--book-reader-control-height: 2.25rem;--book-reader-spread-gap: clamp(.8rem, 2vw, 1.25rem);--book-reader-page-turn-duration: .36s;--book-reader-page-turn-ease: cubic-bezier(.22, 1, .36, 1);--book-reader-control-ease: cubic-bezier(.23, 1, .32, 1);display:grid;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);gap:clamp(1rem,3vw,2rem);align-items:start;color:var(--color-2)}.book-reader__rail{position:sticky;top:var(--floating-main-nav-clearance);display:grid;gap:1.25rem;font-size:var(--font-small);text-transform:lowercase}.book-reader__rail-back,.book-reader__section-link,.book-reader__chapter-link{color:var(--color-2-5);text-decoration:none}.book-reader__rail-back{color:var(--color-3)}.book-reader__toc{display:grid;gap:.8rem}.book-reader__chapter-list{display:grid;gap:.35rem;margin:0;padding:0 0 0 1.15rem}.book-reader__section-link,.book-reader__chapter-link{display:inline-block;padding:.2rem 0}.book-reader__section-link[data-active=true],.book-reader__chapter-link[data-active=true],.book-reader__section-link[aria-current],.book-reader__chapter-link[aria-current]{color:var(--color-2);font-family:var(--font-family-sans-bold)}.book-reader__main{display:grid;gap:1rem;min-width:0}.book-reader__viewport{display:flex;min-height:min(72vh,44rem);justify-content:center;align-items:center}.book-reader__spread{display:flex;justify-content:center;align-items:center;gap:var(--book-reader-spread-gap);width:100%}.book-reader__spread[data-reader-spread-mode=spread]{align-items:stretch}.book-reader__spread[data-reader-flipping]{position:relative;perspective:88rem;transform-style:preserve-3d;pointer-events:none}.book-reader__spread-layer{display:flex;justify-content:center;align-items:stretch;gap:var(--book-reader-spread-gap);width:100%;transform-style:preserve-3d}.book-reader__spread-layer--next{position:absolute;inset:0;z-index:1}.book-reader__spread-layer--current{position:relative;z-index:2}.book-reader__page{box-sizing:border-box;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:var(--book-reader-page-width);aspect-ratio:1 / 1.43;padding:clamp(1.2rem,2.4vw,2rem);border:1px solid var(--color-4);border-radius:4px;background:var(--color-1);box-shadow:0 18px 45px color-mix(in srgb,var(--color-2) 12%,transparent);overflow:hidden}.book-reader__page--turning{z-index:3;backface-visibility:visible;transform:translateZ(1px) rotateY(0);transform-style:preserve-3d;transition:transform var(--book-reader-page-turn-duration) var(--book-reader-page-turn-ease),box-shadow var(--book-reader-page-turn-duration) var(--book-reader-page-turn-ease);will-change:transform}.book-reader__page--turning:after{content:"";position:absolute;inset:0;border:inherit;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--color-2) 8%,var(--color-1)),var(--color-1) 42%,color-mix(in srgb,var(--color-2) 16%,var(--color-1)));backface-visibility:hidden;transform:rotateY(180deg);pointer-events:none}.book-reader__page--turning-forward{transform-origin:left center}.book-reader__page--turning-backward{transform-origin:right center}.book-reader__spread[data-reader-flip-active=true] .book-reader__page--turning-forward{box-shadow:-.35rem .7rem 1.25rem color-mix(in srgb,var(--color-2) 8%,transparent);transform:translateZ(1px) rotateY(-176deg)}.book-reader__spread[data-reader-flip-active=true] .book-reader__page--turning-backward{box-shadow:.35rem .7rem 1.25rem color-mix(in srgb,var(--color-2) 8%,transparent);transform:translateZ(1px) rotateY(176deg)}.book-reader__page--static{background:linear-gradient(90deg,color-mix(in srgb,var(--book-reader-cover) 82%,black),var(--book-reader-cover));color:color-mix(in srgb,var(--book-reader-accent) 76%,var(--color-1));border-color:color-mix(in srgb,var(--book-reader-accent) 45%,var(--color-2))}.book-reader__page-header,.book-reader__page-footer{display:flex;justify-content:space-between;gap:1rem;font-family:var(--font-family-mono);font-size:.68rem;line-height:1.2;text-transform:uppercase;color:var(--color-3)}.book-reader__page-header{padding-bottom:.8rem}.book-reader__page-footer{padding-top:.8rem}.book-reader__page-body{overflow:hidden}.book-reader__page-body.prose{font-size:12pt;line-height:1.5}.book-reader__page-body.prose h2,.book-reader__page-body.prose h3{margin:0 0 .65rem}.book-reader__page-body.prose p{margin:0 0 .85rem}.book-reader__cover-page,.book-reader__index-page,.book-reader__back-cover-page{display:grid;min-height:100%}.book-reader__cover-page{grid-template-rows:auto 1fr auto auto;align-items:center;gap:1rem;text-align:center}.book-reader__publisher{align-self:start;margin:0;font-family:var(--font-family-mono);font-size:var(--font-small);text-transform:uppercase}.book-reader__cover-page h1{margin:0;font-size:clamp(2rem,5vw,4rem);line-height:.95;text-wrap:balance}.book-reader__cover-author,.book-reader__cover-summary{margin:0;font-size:var(--font-small);line-height:1.4}.book-reader__cover-summary{color:color-mix(in srgb,currentColor 72%,transparent)}.book-reader__index-page{align-content:start;gap:1.25rem}.book-reader__index-page h2{margin:0;font-size:var(--font-large);line-height:1.1}.book-reader__index-page ol,.book-reader__index-list{display:grid;gap:.52rem;margin:0;padding:0;list-style:none}.book-reader__index-page li,.book-reader__index-row{border-bottom:1px solid color-mix(in srgb,currentColor 28%,transparent);padding-bottom:.35rem;font-size:var(--font-small)}.book-reader__index-row[data-index-level="2"]{padding-left:1rem}.book-reader__index-row[data-index-level="3"]{padding-left:2rem;color:color-mix(in srgb,currentColor 72%,transparent)}.book-reader__index-title{min-width:0;text-align:left}.book-reader__index-page-number{font-family:var(--font-family-mono);font-size:.72rem}.book-reader__index-link{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:baseline;width:100%;gap:1rem;border:0;padding:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.book-reader__index-link:hover,.book-reader__index-link:focus-visible{color:var(--color-1)}.book-reader__index-link:focus-visible{outline:1px solid currentColor;outline-offset:3px}.book-reader__back-cover-page{align-content:space-between;gap:2rem}.book-reader__back-cover-page p:last-child{margin:0;max-width:28ch;font-size:var(--font-medium);line-height:1.45}.book-reader__controls{display:grid;grid-template-columns:auto minmax(8rem,1fr) auto auto;gap:.6rem;align-items:center;justify-content:center;font-size:var(--font-small)}.book-reader__nav-button,.book-reader__mode-button{min-height:var(--book-reader-control-height);border:1px solid var(--color-4);border-radius:4px;background:var(--color-1);color:var(--color-2);font:inherit;cursor:pointer;transition:transform .14s var(--book-reader-control-ease),background-color .14s ease,color .14s ease}.book-reader__nav-button:active:not(:disabled),.book-reader__mode-button:active:not(:disabled){transform:scale(.97)}.book-reader__nav-button{padding:0 .85rem}.book-reader__nav-button:disabled,.book-reader__mode-button:disabled{cursor:default;color:var(--color-3);background:var(--color-6)}.book-reader__page-indicator{margin:0;text-align:center;color:var(--color-3)}.book-reader__spread-toggle{display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--color-4);border-radius:4px;overflow:hidden}.book-reader__mode-button{border:0;border-radius:0;padding:0 .7rem}.book-reader__mode-button[aria-pressed=true]{background:var(--color-2);color:var(--color-1)}@media(max-width:900px){.book-reader{--book-reader-page-width: min(100%, 27rem);grid-template-columns:1fr}.book-reader__rail{position:static}.book-reader__toc{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.2rem}.book-reader__chapter-list{display:flex;gap:.75rem;padding-left:0;list-style:none}.book-reader__spread,.book-reader__spread-layer{display:block}.book-reader__viewport{min-height:auto}.book-reader__page{margin:0 auto}.book-reader__controls{grid-template-columns:auto minmax(6rem,1fr) auto}.book-reader__spread-toggle{grid-column:1 / -1;justify-self:center}}@media(prefers-reduced-motion:reduce){.book-reader__page{box-shadow:none}.book-reader__page--turning{transition:none}}
