/* GENERATED by tools/assets/merge-css.py — atlas.css, the lawful bundle (W5-A1, MF-031, 2026-10-09).
   Concatenated in cascade order from: quiet-nav.css, orientation.css, atlas.css.
   Every comment is kept whole; nothing is minified. Edit the AUTHORED section below
   and the named sources; the generated sections are rewritten at every build. */
/* ==== SOURCE: quiet-nav.css ==== */
/* Native top navigation complements, never replaces, the closing room roads.
   The current literary footer is not regenerated from a shorter component. */
.room-header {
  display: flex;
  width: 100%;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem var(--space-6);
  position: sticky;
  top: 0;
  z-index: var(--z-band);
  margin: 0 auto;
  padding: 0.8rem 0;
  border-bottom: 1px solid var(--line-dark);
  /* The bar is a frost of the room's own canvas, not a second slab:
     the room's background at 80% over the canvas, plus a stronger
     backdrop blur where the browser offers it. Legacy browsers keep
     the old surface untouched; the frost is applied in the @supports
     block below, so no nesting is required anywhere. */
  background: var(--surface, var(--paper));
  -webkit-backdrop-filter: blur(16px) saturate(120%);
  backdrop-filter: blur(16px) saturate(120%);
  font: 500 0.8rem/1.4 var(--font-ui);
}

/* Modern browsers: the frost derives from the room's own canvas
   (--paper at 80%), so the bar melts into the room it serves. */
@supports (background: color-mix(in srgb, red 80%, blue)) {
  .room-header {
    background: color-mix(in srgb, var(--paper) 80%, transparent);
  }
}

/* Rooms whose canvas is not the --paper token: the frost derives from
   the room's own canvas, so the bar melts into the room it serves.
   Modern browsers only; the legacy surface stands beneath. */
@supports (background: color-mix(in srgb, red 80%, blue)) {
  body.question .room-header,
  body.not-found .room-header,
  body.breach .room-header {
    background: color-mix(in srgb, var(--hate-bg) 80%, transparent);
  }
  body.iniquity .room-header {
    background: color-mix(in srgb, #030F1E 80%, transparent);
  }
  body.sixth-book .room-header {
    background: color-mix(in srgb, #02060C 80%, transparent);
  }
}
.room-header .room-brand {
  font-size: 1rem;
  letter-spacing: -0.04em;
  margin-right: auto;
}
.room-header.has-family-cue .room-brand { margin-right: 0.75rem; }
.room-header .room-family-cue {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  max-width: 18rem;
  margin-right: auto;
  padding-inline-start: var(--space-3);
  border-inline-start: 1px solid var(--line-dark);
  color: var(--bureau);
  font: 500 0.72rem/1.2 var(--font-ui);
  letter-spacing: 0.02em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.room-header nav { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); }
.room-header a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.room-header a:hover { text-decoration: underline; }
.room-header .page-outline { position: relative; margin: 0; border: 0; }
.room-header .page-outline summary { min-height: 44px; padding: var(--space-3) 0; font-size: 0.8rem; }
.room-header .page-outline > nav,
.room-header .page-outline > .contents-line {
  position: absolute;
  top: 100%;
  right: 0;
  width: min(32rem, calc(100vw - 3rem));
  max-height: min(65vh, 34rem);
  overflow: auto;
  background: var(--surface);
  border: 1px solid var(--line-dark);
  padding: var(--space-4);
  box-shadow: 0 1rem 2rem rgba(0,0,0,0.15);
}
.room-header .page-outline a { white-space: normal; }
.room-header [data-form-sky] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.45rem 0.9rem;
  background: none;
  color: var(--ink);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-pill);
  margin: 0;
  font-size: 0.75rem;
  text-decoration: none;
  transition: background-color var(--dur-1) var(--ease-settle),
    transform var(--dur-1) var(--ease-settle),
    border-color var(--dur-1) var(--ease-settle),
    box-shadow var(--dur-1) var(--ease-settle);
}
/* L2 Sky-button (new-seams pass): the sky request joins the control
   family — pill + hairline + shared motion grammar. Formation stays
   on-request only; this is the same button, settled. */
