.complete-status {
  max-width: 760px;
  margin: 36px auto;
  padding: 18px 22px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  color: #eee6d8;
  font: 14px/1.5 Arial, Helvetica, sans-serif;
}

.complete-status[hidden] {
  display: none;
}

.complete-status strong {
  color: #dfb07c;
}

.pagination-stage {
  position: absolute;
  z-index: -100;
  top: 0;
  left: -200vw;
  width: var(--page-width);
  pointer-events: none;
  visibility: hidden;
}

.complete-book[aria-busy="true"] {
  display: none;
}

.page--blank .page__content {
  display: grid;
  place-items: center;
  color: var(--limestone);
  font-size: 13pt;
}

.front-guide {
  justify-content: center;
}

.front-guide h2,
.front-toc h2 {
  margin: 0 0 0.30in;
  color: var(--ink);
  font-size: 22pt;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.front-guide .intro {
  margin: 0 0 0.28in;
  color: var(--muted-ink);
  font-size: 10.5pt;
  font-style: italic;
  line-height: 1.45;
}

.front-guide ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.front-guide li {
  position: relative;
  margin: 0 0 0.18in;
  padding-left: 0.23in;
  font-size: 10.5pt;
  line-height: 1.42;
}

.front-guide li::before {
  position: absolute;
  left: 0;
  color: var(--ochre);
  content: "◆";
  font-size: 6pt;
  line-height: 2.25;
}

.front-toc {
  padding-top: 0.30in;
}

.toc-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.toc-entry {
  display: grid;
  grid-template-columns: auto minmax(0, auto) 1fr auto;
  align-items: baseline;
  gap: 0.10in;
  margin-bottom: 0.115in;
  font-size: 9.3pt;
  line-height: 1.26;
}

.toc-entry a {
  color: var(--ink);
  text-decoration: none;
}

.toc-entry__label {
  color: var(--tile);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 6.7pt;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.toc-entry__dots {
  min-width: 0.25in;
  border-bottom: 1px dotted var(--limestone);
}

.toc-entry__page {
  min-width: 0.20in;
  color: var(--muted-ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 7.5pt;
  text-align: right;
}

.chapter-open--complete {
  justify-content: center;
  padding-bottom: 0.45in;
}

.chapter-open--complete .chapter-title {
  max-width: 4.45in;
}

.chapter-place {
  margin-top: 0.46in;
  color: var(--muted-ink);
  font-size: 8.3pt;
  font-style: italic;
  letter-spacing: 0.025em;
}

.flow-item {
  flex: 0 0 auto;
}

.prose .flow-paragraph--continued {
  text-indent: 0;
}

.prose .flow-paragraph--continues {
  text-align-last: auto;
}

.pagination-stage .prose,
.complete-book .prose {
  hyphenate-limit-chars: 8 3 3;
  hyphenate-limit-lines: 2;
}

.prose .flow-bullet {
  position: relative;
  margin: 0.06in 0;
  padding-left: 0.20in;
  text-indent: 0;
}

.prose .flow-bullet::before {
  position: absolute;
  left: 0.02in;
  color: var(--ochre);
  content: "◆";
  font-size: 5.8pt;
  line-height: 2.4;
}

.prose .flow-quote {
  margin: 0.12in 0;
  padding: 0.12in 0.16in;
  border-left: 2px solid var(--ochre);
  background: rgba(217, 201, 170, 0.20);
  font-size: 10.5pt;
  font-style: italic;
  line-height: 1.38;
}

.flow-scene {
  display: grid;
  min-height: 0.31in;
  place-items: center;
  color: var(--ochre);
  font-size: 8pt;
  letter-spacing: 0.22em;
}

.flow-illustration {
  position: relative;
  overflow: visible;
  flex: 0 0 auto;
  width: min(var(--image-width, 86%), 100%);
  aspect-ratio: 3 / 2;
  margin-block: 0.17in 0.20in;
  break-inside: avoid;
  page-break-inside: avoid;
  background: transparent;
}

.flow-illustration img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: transparent;
}

.flow-illustration.align-center {
  margin-inline: auto;
}

.page--recto .flow-illustration.align-outer,
.page--verso .flow-illustration.align-inner {
  margin-left: auto;
}

.page--verso .flow-illustration.align-outer,
.page--recto .flow-illustration.align-inner {
  margin-right: auto;
}

.flow-illustration.treatment-wash-organic img {
  /* A single ragged painted contour, fully transparent on all four outer edges.
     Inline SVG also works from file:// without a server or CORS exception. */
  --paint-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='600' viewBox='0 0 900 600'%3E%3Cdefs%3E%3Cfilter id='edge' x='-10%25' y='-15%25' width='120%25' height='130%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.075' numOctaves='3' seed='17' result='grain'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='grain' scale='23' xChannelSelector='R' yChannelSelector='G'/%3E%3CfeGaussianBlur stdDeviation='2.5'/%3E%3C/filter%3E%3C/defs%3E%3Cpath fill='white' filter='url(%23edge)' d='M42 43L91 32 146 42 201 26 252 37 310 29 366 40 428 24 489 35 541 28 601 40 655 25 708 34 762 27 810 42 862 36 868 94 852 150 871 211 860 264 874 322 858 379 871 433 856 491 863 554 807 563 753 550 699 567 641 555 581 574 526 559 469 571 416 554 359 569 305 555 249 573 195 560 143 570 84 552 35 563 43 507 28 452 40 398 27 339 42 284 28 226 41 172 30 117Z'/%3E%3C/svg%3E");
  -webkit-mask-image: var(--paint-mask);
  mask-image: var(--paint-mask);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.flow-illustration.treatment-alpha-organic img,
.flow-illustration.treatment-full-frame img {
  -webkit-mask-image: none;
  mask-image: none;
}

/* The cover's red route and paper layers recur only at section openings. */
.complete-book .page--chapter {
  background: var(--paper);
}

.complete-book .page--chapter::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1.45in;
  background: #d6ba84;
  opacity: 0.10;
  clip-path: polygon(0 32%, 10% 22%, 23% 28%, 39% 9%, 51% 18%, 69% 5%, 81% 12%, 100% 0, 100% 100%, 0 100%);
}

.complete-book .chapter-title { color: #843523; }
.complete-book .chapter-kicker { color: #9b5734; }
.complete-book .chapter-rule { width: 1.85in; margin-block: 0.27in 0.16in; }
.complete-book .chapter-rule img { width: 0.95in; height: 0.58in; }
.complete-book .chapter-rule::before,
.complete-book .chapter-rule::after { background: #a8462c; opacity: .65; }
.complete-book .chapter-place { max-width: 3.8in; line-height: 1.5; }

.chapter-route {
  position: absolute;
  left: 0.05in;
  bottom: 0.16in;
  width: 3.8in;
  height: 0.85in;
  overflow: visible;
  color: #a43b27;
  opacity: .48;
}

.cover-prologue { width: min(100% - 40px, 1050px); margin: 36px auto 56px; color: #ece2d2; text-align: center; }
.cover-prologue__kicker { margin: 0 0 22px; color: #d9b88a; font: 11px/1.5 Arial,sans-serif; letter-spacing: .22em; text-transform: uppercase; }
.cover-prologue__faces { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; }
.cover-prologue figure { margin: 0; }
.cover-prologue img { display: block; width: 100%; height: auto; object-fit: contain; box-shadow: 0 12px 35px #0005; }
.cover-prologue figcaption { margin-top: 12px; font: 11px/1.5 Arial,sans-serif; color: #cfc3b1; }
.cover-prologue__open { display: inline-flex; gap: 16px; margin-top: 30px; padding: 12px 26px; border: 1px solid #a87d52; border-radius: 30px; color: #f4e9d9; font: 13px/1.3 Arial,sans-serif; text-decoration: none; }
.cover-prologue__open:hover { background: #9f6539; }
.complete-book .spread--single::before { display: none; }
.complete-book { scroll-margin-top: 80px; }

.page--vignette-candidate .page__content { bottom: 0.99in; }
.flow-ornament { position: absolute; bottom: 0.37in; left: 50%; transform: translateX(-50%); width: var(--motif-width, 28mm); height: 0.45in; opacity: .80; }
.flow-ornament img { display: block; width: 100%; height: 100%; object-fit: contain; }
.diagnostic .flow-ornament { outline: 1px dotted var(--safe); }

/* Documentary apparatus, measured during pagination and distinct from the novel. */
.page--with-edition-notes .page__content {
  bottom: calc(0.70in + var(--edition-note-height, 0px));
}
.edition-note-call { margin-left: .10em; font: 600 .64em/0 Arial,sans-serif; vertical-align: super; }
.edition-note-call a { color: #8c432c; text-decoration: none; }
.edition-notes { position: absolute; left: .70in; right: .51in; bottom: .70in; color: #5f584e; font: 8.25pt/1.36 "Palatino Linotype","Book Antiqua",Palatino,Georgia,serif; text-align: left; hyphens: auto; }
.page--verso .edition-notes { left: .51in; right: .70in; }
.edition-notes::before { display: block; width: .48in; margin-bottom: 7px; border-top: 1px solid #b6a07d; content: ""; }
.edition-notes__label { margin: 0 0 5px; color: #8c6748; font: 600 6.5pt/1.2 Arial,sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.edition-notes .edition-note { margin: 0; padding-left: 1.3em; text-indent: -1.3em; }
.edition-note + .edition-note { margin-top: 5px; }
.edition-note__number { display: inline-block; min-width: 1em; color: #8c432c; text-decoration: none; font: 600 7pt/1 Arial,sans-serif; }
.edition-note__sources { white-space: nowrap; font-size: 7pt; }
.edition-note__sources a { color: #77694f; text-decoration-thickness: .5px; text-underline-offset: 2px; }
.edition-notes-guide { margin: .17in 0 0; padding-top: .12in; border-top: 1px solid var(--limestone); color: var(--muted-ink); font-size: 9pt; line-height: 1.4; }
.diagnostic .edition-notes { outline: 1px dotted var(--safe); }
:is(.edition-note, .edition-note-call):target { background: #e9d8ad66; }

@media screen and (max-width: 980px) {
  html.reading-mode .flow-paragraph--continues { text-align-last: auto; }
  html.reading-mode .flow-ornament { position: static; transform: none; margin: -14px auto 14px; height: 38px; }
  html.reading-mode .chapter-route { max-width: calc(100% - 44px); }
  html.reading-mode .edition-notes { position: relative; inset: auto; margin: 0 22px 20px; font-size: 14px; line-height: 1.48; }
  html.reading-mode .edition-notes__label { font-size: 10px; }
  html.reading-mode .edition-note__sources { font-size: 12px; }
  html.reading-mode .edition-note__number { font-size: 11px; }
}

@media (max-width: 560px) {
  .cover-prologue { width: calc(100% - 24px); margin-block: 24px 38px; }
  .cover-prologue__faces { gap: 12px; }
  .cover-prologue__kicker { font-size: 9px; letter-spacing: .12em; }
  .cover-prologue figcaption { font-size: 9px; }
}

.diagnostic .flow-illustration::before {
  content: attr(data-scene);
  position: absolute;
  z-index: 3;
  top: 0.07in;
  left: 0.07in;
  padding: 3px 5px;
  border-radius: 2px;
  background: rgba(22, 29, 25, 0.82);
  color: white;
  font: 600 6px/1 Arial, sans-serif;
  letter-spacing: 0.05em;
}

.complete-page-tag {
  display: none;
}

.diagnostic .complete-page-tag {
  position: absolute;
  z-index: 31;
  right: 0.08in;
  bottom: 0.08in;
  display: block;
  padding: 4px 6px;
  background: rgba(39, 70, 57, 0.88);
  color: white;
  font: 600 6px/1.25 Arial, sans-serif;
}

.reader-ui__progress {
  min-width: 118px;
  color: #cfc6b9;
  font: 11px/1 Arial, sans-serif;
  text-align: right;
}

@media print {
  .cover-prologue { display: none !important; }
  .complete-status,
  .pagination-stage,
  .complete-page-tag {
    display: none !important;
  }

  .complete-book .spread {
    display: contents !important;
  }

  .complete-book .spread__empty {
    display: none !important;
  }
}
