.book-map{margin:3rem 0;padding-top:2rem;border-top:1px solid var(--line,#53505a);scroll-margin-top:0}.book-map h2{font-size:2rem;margin-bottom:.5rem}.book-map__intro,.book-map__note{max-width:75ch;line-height:1.6}.book-map__layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:1rem;margin:1.4rem 0}.book-map__canvas{min-width:0;position:relative;background:#151a20;border:1px solid #46505b;border-radius:4px;overflow:hidden}.book-map svg{width:100%;height:400px;display:block;touch-action:pan-y}.book-map__land{fill:#35404a;stroke:#6d7c85;stroke-width:.7;vector-effect:non-scaling-stroke}.book-map__grid{stroke:#53616d;stroke-opacity:.4;stroke-width:.5;vector-effect:non-scaling-stroke;fill:none}.book-map__extent{fill:#db9349;fill-opacity:.16;stroke:#e3a66d;stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.book-map__pin circle{fill:#e1a069;stroke:#111820;stroke-width:2;vector-effect:non-scaling-stroke}.book-map__pin text{font:700 12px system-ui,sans-serif;fill:#111820;text-anchor:middle;dominant-baseline:central;pointer-events:none}.book-map__pin{cursor:pointer;outline:none}.book-map__pin:hover circle,.book-map__pin:focus circle,.book-map__pin[aria-current=true] circle{fill:#fff2d5;stroke:#e1a069;stroke-width:3}.book-map__tools{display:flex;gap:.4rem;flex-wrap:wrap;padding:.6rem;background:#151a20;border-top:1px solid #46505b}.book-map button{font:inherit;cursor:pointer}.book-map__tools button{background:#26313a;border:1px solid #73818b;color:#f5efe8;min-width:44px;min-height:44px;padding:.4rem .7rem;border-radius:3px}.book-map button:focus-visible,.book-map a:focus-visible{outline:3px solid #e1a069;outline-offset:3px}.book-map__places{margin:0!important;padding:0!important;list-style:none!important;max-height:459px;overflow-y:auto;border-top:1px solid #6f747a}.book-map__places li{margin:0!important;padding:0!important}.book-map__places a{display:block;padding:.7rem .6rem;border-bottom:1px solid #6f747a;text-decoration:none;color:inherit;min-height:44px;line-height:1.35}.book-map__places a[aria-current=true]{background:#e1a069;color:#16191d}.book-map__places small{display:block;font-size:.75rem;opacity:.85;margin-top:.2rem}.book-map__details{padding:1.2rem;border-left:3px solid #bc7e47;background:rgba(150,135,110,.08);scroll-margin-top:0}.book-map__details h3{margin-top:0;font-size:1.5rem}.book-map blockquote{font-size:1rem;line-height:1.7;margin:1rem 0;max-width:78ch}.book-map__note{font-size:.86rem}.book-map__source{font-size:.85rem;line-height:1.7}.book-map__empty{font-style:italic}.map-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.map-review-grid a{display:block;padding:1.3rem;border:1px solid #666;border-radius:4px;text-decoration:none}.map-review-grid span{display:block;font-size:.82rem;margin-top:.7rem}.book-map [hidden]{display:none!important}@media(max-width:720px){.book-map__layout{grid-template-columns:1fr}.book-map svg{height:330px}.book-map__places{display:grid;grid-template-columns:1fr 1fr;max-height:none}.book-map__places a{height:100%}.book-map__details{padding:1rem}.book-map h2{font-size:1.7rem}}@media(prefers-reduced-motion:reduce){.book-map *{scroll-behavior:auto!important}}@media print{.book-map__tools{display:none}.book-map__places{max-height:none}.book-map__details[hidden]{display:block!important}.book-map__layout{display:block}}
.book-map__narration{margin:1.6rem 0;padding:1.2rem;background:#f2ede4;color:#202328;border:1px solid #b9afa0;border-radius:6px}.book-map__listen-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.book-map__listen-heading h3{font-size:1.3rem;margin:.25rem 0 .8rem}.book-map__listen-heading .label{margin:0}.book-map__voice{font:500 .7rem/1.4 system-ui,sans-serif;max-width:130px}.book-map audio{width:100%;height:44px;display:block}.book-map__follow{display:flex;align-items:center;justify-content:space-between;gap:1rem;font:.8rem/1.5 system-ui,sans-serif;margin:.7rem 0}.book-map__follow label{display:flex;align-items:center;gap:.45rem;min-height:44px;cursor:pointer}.book-map__follow input{width:18px;height:18px;accent-color:#916035}.book-map__caption{font-size:1rem;line-height:1.65;border-left:2px solid #b07847;padding-left:1rem;min-height:5em}.book-map__transcript summary{cursor:pointer;min-height:44px;padding:.5rem 0;font-size:.9rem}.book-map__transcript section{margin:1rem 0}.book-map__transcript h4{font-size:1rem;margin:.7rem 0}.book-map__transcript p{font-size:.9rem;line-height:1.6}.book-map__pin .book-map__halo{fill:none!important;stroke:#efb97b;stroke-width:2;opacity:0;pointer-events:none}.book-map[data-motion=on] .book-map__pin[aria-current=true] .book-map__halo{animation:map-locator-pulse 2.6s ease-out 2;transform-box:fill-box;transform-origin:center}.book-map__pin .book-map__dot{transition:fill .15s}.book-map__tools button[aria-pressed=true]{background:#684727}.book-map__tools button:disabled{opacity:.4;cursor:default}.map-review-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));margin:2.5rem 0}.map-review-grid a{display:flex;gap:1.2rem;align-items:center;padding:1.2rem;border-color:#afa69a;background:rgba(255,255,255,.28)}.map-review-grid img{width:90px;height:144px;object-fit:contain;flex:none;box-shadow:0 8px 18px #0003}.map-review-grid strong{display:block;font-size:1.1rem;line-height:1.35;margin-top:.35rem}.map-review-grid small{font:.65rem/1.3 monospace;letter-spacing:.1em}.map-review-grid__cta{font-weight:600}.map-review-grid a:hover{background:rgba(221,163,106,.18)}.map-review-grid a:focus-visible{outline:3px solid #af7440;outline-offset:3px}@keyframes map-locator-pulse{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.9);opacity:0}}@media(max-width:720px){.book-map__follow{align-items:flex-start;flex-direction:column;gap:0}.book-map__listen-heading{align-items:flex-start}.book-map__narration{padding:1rem}.book-map__caption{min-height:0}.map-review-grid{grid-template-columns:1fr}.map-review-grid img{width:74px;height:119px}}@media(prefers-reduced-motion:reduce){.book-map__pin .book-map__halo{animation:none!important}.book-map__pin .book-map__dot{transition:none!important}}@media print{.book-map__narration audio,.book-map__follow,.book-map__caption{display:none}.book-map__transcript{display:block}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