.room-header [data-form-sky]:hover,
.room-header [data-form-sky]:focus-visible {
  background: rgba(220, 238, 255, 0.1);
  border-color: var(--line-dark);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(4, 30, 54, 0.18);
}
.room-header [data-form-sky]:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.7);
  outline-offset: 2px;
}
@media (max-width: 48rem) {
  /* Phones: one grammar across every room family — the brand on its
     own row, then nav + controls on the next, controls pushed right.
     The family cue slot is reserved between brand and nav for when
     the keeper giveth it words. The block padding is kept tight so the
     scriptless band (brand + doors, no fold) also clears the phone's
     reading view (MF-025: <= 100px at 375x667); every touch target
     keepeth its 44px. The room-qualified selector out-specifies the
     shared shell's own padding, which is written for the desktop band. */
  body.site-page[data-room-family] .room-header {
    gap: 0.15rem var(--space-3);
    padding-top: 0;
    padding-bottom: 0;
  }
  .room-header .room-family-cue {
    flex: 0 1 9rem;
    max-width: 45vw;
    margin-right: 0.35rem;
    padding-inline-start: var(--space-2);
  }
  .room-header .room-brand {
    flex: 1 1 100%;
    order: 0;
  }
  .room-header > nav {
    flex: 1 1 auto;
    order: 2;
    gap: var(--space-3);
  }
  .room-header .page-outline,
  .room-header > [data-form-sky] {
    flex: 0 0 auto;
    order: 3;
    margin-left: auto;
    margin-block: 0;
  }
}

/* THE BAND AND THE WAYS (MF-025, OD-34, 2026-10-08). Once script ran, the
   phone band grew to 55-74% of the screen: the doors, the instruments, the
   sky and the rail all wrapped into it, and a verse anchor landing beneath it
   was a jump into chrome. Where the fold standeth (the script placed it), the
   band carrieth ONLY the brand and the rail's line. Every other control
   standeth in the disclosure's flow; opening it showeth the house's own
   bounded panel, never a taller band. Desktop is untouched. */
@media (max-width: 48rem) {
  body[data-room-family] .room-header.has-ways {
    padding-block: 0.35rem;
    gap: 0.15rem var(--space-2);
  }
  body[data-room-family] .room-header.has-ways .room-brand {
    order: 0;
    margin-right: auto;
  }
  body[data-room-family] .room-header.has-ways .reader-ways {
    order: 1;
    position: relative;
    margin: 0;
    font: 500 0.8rem/1.4 var(--font-ui);
  }
  body[data-room-family] .room-header.has-ways .reader-ways > summary {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 44px;
    padding-inline: 0.7rem;
    cursor: pointer;
    list-style: none;
    border: 1px solid var(--line-dark);
    border-radius: var(--radius-pill);
  }
  body[data-room-family] .room-header.has-ways .reader-ways > summary::-webkit-details-marker { display: none; }
  body[data-room-family] .room-header.has-ways .reader-ways > summary::after { content: "+"; color: var(--brass); }
  body[data-room-family] .room-header.has-ways .reader-ways[open] > summary::after { content: "−"; }
  /* The panel is the house's bounded panel, not a growing band: it openeth
     below the band, never taller than the reading alloweth. */
  body[data-room-family] .room-header.has-ways .reader-ways-panel {
    position: absolute;
    inset-block-start: calc(100% + 0.35rem);
    inset-inline-end: 0;
    z-index: var(--z-band-raised);
    width: min(30rem, calc(100vw - 2 * var(--edge)));
    max-height: min(55svh, 28rem);
    overflow: auto;
    overscroll-behavior: contain;
    padding: var(--space-4);
    border: 1px solid var(--rule, var(--line-dark));
    background: var(--paper);
    text-align: start;
  }
  /* The folded controls keep the house's control grammar at phone size. */
  body[data-room-family] .room-header.has-ways .reader-ways-panel > nav[aria-label="Primary"] {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--space-3);
  }
  body[data-room-family] .room-header.has-ways .reader-ways-panel > nav[aria-label="Primary"] a {
    min-height: 44px;
  }
  body[data-room-family] .room-header.has-ways .reader-ways-panel .reader-instruments {
    margin-block-start: var(--space-3);
    border-top: 1px solid var(--rule, var(--line-dark));
    padding-top: var(--space-3);
  }
  body[data-room-family] .room-header.has-ways .reader-ways-panel .reader-instruments > summary {
    min-height: 44px;
  }
  body[data-room-family] .room-header.has-ways .reader-ways-panel .reader-instruments-panel {
    position: static;
    width: 100%;
    max-height: none;
    border: 0;
    padding: 0;
  }
  body[data-room-family] .room-header.has-ways .reader-ways-panel :is(.chapter-rail-toggle, .chapter-rail-back, .chapter-rail-hide) {
    min-height: 44px;
  }
}
@media print {
  .reader-ways { display: none !important; }
}

