.book-poc { padding: 1rem 0 2rem; }
.book-poc-hero { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(240px,.85fr); gap:clamp(2rem,5vw,5rem); align-items:center; padding:2rem 0 3.5rem; }
.book-poc h1 { font-family:Newsreader,Georgia,serif; font-size:clamp(2.75rem,5.9vw,5rem); line-height:1.02; letter-spacing:-.035em; margin:.8rem 0 1.4rem; }
.book-poc h1 em { font-weight:400; color:var(--accent); }
.book-poc-subtitle { font-size:1.25rem; line-height:1.5; color:var(--ink); max-width:31rem; }
.book-poc-copy>p:not(.eyebrow) { max-width:36rem; }
.book-poc .book-poc-status { font-size:.8rem; color:var(--muted); margin-top:1rem; }
.book-poc-cover { margin:0; width:100%; max-width:360px; justify-self:end; }
.book-poc-cover img { display:block; width:100%; height:auto; }
.book-poc-cover figcaption { font-size:.75rem; margin-top:.7rem; color:var(--muted); }
.book-poc-nav { display:flex; flex-wrap:wrap; gap:.5rem 1.75rem; padding:1rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.book-poc-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:.86rem; }
.book-poc-reading { max-width:700px; margin:4rem auto; font-size:1.035rem; line-height:1.85; scroll-margin-top:2rem; }
.book-poc-chapter-label { padding-bottom:1.2rem; margin-bottom:2rem; border-bottom:1px solid var(--line); }
.book-poc-chapter-label>p:last-child { font-size:.8rem; color:var(--muted); margin-bottom:0; }
.book-poc-reading h2 { font-family:Newsreader,Georgia,serif; font-size:clamp(2rem,4vw,3rem); line-height:1.15; margin:2.5rem 0 1.5rem; }
.book-poc-reading h3 { font-family:Newsreader,Georgia,serif; font-size:1.65rem; line-height:1.25; margin:2.5rem 0 1rem; }
.book-poc-reading p { margin-bottom:1.3rem; }
.book-poc-reading li { padding-left:.3rem; margin-bottom:1rem; }
.book-poc-outline { display:grid; grid-template-columns:1fr 1fr; gap:3rem; padding:3rem 0; border-top:1px solid var(--line); }
.book-poc-outline h2,.book-poc-feedback h2 { font-family:Newsreader,Georgia,serif; font-size:2.1rem; line-height:1.2; }
.book-poc-outline ol { padding-left:1.4rem; }
.book-poc-outline li { padding-left:.6rem; margin-bottom:1.5rem; }
.book-poc-outline li p { margin-top:.4rem; }
.book-poc-feedback { max-width:700px; margin:1rem auto 0; padding:2rem 0; border-top:1px solid var(--line); }
.book-poc-feedback>p { margin-top:1rem; }
@media(max-width:760px) { .book-poc-hero { grid-template-columns:1fr; padding-top:.5rem; gap:2rem; }.book-poc-cover { justify-self:center; max-width:280px; }.book-poc-outline { grid-template-columns:1fr; gap:1rem; }.book-poc-reading { margin:2.5rem auto; font-size:1rem; }.book-poc h1 { font-size:clamp(2.6rem,10vw,4rem); }.book-poc-nav { gap:.2rem 1rem; } }
@media print { .book-poc-hero { grid-template-columns:1fr 200px; }.book-poc-nav,.book-poc-feedback { display:none; }.book-poc-reading { max-width:none; margin:2rem 0; }.book-poc-cover { max-width:180px; }.book-poc-reading h3 { break-after:avoid; } }
.book-reader { margin:3rem 0 4rem; scroll-margin-top:1rem; }
.book-reader [hidden] { display:none !important; }
.book-reader-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }
.book-reader-toolbar .eyebrow { margin:0; }
.book-reader button { font:inherit; font-size:.8rem; cursor:pointer; min-height:44px; padding:.6rem 1rem; border:1px solid var(--line-strong); border-radius:var(--control-radius); color:var(--ink); background:var(--paper); }
.book-reader button:hover { border-color:var(--accent); }
.book-reader button:disabled { opacity:.45; cursor:default; }
.book-spread { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line-strong); background:var(--surface); }
.book-leaf { display:flex; flex-direction:column; min-height:640px; padding:2rem clamp(1.4rem,3.5vw,3.2rem) 1.2rem; background:var(--paper); }
.book-leaf:nth-child(even) { border-left:1px solid var(--line-strong); }
.book-running-head { font-size:.62rem; letter-spacing:.12em; color:var(--muted); border-bottom:1px solid var(--line); padding-bottom:.8rem; margin:0 0 1.8rem; }
.book-leaf-body { font-family:Georgia,'Times New Roman',serif; font-size:1.06rem; line-height:1.75; color:var(--ink-soft); }
.book-leaf-body p { margin:0 0 1rem; }
.book-leaf-body h2 { font:400 2.3rem/1.1 Newsreader,Georgia,serif; margin:1rem 0 1.5rem; color:var(--ink); }
.book-leaf-body h3 { font:400 1.7rem/1.2 Newsreader,Georgia,serif; margin:1rem 0 1.3rem; color:var(--ink); }
.book-leaf-body h3:first-child { margin-top:0; }
.book-leaf-body ol { padding-left:1.2rem; }
.book-leaf-body li { margin-bottom:.8rem; }
.book-folio { text-align:center; font:400 .8rem Georgia,serif; color:var(--muted); margin:auto 0 0; padding-top:2rem; }
.book-reader-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1rem; }
.book-reader-controls [role=status] { font-size:.8rem; text-align:center; color:var(--muted); }
@media(max-width:760px) { .book-spread { grid-template-columns:1fr; }.book-leaf { min-height:0; padding:1.5rem 1.3rem 1rem; }.book-leaf:nth-child(even) { border-left:0; }.book-leaf-body { font-size:1rem; line-height:1.75; }.book-reader-toolbar .eyebrow { max-width:10rem; font-size:.62rem; }.book-reader-controls { gap:.4rem; }.book-reader-controls button { padding:.5rem .7rem; }.book-reader-controls [role=status] { font-size:.7rem; }.book-reader { margin-top:2rem; } }
@media print { .book-reader-toolbar,.book-spread,.book-reader-controls { display:none !important; }.book-reader [data-chapter-source] { display:block !important; }.book-reader { margin:0; } }

