* { box-sizing: border-box; }
html { scroll-padding-top: 1rem; }
body { margin: 0; }
img { display: block; max-width: 100%; height: auto; }
a, summary { touch-action: manipulation; }
.skip-link { position: absolute; top: -10rem; left: 1rem; z-index: 5; padding: .8rem 1rem; }
.skip-link:focus { top: 1rem; }
.reading-progress { position: fixed; inset: 0 0 auto; z-index: 6; width: 100%; height: .3rem; border: 0; }
.reading-progress[hidden] { display: none; }
.masthead { padding: 1.25rem clamp(1rem, 4vw, 4rem); }
.masthead-inner { max-width: 1280px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.masthead-name { display: inline-flex; min-height: 44px; align-items: center; padding-block: .25rem; }
.masthead-note { display: block; margin-top: .3rem; }
.masthead-link { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .75rem; flex: 0 0 auto; }
.folio { max-width: 1280px; margin-inline: auto; padding: clamp(1.5rem, 4vw, 4rem) clamp(1rem, 4vw, 4rem); display: grid; grid-template-columns: 235px minmax(0, 1fr); column-gap: clamp(2rem, 5vw, 5rem); grid-template-areas: 'index read'; align-items: start; }
.reading-room { grid-area: read; min-width: 0; }
.chapter-rail { grid-area: index; min-width: 0; padding-top: .25rem; }
.chapter-heading { margin: 0 0 1.5rem; }
.chapter-groups { display: grid; gap: 1.2rem; }
.chapter-group-title { margin: 0 0 .25rem; }
.chapter-list { list-style: none; margin: 0; padding: 0; }
.chapter-link { display: flex; align-items: center; min-height: 44px; padding: .6rem .8rem; gap: .6rem; }
.chapter-current { display: flex; align-items: center; min-height: 44px; padding: .6rem .8rem; }
.breadcrumb-list { display: flex; flex-wrap: wrap; align-items: center; list-style: none; gap: .2rem 1rem; padding: 0; margin: 0 0 1.4rem; }
.breadcrumb-link { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; padding-right: .35rem; }
.breadcrumb-current { display: inline-flex; align-items: center; min-height: 44px; }
.page-kicker { margin: 0 0 .8rem; }
.page-title { max-width: 16ch; margin: 0; }
.page-lead { max-width: 55ch; margin: 1.25rem 0 1.6rem; }
.snapshot { margin: 0 0 2rem; padding: .7rem 0 .7rem 1rem; }
.answer-section { max-width: 66ch; margin: 2rem 0 0; padding-top: 1.25rem; }
.section-title { margin: 0 0 .7rem; }
.body-copy { margin: .8rem 0; }
.ask-copy { margin: 1.25rem 0; padding: 1rem 1.1rem; }
.reading-link { display: inline-flex; align-items: center; min-height: 44px; padding: .55rem .75rem; margin: .4rem 0; gap: .8rem; }
.photo { margin: 2.25rem 0; overflow: hidden; }
.photo-image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.photo-caption { margin: 0; padding: .8rem 1rem; }
.source-drawer { max-width: 66ch; margin-top: 2.75rem; }
.source-toggle { cursor: pointer; min-height: 52px; padding: .9rem 1rem; }
.source-content { padding: .2rem 1rem 1rem; }
.source-note { margin: .85rem 0; }
.source-list { list-style: none; margin: .6rem 0; padding: 0; }
.source-link { display: flex; align-items: center; min-height: 48px; padding: .65rem .4rem; gap: .75rem; }
.chapter-turn { margin-top: 2.5rem; padding-top: 1.2rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 1rem; }
.turn-link { display: inline-flex; align-items: center; min-height: 48px; padding: .65rem .8rem; gap: .75rem; max-width: 100%; }
.footer { padding: 1.5rem clamp(1rem, 4vw, 4rem) 2rem; }
.footer-inner { max-width: 1280px; margin-inline: auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: start; gap: 1rem 2rem; }
.footer-copy { max-width: 60ch; margin: .5rem 0; }
.footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; }
.footer-link { display: inline-flex; align-items: center; min-height: 48px; padding: .6rem .75rem; }
@media (max-width: 850px) {
  .folio { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'read' 'index'; row-gap: 3rem; }
  .chapter-rail { padding: 1.5rem 0 0; }
  .chapter-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
  .page-title { max-width: 18ch; }
}
@media (max-width: 500px) {
  .masthead { padding-block: .8rem; }
  .masthead-inner { align-items: flex-start; gap: .4rem; }
  .masthead-link { padding-inline: .5rem; }
  .folio { padding-top: 1.5rem; }
  .chapter-groups { grid-template-columns: minmax(0, 1fr); }
  .page-lead { margin-top: 1rem; }
  .snapshot { margin-bottom: 1.5rem; }
  .chapter-turn { align-items: stretch; }
  .turn-link { width: 100%; }
  .photo { margin-block: 1.5rem; }
}
@media print {
  .masthead-link, .chapter-rail, .reading-progress, .chapter-turn, .footer-links { display: none; }
  .folio { display: block; padding: 1rem; }
  .photo { display: none; }
}