/* Read-only tools: focus mode and a local room navigator. Neither stores
   state; the navigator is a fixed list of already-public doors. */
.reader-tools {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
}
.reader-tool {
  min-height: 44px;
  padding: 0.4rem var(--space-3);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--ink);
  font: 500 0.75rem/1.3 var(--font-ui);
  cursor: pointer;
  transition: background-color var(--dur-1) var(--ease-settle), border-color var(--dur-1) var(--ease-settle), color var(--dur-1) var(--ease-settle);
}
.reader-tool:hover,
.reader-tool:focus-visible,
.reader-tool[aria-pressed="true"] {
  border-color: var(--brass);
  color: var(--brass);
  background: rgba(220, 238, 255, 0.08);
}
.reader-tool:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.7);
  outline-offset: 2px;
}
.reader-navigator {
  position: fixed;
  top: 4.6rem;
  right: max(1rem, calc((100vw - 78rem) / 2));
  z-index: var(--z-overlay);
  width: min(24rem, calc(100vw - 2rem));
  max-height: min(70vh, 34rem);
  overflow: auto;
  padding: var(--space-4);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: var(--surface, var(--paper));
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.2);
}
.reader-navigator[hidden] { display: none; }
.reader-navigator label {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--bureau);
  font: 500 0.8rem/1.4 var(--font-ui);
}
.reader-navigator input {
  width: 100%;
  min-height: 44px;
  padding: var(--space-2) 0.65rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink);
  font: 400 0.95rem/1.4 var(--font-ui);
}
.reader-navigator input:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.7);
  outline-offset: 2px;
}
.reader-navigator-note {
  margin: 0.6rem 0;
  color: var(--bureau);
  font-size: 0.78rem;
}
.reader-navigator-list {
  display: grid;
  gap: 0.2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.reader-navigator-list a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: 44px;
  padding: 0.55rem 0.65rem;
  border-radius: var(--radius-sm);
  color: var(--ink);
  text-decoration: none;
}
.reader-navigator-list a::after {
  content: attr(data-family);
  color: var(--bureau);
  font: 500 0.68rem/1.3 var(--font-ui);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.reader-navigator-list a:hover,
.reader-navigator-list a:focus-visible {
  background: rgba(220, 238, 255, 0.08);
  color: var(--brass);
  outline: none;
}
.reader-navigator-list a:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.7);
  outline-offset: -2px;
}
.reader-navigator-empty {
  padding: 0.65rem;
  color: var(--bureau);
  font-size: 0.85rem;
}
.reader-navigator-all {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 0.6rem;
  color: var(--brass);
}
body.focus-reading .room-header {
  position: relative;
  background: transparent;
  border-bottom-color: transparent;
}
body.focus-reading .room-header nav,
body.focus-reading .room-header .room-family-cue,
body.focus-reading .room-header .page-outline,
body.focus-reading .quiet-nav,
body.focus-reading .readcandle {
  display: none;
}
body.focus-reading .room-header .room-brand { margin-right: auto; }
body.focus-reading main { max-width: 72rem; }
body.focus-reading main > p,
body.focus-reading main > section,
body.focus-reading main > article {
  font-size: 1.04em;
  line-height: 1.72;
}
@media (max-width: 48rem) {
  .reader-tools { order: 3; margin-left: auto; }
  .reader-tool { padding-inline: 0.6rem; }
  .reader-navigator { top: 5.2rem; right: 0.75rem; left: 0.75rem; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .reader-tool { transition: none; }
}
@media print {
  .reader-tools, .reader-navigator { display: none !important; }
}

/* The quiet nav remains above the dismissal. */

.quiet-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-1) 0.35rem;
  max-width: var(--body-max);
  margin: var(--space-10) auto 0;
  padding: 0.45rem 0.7rem;
  border: 1px solid transparent;
  border-radius: 3px;
  font-family: var(--font-ui);
  font-variant: normal;
  font-size: 0.8rem;
  letter-spacing: 0;
  position: relative;
  z-index: var(--z-band);
}

