.book-main { max-width:1500px; margin:auto; padding:clamp(2.5rem,5vw,5rem) var(--pad) 6rem; }
.book-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; }
.book-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; }
.book-accessibility-open { border:0; border-bottom:1px solid currentColor; padding:0 0 .25rem; background:transparent; color:#007cad; font:inherit; font-size:.9rem; font-weight:700; cursor:pointer; }
.book-accessibility-open:hover,.book-accessibility-open:focus-visible { color:var(--ink); }
.book-heading .eyebrow { margin-bottom:.9rem; }
.book-heading h1 { font-size:clamp(2.7rem,6vw,6rem); margin:0; }
.book-pdf,.book-back { flex:none; color:#007cad; font-size:.9rem; font-weight:700; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.25rem; }
.book-pdf:hover,.book-back:hover,.book-pdf:focus-visible,.book-back:focus-visible { color:var(--ink); }
.book-help { margin:-1rem 0 1.5rem; font-size:.9rem; color:#454d50; }
.book-reader { padding:clamp(1rem,4vw,3rem); background:#e8f0f2; }
.book-accessibility-bar { max-width:1160px; margin:0 auto 1.25rem; display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:.5rem; }
.book-accessibility-bar span { margin-right:auto; color:#454d50; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.book-accessibility-bar button { border:1px solid #007cad; border-radius:2rem; padding:.5rem .85rem; background:#fff; color:#006e9b; cursor:pointer; font:inherit; font-size:.85rem; font-weight:700; }
.book-accessibility-bar button:hover,.book-accessibility-bar button:focus-visible { background:#007cad; color:#fff; outline:2px solid #fff; outline-offset:-4px; }
.book-accessibility-bar button[aria-pressed="true"] { background:var(--ink); border-color:var(--ink); color:#fff; }
.book-accessibility-bar button:disabled { opacity:.5; cursor:not-allowed; }
.book-reader:focus-visible { outline:3px solid #007cad; outline-offset:3px; }
.book-spread { width:min(100%,1160px); aspect-ratio:2; margin:auto; position:relative; display:grid; grid-template-columns:1fr 1fr; perspective:2200px; filter:drop-shadow(0 18px 22px #102b3340); }
.book-page { min-width:0; min-height:0; position:relative; background:#fff; overflow:hidden; }
.book-page.left { box-shadow:inset -8px 0 14px -12px #0008; }
.book-page.right { box-shadow:inset 8px 0 14px -12px #0008; }
.book-page.empty { background:transparent; box-shadow:none; }
.book-page button,.book-single button { display:block; width:100%; height:100%; border:0; padding:0; background:#fff; cursor:zoom-in; }
.book-page img,.book-single img,.flip-face img { width:100%; height:100%; object-fit:contain; display:block; }
.book-page button:focus-visible,.book-single button:focus-visible { outline:4px solid var(--cyan); outline-offset:-4px; }
.flip-sheet { position:absolute; z-index:5; top:0; width:50%; height:100%; transform-style:preserve-3d; pointer-events:none; }
.flip-sheet.next { left:50%; transform-origin:left center; animation:turn-next .65s ease-in-out forwards; }
.flip-sheet.previous { left:0; transform-origin:right center; animation:turn-previous .65s ease-in-out forwards; }
.flip-face { position:absolute; inset:0; backface-visibility:hidden; background:#fff; box-shadow:0 3px 14px #0003; }
.flip-face.back { transform:rotateY(180deg); }
@keyframes turn-next { to { transform:rotateY(-180deg); } }
@keyframes turn-previous { to { transform:rotateY(180deg); } }
.book-single { display:none; }
.book-controls { max-width:1160px; margin:1.5rem auto 0; display:flex; align-items:center; justify-content:center; gap:clamp(.8rem,4vw,3rem); }
.book-controls button { min-width:8rem; border:1px solid var(--ink); background:var(--ink); color:#fff; cursor:pointer; padding:.65rem .85rem; }
.book-controls button:hover:not(:disabled),.book-controls button:focus-visible:not(:disabled) { background:#007cad; border-color:#007cad; }
.book-controls button:disabled { opacity:.35; cursor:default; }
#page-indicator { min-width:9rem; text-align:center; font-size:.9rem; }
.book-back { display:inline-block; margin-top:2rem; }
.book-zoom { width:min(97vw,1700px); max-width:97vw; height:97vh; max-height:97vh; border:0; padding:0; background:#1a1a1a; color:#fff; }
.book-zoom[open] { display:flex; flex-direction:column; }
.book-zoom::backdrop { background:#000d; }
.book-zoom-toolbar { flex:none; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; padding:.65rem 1rem; background:#1a1a1a; }
.book-zoom-levels { display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; }
.book-zoom-page-controls { display:flex; align-items:center; gap:.5rem; }
.book-zoom-page-controls span { min-width:6.7rem; text-align:center; font-size:.85rem; }
.book-zoom-toolbar button { border:1px solid #b7d2d7; border-radius:.2rem; background:transparent; color:#fff; padding:.35rem .65rem; cursor:pointer; font:inherit; }
.book-zoom-toolbar button[aria-pressed="true"] { background:#fff; color:#1a1a1a; }
.book-zoom-toolbar button:disabled { opacity:.5; cursor:not-allowed; }
.book-voice-label { display:flex; align-items:center; gap:.4rem; font-size:.85rem; }
.book-voice-label select { max-width:13rem; padding:.4rem; font:inherit; }
.book-voice-label select:focus-visible { outline:2px solid #72e3f3; outline-offset:2px; }
.book-zoom-toolbar button:hover,.book-zoom-toolbar button:focus-visible { outline:2px solid #72e3f3; outline-offset:2px; }
.book-zoom-body { flex:1; min-height:0; display:flex; }
.book-zoom-scroll { flex:1; min-width:0; min-height:0; overflow:auto; padding:.5rem; }
.book-zoom-scroll img { display:block; max-width:none; height:auto; margin:auto; }
.book-zoom-scroll:focus-visible { outline:3px solid #72e3f3; outline-offset:-3px; }
.book-readme { width:min(38%,30rem); min-width:17rem; overflow:auto; padding:1.25rem; background:#fff; color:var(--text); }
.book-readme h2 { margin:0 0 .8rem; font-size:1.25rem; }
.book-readme a:focus-visible { outline:3px solid #007cad; outline-offset:3px; }
.book-readme-copy { white-space:pre-line; line-height:1.7; overflow-wrap:anywhere; margin-bottom:1.5rem; }
.book-voice-status { margin:.5rem 0 1rem; font-size:.85rem; }
.book-readme a { color:#007cad; font-weight:700; }
.transcript-main { max-width:1000px; }
.transcript-main .eyebrow { margin-bottom:1rem; }
.transcript-main h1 { font-size:clamp(2.7rem,6vw,5.5rem); margin-bottom:2rem; }
.transcript-intro { max-width:70ch; font-size:1rem; margin:0 0 2rem; }
.transcript-intro a,.transcript-pages a { color:#007cad; }
.transcript-pages { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin:0 0 2.5rem; padding:1rem; border:1px solid var(--line); }
.transcript-pages a { min-width:2rem; padding:.25rem; text-align:center; }
.transcript-section { margin:0 0 1.5rem; padding:clamp(1.25rem,3vw,2.5rem); border:1px solid var(--line); scroll-margin-top:1rem; }
.transcript-section h2 { margin:0 0 1.5rem; font-size:1.4rem; }
.transcript-copy { max-width:70ch; white-space:pre-line; line-height:1.75; overflow-wrap:anywhere; }
.transcript-section:target { border-color:#007cad; }
@media(forced-colors:active) { .book-page,.book-single { border:1px solid CanvasText; } .book-reader:focus-visible { outline-color:Highlight; } }
@media(max-width:700px) {
  .book-accessibility-bar { justify-content:flex-start; }
  .book-accessibility-bar span { width:100%; }
  .book-zoom-body { flex-direction:column; }
  .book-readme { width:100%; min-width:0; max-height:42%; }
  .book-heading { align-items:start; flex-direction:column; }
  .book-heading h1 { line-height:1.06; }
  .book-spread { display:none; }
  .book-single { display:block; width:min(100%,550px); aspect-ratio:1; margin:auto; box-shadow:0 14px 22px #102b3340; }
  .book-controls { gap:.6rem; justify-content:space-between; }
  .book-controls button { min-width:0; font-size:.8rem; }
  #page-indicator { min-width:0; font-size:.8rem; }
}
@media(prefers-reduced-motion:reduce) { .flip-sheet.next,.flip-sheet.previous { animation-duration:.01s; } }
.newsletter-book .book-spread { aspect-ratio:1.414; }
.newsletter-page-surface { position:relative; width:100%; height:100%; }
.newsletter-page-surface > button { position:absolute; inset:0; }
.newsletter-page-surface .page-link { position:absolute; z-index:2; display:block; border-radius:2px; }
.newsletter-page-surface .page-link:hover,.newsletter-page-surface .page-link:focus-visible { outline:none; background:none; }
.book-zoom-scroll .newsletter-page-surface { height:auto; aspect-ratio:595.276 / 841.89; margin:auto; }
.book-zoom-scroll .newsletter-page-surface img { width:100%; height:100%; object-fit:contain; }
.book-page-links { display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; margin:1rem auto 0; max-width:1160px; }
.book-page-links a { color:#006e9b; font-size:.9rem; }
.book-page-links a:hover,.book-page-links a:focus-visible,
.book-readme a:hover,.book-readme a:focus-visible,
.transcript-section a:hover,.transcript-section a:focus-visible { color:#d0008f; }
.book-page-links a:focus-visible { outline:3px solid #d0008f; outline-offset:3px; }
@media(max-width:700px) { .newsletter-book .book-single { aspect-ratio:595.276 / 841.89; } }

/* Keep both flipbooks free of surrounding page keylines. */
:is(.charity-book,.newsletter-book) .book-reader:focus-visible,
:is(.charity-book,.newsletter-book) .book-page button:focus-visible,
:is(.charity-book,.newsletter-book) .book-single button:focus-visible,
:is(.charity-book,.newsletter-book) .book-zoom-scroll:focus-visible { outline:none; }
:is(.charity-book,.newsletter-book) .book-reader:focus-visible { background:#dbe3e5; }
:is(.charity-book,.newsletter-book) .book-page button,:is(.charity-book,.newsletter-book) .book-single button { position:relative; }
:is(.charity-book,.newsletter-book) .book-page button:focus-visible::after,
:is(.charity-book,.newsletter-book) .book-single button:focus-visible::after { content:"Enlarge page ↗"; position:absolute; right:.5rem; bottom:.5rem; padding:.35rem .6rem; background:#222; color:#fff; font-size:.8rem; }
:is(.charity-book,.newsletter-book) .book-zoom-scroll:focus-visible { background:#222; }

.rbkc-book .book-spread { aspect-ratio:2.828; }
.rbkc-book .book-zoom-scroll .newsletter-page-surface { aspect-ratio:841.89 / 595.276; }
@media(max-width:700px) { .rbkc-book .book-single { aspect-ratio:841.89 / 595.276; } }

/* Book pages display at their normal size without an enlargement action. */
.book-page img,.book-single img { cursor:default; }
