/* Quiet, scoped reading styles. The site header and footer keep their own layout. */
.reader-page {
  --reader-ink: #233747;
  --reader-muted: #657077;
  --reader-paper: #f8f6ef;
  --reader-line: #d8d5cb;
  --reader-gold: #8c713c;
  --reader-font-size: 20px;
  max-width: 1180px;
  padding: 0 32px;
  color: var(--reader-ink);
}
.reader-page [hidden] { display: none !important; }
.reader-page a { color: var(--reader-ink); }
.reader-page a:focus-visible,
.reader-page button:focus-visible,
.reader-page summary:focus-visible { outline: 2px solid var(--reader-gold); outline-offset: 5px; }
.reader-page .reader-article { margin: 0 auto 64px; }
.reader-page .reader-breadcrumb { padding: 26px 0; border-bottom: 1px solid var(--reader-line); font: 12px/1.6 Arial, sans-serif; }
.reader-page .reader-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.reader-page .reader-breadcrumb li { display: inline; color: var(--reader-muted); overflow-wrap: anywhere; }
.reader-page .reader-breadcrumb li + li::before { content: '/'; margin-right: 8px; color: #8c918f; }
.reader-page .reader-breadcrumb a { text-decoration: none; }
.reader-page .reader-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.reader-page .reader-heading { max-width: 760px; margin: 0 0 0 252px; padding: 48px 0 34px; }
.reader-page .reader-eyebrow,
.reader-page .reader-label { margin: 0; font: 600 11px/1.6 Arial, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; color: var(--reader-gold); }
.reader-page .reader-title { margin: 14px 0 20px; font: 400 clamp(32px, 3.6vw, 48px)/1.15 Georgia, 'Times New Roman', serif; letter-spacing: -1px; color: var(--reader-ink); text-wrap: balance; }
.reader-page .reader-metadata { display: flex; flex-wrap: wrap; gap: 9px 20px; list-style: none; margin: 0; padding: 0; font: 12px/1.6 Arial, sans-serif; color: var(--reader-muted); }
.reader-page .reader-metadata li + li { position: relative; }
.reader-page .reader-metadata li + li::before { content: '·'; position: absolute; left: -12px; }
.reader-page .reader-introduction { margin-top: 26px; padding-left: 18px; border-left: 2px solid #b39a64; }
.reader-page .reader-introduction > p:last-child { max-width: 64ch; margin: 6px 0 0; font: 17px/1.65 Georgia, 'Times New Roman', serif; color: #536069; }
.reader-page .reader-layout { display: grid; grid-template-columns: 204px minmax(0, 1fr); gap: 48px; align-items: start; }
.reader-page .reader-sidebar { position: sticky; top: 28px; padding-top: 3px; font-family: Arial, sans-serif; }
.reader-page .reader-contents { padding-bottom: 20px; border-bottom: 1px solid var(--reader-line); }
.reader-page .reader-contents summary { padding: 0 0 14px; cursor: pointer; font-size: 12px; font-weight: 600; color: var(--reader-ink); }
.reader-page .reader-contents summary::marker { color: var(--reader-gold); font-size: 9px; }
.reader-page .reader-contents summary span { display: none; }
.reader-page .reader-contents-list { max-height: min(50vh, 470px); overflow-y: auto; overscroll-behavior: contain; list-style: none; padding: 0 8px 0 0; margin: 0; scrollbar-width: thin; scrollbar-color: #b9b7aa transparent; }
.reader-page .reader-contents-link { display: flex; align-items: baseline; gap: 12px; min-height: 40px; padding: 8px 0; text-decoration: none; font-size: 12px; line-height: 1.6; color: var(--reader-muted); }
.reader-page .reader-contents-link:hover,
.reader-page .reader-contents-link[aria-current="location"] { color: var(--reader-ink); }
.reader-page .reader-contents-link[aria-current="location"] > span:last-child { text-decoration: underline; text-decoration-color: var(--reader-gold); text-underline-offset: 4px; }
.reader-page .reader-section-number { flex: 0 0 18px; font-size: 10px; letter-spacing: .5px; color: var(--reader-gold); font-variant-numeric: tabular-nums; }
.reader-page .reader-progress-details { margin-top: 22px; }
.reader-page .reader-progress-caption { display: flex; justify-content: space-between; gap: 8px; font: 11px/1.5 Arial, sans-serif; color: var(--reader-muted); }
.reader-page #reader-progress-value { font-variant-numeric: tabular-nums; color: var(--reader-ink); }
.reader-page #reader-progress { display: block; appearance: none; width: 100%; height: 3px; margin: 10px 0; border: 0; border-radius: 0; background: var(--reader-line); color: var(--reader-gold); }
.reader-page #reader-progress::-webkit-progress-bar { background: var(--reader-line); }
.reader-page #reader-progress::-webkit-progress-value { background: var(--reader-gold); }
.reader-page #reader-progress::-moz-progress-bar { background: var(--reader-gold); }
.reader-page #reader-storage-note { margin: 0; color: var(--reader-muted); font: 11px/1.6 Arial, sans-serif; }
.reader-page .reader-region-link { display: inline-block; margin-top: 24px; font: 12px/1.6 Arial, sans-serif; text-decoration: none; }
.reader-page .reader-region-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.reader-page .reader-manuscript { min-width: 0; max-width: 760px; }
.reader-page .reader-resume { display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #d5cbb5; background: #eeeadf; padding: 16px 18px; margin-bottom: 24px; }
.reader-page .reader-resume p { margin: 0; font: 12px/1.65 Arial, sans-serif; color: #536069; }
.reader-page .reader-resume button { flex-shrink: 0; padding: 10px 13px; border: 1px solid var(--reader-ink); border-radius: 2px; font: 12px/1.5 Arial, sans-serif; background: var(--reader-ink); color: #fff; cursor: pointer; }
.reader-page .reader-resume button:hover { background: #385061; }
.reader-page .reader-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 17px 0; border-top: 1px solid var(--reader-line); border-bottom: 1px solid var(--reader-line); }
.reader-page .reader-source-note { margin: 4px 0 0; color: var(--reader-muted); font: 11px/1.5 Arial, sans-serif; }
.reader-page #original-text { scroll-margin-top: 28px; }
.reader-page .reader-font-controls { display: flex; gap: 2px; flex-shrink: 0; margin: 0; padding: 0; border: 0; }
.reader-page .reader-font-controls legend { float: left; align-self: center; margin-right: 8px; font: 10px/40px Arial, sans-serif; color: var(--reader-muted); }
.reader-page .reader-font-controls button { width: 40px; height: 40px; padding: 0; border: 1px solid transparent; border-radius: 2px; cursor: pointer; background: transparent; color: var(--reader-ink); font: 18px/1 Georgia, serif; }
.reader-page .reader-font-controls button[data-font-size="18"] { font-size: 14px; }
.reader-page .reader-font-controls button[data-font-size="22"] { font-size: 22px; }
.reader-page .reader-font-controls button[aria-pressed="true"] { border-color: #c8c0ae; background: #eee9dc; }
.reader-page .reader-font-controls button:hover { background: #eee9dc; }
.reader-page .reader-text { max-width: 68ch; margin: 0; padding-top: 12px; font: var(--reader-font-size)/1.85 Georgia, 'Times New Roman', serif; color: var(--reader-ink); text-align: left; overflow-wrap: break-word; }
.reader-page .reader-text p { margin: 1.2em 0; text-align: left; }
.reader-page .reader-text h1,
.reader-page .reader-text h2,
.reader-page .reader-text h3,
.reader-page .reader-text h4 { scroll-margin-top: 36px; margin: 2.2em 0 1em; color: var(--reader-ink); font-family: Georgia, 'Times New Roman', serif; font-weight: 400; line-height: 1.35; letter-spacing: -.3px; }
.reader-page .reader-text h1 { font-size: 1.6em; }
.reader-page .reader-text h2 { font-size: 1.4em; border-top: 1px solid var(--reader-line); padding-top: 1.2em; }
.reader-page .reader-text h3 { font-size: 1.2em; }
.reader-page .reader-text > :first-child { margin-top: 24px; border-top: 0; padding-top: 0; }
.reader-page .reader-text blockquote { border-left: 2px solid #baa576; padding: 0 0 0 24px; margin: 1.6em 0; color: #57636a; background: transparent; font-style: italic; }
.reader-page .reader-text ul,
.reader-page .reader-text ol { padding-left: 1.4em; }
.reader-page .reader-text li { margin: .5em 0; }
.reader-page .reader-text a { text-decoration-color: #9a8350; text-underline-offset: 4px; }
.reader-page .reader-text img { max-width: 100%; height: auto; }
.reader-page .reader-endmark { padding: 30px 0 45px; text-align: center; color: var(--reader-gold); }
.reader-page .reader-endmark > span { font: 24px/1 Georgia, serif; }
.reader-page .reader-endmark p { margin: 12px 0; font: 14px/1.65 Georgia, serif; color: var(--reader-muted); }
.reader-page .reader-endmark a { font: 11px/1.6 Arial, sans-serif; text-underline-offset: 4px; }
.reader-page .reader-afterword { padding: 28px 0 0; border-top: 1px solid var(--reader-line); }
.reader-page .reader-share { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }
.reader-page .reader-share a { font: 12px/1.5 Arial, sans-serif; text-decoration: none; }
.reader-page .reader-share a:hover { text-decoration: underline; }
.reader-page .reader-afterword h2 { margin: 0 0 18px; font: 400 24px/1.4 Georgia, serif; color: var(--reader-ink); }
.reader-page .reader-characters,
.reader-page .reader-related { margin-top: 38px; }
.reader-page .reader-character-list { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.reader-page .reader-character { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.reader-page .reader-character img,
.reader-page .reader-character-initial { display: grid; place-items: center; width: 40px; height: 40px; object-fit: cover; background: #e6e1d4; border-radius: 50%; }
.reader-page .reader-character strong { display: block; font: 13px/1.6 Arial, sans-serif; }
.reader-page .reader-character small { display: block; color: var(--reader-muted); font: 11px/1.6 Arial, sans-serif; }
.reader-page .reader-related ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--reader-line); }
.reader-page .reader-related li { border-bottom: 1px solid var(--reader-line); }
.reader-page .reader-related a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 0; font: 16px/1.5 Georgia, serif; text-decoration: none; }
.reader-page .reader-related a:hover { color: var(--reader-gold); }
.reader-page .reader-related a > span:last-child { color: var(--reader-gold); }
.reader-page .reader-library-link { display: inline-block; margin-top: 28px; font: 12px/1.6 Arial, sans-serif; text-underline-offset: 5px; }
.reader-page .reader-progress-strip { position: fixed; z-index: 900; left: 0; top: 0; right: 0; height: 3px; pointer-events: none; }
.reader-page .reader-progress-strip span { display: block; width: 0; height: 100%; background: var(--reader-gold); }
@media (max-width: 900px) {
  .reader-page { padding: 0 24px; max-width: 790px; }
  .reader-page .reader-heading { margin: 0; padding: 32px 0; }
  .reader-page .reader-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .reader-page .reader-sidebar { position: static; padding-top: 0; }
  .reader-page .reader-contents { padding: 0; border-top: 1px solid var(--reader-line); }
  .reader-page .reader-contents summary { list-style: none; display: flex; justify-content: space-between; padding: 16px 0; }
  .reader-page .reader-contents summary::-webkit-details-marker { display: none; }
  .reader-page .reader-contents summary span { display: inline; font: 18px/1 Arial, sans-serif; }
  .reader-page .reader-contents[open] summary span { transform: rotate(45deg); }
  .reader-page .reader-contents-list { max-height: 300px; padding: 0 16px 12px 0; }
  .reader-page .reader-progress-details { margin-top: 16px; }
  .reader-page #reader-storage-note { display: none; }
  .reader-page[data-storage-unavailable="true"] #reader-storage-note { display: block; }
  .reader-page .reader-region-link { display: none; }
  .reader-page .reader-text { max-width: none; }
}
@media (max-width: 480px) {
  .reader-page { padding: 0 20px; }
  .reader-page .reader-breadcrumb { font-size: 11px; padding: 20px 0; }
  .reader-page .reader-title { font-size: 34px; }
  .reader-page .reader-toolbar { align-items: flex-start; flex-wrap: wrap; gap: 14px; }
  .reader-page .reader-font-controls legend { line-height: 40px; }
  .reader-page .reader-resume { align-items: flex-start; flex-direction: column; }
  .reader-page .reader-text { line-height: 1.8; }
  .reader-page .reader-text blockquote { padding-left: 16px; }
}
@media print {
  .reader-page { max-width: none; padding: 0; color: #000; }
  .reader-page .reader-breadcrumb,
  .reader-page .reader-sidebar,
  .reader-page .reader-font-controls,
  .reader-page .reader-resume,
  .reader-page .reader-afterword,
  .reader-page .reader-progress-strip,
  .reader-page .reader-endmark a { display: none !important; }
  .reader-page .reader-heading { margin: 0; padding: 24px 0; }
  .reader-page .reader-layout { display: block; }
  .reader-page .reader-manuscript,
  .reader-page .reader-text { max-width: none; font-size: 12pt; }
}