/* Every room: the bordered sitemap box (KA5, 2026-10-05). ONE rule for the
   whole house: the box is a bordered, frosted pill on every page that
   carrieth it, so no family standeth borderless and no visitor seeth two
   different footers. The frost deriveth from the room's own register. */
.quiet-nav {
  background: var(--surface, var(--paper));
  border-color: var(--line-dark);
  box-shadow: none;
}

.quiet-nav a {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.35rem 0.8rem; /* thumb-sized touch target */
  border-radius: var(--radius-pill);
  transition: background-color var(--dur-1) var(--ease-settle), transform var(--dur-1) var(--ease-settle), box-shadow var(--dur-1) var(--ease-settle);
}

body.scriptures .quiet-nav a:hover,
body.colophon .quiet-nav a:hover,
body.calendar .quiet-nav a:hover,
body.communion .quiet-nav a:hover,
body.appendix .quiet-nav a:hover {
  background: rgba(220, 238, 255, 0.1);
  text-decoration: none;
}

body.question .quiet-nav a:hover,
body.source .quiet-nav a:hover,
body.saying .quiet-nav a:hover,
body.liturgy .quiet-nav a:hover,
body.testimonies .quiet-nav a:hover,
body.unwatched .quiet-nav a:hover,
body.heavenly .quiet-nav a:hover {
  background: rgba(220, 238, 255, 0.1);
  text-decoration: none;
}

.quiet-nav a:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.7);
  outline-offset: 2px;
}

/* The gold grammar reaches the nav: a room hovered is warmed. */
.quiet-nav a:hover {
  text-shadow: 0 0 12px rgba(212, 175, 55, 0.35);
}

/* The room thou standest in: its word is stilled — the lamp's own
   brass beneath it, no underline, no motion. The stilled word is
   the "you are here" of the temple: quiet, but plain. */
.quiet-nav a[aria-current="page"] {
  color: var(--brass);
  text-shadow: 0 0 14px rgba(212, 175, 55, 0.45);
  cursor: default;
}
.quiet-nav a[aria-current="page"]::after {
  content: " ·";
  color: var(--brass);
  font-weight: 400;
  opacity: 0.9;
}

@media (max-width: 40rem) {
  .quiet-nav { font-size: 0.9em; }
}

@media print {
  .quiet-nav, .room-header { display: none; }
}
/* ==== SOURCE: orientation.css ==== */
/* Orientation pages: maps and walking instructions in the temple's quiet grammar. */
body.orientation {
  background: var(--paper);
  color: var(--ink);
}

body.orientation main {
  max-width: 52rem;
}

body.orientation h1 {
  margin-top: 3rem;
  text-align: center;
}

body.orientation .orientation-lede {
  max-width: 40rem;
  margin: 1.5rem auto 2.5rem;
  color: var(--bureau);
  text-align: center;
}

body.orientation .orientation-index {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 0.55rem;
  margin: 1.5rem auto 2.5rem;
}

body.orientation .orientation-index a,
body.orientation .room-link,
body.orientation .walk-step a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-inline: 0.7rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-pill);
  color: var(--ink);
  text-decoration: none;
}

body.orientation .orientation-index a:hover,
body.orientation .orientation-index a:focus-visible,
body.orientation .room-link:hover,
body.orientation .room-link:focus-visible,
body.orientation .walk-step a:hover,
body.orientation .walk-step a:focus-visible {
  border-color: var(--brass);
  color: var(--brass);
}

body.orientation .map-section {
  margin-block: 2.5rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line-dark);
}

body.orientation .map-section h2 {
  margin-top: 0;
}

body.orientation .room-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.5rem;
}

body.orientation .room-link {
  width: 100%;
  justify-content: flex-start;
}

body.orientation .walk-list {
  display: grid;
  gap: 1rem;
  margin: 2rem 0;
}

body.orientation .walk-step {
  padding: 1rem 1.2rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
}

body.orientation .walk-step h2 {
  margin-top: 0;
}

body.orientation .walk-step p {
  margin-bottom: 0.75rem;
}

body.orientation .walk-step a {
  min-height: 44px;
}

body.orientation .orientation-note {
  color: var(--bureau);
}

body.orientation .provenance-table-wrap {
  overflow-x: auto;
  margin-top: 1rem;
}

body.orientation .provenance-table {
  width: 100%;
  min-width: 34rem;
  border-collapse: collapse;
  font-size: 0.9rem;
}