.book-reader { scroll-margin-top:110px; }
.book-poc-preface { margin:2.5rem auto; }
.book-leaf-body { line-height:1.65; }
.book-leaf-front .book-leaf-body { flex:1; display:flex; flex-direction:column; }
.book-leaf-front .book-leaf-body>section { display:flex; flex-direction:column; flex:1; }
.book-leaf-front .book-running-head { visibility:hidden; }
.book-front-kicker { font-family:Manrope,sans-serif; font-size:.78rem; letter-spacing:.08em; }
.book-half-title { padding-top:4rem; }
.book-half-title h2,.book-title-page h2 { font-size:clamp(2.2rem,3.7vw,3rem); line-height:1.08; margin:2rem 0; }
.book-half-title h2 em,.book-title-page h2 em { color:var(--accent); }
.book-title-page { padding-top:1.5rem; }
.book-leaf-body .book-front-bottom { margin:auto 0 0; padding-top:3rem; font:400 .75rem/1.7 Manrope,sans-serif; color:var(--muted); }
.book-title-subtitle { font-size:1.1rem; line-height:1.6; }
.book-publication-page { font-size:.9rem; line-height:1.7; }
.book-publication-page h2 { font-size:1.7rem; }
.book-contents-list { list-style:none; padding:0 !important; margin:1.5rem 0 2rem; }
.book-contents-list a { display:flex; justify-content:space-between; gap:1rem; padding:.8rem 0; border-bottom:1px solid var(--line); min-height:44px; align-items:center; }
.book-contents-note { font-size:.9rem; color:var(--muted); }
.book-preface-page { font-size:.96rem; }
.book-preface-signature { font-style:italic; margin-top:1rem !important; }
.book-opening-pages>section { padding:2rem 0; border-bottom:1px solid var(--line); }
@media(max-width:760px) { .book-leaf-front { min-height:590px; }.book-half-title h2,.book-title-page h2 { font-size:2.4rem; }.book-preface-page { font-size:.94rem; } }

