
:root {
  --bg: #11110e;
  --surface: #11110e;
  --text: #e2dfd2;
  --muted: #8f8a78;
  --line: #4b493b;
  --accent: #cfca63;
  --accent-soft: #302f1d;
  --danger: #9b5940;
  --ui: Arial, Helvetica, sans-serif;
  --reading: Charter, "Iowan Old Style", Georgia, serif;
  --data: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --max: none;
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg: #e8e3d2;
  --surface: #e8e3d2;
  --text: #151510;
  --muted: #676252;
  --line: #aaa48d;
  --accent: #5f5b00;
  --accent-soft: #d6d098;
  --danger: #71351f;
  color-scheme: light;
}
@media (prefers-color-scheme: light) {
  :root[data-theme="auto"] {
    --bg: #e8e3d2;
    --surface: #e8e3d2;
    --text: #151510;
    --muted: #676252;
    --line: #aaa48d;
    --accent: #5f5b00;
    --accent-soft: #d6d098;
    --danger: #71351f;
    color-scheme: light;
  }
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 400 12px/1.3 var(--ui);
}
a { color: var(--text); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 2px; }
a:hover { color: var(--bg); background: var(--accent); text-decoration-color: currentColor; }
button, input { border-radius: 0; font: inherit; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.site-header {
  height: 32px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
  background: var(--bg);
  position: sticky;
  top: 0;
  z-index: 20;
}
.site-nav { display: flex; align-items: stretch; width: 100%; height: 100%; gap: 7px; font: 400 11px/32px var(--data); }
.site-nav a { text-decoration: none; white-space: nowrap; }
.site-nav a[aria-current="page"] { border-bottom: 2px solid var(--text); }
.site-nav span { color: var(--muted); }
.site-nav .gate-spacer { flex: 1; }
.gate-link { color: var(--accent); }
.gate-link[data-gate-state="open"] { color: var(--text); border-bottom: 2px solid var(--accent); }
.wordmark { font-weight: 700; }
main { width: auto; margin: 0; padding: 16px 12px 40px; }
footer { padding: 10px 12px 24px; border-top: 1px solid var(--line); }
.theme-toggle { padding: 0; color: var(--muted); background: transparent; border: 0; cursor: pointer; font: 400 10.5px/1.25 var(--data); }
.theme-toggle:hover { color: var(--bg); background: var(--accent); }
.gate-panel { width: min(560px, 100%); margin-top: clamp(24px, 8vh, 96px); border-block: 1px solid var(--line); padding: 18px 0 24px; }
.gate-sigil { margin: 0 0 5px; color: var(--danger); font: 700 11px/1.3 var(--data); letter-spacing: .08em; }
.gate-panel h1 { margin-bottom: 10px; font: 700 30px/1 var(--data); letter-spacing: -.04em; }
.gate-message { max-width: 54ch; color: var(--muted); font: 400 13px/1.5 var(--data); }
.gate-form { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 8px 12px; margin-top: 22px; }
.gate-form label { align-self: center; color: var(--muted); font: 400 10.5px/1.3 var(--data); }
.gate-form input { min-width: 0; height: 30px; padding: 4px 7px; color: var(--text); background: transparent; border: 1px solid var(--line); }
.gate-form input:focus { border-color: var(--accent); outline: 0; }
.gate-form button { grid-column: 2; justify-self: start; height: 30px; padding: 0 10px; color: var(--text); background: transparent; border: 1px solid var(--line); cursor: pointer; font-family: var(--data); }
.gate-form button:hover { color: var(--bg); background: var(--accent); }
.gate-error { color: var(--danger); font: 700 10.5px/1.3 var(--data); }
.gate-return { margin-top: 16px; font: 400 10.5px/1.4 var(--data); overflow-wrap: anywhere; }
h1, h2, h3 { margin: 0; font-weight: 700; }
h1 { font-size: 24px; line-height: 26px; }
.index-page h1 { font: 400 11px/1.25 var(--data); }
h2 { margin-top: 20px; font-size: 14px; line-height: 16px; }
h3 { font-size: 12px; line-height: 15px; }
.data-line, .meta, .path, .measure, .result-status, .breadcrumbs, .passage-source, .passage-locator, .passage-apparatus, .relation-ledger, .source-caption {
  font: 400 10.5px/1.25 var(--data);
}
.data-line, .meta, .path, .result-status { color: var(--muted); }
.archive-tally { margin: 0 0 8px; color: var(--text); }
.search-form { display: flex; width: min(720px, 100%); margin: 8px 0 12px; }
.search-form input { flex: 1; min-width: 0; height: 28px; color: var(--text); background: transparent; border: 1px solid var(--line); padding: 4px 7px; outline: none; }
.search-form input:focus { border-color: var(--text); }
.search-form button { height: 28px; padding: 0 10px; color: var(--text); background: transparent; border: 1px solid var(--line); border-left: 0; cursor: pointer; font-family: var(--data); }
.search-form button:hover { color: var(--bg); background: var(--accent); }
.wing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 16px; }
.wing-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--line); background: none; }
.wing-card strong { font-weight: 400; }
.wing-card span { color: var(--muted); font: 400 10.5px/1.25 var(--data); font-variant-numeric: tabular-nums; text-align: right; }
.breadcrumbs { display: flex; gap: 6px; color: var(--muted); margin-bottom: 12px; }
.breadcrumbs span::before { content: "/"; margin-right: 6px; color: var(--line); }
.kind-section { margin-top: 20px; }
.item-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.item-list li { display: grid; grid-template-columns: minmax(0, 1fr) 72px 72px; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.item-list a { overflow-wrap: anywhere; }
.item-list .measure { color: var(--muted); text-align: right; font-variant-numeric: tabular-nums; }
.metadata { margin: 8px 0 0; border-top: 1px solid var(--line); }
.metadata div, .relation-ledger div, .zone-facts div { display: grid; grid-template-columns: 90px 1fr; padding: 5px 0; border-bottom: 1px solid var(--line); }
.metadata dt, .relation-ledger dt, .zone-facts dt { color: var(--muted); }
.metadata dd, .relation-ledger dd, .zone-facts dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.reader-title { margin-bottom: 12px; }
.reader-title h1 { max-width: 680px; }
.reader-grid { display: grid; grid-template-columns: 220px minmax(520px, 680px) minmax(240px, 1fr); gap: 16px; align-items: start; }
.source-rail, .margin-rail { min-width: 0; }
.source-rail h2, .margin-rail h2 { margin-top: 0; }
.transcript-index { list-style: none; margin: 8px 0 20px; padding: 0; border-top: 1px solid var(--line); }
.transcript-index li { display: grid; grid-template-columns: 48px 1fr; gap: 7px; padding: 5px 0; border-bottom: 1px solid var(--line); font-family: var(--data); font-size: 10.5px; }
.reader-center { min-width: 0; }
.player-sticky { position: sticky; top: 32px; z-index: 10; height: 40px; margin-bottom: 8px; background: var(--bg); }
.player { display: block; width: 100%; height: 40px; margin: 0; accent-color: var(--accent); }
video.player { object-fit: cover; background: #000; }
.source-command { height: 40px; display: flex; align-items: center; border-block: 1px solid var(--line); font-family: var(--data); }
.pending { padding: 7px 0; border-block: 1px solid var(--line); color: var(--muted); }
.passage-list { border-top: 1px solid var(--line); }
.passage-row { display: grid; grid-template-columns: 220px 64px minmax(0, 1fr) minmax(160px, 220px); gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 80px; }
.passage-source { color: var(--muted); overflow-wrap: anywhere; }
.passage-source a { display: block; color: var(--text); }
.passage-kind { display: block; margin-top: 3px; color: var(--muted); }
.passage-locator { align-self: start; color: var(--muted); font-variant-numeric: tabular-nums; }
.passage-locator:hover { color: inherit; background: transparent; text-decoration: underline; }
.passage-text { min-width: 0; font: 400 15px/1.42 var(--reading); overflow-wrap: anywhere; cursor: default; }
.passage-apparatus { color: var(--muted); }
.passage-field { display: block; margin-bottom: 2px; }
.passage-controls { opacity: 0; display: flex; gap: 6px; margin-top: 4px; }
.passage-row:hover .passage-controls, .passage-row:focus-within .passage-controls { opacity: 1; }
.cite-command { padding: 0; color: var(--text); background: transparent; border: 0; cursor: pointer; font: inherit; text-decoration: underline; text-decoration-color: var(--line); }
.cite-command:hover { color: var(--bg); background: var(--accent); }
.reader-passages .passage-row { grid-template-columns: 48px minmax(0, 1fr); gap: 0 12px; padding: 7px 0; }
.reader-passages .passage-source { display: none; }
.reader-passages .passage-apparatus { grid-column: 2; display: flex; flex-wrap: wrap; gap: 2px 10px; padding-top: 4px; }
.reader-passages .passage-field { margin: 0; }
.reader-passages .passage-controls { margin: 0 0 0 auto; }
.passage-row.is-current { box-shadow: inset 3px 0 0 var(--accent); }
.passage-row.is-current .passage-locator { color: var(--accent); }
.timestamp { color: inherit; }
.pdf-passages .passage-row { padding-top: 12px; padding-bottom: 20px; }
.pdf-passages .passage-row + .passage-row { border-top: 1px solid var(--text); }
.result-status { min-height: 14px; margin: 4px 0 8px; }
mark { color: var(--text); background: var(--accent-soft); }
.numogram-heading { margin-bottom: 8px; }
.numogram-layout { display: grid; grid-template-columns: minmax(520px, 1fr) minmax(260px, .48fr) 260px; gap: 16px; align-items: start; }
.diagram-figure, .archive-figure { margin: 0; min-width: 0; }
.numogram { display: block; width: 100%; height: auto; overflow: visible; }
.numogram .perimeter, .numogram .syzygy, .numogram .circuit, .numogram .loop, .numogram .plex { fill: none; vector-effect: non-scaling-stroke; }
.numogram .perimeter, .numogram .syzygy { stroke: var(--line); stroke-width: 1; }
.numogram .circuit { stroke: var(--accent); stroke-width: 1.5; }
.numogram .loop { stroke: var(--danger); stroke-width: 1.5; }
.numogram .plex { stroke: var(--text); stroke-width: 1; stroke-dasharray: 3 5; }
.numogram .node-visible { fill: var(--bg); stroke: var(--text); stroke-width: 1; }
.numogram .node-hit { fill: transparent; stroke: none; }
.numogram .node-number { fill: var(--text); font: 700 10px var(--data); text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.numogram .node-label { fill: var(--text); font: 400 9px var(--data); pointer-events: none; }
.numogram .zone:hover .node-visible, .numogram .zone:focus .node-visible { stroke-width: 2; }
.source-caption { display: block; padding: 5px 0; border-bottom: 1px solid var(--line); color: var(--muted); }
.archive-scan { display: block; width: 100%; max-height: 640px; object-fit: contain; object-position: top left; background: #000; }
.relation-ledger { margin: 0; border-top: 1px solid var(--line); }
.relation-ledger div { grid-template-columns: 82px 1fr; }
.zone-heading { display: grid; grid-template-columns: 48px 1fr; gap: 12px; align-items: baseline; margin-bottom: 8px; }
.zone-number { font: 700 28px/30px var(--data); color: var(--text); }
.zone-facts { margin: 0 0 20px; border-top: 1px solid var(--line); max-width: 720px; }
.thin-basin { margin: 8px 0; font: 400 10.5px/1.25 var(--data); color: var(--muted); }
.zone-passages { margin-top: 8px; }
.query-line { margin-top: 10px; font: 400 10.5px/1.25 var(--data); }
.query-line a { white-space: nowrap; }
.wiki-catalog { max-width: 1180px; }
.wiki-catalog-heading { margin-bottom: 8px; }
.wiki-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; align-items: start; }
.wiki-ledger { border-top: 1px solid var(--line); }
.wiki-ledger h2 { margin: 0; padding: 5px 0; border-bottom: 1px solid var(--line); font: 700 10.5px/1.25 var(--data); text-transform: uppercase; }
.wiki-entry { display: grid; grid-template-columns: minmax(130px, .34fr) minmax(0, 1fr); gap: 12px; padding: 5px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.wiki-entry a { font-weight: 700; }
.wiki-entry p { margin: 0; color: var(--muted); font: 400 10.5px/1.35 var(--data); }
.wiki-page main { max-width: 82ch; }
.wiki-breadcrumbs { margin-bottom: 8px; }
.wiki-frontmatter { margin: 0 0 18px; border-top: 1px solid var(--line); font: 400 10.5px/1.3 var(--data); }
.wiki-frontmatter div { display: grid; grid-template-columns: 72px minmax(0, 1fr); padding: 4px 0; border-bottom: 1px solid var(--line); }
.wiki-frontmatter dt { color: var(--muted); text-transform: uppercase; }
.wiki-frontmatter dd { margin: 0; overflow-wrap: anywhere; }
.wiki-frontmatter .wiki-sources dd { display: grid; gap: 3px; }
.wiki-article { max-width: 68ch; font: 400 16px/1.56 var(--reading); }
.wiki-article h1, .wiki-article h2, .wiki-article h3, .wiki-article h4, .wiki-article h5, .wiki-article h6 { margin: 1.5em 0 .45em; font-family: var(--ui); line-height: 1.15; }
.wiki-article h1 { margin-top: 0; font-size: 28px; }
.wiki-article h2 { font-size: 19px; }
.wiki-article h3 { font-size: 16px; }
.wiki-article p { margin: 0 0 1em; }
.wiki-article a[href*="/media/"] { overflow-wrap: anywhere; }
.wiki-article ul, .wiki-article ol { margin: 0 0 1em; padding-left: 1.5em; }
.wiki-article li { margin: .18em 0; }
.wiki-article blockquote { margin: 0 0 1em; padding: .15em 0 .15em 1em; border-left: 2px solid var(--line); color: var(--muted); }
.wiki-article blockquote p:last-child { margin-bottom: 0; }
.wiki-article .contradiction { border-left-color: var(--danger); color: var(--text); }
.wiki-article .contradiction strong:first-child { color: var(--danger); font: 700 10.5px/1.3 var(--data); letter-spacing: .03em; }
.wiki-article code { font: .82em/1.4 var(--data); background: var(--accent-soft); padding: .08em .25em; }
.wiki-article pre { margin: 0 0 1em; padding: 9px 10px; border: 1px solid var(--line); overflow-x: auto; }
.wiki-article pre code { background: transparent; padding: 0; }
.wiki-article .unwritten { color: var(--muted); text-decoration: underline dotted var(--line); text-underline-offset: 2px; }
.wiki-hero-strip { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 18px; align-items: flex-start; }
.wiki-hero { flex: 0 1 360px; margin: 0; }
.wiki-hero img { display: block; width: auto; max-width: 100%; max-height: 420px; object-fit: contain; object-position: left top; }
.wiki-gallery { margin: 26px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.wiki-gallery h2 { margin: 0 0 10px; font: 700 14px/1.2 var(--ui); }
.wiki-gallery-row { display: flex; flex-wrap: wrap; gap: 10px; }
.wiki-gallery figure { flex: 0 0 120px; width: 120px; margin: 0; }
.wiki-gallery a { display: block; }
.wiki-gallery img { display: block; width: 120px; height: 96px; object-fit: cover; border: 1px solid var(--line); }
.wiki-gallery figcaption { margin-top: 4px; overflow-wrap: anywhere; color: var(--muted); font: 400 9px/1.25 var(--data); }
.wiki-diagram { margin: 0 0 20px; padding: 10px 0; border-block: 1px solid var(--line); }
.wiki-diagram svg { display: block; width: 100%; max-width: 680px; height: auto; color: var(--text); }
.wiki-diagram .diagram-line, .wiki-diagram .diagram-chord, .wiki-diagram .diagram-grid, .wiki-diagram .diagram-spiral, .wiki-diagram .diagram-tic { fill: none; vector-effect: non-scaling-stroke; }
.wiki-diagram .diagram-line, .wiki-diagram .diagram-chord, .wiki-diagram .diagram-spiral { stroke: var(--accent); stroke-width: 1.5; }
.wiki-diagram .diagram-grid, .wiki-diagram .diagram-tic { stroke: var(--line); stroke-width: 1; }
.wiki-diagram .diagram-warp { stroke: var(--danger); stroke-width: 1.5; fill: none; }
.wiki-diagram .diagram-node { fill: var(--bg); stroke: var(--text); stroke-width: 1; }
.wiki-diagram .diagram-cell { fill: var(--accent-soft); stroke: var(--line); stroke-width: .75; }
.wiki-diagram .diagram-empty { fill: transparent; stroke: var(--line); stroke-width: .5; }
.wiki-diagram text { fill: var(--text); font: 400 10px var(--data); }
.wiki-diagram .diagram-label { font-weight: 700; }
.wiki-diagram .diagram-muted { fill: var(--muted); font-size: 9px; }
.wiki-diagram-link { margin: 0 0 18px; padding: 7px 0; border-block: 1px solid var(--line); font: 400 10.5px/1.3 var(--data); }
.trail-catalog, .trail-page main { max-width: 82ch; }
.trail-catalog-heading { margin-bottom: 8px; }
.trail-ledger { border-top: 1px solid var(--line); }
.trail-entry { display: grid; grid-template-columns: minmax(150px, .3fr) minmax(0, 1fr); gap: 14px; padding: 8px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.trail-entry-title { display: flex; justify-content: space-between; gap: 12px; font-weight: 700; }
.trail-entry-count { color: var(--muted); font: 400 10.5px/1.35 var(--data); white-space: nowrap; }
.trail-entry p { margin: 0; color: var(--muted); font: 400 10.5px/1.35 var(--data); }
.trail-article { max-width: 68ch; font: 400 16px/1.56 var(--reading); }
.trail-intro h1 { margin: 0 0 .45em; font: 700 28px/1.15 var(--ui); }
.trail-intro p { margin: 0 0 1em; }
.trail-stop { position: relative; margin: 30px 0 0; padding: 20px 0 0 52px; border-top: 1px solid var(--line); }
.trail-stop-number { position: absolute; top: 21px; left: 0; color: var(--accent); font: 700 24px/1 var(--data); }
.trail-stop h2 { margin: 0 0 .55em; font: 700 19px/1.15 var(--ui); }
.trail-curator p { margin: 0 0 1em; }
.trail-quote { margin: 16px 0 8px; padding: 2px 0 2px 18px; border-left: 2px solid var(--accent); color: var(--text); }
.trail-quote p { margin: 0; }
.trail-citation { margin: 0; color: var(--muted); font: 400 10.5px/1.4 var(--data); }
.trail-citation a { overflow-wrap: anywhere; }
@media (max-width: 1100px) {
  .numogram-layout { grid-template-columns: minmax(500px, 1fr) 260px; }
  .relation-ledger { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
}
@media (max-width: 760px) {
  main { overflow-x: auto; }
  .wing-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); min-width: 500px; }
  .reader-grid { grid-template-columns: 180px minmax(420px, 680px) 220px; min-width: 852px; }
  .passage-list:not(.reader-passages) { min-width: 780px; }
  .passage-row { grid-template-columns: 180px 54px minmax(280px, 1fr) 150px; }
  .numogram-layout { grid-template-columns: 520px 260px 240px; min-width: 1052px; }
  .relation-ledger { grid-column: auto; display: block; }
  .item-list li { grid-template-columns: minmax(260px, 1fr) 68px; }
  .item-list .size { display: none; }
  .wiki-columns { grid-template-columns: 1fr; min-width: 540px; gap: 20px; }
  .trail-entry { grid-template-columns: 1fr; gap: 3px; }
}
@media (max-width: 480px) {
  .site-header { padding-inline: 6px; }
  .site-nav { gap: 3px; font-size: 9.5px; }
  .site-nav a[href*="archive-atlas"] { display: none; }
  .gate-form { grid-template-columns: 1fr; }
  .gate-form button { grid-column: 1; }
}