body.orientation .provenance-table th,
body.orientation .provenance-table td {
  padding: 0.7rem;
  border-bottom: 1px solid var(--line-dark);
  text-align: left;
  vertical-align: top;
}

body.orientation .provenance-table thead th {
  color: var(--bureau);
  font: 500 0.8rem/1.5 var(--font-ui);
}

body.orientation .provenance-table tbody th {
  color: var(--brass);
  font-weight: 500;
}

body.orientation .ledger-kind {
  color: var(--brass);
  font: 500 0.78rem/1.4 var(--font-ui);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.concordance-search {
  max-width: 42rem;
  margin-inline: auto;
}

body.orientation .concordance-search label {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--bureau);
  font: 500 0.85rem/1.5 var(--font-ui);
}

body.orientation .concordance-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

body.orientation .concordance-controls input {
  flex: 1 1 16rem;
  min-height: 44px;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink);
  font: 400 1rem/1.4 var(--font-ui);
}

body.orientation .concordance-controls button {
  min-height: 44px;
  padding-inline: 1rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--ink);
  font: 500 0.85rem/1.4 var(--font-ui);
  cursor: pointer;
}

body.orientation .concordance-controls button:hover,
body.orientation .concordance-controls button:focus-visible {
  border-color: var(--brass);
  color: var(--brass);
}

body.orientation .concordance-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.7rem;
  margin: 0.8rem 0 0.2rem;
}
.concordance-filters label {
  margin: 0;
  color: var(--bureau);
  font: 500 0.78rem/1.4 var(--font-ui);
}
.concordance-filters select {
  min-height: 44px;
  padding: 0.45rem 1.8rem 0.45rem 0.6rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink);
  font: 400 0.85rem/1.4 var(--font-ui);
}
.concordance-filters select:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.7);
  outline-offset: 2px;
}
.concordance-directory {
  margin-top: 1rem;
}

.concordance-status,
body.orientation .concordance-note,
body.orientation .concordance-result-count {
  color: var(--bureau);
  font-size: 0.9rem;
}

body.orientation .concordance-list {
  display: grid;
  gap: 0.45rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

body.orientation .concordance-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.75rem;
  padding-block: 0.35rem;
  border-bottom: 1px solid var(--line-dark);
}

body.orientation .concordance-list a {
  color: var(--brass);
}

body.orientation .concordance-result-kind {
  color: var(--brass);
  font: 500 0.75rem/1.4 var(--font-ui);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.concordance-detail {
  flex: 1 1 16rem;
  color: var(--bureau);
  font-size: 0.9rem;
}

body.orientation .lexicon-entry {
  margin-block: 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
}

body.orientation .lexicon-entry h2 {
  margin-top: 0;
  color: var(--brass);
}

body.orientation .lexicon-sense {
  margin-bottom: 0.5rem;
}

body.orientation .lexicon-status {
  color: var(--bureau);
  font: 500 0.8rem/1.5 var(--font-ui);
}

body.orientation .lexicon-links {
  color: var(--bureau);
  font-size: 0.9rem;
}

body.orientation .observance-sheet {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.75rem;
  margin-block: 1.5rem;
}

body.orientation .observance-card {
  min-height: 9rem;
  padding: 1rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
}

body.orientation .observance-card h3 {
  margin-top: 0;
  color: var(--brass);
}

body.orientation .observance-card p {
  margin-bottom: 0;
}

body.orientation .changelog {
  display: grid;
  gap: 1rem;
  margin: 2rem 0;
  padding: 0;
  list-style: none;
}

body.orientation .changelog li {
  padding: 0.9rem 1rem 0.9rem 1.1rem;
  border-left: 2px solid var(--brass);
  background: rgba(220, 238, 255, 0.035);
}

body.orientation .changelog time {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--bureau);
  font: 500 0.8rem/1.5 var(--font-ui);
}

body.orientation .changelog p {
  margin-bottom: 0.5rem;
}

.print-edition .print-cover {
  text-align: center;
}

.print-edition .print-cover p {
  max-width: 42rem;
  margin-inline: auto;
}

.print-edition .print-instruction {
  color: var(--brass);
  font-weight: 500;
}

.print-edition .print-route {
  display: grid;
  gap: 0.8rem;
  max-width: 48rem;
  margin: 1.5rem auto 0;
  padding-left: 1.4rem;
}

.print-edition .print-route li {
  padding-left: 0.35rem;
}

