.travel-book { max-width: 64rem; margin: 1.5rem auto 0; --page-width: 28rem; --page-height: 35rem; }
.journey-overview .section-heading { margin-bottom: 1.5rem; }
.book-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; color:#dac8a5; font-size:.9rem; margin:0 .5rem 1rem; min-height:3rem; }
.book-controls[hidden] { display:none; }
.book-controls button { width:3rem; height:3rem; flex:0 0 3rem; border:1px solid #ae9873; border-radius:50%; background:#201912; color:#f3dfb8; font:2rem Georgia,serif; cursor:pointer; }
.book-controls button[aria-disabled="true"] { opacity:.35; cursor:default; }
.book-track { display:flex; gap:1.25rem; align-items:flex-start; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#967750 #211b15; padding:1rem .5rem 1.5rem; }
.book-spread { display:flex; justify-content:center; align-items:flex-start; gap:1.25rem; min-width:0; flex:0 0 100%; scroll-snap-align:start; scroll-margin-inline-start:.5rem; }
.book-page { --ink:#213d46; flex:0 0 var(--page-width); width:var(--page-width); min-width:0; position:relative; color:#35291f; border:1px solid #ad8a59; border-radius:43% 4% 2% 3% / 1.8% 1% 1.4% 2%; background:radial-gradient(ellipse at 50% 40%,#f3e3c5,transparent 75%),linear-gradient(90deg,#a9814e,#d5b98c 3%,#edd5ac 9%,#ead0a7 83%,#c5a16e 96%,#9d7649); box-shadow:inset 5px 0 8px #66411e30,inset -5px 0 10px #66411e35,1px 4px 0 #96744c,2px 7px 0 #533c28,0 12px 14px #0007; }
.book-page--autumn { --ink:#68391e; }.book-page--beyond { --ink:#4c315b; }
.book-content { padding:clamp(1rem,2.5vw,1.75rem); }
.book-content > * { margin:0 0 .6rem; }
.book-content > :last-child { margin-bottom:0; }
.book-content :is(p,.reading-text) { color:#35291f; font:.9375rem/1.5 Georgia,serif; width:auto; }
.book-content :is(h2,h3) { color:var(--ink); font:400 clamp(1.45rem,2.5vw,2rem)/1.2 Georgia,serif; }
.book-content h4 { color:var(--ink); font:400 1.25rem/1.3 Georgia,serif; }
.book-content :is(.book-label,.eyebrow,.listening-kicker) { color:var(--ink); font:.875rem/1.4 Georgia,serif; letter-spacing:.08em; text-transform:uppercase; }
.book-content .book-image { display:block; width:100%; height:var(--chapter-image-height,calc(var(--page-height) * .37)); object-fit:contain; border-radius:.2rem; }
.book-content .book-door,.book-content .button { display:inline-block; padding:.7rem 1rem; color:#fff1d4; background:var(--ink); border:1px solid #9c794d; border-radius:1.25rem .25rem; font:1rem/1.4 Georgia,serif; text-decoration:none; }
.book-content a { color:var(--ink); text-underline-offset:.2em; }
.book-content .listening-link { font-size:1rem; }
.book-content .toc-entry { padding:.5rem 0; border-bottom:1px solid #85694640; }
.book-content .toc-entry h3 { font:400 1.05rem/1.35 Georgia,serif; margin:0 0 .35rem; }
.toc-entry h3 a { text-decoration:none; }
.toc-actions { display:flex; flex-wrap:wrap; gap:.25rem 1rem; }
.toc-actions a,.book-small-action { font: .875rem/1.5 Georgia,serif; padding:.3rem 0; }
.toc-detour { --ink:#4c315b; }
.book-cover { flex:0 0 100%; display:flex; justify-content:center; scroll-snap-align:start; }
.book-cover-link { display:block; width:var(--page-width); height:var(--page-height); }
.book-cover-link img { display:block; width:100%; height:100%; object-fit:contain; }
.book-enhanced .book-page { height:var(--page-height); box-sizing:border-box; }
.book-enhanced .book-content { height:100%; box-sizing:border-box; overflow:hidden; }
.book-enhanced .book-track { height:calc(var(--page-height) + 3rem); box-sizing:content-box; overflow-y:hidden; }
.book-measure { position:absolute; left:0; top:0; visibility:hidden; pointer-events:none; z-index:-1; }
.book-bottom { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; padding:.5rem; }
.book-bottom a { color:#d8c5a4; padding:.65rem 0; font-size:.9rem; text-underline-offset:.3em; }
.book-detour { max-width:64rem; margin:2rem auto 0; padding:1.5rem .5rem; border-top:1px solid #b39b7540; }
.book-detour p { color:#c6b99f; font:1rem/1.6 Georgia,serif; }
.book-detour a { display:inline-block; padding:.75rem 0; color:#dec6ea; }
.travel-book :focus-visible,.book-detour a:focus-visible,.journey-crosslinks a:focus-visible { outline:3px solid #f0ba51; outline-offset:3px; }
@media (prefers-reduced-motion:reduce) { .book-track { scroll-behavior:auto; } }
.journey-crosslinks { max-width: 68rem; margin: 2rem auto 4rem; padding: 2rem 1.25rem; border-top: 1px solid #b39b7540; }
.journey-crosslinks h2 { font: 400 1.4rem/1.4 Georgia, serif; color: #ddcaaa; margin: 0 0 1.25rem; }
.journey-crosslinks > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: .75rem; }
.journey-crosslinks a { display: block; padding: .85rem 1rem; border: 1px solid #b49a7040; border-radius: .25rem; color: #eedab7; text-decoration: none; font-size: 1rem; line-height: 1.5; }
.journey-crosslinks a span { display: block; font-size: .9rem; color: #bbb2a5; }
.journey-crosslinks a:hover, .journey-crosslinks a[aria-current] { background: #bba07815; border-color: #b49a70; }

.travel-book .book-content .prologue-opening { color:#35291f !important; }
.book-content .book-entry-access p { margin:0 0 .65rem; }
.book-content .book-entry-access .book-door { margin:0; }


.book-map-link { display:block; cursor:zoom-in; }
.book-map-link .book-image { margin:0; }

.book-page[id^="book-chapter-"] .book-image {
  height:var(--chapter-image-height,calc(var(--page-height) * .37));
  width:100%; object-fit:contain; object-position:center;
}

.book-prologue-ending > p { margin:0 0 .6rem; }
.book-prologue-jewelry {
  display:block; width:100%; height:var(--chapter-image-height,calc(var(--page-height) * .37));
  object-fit:contain; object-position:center; background:transparent; margin:.4rem auto 0;
}

/* Chapter openings repeat the same frame; stories retain the book's type size. */
.book-chapter-ending > p,.book-ending-tail > p { margin:0 0 .6rem; }
.book-chapter-opening > * { margin:0 0 .6rem; }
.book-chapter-opening > :last-child { margin-bottom:0; }
.book-content .book-story-link {
  display:inline-block; max-width:100%; padding:.45rem 0;
  font:.9375rem/1.5 Georgia,serif; text-underline-offset:.2em;
}

/* Story illustrations: one source, independently measured single/spread layouts. */
.book-content .book-illustration { margin: .6rem 0; padding: 0; }
.book-illustration img {
  display:block; width:100%; height:var(--chapter-image-height,calc(var(--page-height) * .37));
  object-fit:contain; object-position:center; border-radius:.2rem;
}
.book-illustrated-ending > :first-child { margin-top:0; }


/* One visible width for every image inside a book page; preserve natural ratios. */
.travel-book .book-page .book-content img {
  display:block;
  width:var(--book-image-width, 80%);
  max-width:100%;
  height:auto;
  max-height:none;
  margin-left:auto;
  margin-right:auto;
  object-fit:contain;
}