.book-spread-cover { grid-template-columns:1fr; max-width:360px; margin:0 auto; border:0; background:transparent; }
.book-leaf-cover { min-height:0 !important; padding:0; border:0; background:transparent; }
.book-leaf-cover .book-running-head,.book-leaf-cover .book-folio { display:none; }
.book-reader-cover img { display:block; width:100%; height:auto; }
.book-leaf-body .content-figure { margin:1rem 0; width:100%; }
.book-leaf-body .content-figure img { width:100%; height:auto; }
.book-leaf-body .content-figure figcaption { font:400 .75rem/1.6 Manrope,sans-serif; text-align:left; color:var(--muted); }
.book-leaf-body .content-figure picture { display:block; }

/* Physical book: original cover remains intact on a shallow 3D volume. */
.book-object-stage { perspective:1200px; padding:16px 38px 30px 14px; }
.book-object { position:relative; width:100%; aspect-ratio:2/3; transform-style:preserve-3d; transform:rotateY(-25deg) rotateX(4deg) rotateZ(1deg); }
.book-object-front { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; transform:translateZ(36px); border-radius:2px 5px 5px 2px; box-shadow:2px 12px 20px rgba(0,0,0,.18); }
.book-object-pages { position:absolute; right:0; top:5px; bottom:5px; width:36px; transform-origin:right center; transform:rotateY(90deg); background:repeating-linear-gradient(to right,#e7e0d1 0px,#e7e0d1 2px,#bcb5a7 2px,#f2ede2 3px); border:1px solid #bcb5a7; }
.book-object-spine { position:absolute; left:0; top:0; bottom:0; width:36px; transform-origin:left center; transform:translateZ(36px) rotateY(90deg); background:#282c2c; color:#f7f4ec; display:flex; flex-direction:column; align-items:center; justify-content:space-between; padding:24px 3px; border-top:3px solid #ac3b25; }
.book-object-spine>span { writing-mode:vertical-rl; font:400 15px/1 Georgia,serif; letter-spacing:.02em; }
.book-object-spine small { writing-mode:vertical-rl; font:10px/1 Manrope,sans-serif; }
.book-object-front::selection { background:transparent; }
.book-poc-cover .book-object-front { height:100%; }
.book-spread-cover { max-width:400px; overflow:visible; }
.book-leaf-cover,.book-reader-cover { overflow:visible; }
.book-reader-cover .book-object-stage { padding-top:24px; padding-bottom:40px; }
.book-discovery { display:grid; grid-template-columns:120px 1fr; gap:2rem; align-items:center; margin:2.5rem 0; padding:2rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.book-discovery img { width:100%; height:auto; display:block; }
.book-discovery h2 { margin:.4rem 0 .8rem; font:400 2rem/1.1 Newsreader,Georgia,serif; }
.book-discovery .eyebrow { margin:0; }
.book-discovery p { margin-bottom:.8rem; }
.journal-book-thumb { max-width:112px; margin:.8rem 0 1.2rem; }
.journal-book-thumb img { display:block; width:100%; height:auto; }
@media(max-width:760px) { .book-object-stage { padding:12px 30px 28px 8px; }.book-object { transform:rotateY(-16deg) rotateX(2deg); }.book-discovery { grid-template-columns:85px 1fr; gap:1.2rem; }.book-discovery h2 { font-size:1.6rem; } }
@media print { .book-object { transform:none; }.book-object-front { transform:none; box-shadow:none; }.book-object-pages,.book-object-spine { display:none; }.book-object-stage { padding:0; } }

.book-object::after { content:""; position:absolute; inset:0 auto 0 0; width:5px; transform:translateZ(37px); background:rgba(23,27,28,.16); pointer-events:none; }
.journal-book-thumb { display:block; }
@media print { .book-object::after { display:none; } }

/* Bound volume with separate boards, page block and jacket lighting. */
.book-object-stage { perspective:1400px; padding:20px 28px 38px 30px; }
.book-object { position:relative; width:100%; aspect-ratio:2/3; transform-style:preserve-3d; transform:rotateY(24deg) rotateX(3deg) rotateZ(-2deg); }
.book-object-front { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; transform:translateZ(14px); border-radius:3px 2px 2px 3px; box-shadow:none; }
.book-object-back { position:absolute; inset:0; background:#252a29; transform:translateZ(-14px); border-radius:3px; box-shadow:14px 20px 28px rgba(0,0,0,.28); }
.book-object-pages { position:absolute; right:-26px; top:5px; bottom:5px; width:28px; transform-origin:left center; transform:translateZ(14px) rotateY(90deg); background:repeating-linear-gradient(to right,#eee8dc 0px,#eee8dc 1px,#c5bcaa 1px,#f9f5ec 2px); border:1px solid #c9c1b1; }
.book-object-spine { position:absolute; left:-28px; top:0; bottom:0; width:28px; transform-origin:right center; transform:translateZ(14px) rotateY(-90deg); background:#252a29; color:#f7f4ec; display:flex; flex-direction:column; align-items:center; justify-content:space-between; padding:22px 3px; border-top:3px solid #ac3b25; box-shadow:inset 3px 0 5px rgba(0,0,0,.28); }
.book-object-spine>span { writing-mode:vertical-rl; font:400 15px/1 Georgia,serif; letter-spacing:.02em; }
.book-object-spine small { writing-mode:vertical-rl; font:10px/1 Manrope,sans-serif; }
.book-object-jacket { position:absolute; inset:0; transform:translateZ(15px); border-radius:3px; background:linear-gradient(90deg,rgba(0,0,0,.24),rgba(0,0,0,.03) 1.5%,rgba(255,255,255,.16) 2.5%,rgba(0,0,0,.12) 4%,transparent 7%,transparent 85%,rgba(255,255,255,.08)); box-shadow:inset 0 1px rgba(255,255,255,.4),inset 0 -1px rgba(0,0,0,.2); pointer-events:none; }
.book-object::after { display:none; }
.book-poc-cover figcaption strong { color:var(--ink); font-weight:500; }
.book-poc-cover figcaption { max-width:22rem; line-height:1.7; margin-top:.3rem; }
@media(max-width:760px) { .book-object-stage { padding:15px 22px 32px 28px; }.book-object { transform:rotateY(22deg) rotateX(2deg) rotateZ(-1deg); } }
@media print { .book-object { transform:none; }.book-object-front { transform:none; }.book-object-jacket,.book-object-pages,.book-object-spine,.book-object-back { display:none; }.book-object-stage { padding:0; } }

/* Fixed paper geometry; text is measured and repaginated rather than clipped. */
.book-reader-enhanced { position:relative; }
.book-reader-enhanced .book-spread { position:relative; height:720px; perspective:1800px; isolation:isolate; border-radius:2px; box-shadow:0 14px 28px rgba(0,0,0,.12); }
.book-reader-enhanced .book-leaf { height:100%; min-height:0; max-height:100%; box-sizing:border-box; padding:2rem 2.2rem 1.2rem; }
.book-reader-enhanced .book-leaf-body { flex:1; min-height:0; font-size:1rem; line-height:1.62; overflow-wrap:anywhere; }
.book-reader-enhanced .book-running-head { flex:none; margin:0 0 1.4rem; }
.book-reader-enhanced .book-folio { flex:none; margin:0; padding-top:1.2rem; line-height:1; }
.book-reader-enhanced .book-leaf-front .book-leaf-body>section { min-height:0; }
.book-reader-enhanced .book-leaf-body h2 { font-size:2.15rem; margin:.7rem 0 1.3rem; }
.book-reader-enhanced .book-leaf-body h3 { font-size:1.6rem; margin:.6rem 0 1rem; }
.book-reader-enhanced .book-leaf-body p { margin-bottom:1rem; }
.book-reader-enhanced .book-leaf-body .content-figure { display:flex; flex-direction:column; height:100%; margin:0; }
.book-reader-enhanced .content-figure picture { flex:1; min-height:0; display:block; }
.book-reader-enhanced .content-figure img { display:block; width:100%; height:100%; max-height:100%; object-fit:contain; border-radius:2px; }
.book-reader-enhanced .content-figure figcaption { flex:none; padding-top:.8rem; font-size:.7rem; line-height:1.5; }
.book-reader-enhanced .book-spread-cover { max-width:none; border:0; box-shadow:none; background:transparent; }
.book-reader-enhanced .book-leaf-cover { background:transparent; }
.book-reader-enhanced .book-leaf-cover .book-leaf-body { display:flex; justify-content:center; align-items:center; }
.book-reader-enhanced .book-reader-cover { width:100%; max-width:380px; flex:none !important; height:auto !important; }
.book-reader-enhanced .book-reader-cover .book-object-stage { width:100%; box-sizing:border-box; }
.book-reader-enhanced .book-leaf-cover .book-running-head,.book-reader-enhanced .book-leaf-cover .book-folio { display:none; }
.book-measure { position:absolute !important; top:0; left:0; visibility:hidden; pointer-events:none; z-index:-1; }
.book-reader-toolbar { position:relative; flex-wrap:wrap; }
.book-reader-toolbar>.eyebrow { margin-right:auto; }
.book-reader-contents { position:relative; font-size:.8rem; }
.book-reader-contents summary { cursor:pointer; min-height:44px; padding:.6rem 1rem; border:1px solid var(--line-strong); border-radius:var(--control-radius); display:flex; align-items:center; }
.book-reader-menu { position:absolute; right:0; top:calc(100% + 8px); z-index:20; width:min(320px,78vw); max-height:400px; overflow:auto; padding:.5rem; background:var(--surface-raised); border:1px solid var(--line-strong); border-radius:var(--field-radius); box-shadow:0 8px 18px rgba(0,0,0,.12); }
.book-reader-menu button { display:block; width:100%; border:0; border-radius:0; text-align:left; background:transparent; }
.book-reader-menu button:hover { background:var(--accent-soft); }
.book-reader-progress { display:block; width:100%; height:3px; border:0; margin:1.2rem 0 0; accent-color:var(--accent); background:var(--line); }
.book-reader-progress::-webkit-progress-bar { background:var(--line); }
.book-reader-progress::-webkit-progress-value { background:var(--accent); }
.book-reader-progress::-moz-progress-bar { background:var(--accent); }
.book-reader-hint { text-align:center; color:var(--muted); font-size:.72rem; margin:1rem 0 0; }
.book-turn-sheet { position:absolute; top:0; width:50%; z-index:10; transform-style:preserve-3d; pointer-events:none; will-change:transform; }
.book-turn-forward { left:50%; transform-origin:left center; }
.book-turn-backward { left:0; transform-origin:right center; }
.book-turn-single { width:100%; left:0; }
.book-reader-enhanced .book-turn-face { position:absolute; inset:0; width:100%; height:100%; backface-visibility:hidden; background:var(--paper); border:1px solid var(--line); }
.book-turn-reverse { transform:rotateY(180deg); }
.book-turn-front { transform:rotateY(0deg); }
.book-turn-face::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 12px 0 24px rgba(0,0,0,.07); }
.book-reader-enhanced .book-turn-face.book-leaf-cover { background:var(--paper); }
.book-reader:focus-visible { outline:2px solid var(--accent); outline-offset:8px; }
@media(max-width:760px) {
  .book-reader-enhanced .book-spread { height:680px; }
  .book-reader-enhanced .book-leaf { padding:1.3rem 1.3rem 1rem; }
  .book-reader-enhanced .book-leaf-body { font-size:.98rem; line-height:1.62; }
  .book-reader-enhanced .book-running-head { font-size:.58rem; margin-bottom:1rem; }
  .book-reader-enhanced .book-leaf-body h2 { font-size:2rem; }
  .book-reader-enhanced .book-reader-cover { max-width:300px; }
  .book-turn-sheet { width:100%; left:0; }
  .book-reader-toolbar { gap:.5rem; }
  .book-reader-toolbar button,.book-reader-contents summary { font-size:.7rem; padding:.5rem .6rem; }
  .book-reader-toolbar>.eyebrow { max-width:7rem; }
}
@media(prefers-reduced-motion:reduce) { .book-turn-sheet { display:none; } }
@media print {
  .book-reader-toolbar,.book-reader-progress,.book-reader-hint,.book-turn-sheet { display:none !important; }
  .book-reader-enhanced .book-spread { display:none !important; }
}

@media(min-width:761px) { .book-reader-enhanced .book-spread:not(.book-spread-cover)::after { content:""; position:absolute; top:0; bottom:0; left:50%; width:1px; background:var(--line-strong); box-shadow:2px 0 8px rgba(0,0,0,.08); pointer-events:none; } }

/* A page is a continuous curved surface represented by narrow joined strips. */
.book-turn-sheet { transform:none; transform-style:preserve-3d; }
.book-curl-strip { position:absolute; top:0; left:0; transform-origin:left center; transform-style:preserve-3d; will-change:transform; }
.book-curl-face { position:absolute; inset:0; overflow:hidden; backface-visibility:hidden; background:var(--paper); }
.book-curl-front { transform:translateZ(.1px); }
.book-curl-back { transform:rotateY(180deg) translateZ(.1px); }
.book-reader-enhanced .book-curl-content { position:absolute; top:0; height:100%; margin:0; max-height:none; border:0; box-sizing:border-box; }
.book-curl-content .book-leaf-body { overflow:visible; }
.book-curl-face::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.025); pointer-events:none; }

.book-reader-enhanced .book-resting-leaf { position:absolute; top:0; width:50%; z-index:1; pointer-events:none; }

/* Final reading surfaces and quieter supporting information. */
.book-reader { --book-paper:var(--surface-raised); }
.book-reader-enhanced .book-leaf:not(.book-leaf-cover),.book-reader-enhanced .book-turn-face,.book-curl-face { background:var(--book-paper); }
.book-reader-enhanced .book-spread { background:var(--book-paper); }
.book-reader-enhanced .book-spread-cover { background:transparent; }
.book-reader-enhanced .book-running-head { letter-spacing:.1em; }
.book-reader-enhanced .content-figure picture { background:#f7f4ec; border:0; border-radius:1px; }
.book-reader-enhanced .content-figure img { background:#f7f4ec; border:0; }
.book-reader-enhanced .content-figure figcaption { font-size:.76rem; line-height:1.55; }
.book-poc-preface { max-width:700px; margin:1.5rem auto; color:var(--muted); }
.book-poc-preface summary { cursor:pointer; min-height:44px; padding:.6rem 0; font-size:.83rem; }
.book-poc-preface .book-poc-reading { margin:1rem 0 2rem; color:var(--ink-soft); font-size:.94rem; }
.book-reader { margin-top:2rem; }
.book-reader-menu button { line-height:1.4; padding:.7rem .8rem; }
@media(max-width:760px) { .book-reader-hint { max-width:260px; margin:1rem auto 0; line-height:1.6; }.book-reader-enhanced .content-figure figcaption { font-size:.72rem; } }

.book-reader [data-enlarge-diagram] { display:block; margin-top:.45rem; padding:.2rem 0; min-height:44px; border:0; background:transparent; text-align:left; border-radius:0; color:var(--link); text-decoration:underline; text-underline-offset:3px; font-size:.73rem; }
.book-diagram-dialog { width:min(900px,calc(100vw - 24px)); max-height:calc(100svh - 24px); padding:1rem; border:1px solid var(--line-strong); border-radius:8px; color:var(--ink); background:var(--paper); }
.book-diagram-dialog::backdrop { background:rgba(0,0,0,.7); }
.book-diagram-dialog button { display:block; margin:0 0 1rem auto; min-height:44px; padding:.6rem 1rem; border:1px solid var(--line-strong); border-radius:var(--control-radius); font:inherit; color:var(--ink); background:var(--paper); cursor:pointer; }
.book-diagram-dialog img { display:block; max-width:100%; width:auto; height:auto; max-height:calc(100svh - 130px); margin:auto; object-fit:contain; }
@media print { .book-diagram-dialog,[data-enlarge-diagram] { display:none !important; } }

/* Book citations use a compact extract and bibliographic credit. */
.book-reader .book-citation { margin:1.15rem 0 1.35rem; padding:.1rem 0 .1rem 1rem; border-left:1px solid var(--line); background:none; }
.book-reader .book-citation blockquote { margin:0; padding:0; border:0; background:none; color:inherit; font-size:.92em; line-height:1.5; letter-spacing:normal; }
.book-reader .book-citation blockquote p { margin:0 0 .55rem; font-style:italic; }
.book-reader .book-citation figcaption { margin:0; padding:0; font-family:Manrope,sans-serif; font-size:.68rem; line-height:1.65; color:var(--muted); }
.book-reader .book-citation cite { font-style:normal; }
.book-reader .book-citation a { color:inherit; text-decoration-color:var(--line); text-underline-offset:3px; }

.book-reader .book-author-page h2 { margin:.35rem 0 1.2rem; text-align:center; }
.book-reader .book-author-page .book-front-kicker { text-align:center; }
.book-reader .book-author-portrait { width:200px; max-width:60%; margin:0 auto 1.35rem; }
.book-reader .book-author-portrait img { display:block; width:100%; height:auto; max-width:100%; }
.book-reader .book-author-page p { font-size:.88rem; line-height:1.58; }
.book-reader .book-author-page .book-front-kicker,.book-reader .book-author-link { font:400 .67rem/1.6 Manrope,sans-serif; color:var(--muted); }

@media(max-width:760px) { .book-reader .book-author-portrait { width:150px; margin-bottom:1.1rem; }.book-reader .book-author-page p { font-size:.84rem; line-height:1.5; } }

.book-reader .book-author-page .book-author-link { margin-top:1rem; padding-top:.65rem; border-top:1px solid var(--line); }

/* Parent destination remains available in both reading modes and without scripts. */
.book-poc-hero { scroll-margin-top:110px; }
.book-reader-context { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem 1.5rem; margin-bottom:.75rem; font-size:.8rem; }
.book-reader-context a { display:inline-flex; align-items:center; min-height:44px; gap:.4rem; }
.book-reader-context>span { color:var(--muted); }
@media(max-width:760px) { .book-reader-context { align-items:flex-start; flex-direction:column; gap:0; } }
@media print { .book-reader-context { display:none; } }

/* Page turns preserve the reader's scroll position; menus fit the whole toolbar. */
.book-reader-enhanced .book-spread { overflow-anchor:none; }
@media(max-width:760px) {
  .book-reader-contents { position:static; }
  .book-reader-menu { position:fixed; left:20px; right:20px; top:12px; width:auto; box-sizing:border-box; max-height:min(400px,calc(100svh - 24px)); overscroll-behavior:contain; }
}

/* The opening cover fits its content; chapter leaves retain their fixed geometry. */
@media(max-width:760px) {
  .book-reader-enhanced .book-spread-cover { height:auto; }
  .book-reader-enhanced .book-leaf-cover { height:auto; max-height:none; padding:0; }
}

/* A phone-sized reading screen with permanent, safe-area-aware controls. */
@media(max-width:760px) {
  body.book-screen-open { overflow:hidden; }
  .book-reader.book-reader-screen { position:fixed; inset:0; z-index:100; height:100vh; height:100dvh; margin:0; padding:max(8px,env(safe-area-inset-top)) 10px max(8px,env(safe-area-inset-bottom)); box-sizing:border-box; background:var(--paper); display:flex; flex-direction:column; gap:8px; }
  .book-reader-screen .book-reader-context,.book-reader-screen .book-reader-hint,.book-reader-screen .book-reader-toolbar>.eyebrow { display:none; }
  .book-reader-screen .book-reader-toolbar { flex:none; flex-wrap:nowrap; margin:0; gap:6px; }
  .book-reader-screen .book-reader-toolbar button,.book-reader-screen .book-reader-toolbar summary { padding:.45rem .65rem; }
  .book-reader-screen .book-reader-contents { margin-left:auto; }
  .book-reader-screen.book-reader-enhanced .book-spread { flex:1; height:0; min-height:0; width:100%; }
  .book-reader-screen .book-reader-progress { flex:none; margin:0; }
  .book-reader-screen .book-reader-controls { flex:none; height:52px; min-height:52px; padding:0; gap:8px; }
  .book-reader-screen .book-reader-controls [role=status] { flex:1; min-width:0; }
  .book-reader-screen.book-reader-enhanced .book-leaf { padding:1rem 1.2rem .65rem; }
  .book-reader-screen .book-running-head { margin-bottom:.8rem; padding-bottom:.5rem; }
  .book-reader-screen .book-folio { padding-top:.5rem; }
  .book-reader-screen.book-reader-enhanced .book-reader-cover { width:min(100%,calc((100dvh - 150px)*.62)); }
}
@media(max-width:760px) and (max-height:450px) {
  .book-reader-screen .book-running-head { display:none; }
  .book-reader-screen.book-reader-enhanced .book-leaf-body { font-size:.9rem; line-height:1.45; }
  .book-reader-screen.book-reader-enhanced .book-leaf-body h2 { font-size:1.5rem; margin:.2rem 0 .6rem; }
  .book-reader-screen.book-reader-enhanced .book-leaf-body h3 { font-size:1.2rem; margin:.2rem 0 .6rem; }
}
@media print { .book-reader.book-reader-screen { position:static; height:auto; display:block; } }

@media(max-width:760px) and (max-height:450px) { .book-reader-screen .book-author-portrait { width:60px; margin-bottom:.5rem; } }

/* Size the reader cover from the available leaf, not from nested padded widths. */
@media(max-width:760px) {
  .book-reader-screen.book-reader-enhanced .book-leaf-cover { padding:8px 18px; height:100%; max-height:100%; }
  .book-reader-screen.book-reader-enhanced .book-reader-cover { width:100%; max-width:none; height:100% !important; flex:1 !important; min-height:0; }
  .book-reader-screen .book-reader-cover .book-object-stage { height:100%; width:100%; padding:0; display:flex; align-items:center; justify-content:center; }
  .book-reader-screen .book-reader-cover .book-object { height:auto; width:min(84vw,calc((100dvh - 150px)*.6)); max-width:100%; aspect-ratio:2/3; transform:rotateY(12deg) rotateZ(-1deg); }
  .book-reader-screen .book-reader-cover .book-object-front { transform:translateZ(5px); }
  .book-reader-screen .book-reader-cover .book-object-jacket { transform:translateZ(6px); }
  .book-reader-screen .book-reader-cover .book-object-spine { display:none; }
  .book-reader-screen .book-reader-cover .book-object-pages { display:none; }
  .book-reader-screen .book-reader-cover .book-object-back { transform:translateZ(-5px); }
}

/* Reserve room for the opening controls on both short and tall phones. */
@media(max-width:760px) {
  .book-reader-enhanced:not(.book-reader-screen) .book-reader-cover {
    max-width:clamp(120px,calc(66svh - 277px),240px);
  }
  .book-reader-screen .book-reader-cover .book-object {
    width:min(240px,70vw,calc((100dvh - 180px)*.5));
  }
  .book-reader .book-object-spine>span,.book-reader .book-object-spine small { display:none; }
}