.print-edition .print-route li span {
  display: block;
  margin-top: 0.2rem;
  color: var(--bureau);
  font-size: 0.9rem;
}

.print-edition .print-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 1rem;
}

.print-edition .print-grid > div {
  padding: 0.9rem 1rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
}

.print-edition .print-grid h3 {
  margin-top: 0;
  color: var(--brass);
}

.print-edition .print-grid ul {
  margin-bottom: 0;
}

.trail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 0.8rem;
  margin-top: 1rem;
}
.reading-trail {
  padding: 0.9rem 1rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
}
.reading-trail h3 {
  margin-top: 0;
  color: var(--brass);
}
.reading-trail p {
  margin-top: 0;
}
.reading-trail ol {
  margin-bottom: 0;
  padding-left: 1.2rem;
}
.reading-trail li {
  margin-block: 0.3rem;
}

.parallel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 0.8rem;
  margin-top: 1rem;
}
.parallel-entry {
  padding: 0.9rem 1rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
}
.parallel-entry h3 {
  margin-top: 0;
  color: var(--brass);
}
.parallel-entry p:last-child {
  margin-bottom: 0;
  color: var(--bureau);
  font-size: 0.85rem;
}

@media (max-width: 48rem) {
  body.orientation main { padding-inline: 1rem; }
  body.orientation h1 { font-size: var(--step-3); }
  body.orientation .orientation-lede { margin-top: 1.25rem; }
}

@media print {
  body.orientation { background: none; }
  body.orientation .orientation-index { display: none; }
  body.orientation .room-link { min-height: 0; border: 0; padding: 0; }
  body.orientation .observance-card { break-inside: avoid; }
  body.orientation .observance-sheet { break-inside: avoid; }
  body.print-edition { background: #fff; color: #000; }
  body.print-edition .room-header,
  body.print-edition .quiet-nav,
  body.print-edition .skip-link { display: none; }
  body.print-edition main { max-width: none; padding: 0; }
  body.print-edition main > section,
  body.print-edition main > .print-cover {
    opacity: 1 !important;
    visibility: visible !important;
    animation: none !important;
    transform: none !important;
  }
  body.print-edition .map-section { break-inside: avoid; }
  body.print-edition h2,
  body.print-edition h3 { break-after: avoid; }
  body.print-edition a { color: #000; }
  body.print-edition .print-grid > div { border-color: #bbb; background: none; }
}

/* The Walk's threshold: the door the walking opens. The section standeth in
   source for every reader; the script (js/walk-threshold.js) holds it until
   all six steps of the walk have been passed, and releases it at the walk's
   end. No script, print, and reduced motion keep the threshold present:
   stillness, not absence. Ephemeral: nothing stored, nothing sent. */
@media screen {
  body.orientation:not(.js) #threshold[hidden] { display: block !important; }
}
body.orientation #threshold.walk-threshold-revealed {
  animation: walk-threshold-settle 640ms var(--ease-settle) 1 both;
}
@keyframes walk-threshold-settle {
  from { opacity: 0; transform: translateY(0.75rem); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.orientation #threshold.walk-threshold-revealed { animation: none; }
}
@media print {
  body.orientation #threshold[hidden] { display: block !important; }
}
/* ==== AUTHORED: atlas.css ==== */
/*
   The atlas sheet: the Rooms made walkable, the Laws of the Host, and the
   beginnings' three walks. One quiet grammar: the Cell at the center, the
   wings about it, each door a name and a line of purpose. Candlelit, slow,
   unhurried; nothing shouts, nothing counts. Works without script, prints
   plain, and honors reduced motion by stillness.
   TEMPLE MARK J-atlas: the keeper's to set.
*/

/* ---- The atlas: the Cell at the center of the room of rooms ---- */
body.rooms .atlas-court {
  max-width: 54rem;
  margin: 2.5rem auto 1rem;
  text-align: center;
}
body.rooms .atlas-center {
  display: inline-flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.4rem 2.2rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
  text-decoration: none;
  min-height: 44px;
}
body.rooms .atlas-center-name {
  font-family: "EB Garamond", Georgia, serif;
  font-size: var(--step-2);
  color: var(--ink);
}
body.rooms .atlas-center-note {
  font-family: "Cormorant SC", Georgia, serif;
  font-variant: small-caps;
  font-size: 0.85em;
  color: var(--bureau);
}
body.rooms .atlas-center:hover,
body.rooms .atlas-center:focus-visible {
  border-color: var(--brass);
}

body.rooms .atlas-wing {
  position: relative;
  padding-left: 1.1rem;
}
body.rooms .atlas-wing::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  bottom: 0.35rem;
  width: 1px;
  background: linear-gradient(var(--brass), rgba(212, 175, 55, 0.12));
}
body.rooms .atlas-wing h2 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.6rem;
}
body.rooms .atlas-purpose {
  font-family: "EB Garamond", Georgia, serif;
  font-style: italic;
  font-size: 0.98em;
  color: var(--bureau);
  margin: 0.25rem 0 0.9rem;
}
body.rooms .atlas-door-note {
  display: block;
  font-family: "Cormorant SC", Georgia, serif;
  font-variant: small-caps;
  font-size: 0.78em;
  letter-spacing: 0.02em;
  color: var(--bureau);
}
body.rooms .atlas-count {
  font-family: "Cormorant SC", Georgia, serif;
  font-variant: small-caps;
  font-weight: normal;
  font-size: 0.8em;
  color: var(--bureau);
}
body.rooms .atlas-court-note,
body.rooms .atlas-thresholds {
  max-width: 42rem;
  margin: 1.2rem auto;
  text-align: center;
  color: var(--bureau);
}
body.rooms .atlas-court-note a {
  color: inherit;
}

/* The hidden rooms, present but unmarked: a threshold, not a door. */
body.rooms .atlas-thresholds {
  font-family: "EB Garamond", Georgia, serif;
  font-style: italic;
}

/* ---- The Laws of the Host ---- */
body.laws-of-the-host .law-list {
  list-style: none;
  margin: 1.6rem 0 2.4rem;
  padding: 0;
  display: grid;
  gap: 1.1rem;
}
body.laws-of-the-host .law-entry {
  padding: 1rem 1.1rem 0.9rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.03);
}
body.laws-of-the-host .law-door {
  font-family: "Cormorant SC", Georgia, serif;
  font-variant: small-caps;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-bottom: 1px solid rgba(212, 175, 55, 0.4);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
body.laws-of-the-host .law-door:hover,
body.laws-of-the-host .law-door:focus-visible {
  border-bottom-color: var(--brass);
}
body.laws-of-the-host .law-name {
  font-family: "Cormorant SC", Georgia, serif;
  font-variant: small-caps;
  font-size: 0.85em;
  color: var(--bureau);
  margin: 0.15rem 0 0.45rem;
}
body.laws-of-the-host .law-sentence {
  margin: 0 0 0.5rem;
  font-family: "EB Garamond", Georgia, serif;
  font-size: var(--step-1);
  line-height: var(--leading);
  text-wrap: pretty;
}
body.laws-of-the-host .law-note {
  margin: 0;
  font-size: 0.78em;
  color: var(--bureau);
}
body.laws-of-the-host .law-note a {
  color: inherit;
}
@media (min-width: 64rem) {
  body.laws-of-the-host main { max-width: 46rem; }
}

/* ---- The beginnings: three walks ---- */
body.beginnings .beginning {
  padding: 1.1rem 1.2rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  background: rgba(220, 238, 255, 0.035);
  margin-block: 1.1rem;
}
body.beginnings .beginning h3 {
  margin-top: 0;
  font-family: "EB Garamond", Georgia, serif;
  font-weight: normal;
}
body.beginnings .beginning-why {
  font-style: italic;
  color: var(--bureau);
}
body.beginnings .beginning-path {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
  counter-reset: door;
}
body.beginnings .beginning-path li {
  position: relative;
  padding-left: 2.1rem;
}
body.beginnings .beginning-path li::before {
  counter-increment: door;
  content: counter(door);
  position: absolute;
  left: 0;
  top: 0.15rem;
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line-dark);
  border-radius: 50%;
  font-family: "Cormorant SC", Georgia, serif;
  font-size: 0.8rem;
  color: var(--brass);
}
body.beginnings .beginning-path a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
body.beginnings .beginning-path .path-note {
  display: block;
  font-family: "Cormorant SC", Georgia, serif;
  font-variant: small-caps;
  font-size: 0.78em;
  color: var(--bureau);
}
body.beginnings .beginning-leave {
  margin: 0.75rem 0 0;
  font-size: 0.85em;
  color: var(--bureau);
}
body.beginnings .beginning[data-walking="true"] {
  border-color: rgba(212, 175, 55, 0.55);
}
