:root {
  --color-black: #050607;
  --color-paper: #efefea;
  --color-warm-ink: #6b5e57;
  --color-cobalt: #003cff;
  --color-signal-green: #7fe38a;
  --color-white: #ffffff;
  --surface-dark: var(--color-black);
  --surface-dark-raised: color-mix(in srgb, var(--color-black) 94%, var(--color-white));
  --surface-light: var(--color-paper);
  --text-light-primary: var(--color-warm-ink);
  --text-light-secondary: rgba(107, 94, 87, .72);
  --text-dark-primary: var(--color-white);
  --text-dark-secondary: rgba(255, 255, 255, .72);
  --interaction-primary: var(--color-cobalt);
  --signal-primary: var(--color-signal-green);
  --signal-muted: rgba(127, 227, 138, .72);
  --signal-glow: rgba(127, 227, 138, .28);
  --rule-light: rgba(107, 94, 87, .42);
  --rule-dark: rgba(255, 255, 255, .22);
  --paper: var(--color-paper);
  --ink: var(--color-warm-ink);
  --blue: var(--color-cobalt);
  --article-muted: rgba(107, 94, 87, 0.80);
  --system-muted: var(--color-warm-ink);
  --faint: rgba(107, 94, 87, 0.18);
  --line: rgba(107, 94, 87, 0.42);
  --font-sans: "IBM Plex Sans", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", monospace;
  --sans: var(--font-sans);
  --mono: var(--font-mono);

  /* P7.12D — strict global semantic typography. */
  --type-display-size: 32px;
  --type-display-line: 1.12;
  --type-title-size: 28px;
  --type-title-line: 1.15;
  --type-section-size: 22px;
  --type-section-line: 1.28;
  --type-subhead-size: 18px;
  --type-subhead-line: 1.36;
  --type-lead-size: 18px;
  --type-lead-line: 1.5;
  --type-body-size: 16px;
  --type-body-line: 1.66;
  --type-small-size: 14px;
  --type-small-line: 1.35;
  --type-meta-size: 10px;
  --type-meta-line: 1.35;
  --type-micro-size: 9px;
  --type-micro-line: 1.3;
  --type-display-weight: 400;
  --type-title-weight: 400;
  --type-section-weight: 500;
  --type-subhead-weight: 500;
  --type-lead-weight: 400;
  --type-body-weight: 400;
  --type-meta-weight: 400;
  --type-system-weight: 500;
  --type-display-tracking: -.02em;
  --type-section-tracking: -.015em;
  --type-subhead-tracking: -.008em;
  --type-system-tracking: .045em;
  --type-nav-tracking: .055em;

  --type-map-node-primary-size: 15px;
  --type-map-node-structural-size: 13px;
  --type-map-node-trace-size: 11px;
  --type-card-title-size: 15px;
  --type-card-body-size: 12px;
  --type-card-meta-size: 10px;
  --type-search-display-size: 24px;

  --bg-root: var(--surface-dark);
  --bg-surface: color-mix(in srgb, var(--color-black) 97%, var(--color-white));
  --bg-surface-raised: var(--surface-dark-raised);
  --bg-overlay: rgba(5, 6, 7, .78);
  --bg-reader: #0b0e14;

  --text-primary: var(--text-dark-primary);
  --text-secondary: var(--text-dark-secondary);
  --text-muted: rgba(255, 255, 255, .62);
  --text-disabled: rgba(255, 255, 255, .34);

  --line-default: var(--rule-dark);
  --line-soft: rgba(255, 255, 255, .11);
  --line-active: rgba(0, 60, 255, .82);

  --accent-primary: #003cff;
  --accent-primary-soft: rgba(0, 60, 255, .16);
  --accent-primary-bright: #4f75ff;

  --state-hover: rgba(231, 230, 223, .07);
  --state-active: rgba(0, 60, 255, .14);
  --state-visited: rgba(231, 230, 223, .12);
  --state-disabled: rgba(231, 230, 223, .08);

  --glow-soft: 0 0 18px rgba(0, 60, 255, .14);
  --glow-active: 0 0 28px rgba(0, 60, 255, .28);
  --focus-ring: 0 0 0 1px var(--accent-primary), 0 0 0 4px rgba(0, 60, 255, .18);

  --transition-fast: 120ms ease;
  --transition-medium: 180ms ease;
  --transition-panel: 280ms cubic-bezier(.2, .8, .2, 1);
}

/* P7.12D — semantic typography mappings. Functional geometry is unchanged. */
.brand-title,
.commands .command,
.cluster-nav button,
.map-mode-nav button,
.world-navigation-items button,
.world-navigation-controls button,
.graph-surface-controls button,
.rhizome-view-controls button,
.tracebar,
.map-status {
  font-family: var(--mono);
  font-size: var(--type-meta-size);
  line-height: var(--type-meta-line);
  letter-spacing: var(--type-nav-tracking);
}

.world-navigation-meta,
.lens-status,
.map-orientation,
.trace-label,
.trace button,
.trace-count,
.reader-identification strong,
.reader-actions .command,
.command.small {
  font-family: var(--mono);
  font-size: var(--type-micro-size);
  line-height: var(--type-micro-line);
  letter-spacing: var(--type-system-tracking);
}

.graph-node.tier-core .node-label { font-size: var(--type-map-node-primary-size); }
.graph-node.tier-structural .node-label { font-size: var(--type-map-node-structural-size); }
.graph-node.tier-trace .node-label { font-size: var(--type-map-node-trace-size); }

.rhizome-preview-kicker,
.rhizome-preview-voice-label,
.rhizome-preview-close {
  font: var(--type-meta-weight) var(--type-card-meta-size)/var(--type-meta-line) var(--mono);
  letter-spacing: var(--type-system-tracking);
}
.rhizome-preview-card h2 {
  font: var(--type-title-weight) var(--type-card-title-size)/1.18 var(--sans);
  letter-spacing: 0;
}
.rhizome-preview-card p,
.rhizome-preview-voice {
  font: var(--type-body-weight) var(--type-card-body-size)/1.35 var(--sans);
  letter-spacing: 0;
}
.rhizome-preview-open {
  font: var(--type-meta-weight) var(--type-card-body-size)/1 var(--mono);
  letter-spacing: var(--type-system-tracking);
}

.reader:not(.full-reading) h1,
.guide-content h1 {
  font: var(--type-title-weight) var(--type-title-size)/var(--type-title-line) var(--sans);
  letter-spacing: var(--type-display-tracking);
}
.reader.full-reading:not(.guide-mode) h1 {
  font: var(--type-display-weight) var(--type-display-size)/var(--type-display-line) var(--sans);
  letter-spacing: var(--type-display-tracking);
}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical > h2,
.guide-content h2 {
  font: var(--type-section-weight) var(--type-section-size)/var(--type-section-line) var(--sans);
  letter-spacing: var(--type-section-tracking);
}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical > h3,
.guide-content h3 {
  font: var(--type-subhead-weight) var(--type-subhead-size)/var(--type-subhead-line) var(--sans);
  letter-spacing: var(--type-subhead-tracking);
}
.editorial-lead,
.reader.full-reading:not(.guide-mode) .reader-deck {
  font: var(--type-lead-weight) var(--type-lead-size)/var(--type-lead-line) var(--sans);
}
.node-body,
.reader.full-reading:not(.guide-mode) .source-document.source-canonical,
.guide-content {
  font: var(--type-body-weight) var(--type-body-size)/var(--type-body-line) var(--sans);
}
.source-note p,
.archive-note,
.reader-anticode .source-document blockquote {
  font-size: var(--type-small-size);
  line-height: var(--type-small-line);
}
.node-meta,
figcaption,
.source-caption,
.reader-outline-mobile,
.lexicon-index a {
  font-family: var(--mono);
  font-size: var(--type-meta-size);
  line-height: var(--type-meta-line);
}
.source-document strong { font-weight: 500; }

.search-palette__header h2,
.search-palette__close,
.search-palette__hint,
.search-palette__section-label,
.search-result__meta,
.search-palette__footer {
  font-family: var(--mono);
  font-size: var(--type-meta-size);
  line-height: var(--type-meta-line);
  font-weight: var(--type-system-weight);
  letter-spacing: var(--type-system-tracking);
}
.search-dialog.search-palette .search-palette__input {
  font: var(--type-body-weight) var(--type-search-display-size)/1.18 var(--sans);
}
.search-result__title,
.search-empty span {
  font: var(--type-body-weight) var(--type-small-size)/var(--type-small-line) var(--sans);
}
.search-empty b {
  font: var(--type-system-weight) var(--type-meta-size)/var(--type-meta-line) var(--mono);
  letter-spacing: var(--type-system-tracking);
}

.bogobot-dialogue-body > label,
.bogobot-dialogue-state,
.bogobot-dialogue-actions button,
.bogobot-signal,
.bogobot-signals-refresh,
.bogobot-signals-return,
.bogobot-connection-signal {
  font-family: var(--mono);
  font-size: var(--type-meta-size);
  line-height: var(--type-meta-line);
}
.bogobot-answer,
.voice-line { font-size: var(--type-small-size); line-height: var(--type-small-line); }

@media (max-width: 767px) {
  .reader-scroll,
  .preview-content,
  .source-document { line-height: var(--type-body-line); }
}

/* P7.12 — shared longform navigation family. */
.reader.full-reading .longform-outline,
.reader.full-reading .lexicon-index {
  min-width: 0;
}

.reader.full-reading .lexicon-index a {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .35rem;
  align-items: baseline;
}
.reader.full-reading .lexicon-index a > span:first-child { color: rgba(107,94,87,.42); }
.reader.full-reading .lexicon-index a.active,
.reader.full-reading .lexicon-index a.active > span:first-child { color: var(--blue); }

@media (min-width: 768px) {
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading.has-longform-outline .reader-title-flow > .longform-outline,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading.has-longform-index .reader-title-flow > .lexicon-index {
    position: sticky;
    top: 24px;
    right: auto;
    bottom: auto;
    left: auto;
    align-self: start;
    width: 260px;
    max-width: 260px;
    max-height: calc(100vh - 320px);
    margin: 24px 0 0;
    overflow-y: auto;
    pointer-events: auto;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-rail {
    position: static;
    display: block;
    width: auto;
    max-width: none;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-label,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index .section-label {
    margin: 0 0 8px;
    color: rgba(107,94,87,.5);
    font: 500 var(--type-meta-size)/var(--type-meta-line) var(--mono);
    letter-spacing: .07em;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index > div:last-child {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    border-bottom: 1px solid var(--faint);
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list button,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index a {
    position: relative;
    min-width: 0;
    display: grid;
    grid-template-columns: 2rem minmax(0,1fr);
    gap: .35rem;
    padding: 6px 0;
    border: 0;
    border-top: 1px solid var(--faint);
    background: transparent;
    color: rgba(107,94,87,.58);
    text-align: left;
    cursor: pointer;
    font: 400 var(--type-meta-size)/var(--type-meta-line) var(--mono);
    letter-spacing: .02em;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list button::before { display: none; }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list button span:first-child,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index a > span:first-child { color: rgba(107,94,87,.42); }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list button:hover,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list button:focus-visible,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index a:hover,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index a:focus-visible { color: var(--blue); outline: none; }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list button.active,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-list button.active span:first-child,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index a.active,
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .lexicon-index a.active > span:first-child { color: var(--blue); }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading .longform-outline-mobile { display: none; }
  .app[data-desktop-dialogue-mode="reader"] .reader.full-reading.has-longform-index .lexicon-index {
    padding: 0;
    border: 0;
  }
}

@media (max-width: 767px) {
  .reader.full-reading .lexicon-index {
    width: 100%;
    max-width: none;
    margin: 0 0 2rem;
    padding: 0;
    border-block: 1px solid var(--faint);
  }
  .reader.full-reading .lexicon-index .section-label {
    min-height: 44px;
    display: flex;
    align-items: center;
    margin: 0;
  }
  .reader.full-reading .lexicon-index > div:last-child { display: grid; grid-template-columns: 1fr; gap: 0; }
  .reader.full-reading .lexicon-index a {
    min-height: 44px;
    align-items: center;
    border-top: 1px solid var(--faint);
  }
}

@media (max-width: 767px) {
  :root {
    --type-display-size: 29px;
    --type-section-size: 21px;
    --type-lead-size: 17px;
    --type-small-size: 13px;
    --type-card-title-size: 14px;
    --type-search-display-size: 19px;
  }
}

* { box-sizing: border-box; }

html, body { margin: 0; min-height: 100%; background: var(--paper); color: var(--ink); }
body { font-family: var(--sans); overflow: hidden; }
body:has(.boot:not(.hidden)) { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.boot {
  position: fixed; inset: 0; z-index: 100;
  display: grid; place-items: center;
  overflow: hidden;
  background: var(--paper); transition: opacity .7s ease, visibility .7s;
}
.boot.hidden { opacity: 0; visibility: hidden; }
.boot-noise {
  position: absolute; inset: 0; opacity: .02; pointer-events: none;
  background:
    radial-gradient(ellipse at 18% 22%, rgba(107,94,87,.34), transparent 31%),
    radial-gradient(ellipse at 82% 76%, rgba(107,94,87,.22), transparent 28%),
    linear-gradient(90deg, transparent 0 8%, rgba(107,94,87,.28) 8.05%, transparent 8.12%),
    linear-gradient(0deg, transparent 0 73%, rgba(107,94,87,.22) 73.08%, transparent 73.16%);
  animation: none;
}
.boot-network {
  position: absolute; right: 2vw; bottom: 3vh; width: min(29vw, 420px); height: auto;
  pointer-events: none; color: var(--ink); opacity: .016;
}
.boot-network .network-lines { fill: none; stroke: currentColor; stroke-width: 1; vector-effect: non-scaling-stroke; }
.boot-network .registration-mark { opacity: .65; }
.boot-network .network-points { fill: currentColor; }
.boot-content {
  position: relative; z-index: 1; width: min(1120px, calc(100% - 4rem)); min-height: min(78vh, 700px);
  display: grid; align-content: center;
}
.boot-logo { width: 56px; height: 56px; object-fit: contain; object-position: left top; }
.boot-copy { width: min(100%, 500px); margin: clamp(2rem, 5vh, 4rem) 0 0 clamp(1rem, 8vw, 8rem); }
.boot-copy h1 {
  max-width: 10ch; margin: 0 0 1.75rem;
  font: 400 28px/1.15 var(--sans); letter-spacing: -.02em;
}
.boot-copy p {
  max-width: 460px; margin: 0; color: rgba(81,71,65,.86);
  font: 300 16px/1.55 var(--sans);
}
.boot-system-copy {
  width: min(760px, calc(100vw - 12rem)); margin-top: 2.25rem;
  display: grid; grid-template-columns: minmax(0, 320px) 240px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
  color: rgba(107,94,87,.56); font: 500 10px/1.45 var(--mono); letter-spacing: .09em;
}
.boot-formula { color: var(--ink); font: 400 19px/1.25 var(--mono); letter-spacing: .01em; }
.boot-index {
  width: 240px; display: grid; gap: .12rem; transform: translateY(16px);
  color: rgba(107,94,87,.5);
}
.boot-index span { display: block; }
.boot-index span:nth-child(2),
.boot-index span:last-child { white-space: nowrap; }
.boot-index span:nth-child(2) { margin-top: .45rem; }
.boot-node-label { margin-top: .8rem; }
.boot #enter {
  min-height: 44px; margin-top: 1.25rem; padding: .65rem 0; color: var(--ink); border: 0;
}
.boot #enter span { color: var(--blue); }
.command {
  appearance: none; border: 0; background: transparent;
  padding: .58rem .72rem; font: 500 11px/1 var(--mono); letter-spacing: .055em;
  cursor: pointer; transition: background .18s, color .18s, border-color .18s;
}
.command:hover, .command:focus-visible { background: var(--blue); border-color: var(--blue); color: var(--paper); outline: none; }
.command.primary { padding: .85rem 1.2rem; }
.command.small { padding: .38rem .48rem; font-size: 9px; }
#enter {
  color: var(--ink); background: transparent; cursor: pointer;
  transition: color 150ms ease, text-shadow 150ms ease, outline-color 150ms ease;
}
#enter:hover { color: var(--ink); background: transparent; }
#enter:hover, #enter:focus-visible, #enter:active {
  animation: none;
}
#enter:focus-visible {
  color: var(--ink); background: transparent; outline: 1px solid var(--blue);
  outline-offset: 5px; text-shadow: none;
}
#enter:active { color: var(--ink); background: transparent; text-shadow: none; }

.app { min-width: 0; max-width: 100%; height: 100vh; display: grid; grid-template-rows: var(--global-header-height) 34px 1fr; opacity: 0; transition: opacity .7s; }
.app.map-mode-open { grid-template-rows: var(--global-header-height) 34px 34px 1fr; }
.app.world-navigation-open { grid-template-rows: var(--global-header-height) 34px auto 1fr; }
.app.ready { opacity: 1; }
:root {
  --global-header-height: 64px;
  --global-header-padding-x: 14px;
  --global-header-gap: 18px;
  --global-brand-lockup-width: 310px;
  --global-brand-lockup-min-width: 210px;
  --global-logo-width: 126px;
  --global-logo-height: 50px;
  --global-nav-gap: clamp(.18rem, .5vw, .35rem);
  --global-nav-min-height: 44px;
  --global-nav-padding-x: 12px;
  --global-nav-font-size: 12px;
  --global-nav-line-height: 1;
  --global-nav-letter-spacing: .055em;
  --global-header-border-width: 1px;
  --global-mobile-logo-size: 48px;
  --global-mobile-menu-size: 44px;
}
.topbar {
  min-width: 0; max-width: 100%; height: var(--global-header-height); min-height: var(--global-header-height); border-bottom: var(--global-header-border-width) solid var(--line);
  display: flex; align-items: center; gap: var(--global-header-gap); padding: 0 var(--global-header-padding-x);
}
.brand-lockup {
  flex: 0 1 var(--global-brand-lockup-width); min-width: var(--global-brand-lockup-min-width); height: var(--global-logo-height); display: flex; align-items: center;
  gap: 12px; overflow: hidden; color: inherit;
}
.brand {
  flex: 0 0 var(--global-logo-width); min-width: var(--global-logo-width); width: var(--global-logo-width); height: var(--global-logo-height); display: flex; align-items: center;
  overflow: hidden; color: inherit; text-decoration: none;
}
.brand img { flex: 0 0 var(--global-logo-width); width: var(--global-logo-width); height: var(--global-logo-height); object-fit: contain; object-position: left center; }
.brand-title { min-width: 0; font: 400 10px/1.25 var(--mono); overflow-wrap: normal; }
.brand:focus-visible { outline: 1px solid var(--blue); outline-offset: -2px; }
.commands {
  min-width: 0; max-width: 100%; flex: 1 1 auto; display: flex; justify-content: flex-start; gap: var(--global-nav-gap);
  overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none;
}
.commands::-webkit-scrollbar, .reader-toolbar::-webkit-scrollbar { display: none; }
.commands .command { flex: 0 0 auto; min-height: var(--global-nav-min-height); padding: 0 var(--global-nav-padding-x); font: 400 var(--global-nav-font-size)/var(--global-nav-line-height) var(--mono); letter-spacing: var(--global-nav-letter-spacing); white-space: nowrap; }
.commands a.command { display: inline-flex; align-items: center; color: inherit; text-decoration: none; }
.commands .command:first-child { margin-left: 0; }
.commands #soundButton { margin-left: auto; }
.topbar .commands .command:hover {
  background: var(--faint); border-color: transparent; color: var(--ink);
}
.topbar .commands .command:focus-visible {
  background: transparent; border-color: transparent; color: var(--blue);
  outline: 1px solid var(--blue); outline-offset: -2px;
}
.topbar .commands .command[aria-current="page"] {
  color: var(--blue); border-bottom: 1px solid var(--blue); font-weight: 500;
}
.topbar .commands .command.guide-active,
.topbar .commands .command.guide-active:hover,
.topbar .commands .command.guide-active:focus-visible {
  background: transparent; color: var(--blue); border-bottom: 1px solid var(--blue); font-weight: 500;
}
.cluster-nav,
.map-mode-nav {
  width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box;
  display: flex; align-items: stretch; border-bottom: 1px solid var(--line);
  padding: 0 1px 0 1rem; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain;
  scrollbar-width: none; scroll-behavior: smooth;
}
.cluster-nav::-webkit-scrollbar,
.map-mode-nav::-webkit-scrollbar { display: none; }
.cluster-nav button,
.map-mode-nav button {
  flex: 0 0 auto; min-height: 34px;
  border: 0; border-right: 1px solid var(--faint); border-bottom: 1px solid transparent;
  background: transparent; padding: 0 .9rem; color: var(--ink); cursor: pointer; white-space: nowrap;
  box-sizing: border-box; font: 400 12px/1 var(--mono); letter-spacing: .025em;
}
.cluster-nav button:hover,
.map-mode-nav button:hover {
  color: var(--ink); background: var(--faint);
}
.cluster-nav button:focus-visible,
.map-mode-nav button:focus-visible {
  color: var(--blue); outline: 1px solid var(--blue); outline-offset: -2px;
}
.cluster-nav button.active,
.map-mode-nav button.active {
  color: var(--blue); border-bottom-color: var(--blue); background: transparent; outline: none; font-weight: 500;
}
.cluster-nav small { font: 400 12px/1 var(--mono); opacity: .65; }
.map-mode-nav[hidden] { display: none; }
.world-navigation[hidden] { display: none; }
.world-navigation {
  min-width: 0; max-width: 100%; border-bottom: 1px solid var(--line);
  background: var(--paper); font-family: var(--mono);
}
.world-navigation details { min-width: 0; }
.world-navigation summary { display: none; }
.world-navigation-body {
  min-width: 0; display: grid; grid-template-columns: 150px minmax(0, 1fr) auto;
  gap: .65rem; align-items: stretch; padding: .5rem .75rem;
}
.world-navigation-meta {
  min-width: 0; display: grid; align-content: start; gap: .18rem;
  font: 8px/1.25 var(--mono); letter-spacing: .035em;
}
.world-navigation-meta strong { color: var(--blue); font-size: 10px; }
.world-navigation-meta span { overflow-wrap: anywhere; }
.world-navigation-items {
  min-width: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px; background: var(--faint);
}
.world-navigation-items button,
.world-navigation-controls button {
  min-width: 0; border: 0; background: var(--paper); color: var(--ink);
  padding: .32rem .4rem; text-align: left; cursor: pointer;
  font: 8px/1.15 var(--mono);
}
.world-navigation-items button { display: grid; gap: .12rem; }
.world-navigation-items button span,
.world-navigation-items button small { min-width: 0; overflow-wrap: anywhere; }
.world-navigation-items button small { opacity: .62; font: 7px/1.15 var(--mono); }
.world-navigation-items button:hover,
.world-navigation-items button:focus-visible,
.world-navigation-items button.active,
.world-navigation-controls button:hover,
.world-navigation-controls button:focus-visible {
  color: var(--blue); outline: 1px solid var(--blue); outline-offset: -1px;
}
.world-navigation-controls {
  min-width: 112px; display: grid; grid-template-columns: 1fr 1fr;
  gap: 1px; background: var(--faint);
}
.world-navigation-controls button:last-child { grid-column: 1 / -1; }
.world-navigation-controls button:disabled { cursor: default; opacity: .38; outline: none; color: var(--ink); }
.workspace { position: relative; min-width: 0; max-width: 100%; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, clamp(520px, 43vw, 640px)); }
.desktop-stage-switcher { display: none; }

.map-pane { position: relative; min-width: 0; overflow: hidden; border-right: 1px solid var(--line); }
.map-pane::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .28;
  background-image: linear-gradient(var(--faint) 1px, transparent 1px), linear-gradient(90deg, var(--faint) 1px, transparent 1px);
  background-size: 40px 40px;
}
.map-status {
  position: absolute; z-index: 2; inset: 2.75rem .8rem auto;
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .35rem 1rem;
  font: 9px var(--mono); pointer-events: none;
}
.map-museum-status {
  grid-column: 1 / -1; color: currentColor;
  font: 500 10px/1.35 var(--mono); letter-spacing: .055em;
}
.map-orientation {
  grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .25rem 1rem;
  color: currentColor; opacity: .68; font: 500 8px/1.35 var(--mono); letter-spacing: .045em;
}
.map-orientation[hidden] { display: none; }
.map-heading { min-width: 0; display: flex; align-items: center; gap: .65rem; }
#returnAllNetwork {
  flex: 0 0 auto; border: 0; padding: 0; background: transparent; color: var(--blue);
  cursor: pointer; pointer-events: auto; font: inherit; letter-spacing: .035em;
}
#returnAllNetwork:hover,
#returnAllNetwork:focus-visible { text-decoration: underline; outline: none; text-underline-offset: 3px; }
#returnAllNetwork[hidden] { display: none; }
.lens-status {
  grid-column: 1 / -1; max-width: 34rem; color: var(--ink); opacity: .62;
  font: 8px/1.45 var(--mono); letter-spacing: .035em;
}
.graph-surface-toolbar {
  position: absolute; z-index: 4; top: 0; right: 0; left: 0; height: 32px;
  display: flex; align-items: center; border: 0; border-bottom: 1px solid var(--line);
  justify-content: flex-end;
  background: color-mix(in srgb, var(--paper) 94%, transparent);
}
.graph-surface-toolbar[hidden] { display: none; }
.graph-surface-controls,
.rhizome-view-controls {
  display: flex;
}
.mobile-world-control { display: none; }
.graph-surface-controls button,
.rhizome-view-controls button {
  min-width: 0; min-height: 24px; border: 0; padding: 0 9px;
  background: transparent; color: var(--ink); cursor: pointer; white-space: nowrap;
  font: 500 8px/1 var(--mono); letter-spacing: .07em;
}
.graph-surface-controls { overflow: hidden; border: 1px solid var(--line); border-radius: 2px; }
.graph-surface-controls button + button { border-left: 1px solid var(--line); }
.rhizome-view-controls {
  gap: 4px; margin-left: 7px; margin-right: 7px; border: 0; background: transparent;
}
.rhizome-view-controls button { border: 1px solid var(--line); color: #6f747a; }
.graph-surface-controls button[aria-pressed="true"] { background: var(--blue); color: var(--paper); }
.graph-surface-controls button:hover,
.graph-surface-controls button:focus-visible,
.graph-surface-controls button[aria-pressed="true"],
.rhizome-view-controls button:hover,
.rhizome-view-controls button:focus-visible { color: var(--blue); outline: none; }
.graph-surface-controls button:focus-visible,
.rhizome-view-controls button:focus-visible { box-shadow: inset 0 0 0 1px var(--blue); }
.graph-surface-controls button[aria-pressed="true"] { background: var(--blue); color: var(--paper); }
.surface-3d { background: #050607; }
.surface-3d::before { display: none; }
.surface-3d::after { display: none; }
.surface-3d #graph { display: none !important; }
.surface-3d .map-status { color: #f2f2ee; }
.surface-3d .graph-surface-toolbar { border-color: rgba(255,255,255,.22); background: rgba(0,0,0,.78); }
.surface-3d .graph-surface-controls { border-color: rgba(255,255,255,.18); }
.surface-3d .graph-surface-toolbar button { border-color: rgba(255,255,255,.18); color: rgba(255,255,255,.72); }
.surface-3d .graph-surface-controls button:hover,
.surface-3d .graph-surface-controls button:focus-visible,
.surface-3d .graph-surface-controls button[aria-pressed="true"] { background: var(--blue); color: var(--paper); }

.bogobot-context-actions {
  position: static; transform: none;
  display: flex; flex-wrap: wrap; align-items: stretch; gap: 6px;
  max-width: 100%; margin-top: 18px;
}
.bogobot-context-actions[hidden] { display: none !important; }
.bogobot-context-actions button {
  min-height: 32px; border: 1px solid var(--line); padding: 0 10px;
  background: color-mix(in srgb, var(--paper) 92%, transparent); color: var(--ink);
  cursor: pointer; font: 500 9px/1 var(--mono); letter-spacing: .055em; white-space: nowrap;
}
.bogobot-context-actions button:hover,
.bogobot-context-actions button:focus-visible { color: var(--blue); outline: 1px solid var(--blue); outline-offset: -2px; }

#rhizome3dCanvas {
  position: absolute; z-index: 1; inset: 32px 0 0; display: block; width: 100%; height: calc(100% - 32px);
  background: #050607; cursor: grab; touch-action: none;
}
#rhizome3dCanvas.dragging { cursor: grabbing; }
#rhizome3dCanvas.node-hover { cursor: pointer; }
.rhizome-hover-label {
  position: absolute; z-index: 5; pointer-events: none; opacity: 0; white-space: nowrap;
  padding: 4px 6px; background: rgba(5,6,7,.88); color: #c7c8c4;
  font: 500 10px/1 var(--mono); transform: translate(10px,-11px); transition: opacity .1s ease;
}
.rhizome-hover-label.on { opacity: 1; }
.surface-2d .rhizome-hover-label { display: none; }
.rhizome-preview-card {
  position: absolute; z-index: 30; left: var(--preview-x, 1rem); top: var(--preview-y, 4rem);
  width: min(300px, calc(100% - 32px)); padding: 10px 11px 10px;
  border: 1px solid rgba(231,230,224,.34); border-left-color: var(--blue);
  background: #050607; color: rgba(231,230,224,.92);
  font-family: var(--mono); pointer-events: auto;
}
.rhizome-preview-card[hidden] { display: none !important; }
.rhizome-preview-card #rhizomePreviewClose {
  position: absolute;
  top: 8px;
  right: 8px;
  min-width: 24px;
  padding: 2px 6px;
  border: 0;
  font-size: 16px;
  line-height: 1;
}
.rhizome-preview-kicker {
  margin-bottom: 6px; color: rgba(231,230,224,.54);
  font: 400 10px/1.15 var(--mono); letter-spacing: .04em;
}
.rhizome-preview-card h2 {
  margin: 0 0 7px; color: #fff;
  font: 400 15px/1.18 var(--sans); letter-spacing: 0;
}
.rhizome-preview-card p {
  margin: 0 0 8px; color: rgba(231,230,224,.76);
  font: 400 12px/1.36 var(--sans);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rhizome-preview-card button {
  min-height: 44px; min-width: 96px; padding: 0 11px; border: 1px solid rgba(11,77,255,.34);
  border-left-color: rgba(11,77,255,.86); background: rgba(11,77,255,.035); color: #b6c6ff; cursor: pointer;
  font: 400 12px/1 var(--mono); letter-spacing: .035em; text-align: left;
}
.rhizome-preview-card button:hover,
.rhizome-preview-card button:focus-visible {
  outline: 1px solid var(--blue); outline-offset: 3px; color: #fff; border-color: var(--blue);
}
.rhizome-preview-card.micro-preview {
  width: min(260px, calc(100% - 32px));
  padding: 16px 18px 18px;
}
.rhizome-preview-card.micro-preview .rhizome-preview-kicker { margin-bottom: 4px; }
.rhizome-preview-card.micro-preview h2 {
  margin-bottom: 12px;
  font-size: 18px;
  line-height: 1.2;
}
.rhizome-preview-card .rhizome-preview-voice-label {
  margin: 0 0 4px; color: var(--blue);
  font: 400 10px/1.2 var(--mono); letter-spacing: .04em;
  text-transform: uppercase;
}
.rhizome-preview-card .rhizome-preview-voice-label::before { content: "// "; }
.rhizome-preview-card.micro-preview p {
  margin: 0;
  padding-left: 0;
  color: rgba(231,230,224,.88);
  font: 400 14px/1.48 var(--sans);
  letter-spacing: 0;
  text-align: left;
  -webkit-line-clamp: 3;
}
.rhizome-preview-card.micro-preview #rhizomePreviewRead {
  display: inline-flex;
  align-items: center;
  width: auto;
  margin-top: 12px;
  min-height: 44px;
  min-width: 0;
  padding-inline: 0 8px;
  border: 0;
  background: transparent;
  color: var(--blue);
  font-size: 12px;
}
.rhizome-preview-card.micro-preview #rhizomePreviewRead:hover {
  border: 0;
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rhizome-preview-card.mobile {
  position: fixed; left: 12px; right: 12px; top: auto; bottom: calc(12px + env(safe-area-inset-bottom));
  width: auto; max-height: 20vh; overflow: hidden; padding: 8px 10px 9px;
}
.rhizome-preview-card.mobile.micro-preview {
  left: 50%;
  right: auto;
  width: min(72vw, 280px);
  max-height: 24vh;
  transform: translateX(-50%);
}
.rhizome-preview-card.mobile .rhizome-preview-kicker { margin-bottom: 4px; }
.rhizome-preview-card.mobile h2 {
  margin-bottom: 5px; font-size: 14px; line-height: 1.12;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rhizome-preview-card.mobile.micro-preview h2 {
  margin-bottom: 8px; font-size: 16px; line-height: 1.2;
}
.rhizome-preview-card.mobile p {
  margin-bottom: 6px; line-height: 1.28; -webkit-line-clamp: 2;
}
.rhizome-preview-card.mobile.micro-preview p {
  font-size: 11px;
  -webkit-line-clamp: 2;
}
.rhizome-preview-card.mobile.micro-preview #rhizomePreviewRead { margin-top: 8px; }
.rhizome-preview-card.mobile button {
  min-height: 44px; min-width: 92px; padding-inline: 10px; background: rgba(11,77,255,.026);
}
.rhizome-preview-card.mobile.micro-preview button {
  min-width: 90px;
  background: transparent;
}
.surface-2d .rhizome-preview-card { display: none !important; }
#rhizome3dCanvas[hidden], #graph[hidden], .minimap[hidden], .legend[hidden] { display: none !important; }
.graph-surface-toolbar[hidden] ~ .map-status { inset-block-start: .75rem; }
.graph-surface-toolbar[hidden] ~ #rhizome3dCanvas { inset-block-start: 0; height: 100%; }
.graph-surface-toolbar:not([hidden]) ~ #graph { height: calc(100% - 32px); margin-top: 32px; }

@media (max-width: 900px) {
  .graph-surface-toolbar button { min-height: 28px; padding: 0 7px; font-size: 10px; line-height: 1.15; }
  .bogobot-context-actions { max-width: 100%; }
  .bogobot-context-actions button { min-height: 44px; padding-inline: 9px; font-size: 8px; }
 }
#graph { display: block; width: 100%; height: 100%; min-width: 0; max-width: 100%; overflow: hidden; }
#graphViewport {
  transform-box: view-box;
  transform-origin: 0 0;
  transition: transform .45s cubic-bezier(.2,.8,.2,1);
}
.history-marker {
  color: var(--ink); pointer-events: none;
  font-family: var(--mono); letter-spacing: .035em;
  opacity: .62;
}
.history-marker-dot {
  fill: var(--paper); stroke: currentColor; stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}
.history-marker-line { fill: currentColor; }
.history-marker-line-1 { font-size: 9px; font-weight: 400; opacity: .76; }
.history-marker-line-2 { font-size: 9px; font-weight: 500; }
.relic-external-guide {
  stroke: var(--ink); stroke-width: .58; stroke-dasharray: 3 6;
  opacity: .10; vector-effect: non-scaling-stroke; pointer-events: none;
}
.relic-ghost-node {
  color: var(--ink); opacity: .28; pointer-events: none;
}
.relic-ghost-mark {
  fill: var(--paper); stroke: currentColor; stroke-width: 1.15;
  vector-effect: non-scaling-stroke;
}
.relic-ghost-cross {
  stroke: currentColor; stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.relic-external-label {
  fill: var(--ink); font: 500 8px var(--mono); letter-spacing: .045em;
  opacity: .48; pointer-events: none;
  paint-order: stroke; stroke: var(--paper); stroke-width: 3px; stroke-linejoin: round;
}
.edge.filtered:not(.active):not(.recommended):not(.active-neighbor) { opacity: .12 !important; }
.edge { fill: none; stroke: var(--ink); stroke-width: 1.04; opacity: .24; vector-effect: non-scaling-stroke; }
.edge.hidden { display: none; }
.edge.frontier { opacity: .20; }
.edge.world { stroke-width: 1.08; }
.edge.schools { stroke-dasharray: 7 6; }
.edge.glossary { stroke-dasharray: 1 6; stroke-linecap: round; }
.edge.topography { stroke-dasharray: 14 5 2 5; }
.edge.active-neighbor {
  stroke: var(--ink);
  stroke-width: 1.62;
  opacity: .66 !important;
}
.edge.recommended {
  stroke: var(--blue);
  stroke-width: 1.70;
  opacity: .72 !important;
}
.edge.synthetic {
  stroke-dasharray: 2 7;
  opacity: .22;
}
.reader-open .edge.reader-horizon { opacity: .28; }
.reader-open .edge.reader-horizon.active-neighbor { opacity: .68 !important; }
.reader-open .edge.reader-horizon.synthetic { opacity: .22; }
.reader-open .edge.reader-context { opacity: .20; }
.reader-open .edge.reader-latent { opacity: .16; }
.reader-open .edge.recommended { opacity: .74 !important; }
.network-overview .edge.overview-horizon { opacity: .28; }
.network-overview .edge.overview-horizon.active-neighbor { opacity: .66 !important; }
.network-overview .edge.overview-discovered { stroke: var(--ink); stroke-width: 1.04; opacity: .24; }
.network-overview .edge.overview-latent { opacity: .16; }
.network-overview .edge.recommended { opacity: .74 !important; }
.map-mode-relics .edge.overview-discovered,
.map-mode-relics .edge.overview-horizon,
.map-mode-relics .edge.reader-horizon,
.map-mode-relics .edge.reader-context,
.map-mode-relics .edge.reader-latent {
  stroke: var(--ink);
  stroke-width: .82;
  opacity: .18;
}
.map-mode-relics .edge.active-neighbor {
  stroke: var(--ink);
  stroke-width: 1.50;
  opacity: .64 !important;
}
.map-mode-relics .edge.recommended {
  stroke: var(--blue);
  stroke-width: 1.58;
  opacity: .70 !important;
}
.graph-node { cursor: pointer; opacity: .82; transition: opacity .2s; }
.graph-node.tier-core { opacity: 1; }
.graph-node.tier-structural { opacity: .82; }
.graph-node.tier-trace { opacity: .58; }
.graph-node.hidden { display: none; }
.graph-node.frontier { opacity: .34; }
.node-mark {
  fill: var(--paper); stroke: var(--ink); stroke-width: 2;
  vector-effect: non-scaling-stroke; transition: fill .2s, stroke .2s, opacity .2s;
}
.node-hit { fill: transparent; stroke: none; pointer-events: all; }
.graph-node.tier-core .node-mark, .graph-node.tier-core .node-cross { stroke-width: 3; }
.graph-node.tier-structural .node-mark, .graph-node.tier-structural .node-cross { stroke-width: 2; }
.graph-node.tier-trace .node-mark, .graph-node.tier-trace .node-cross { stroke-width: 1.35; }
.graph-node.locked { cursor: default; }
.node-label {
  font-family: var(--mono);
  font-size: var(--node-label-size, 13px);
  font-weight: 500;
}
.graph-node.locked .node-label {
  font-family: var(--mono);
  font-size: var(--node-label-size, 13px);
  font-weight: 500;
  fill: var(--paper); fill-opacity: 1; opacity: 1; letter-spacing: .01em;
  paint-order: normal; stroke: none; stroke-width: 0; stroke-linejoin: initial;
  filter: none; text-shadow: none; -webkit-text-stroke: 0;
  pointer-events: none;
}
.graph-node.tier-core .node-label { --node-label-size: 15px; font-weight: 500; }
.graph-node.tier-structural .node-label { --node-label-size: 13px; font-weight: 500; }
.graph-node.tier-trace .node-label { --node-label-size: 11px; font-weight: 400; }
.graph-node.active .node-label,
.graph-node.visual-focus .node-label { display: block; fill: var(--blue); opacity: 1; font-weight: 500; }
.graph-node:hover:not(.locked) .node-label,
.graph-node:focus-visible .node-label { fill: var(--blue); }
.graph-node.route-parent { opacity: .88; }
.graph-node.route-parent .node-mark {
  stroke: var(--ink);
  filter: none;
}
.graph-node.route-parent .node-label { fill: var(--blue); }
.graph-node.filtered:not(.active):not(:hover):not(:focus-visible):not(.cluster-preview) { opacity: .07 !important; }
.reader-open .graph-node.continuation {
  opacity: .82 !important; pointer-events: auto;
}
.reader-open .graph-node.continuation .node-label {
  display: block; opacity: 1; fill: var(--paper);
}
.reader-open .graph-node.continuation:hover .node-label,
.reader-open .graph-node.continuation:focus-visible .node-label { fill: var(--blue); }
.network-overview .graph-node.continuation {
  opacity: .82 !important; pointer-events: auto;
}
.network-overview .graph-node.continuation .node-label {
  display: block; opacity: 1; fill: var(--paper);
}
.network-overview .graph-node.continuation:hover .node-label,
.network-overview .graph-node.continuation:focus-visible .node-label { fill: var(--blue); }
.network-overview .graph-node.lens-discovered:not(.active):not(.continuation) { opacity: .68; }
.network-overview .graph-node.lens-discovered:not(.active):not(.continuation) .node-label {
  display: block; opacity: .84; fill: var(--paper);
}
.network-overview .graph-node.lens-outside:not(.active):not(.continuation) { opacity: .2; }
.local-focus .graph-node.principal-school {
  display: inline; opacity: .78 !important; pointer-events: auto;
}
.local-focus .graph-node.principal-school .node-label {
  display: block; opacity: 1; fill: var(--paper);
}
.local-focus .graph-node.display-context { opacity: .28; }
.local-focus .graph-node.display-latent { opacity: .08 !important; }
.local-focus .graph-node.display-latent .node-label { display: none; }
.network-overview .graph-node.display-context { opacity: .38; }
.network-overview .graph-node.display-context .node-label { display: none; }
.network-overview .graph-node.display-context.overview-labeled { opacity: .48; }
.network-overview .graph-node.display-context.overview-labeled .node-label {
  display: block; opacity: .74; fill: var(--paper);
}
.network-overview .graph-node.display-latent { opacity: .04 !important; pointer-events: none; }
.network-overview .graph-node.display-latent .node-label { display: none; }
.reader-open .graph-node.route-parent:not(.active):not(:hover):not(:focus-visible) .node-mark {
  stroke: var(--ink); filter: none;
}
.reader-open .graph-node.route-parent:not(.active):not(:hover):not(:focus-visible) .node-label { fill: var(--blue); }
.node-thumb { pointer-events: none; }
.node-thumb image { filter: grayscale(1) contrast(1.1); opacity: .78; }
.node-cross { stroke: var(--ink); stroke-width: 2; vector-effect: non-scaling-stroke; }
.graph-node.active .node-cross,
.graph-node.visual-focus .node-cross,
.graph-node:hover:not(.locked) .node-cross,
.graph-node:focus-visible .node-cross,
.graph-node.cluster-preview .node-cross { stroke: var(--blue); }
.graph-node.cluster-preview .node-mark { fill: var(--blue); stroke: var(--blue); }
.graph-node.cluster-preview .node-label { fill: var(--blue); }
.network-overview .graph-node.visual-focus { opacity: 1 !important; }
.network-overview .graph-node.visual-focus .node-mark {
  fill: var(--blue); stroke: var(--blue);
}
.network-overview .graph-node.visual-focus .node-label {
  display: block; fill: var(--blue); opacity: 1; font-weight: 500;
}
.legend { display: none; }
.minimap { display: none; }
.minimap-label { position: absolute; top: .3rem; left: .4rem; font: 7px var(--mono); }
#minimap { width: 100%; height: 100%; }
.mini-edge { stroke: rgba(107,94,87,.25); stroke-width: 2; }
.mini-node { fill: var(--paper); stroke: var(--ink); stroke-width: 3; }
.mini-node.open { fill: var(--ink); }
.mini-node.current { fill: var(--blue); stroke: var(--blue); }
.legend span { display: flex; align-items: center; gap: .4rem; }
.legend-shape { width: 9px; height: 9px; display: inline-block; border: 1px solid var(--ink); }
.legend-shape.canon { border-radius: 50%; }
.legend-shape.schools { transform: rotate(45deg); }
.legend-shape.glossary { border-radius: 50%; box-shadow: inset 0 0 0 2px var(--paper), inset 0 0 0 3px var(--ink); }
.legend-shape.topography { border: 0; position: relative; }
.legend-shape.topography::before, .legend-shape.topography::after { content: ""; position: absolute; background: var(--ink); }
.legend-shape.topography::before { width: 1px; height: 11px; left: 4px; top: -1px; }
.legend-shape.topography::after { width: 11px; height: 1px; top: 4px; left: -1px; }

.reader {
  --reader-text-measure: 56ch;
  --reader-wide-measure: 42rem;
  min-width: 0; max-width: 100%; overflow: hidden; background: var(--paper);
  display: grid; grid-template-rows: auto minmax(0, 1fr); transition: .35s;
}
.workspace.reader-closed { grid-template-columns: 1fr 0; }
.workspace.reader-closed .reader { width: 0; overflow: hidden; border: 0; }
.workspace.reader-closed .map-pane { border-right: 0; }
.reader.expanded { position: fixed; z-index: 20; inset: 0; width: min(820px, 100%); margin-left: auto; border-left: 1px solid var(--line); }
.reader-toolbar {
  position: relative; z-index: 2; min-width: 0; max-width: 100%; min-height: 40px;
  border-bottom: 1px solid var(--line); background: var(--paper);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .25rem clamp(.35rem, 1vw, .75rem);
  padding: .25rem .75rem; font: 9px var(--mono);
}
.reader-identification {
  min-width: 0; flex: 1 1 12rem; display: grid; gap: .12rem;
  white-space: normal; overflow-wrap: anywhere;
}
.reader-identification strong { font: 500 9px/1.3 var(--mono); letter-spacing: .045em; }
.reader-identification #nodeCode { opacity: .62; font: 8px/1.25 var(--mono); }
.reader-actions { min-width: 0; max-width: 100%; flex: 0 1 auto; display: flex; flex-wrap: wrap; gap: .25rem .35rem; margin-left: auto; }
.reader-actions .command { flex: 0 0 auto; white-space: nowrap; }
.reader-scroll { position: relative; z-index: 1; min-width: 0; max-width: 100%; min-height: 0; overflow-x: hidden; overflow-y: auto; overflow-anchor: none; padding: clamp(2rem, 3vw, 3rem); scroll-padding-top: 1.25rem; container-type: inline-size; }
.reader.guide-mode .reader-scroll > :not(#guideContent) { display: none; }
.guide-content[hidden] { display: none; }
.guide-content { min-width: 0; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure); }
.reader .guide-content > h1 { margin-top: 0; }
.guide-steps {
  margin: 1.25rem 0 1.8rem; padding: .9rem 0 .9rem 1.25rem;
  border-block: 1px solid var(--line); color: #514741;
  font: 400 clamp(15px, .95vw, 16px)/1.55 var(--sans);
}
.guide-steps li { margin: .3rem 0; padding-left: .05rem; }
.guide-steps li::marker { color: rgba(107,94,87,.58); font: 500 9px var(--mono); }
.guide-command { font-family: var(--mono); font-size: .9em; letter-spacing: .015em; }
.guide-divider { margin: 0 0 2.4rem; border-top: 1px solid var(--faint); }
body .reader.guide-mode .guide-document.source-document.source-canonical {
  display: block; position: relative; width: 100%; max-width: var(--reader-text-measure);
  color: #514741; font: 400 clamp(16px, .95vw, 16.5px)/1.6 var(--sans);
}
body .reader.guide-mode:not(.full-reading) .guide-document.source-document.source-canonical > * { display: block; }
.app strong,
.app b { font-weight: 500; }
.reader strong,
.reader b,
.search-dialog strong,
.search-dialog b { font-weight: 500; }
body .reader.guide-mode .guide-document .archive-note { display: block; }
.app.is-guide-open .map-pane {
  pointer-events: none;
}
.app.is-guide-open .tracebar {
  pointer-events: none; opacity: .48; transition: opacity .18s ease;
}
.reader.guide-mode .guide-document.source-canonical > p { margin: 0 0 .82em; }
.reader.guide-mode .guide-document.source-canonical > h2 {
  margin: 3rem 0 .8em; font: 400 20px/1.28 var(--sans); letter-spacing: -.01em;
}
.reader.guide-mode .guide-document.source-canonical > h3 {
  margin: 2em 0 .7em; font: 400 18px/1.34 var(--sans); letter-spacing: 0;
}
.reader.guide-mode .guide-document.source-canonical > h4 {
  margin: 2.1rem 0 .72rem; font: 500 clamp(11px, .85vw, 13px)/1.42 var(--mono); letter-spacing: .065em; text-transform: uppercase;
}
.reader.guide-mode .guide-document.source-canonical > h2[data-section]::before {
  content: attr(data-section); display: block; margin: 0 0 .35rem;
  color: rgba(107,94,87,.55); font: 500 9.5px/1.35 var(--mono); letter-spacing: .08em;
}
.node-meta { min-width: 0; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure); display: flex; flex-wrap: wrap; gap: .28rem .7rem; color: rgba(107,94,87,.68); font: 10px/1.35 var(--mono); letter-spacing: .045em; }
#nodeType { order: 1; }
#nodeState, #nodeSourceStatus, #nodeRecovery { order: 2; }
#nodeType {
  flex: 1 0 100%; margin: 0; color: inherit; font-size: 10px; letter-spacing: .055em;
}
.reader h1 {
  min-width: 0; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure); margin: 1.4rem 0 .75rem;
  font: 400 28px/1.15 var(--sans);
  letter-spacing: -.02em; text-wrap: balance;
  overflow-wrap: normal; word-break: normal; hyphens: none;
}
.node-subtitle {
  width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure); margin: -.15rem 0 .7rem;
  font: 400 clamp(17px, 1.15vw, 19px)/1.45 var(--sans);
}
.node-subtitle[hidden] { display: none; }
.formula {
  min-width: 0; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure); margin: 0; color: inherit;
  font: 400 clamp(19px, 1.35vw, 22px)/1.4 var(--sans);
  white-space: normal; overflow-wrap: normal; word-break: normal;
}
.editorial-lead {
  max-width: var(--reader-text-measure);
  font: 400 clamp(17.5px, 1.2vw, 19px)/1.52 var(--sans);
  color: #514741;
}
.formula.formula-line { color: #514741; font: 500 15px/1.5 var(--mono); letter-spacing: .025em; }
.reader.full-reading .formula.brief-only-formula { display: none; }
.node-body { position: relative; min-width: 0; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure); font-size: clamp(16px, .95vw, 16.5px); line-height: 1.6; font-weight: 400; }
.node-body p { margin: 0 0 .82em; }
.body-heading { font-family: var(--sans); font-weight: 500; }
.process-step {
  position: relative; display: grid; grid-template-columns: minmax(6.5rem, 9.5rem) minmax(0, 1fr);
  gap: .75rem 1rem; padding: .8rem 0 .9rem 1rem;
  border-left: 1px solid var(--line); border-bottom: 1px solid var(--faint);
}
.process-name, .source-list-heading {
  font: 500 11px/1.45 var(--mono); letter-spacing: .055em;
}
.process-copy { min-width: 0; font-family: var(--sans); }
.node-body p:has(> .process-step) {
  margin: 0; padding-inline: 24px;
  border-inline: 1px solid var(--line);
}
.node-body p:has(> .process-step):not(:has(+ p > .process-step)) {
  margin-bottom: .82em; padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}
.node-body p:not(:has(> .process-step)) + p:has(> .process-step),
.node-body p:has(> .process-step):first-child {
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.source-list-heading {
  display: block; margin-top: 1.7rem; padding-bottom: .4rem;
  border-bottom: 1px solid var(--faint);
}
.source-list-item {
  display: block; padding: .45rem 0 .65rem 1rem;
  border-left: 1px solid var(--line);
}
.reader-system-label {
  margin: 0 0 .65rem; color: var(--blue);
  font: 500 12px/1.4 var(--mono); letter-spacing: .075em;
}
.reader-system-label[hidden] { display: none; }
.reader-divider {
  width: min(100%, var(--reader-text-measure)); height: 1px; margin: 1.35rem 0;
  background: var(--line);
}
.archive-note {
  width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure);
  margin: 2.2rem 0 0; padding: .15rem 0 .15rem 1rem;
  border: 0; border-left: 2px solid var(--line);
  background: transparent; color: var(--ink);
}
.archive-note[hidden], .reader:not(.full-reading) .archive-note { display: none; }
.archive-note .section-label {
  margin: 0; color: var(--ink);
  font: 500 12px/1.35 var(--mono); letter-spacing: .065em;
}
.archive-note-header {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem 1rem;
  margin: 0 0 .75rem;
}
.archive-note-status {
  color: var(--system-muted); font: 400 9px/1.4 var(--mono); letter-spacing: .05em;
}
.archive-note p { max-width: 62ch; margin: 0; font: 400 clamp(15px, 1vw, 16px)/1.56 var(--sans); }
.source-archive-note { margin: 1.65rem 0 2rem; }
.source-archive-note p { font-style: italic; }
.preview-content { min-width: 0; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure); }
.support-links, .cluster-index, .routes { min-width: 0; max-width: 36em; }
.preview-content { margin-top: 0; padding-top: 0; border-top: 0; }
.support-links { margin: 1.5rem 0; border-top: 1px solid var(--line); padding-top: .75rem; }
.support-link {
  display: block; width: 100%; border: 0; border-bottom: 1px solid var(--faint);
  background: transparent; color: var(--ink); padding: .58rem 0;
  text-align: left; cursor: pointer; font: 10px/1.35 var(--mono);
}
.support-link.current { color: var(--blue); cursor: default; }
.support-link:hover, .support-link:focus-visible { color: var(--blue); outline: none; }
.reader:not(.full-reading) .node-body p:nth-child(n+3) { display: none; }
.source-document { display: none; }
.reader.full-reading .source-brief { display: none; }
.reader.full-reading .source-document { display: block; }
.reader.full-reading .source-brief { display: none; }
.source-brief:empty { display: none; }
.source-document.source-canonical { display: block; }
.reader:not(.full-reading) .source-document.source-canonical { display: none; }
.reader:not(.full-reading) .source-document.source-canonical > :nth-child(n+3) { display: none; }
.source-document h2,
.source-document h3,
.source-document h4,
.source-document h5,
.source-document h6 {
  margin: 1.8rem 0 .7rem; font: 500 13px/1.4 var(--mono); letter-spacing: .045em;
}
.reader.full-reading .source-document.source-canonical {
  position: relative; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure);
  color: #514741;
  font: 400 clamp(16px, .95vw, 16.5px)/1.6 var(--sans);
}
.reader.full-reading .source-document.source-canonical > p { margin: 0 0 .82em; }
.reader.full-reading .source-document.source-canonical > h2 {
  margin: 3.8rem 0 .85em;
  font: 500 clamp(24px, 1.7vw, 28px)/1.22 var(--sans);
  letter-spacing: -.015em;
}
.reader.full-reading .source-document.source-canonical > h3 {
  margin: 2.2em 0 .72em;
  font: 500 clamp(18px, 1.3vw, 21px)/1.32 var(--sans);
  letter-spacing: -.008em;
}
.reader.full-reading .source-document.source-canonical > h4 {
  margin: 2.1rem 0 .72rem;
  font: 500 clamp(11px, .85vw, 13px)/1.42 var(--mono);
  letter-spacing: .065em; text-transform: uppercase;
}
.reader.full-reading .source-document.source-canonical > h5,
.reader.full-reading .source-document.source-canonical > h6 {
  margin: 1.9rem 0 .7rem;
  font: 500 12px/1.4 var(--mono);
  letter-spacing: .055em;
}
.source-document :is(h2,h3,h4,h5,h6) { scroll-margin-top: 4rem; }
.reader.full-reading .source-document.source-canonical > h2[data-section]::before {
  content: attr(data-section); display: block; margin: 0 0 .35rem;
  color: rgba(107,94,87,.55); font: 500 9.5px/1.35 var(--mono); letter-spacing: .08em;
}
.reader.full-reading .source-document.source-canonical > h2[data-section] + h3 {
  margin-top: 2.65em;
}
.reader.full-reading .source-document.source-canonical > h2.lexicon-entry {
  margin: 2.35rem 0 .72rem; font-size: clamp(20px, 1.45vw, 22px); line-height: 1.28;
}
.reader.full-reading .source-document.source-canonical > h2.lexicon-entry::before {
  content: attr(data-entry); display: block; margin-bottom: .3rem;
  color: rgba(107,94,87,.46); font: 500 8.5px/1.3 var(--mono); letter-spacing: .075em;
}
.reader.full-reading .source-document.source-canonical > h2.formula-heading {
  max-width: 46ch; margin: 2.8rem 0 1rem; color: #514741;
  font: 400 clamp(15px, 1.05vw, 17px)/1.45 var(--mono); letter-spacing: .01em;
}
.reader.full-reading .source-document.source-canonical > h2.formula-heading::before {
  content: attr(data-formula); display: block; margin-bottom: .75rem; color: var(--blue);
  font: 500 9px/1.35 var(--mono); letter-spacing: .09em;
}
.reader.full-reading .source-document.source-canonical > .system-insert {
  margin: 1.8rem 0; padding-top: .7rem; border-top: 1px solid var(--faint);
  color: var(--ink); font: 400 11px/1.48 var(--mono); letter-spacing: .045em;
  overflow-wrap: anywhere;
  text-transform: uppercase;
}
.reader.full-reading .source-document.source-canonical > .system-insert::before {
  content: "SYSTEM RECORD"; display: block; margin-bottom: .55rem;
  color: rgba(107,94,87,.58); font: 500 9px/1.35 var(--mono); letter-spacing: .09em;
}
.reader.full-reading .source-document.source-canonical > .system-insert strong { font-weight: inherit; }
.standalone-formula {
  max-width: 46ch; margin: 1.9rem 0 2.2rem;
  color: #514741;
  font: 400 clamp(15px, 1.05vw, 17px)/1.5 var(--mono);
  letter-spacing: .025em;
  overflow-wrap: normal;
}
.standalone-formula::before {
  content: attr(data-formula); display: block; margin-bottom: .8rem; color: var(--blue);
  font: 500 9px/1.35 var(--mono); letter-spacing: .09em;
}
.standalone-formula + .standalone-formula { margin-top: 3.1rem; }
.standalone-formula strong { font-weight: inherit; }
.source-document blockquote {
  max-width: 56ch; margin: 1.8rem 0 2.15rem; padding: .15rem 0 .15rem 1.15rem;
  border-left: 2px solid var(--line); color: #514741;
}
.source-document blockquote.archival-epigraph {
  margin: .5rem 0 3rem; color: rgba(107,94,87,.72);
  font: 400 13px/1.58 var(--mono);
}
.source-document blockquote.archival-epigraph::before {
  content: "SOURCE NOTE"; display: block; margin-bottom: .65rem;
  color: rgba(107,94,87,.58); font: 500 9px/1.35 var(--mono); letter-spacing: .085em;
}
.source-document blockquote.editorial-quote {
  font: 400 clamp(16.5px, 1vw, 17.5px)/1.66 var(--sans);
}
.source-document[data-node-id="IDENTITY_PROTOCOL_PROLOGUE"] > #фрагмент-откровения + blockquote.editorial-quote {
  background: var(--surface-light);
  border: 1px solid var(--line);
  box-shadow: none;
}
.source-document blockquote.anticode-editorial-quote {
  max-width: 48ch; margin: 2.5rem 0 2.8rem; padding-left: 1.2rem;
  color: #514741; font: 400 clamp(17px, 1.05vw, 18px)/1.68 var(--sans);
}
.source-note {
  max-width: var(--reader-text-measure); margin: 1.1rem 0 3.2rem; color: rgba(107,94,87,.72);
}
.source-note-label {
  margin-bottom: .75rem; color: rgba(107,94,87,.58);
  font: 500 9px/1.35 var(--mono); letter-spacing: .085em;
}
.source-note p { margin: 0 0 .24rem; font: 400 13px/1.52 var(--mono); }
.source-note p:last-child { margin-bottom: 0; }
.standalone-formula[data-formula="FORMULA"]::before { color: rgba(0,60,255,.68); }
.standalone-formula[data-formula="CANONICAL REVISION"]::before { color: rgba(107,94,87,.62); }
.standalone-formula[data-formula="CANONICAL REVISION"] { margin-top: 3rem; }
.system-record {
  max-width: 56ch; margin: 2.3rem 0 2.65rem; padding-top: .75rem;
  border-top: 1px solid var(--line); color: var(--ink);
}
.system-record-label {
  margin-bottom: .7rem; color: rgba(107,94,87,.62);
  font: 500 9px/1.35 var(--mono); letter-spacing: .09em;
}
.system-record-lines { display: grid; gap: .18rem; }
.system-record-lines p { margin: 0; font: 400 11.5px/1.4 var(--mono); letter-spacing: .01em; }
.source-document strong { font-weight: 500; }
.source-document ul, .source-document ol { margin: .75rem 0 1.65rem; padding-left: 1.35rem; }
.source-document li { margin: .62rem 0; padding-left: .2rem; }
.source-document ol li::marker { color: rgba(107,94,87,.58); font: 400 .82em var(--mono); }
.source-document pre {
  max-width: 100%; margin: 1rem 0; padding: .8rem 0;
  overflow-x: auto; border-block: 1px solid var(--faint);
  white-space: pre; font: 11px/1.5 var(--mono);
}
.source-rule { margin: 1.5rem 0; border: 0; border-top: 1px solid var(--faint); }
.source-table { max-width: 100%; overflow-x: auto; margin: 1rem 0 1.5rem; }
.source-table table { width: 100%; border-collapse: collapse; font: 11px/1.45 var(--mono); }
.source-table th, .source-table td { padding: .45rem .6rem .45rem 0; border-bottom: 1px solid var(--faint); text-align: left; vertical-align: top; }

/* P7.11 article test: one shared research-paper rhythm for full Reader documents. */
.reader.full-reading:not(.guide-mode) {
  --reader-text-measure: 62ch;
  --reader-wide-measure: 48rem;
}
.reader.full-reading:not(.guide-mode) .reader-scroll {
  padding-top: clamp(2.5rem, 4vw, 4rem);
  padding-bottom: clamp(3rem, 5vw, 5rem);
}
.reader.full-reading:not(.guide-mode) .node-meta {
  display: grid; grid-template-columns: minmax(9rem, auto) minmax(0, 1fr);
  gap: .3rem 1rem; margin-bottom: 1rem;
}
.reader.full-reading:not(.guide-mode) #nodeType { flex: none; grid-column: 1 / -1; }
.reader.full-reading:not(.guide-mode) h1 {
  margin: 0 0 .85rem; font-size: clamp(30px, 2.25vw, 34px); line-height: 1.12;
}
.reader.full-reading:not(.guide-mode) .formula {
  max-width: 52ch; margin: 0 0 1.8rem;
  font-size: clamp(17px, 1.15vw, 19px); line-height: 1.5;
}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical {
  font-size: clamp(16px, .95vw, 16.5px); line-height: 1.68;
}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical > p { margin-bottom: .92em; }
.reader.full-reading:not(.guide-mode) .source-document.source-canonical > h2 {
  margin: 3.15rem 0 .8rem;
  font-size: clamp(21px, 1.5vw, 23px); line-height: 1.28;
}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical > h3 {
  margin: 2.25rem 0 .68rem;
  font-size: clamp(17px, 1.2vw, 19px); line-height: 1.36;
}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical > h4 {
  margin: 1.9rem 0 .65rem; font-size: 11px; line-height: 1.45;
}
.reader.full-reading:not(.guide-mode) .archive-object { margin-block: 2rem 2.4rem; }
.reader.full-reading:not(.guide-mode) figcaption { font-size: 10px; line-height: 1.45; }
.read-full {
  width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure);
  margin-top: .15rem; color: var(--blue); padding: .35rem 0; font-size: 10px; text-align: left;
}
.reader.full-reading .read-full { color: var(--ink); }
.reader.full-reading .read-full {
  display: block; margin-top: 1.8rem; padding-top: 1rem;
  border-top: 1px solid var(--faint); text-align: left;
}
.reader:not(.full-reading) .full-only { display: none; }
.reader-anticode h1 { font-size: 28px; font-weight: 400; line-height: 1.15; }
.reader-anticode.full-reading .source-document.source-canonical > h2 {
  font-size: clamp(22px, 1.55vw, 25px); line-height: 1.24;
}
.reader-anticode.full-reading .source-document.source-canonical > h3 {
  font-size: clamp(17px, 1.2vw, 19px); line-height: 1.34;
}
.anticode-formula-index {
  max-width: 50ch; margin: 1.35rem 0 2.5rem; display: grid; gap: .55rem;
}
.anticode-formula-index-label {
  margin-bottom: .25rem; color: rgba(0,60,255,.62);
  font: 500 9px/1.35 var(--mono); letter-spacing: .085em;
}
.anticode-formula-index > div:not(.anticode-formula-index-label),
.anticode-related-notes > div:not(.anticode-related-notes-label) {
  display: grid; grid-template-columns: 2.35rem minmax(0,1fr); gap: .55rem;
}
.anticode-formula-index > div > span:first-child,
.anticode-related-notes > div > span:first-child {
  color: rgba(107,94,87,.5); font: 400 10px/1.45 var(--mono);
}
.anticode-formula-index > div > span:last-child {
  color: #514741; font: 400 14px/1.48 var(--sans);
}
.anticode-related-notes {
  max-width: 52ch; margin: 3.6rem 0 2.5rem; display: grid; gap: .38rem;
}
.anticode-related-notes-label {
  margin-bottom: .4rem; color: rgba(107,94,87,.58);
  font: 500 9px/1.35 var(--mono); letter-spacing: .08em;
}
.anticode-related-notes > div > span:last-child {
  color: rgba(107,94,87,.7); font: 400 12px/1.42 var(--mono);
}
.related-nodes {
  max-width: 52ch; margin: 4.5rem 0 0; padding: 1rem 0 2.8rem;
  border-top: 1px solid var(--faint); border-bottom: 1px solid var(--line);
}
.related-nodes-label {
  margin-bottom: .75rem; color: rgba(107,94,87,.58);
  font: 500 9.5px/1.35 var(--mono); letter-spacing: .08em;
}
.related-nodes-list { display: grid; }
.related-nodes button {
  width: 100%; min-height: 32px; display: grid; grid-template-columns: 2rem minmax(0,1fr);
  gap: .55rem; padding: .34rem 0;
  border: 0; background: transparent; color: rgba(107,94,87,.76);
  text-align: left; cursor: pointer;
}
.related-nodes button span:first-child {
  color: rgba(107,94,87,.48); font: 400 10px/1.4 var(--mono);
}
.related-nodes button span:last-child { font: 400 14px/1.42 var(--sans); }
.related-nodes button:hover { color: var(--blue); }
.related-nodes button:focus-visible {
  color: var(--blue); outline: 1px solid rgba(0,60,255,.38); outline-offset: 3px;
}
.related-materials {
  width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure);
  margin: 3.2rem 0 0; padding-top: .9rem; border-top: 1px solid var(--line);
}
.related-materials .section-label { margin-bottom: .55rem; color: var(--ink); }
.related-materials-list { display: grid; }
.related-materials-list button {
  width: 100%; min-height: 34px; display: grid; grid-template-columns: 2.25rem minmax(0,1fr);
  gap: .55rem; align-items: center; padding: .38rem 0; border: 0; border-bottom: 1px solid var(--faint);
  background: transparent; color: var(--ink); text-align: left; cursor: pointer;
}
.related-materials-list button span:first-child { color: var(--system-muted); font: 400 9px/1.4 var(--mono); }
.related-materials-list button span:last-child { font: 400 14px/1.42 var(--sans); }
.related-materials-list button:hover,
.related-materials-list button:focus-visible { color: var(--blue); outline: none; }
.related-materials-list button:last-child { border-bottom: 0; }
.reader-anticode.full-reading .read-full {
  margin-top: 1.2rem; border-top: 0; color: rgba(107,94,87,.55);
}
.node-body code { font-family: var(--mono); color: inherit; }
.node-body code.formula-line {
  display: block; color: #514741;
  font: 500 clamp(11px, .9vw, 13px)/1.45 var(--mono);
  letter-spacing: .075em; white-space: normal;
}
.node-body .formula-line,
.node-body .formula-line code,
.source-document .formula-line,
.source-document .formula-line code { color: #514741; }
.source-formula-row { margin: 1.35rem 0 1.65rem; }
.archive-legend,
.source-annotation {
  max-width: 64ch; margin: 1.4rem 0; padding: .15rem 0 .15rem 1.15rem;
  border-left: 2px solid var(--line); color: var(--article-muted);
}
.archive-legend .section-label,
.source-annotation .section-label {
  margin: 0 0 .65rem; color: var(--ink);
  font: 500 10px/1.35 var(--mono); letter-spacing: .075em;
}
.archive-legend dl { margin: 0; display: grid; gap: .55rem; }
.archive-legend dl > div {
  display: grid; grid-template-columns: minmax(9.5rem, auto) minmax(0, 1fr);
  gap: .7rem 1rem; align-items: baseline;
}
.archive-legend dt {
  margin: 0; color: var(--blue); text-transform: uppercase;
  font: 500 11px/1.35 var(--mono); letter-spacing: .075em;
}
.archive-legend dd {
  margin: 0; color: var(--article-muted);
  font: 400 clamp(15px, 1vw, 16px)/1.5 var(--sans);
}
.source-annotation p {
  max-width: 62ch; margin: 0 0 .35rem;
  color: var(--article-muted); font: 400 clamp(15px, 1vw, 16px)/1.56 var(--sans);
}
.source-annotation p:last-child { margin-bottom: 0; }
.world-axis {
  max-width: 64ch; margin: 1.35rem 0 1.65rem; padding: .15rem 0 .15rem 0;
}
.world-axis .section-label {
  margin: 0 0 .75rem; color: var(--ink);
  font: 500 10px/1.35 var(--mono); letter-spacing: .075em;
}
.world-axis ol {
  position: relative; margin: 0; padding: 0 0 0 1.25rem; list-style: none;
}
.world-axis ol::before {
  content: ""; position: absolute; left: .2rem; top: .2rem; bottom: .2rem;
  width: 1px; background: var(--line);
}
.world-axis li {
  position: relative; display: grid; grid-template-columns: minmax(8.5rem, auto) minmax(0, 1fr);
  gap: .7rem 1rem; align-items: baseline; padding: .38rem 0 .62rem;
}
.world-axis li::before {
  content: ""; position: absolute; left: -1.18rem; top: .72rem;
  width: 7px; height: 7px; border: 1px solid var(--line); border-radius: 50%;
  background: var(--paper);
}
.source-link {
  min-width: 0; padding: 0; border: 0; background: transparent; color: var(--ink);
  text-align: left; cursor: pointer; font: 500 11px/1.35 var(--mono);
  letter-spacing: .055em;
}
.source-link:hover,
.source-link:focus-visible { color: var(--blue); outline: none; }
.source-link.missing { cursor: default; opacity: .55; }
.lexicon-index,
.lexicon-routes,
.context-route {
  max-width: 36em; margin: 1rem 0 1.35rem; padding: .65rem 0;
  border-top: 1px solid var(--faint); border-bottom: 1px solid var(--faint);
  color: var(--system-muted); font: 10px/1.38 var(--mono); letter-spacing: .045em;
}
.lexicon-index-bottom { margin-top: 1.6rem; }
.lexicon-index-return {
  display: inline-block; margin: 2.4rem 0 .5rem; color: var(--ink);
  font: 500 9px/1.4 var(--mono); letter-spacing: .07em; text-decoration: none;
}
.lexicon-index-return:hover,
.lexicon-index-return:focus-visible { color: var(--blue); outline: none; }
.lexicon-index > div:last-child,
.context-route > div:last-child {
  min-width: 0;
}
.lexicon-index > div:last-child {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .38rem 1.25rem;
}
.context-route > div:last-child { display: flex; flex-wrap: wrap; gap: .35rem .75rem; }
.lexicon-routes { display: grid; gap: .25rem; }
.lexicon-index a,
.context-route button,
.lexicon-routes .source-link {
  min-width: 0; padding: 0; border: 0; background: transparent;
  color: var(--system-muted); text-align: left; cursor: pointer;
  font: inherit; letter-spacing: inherit; text-decoration: none; overflow-wrap: anywhere;
  break-inside: avoid;
}
.lexicon-index a:hover,
.lexicon-index a:focus-visible,
.context-route button:hover,
.context-route button:focus-visible,
.lexicon-routes .source-link:hover,
.lexicon-routes .source-link:focus-visible {
  color: var(--blue); outline: none;
}
.context-route .current { color: var(--blue); }
.context-arrow { opacity: .55; }
.longform-outline { display: none; }

@media (min-width: 1200px) {
  .app:not([data-desktop-dialogue-mode="reader"]) .workspace:has(.reader.full-reading.has-longform-outline:not(.has-dot-outline)) {
    grid-template-columns: minmax(0, 1fr) minmax(760px, 820px);
  }
}

.reader.full-reading .longform-outline { display: block; margin: 0 0 2rem; }
.longform-outline-rail { display: none; }
.longform-outline-mobile { border-block: 1px solid var(--faint); }
.longform-outline-mobile summary {
  min-height: 44px; display: flex; align-items: center; justify-content: space-between;
  color: var(--ink); cursor: pointer; list-style: none;
  font: 500 10px/1.35 var(--mono); letter-spacing: .06em;
}
.longform-outline-mobile summary::-webkit-details-marker { display: none; }
.longform-outline-mobile summary::after { content: "+"; color: var(--blue); }
.longform-outline-mobile[open] summary::after { content: "−"; }
.longform-outline-mobile > div { display: grid; padding: 0 0 .6rem; }
.longform-outline-mobile button {
  min-width: 0; min-height: 44px; display: grid; grid-template-columns: 2.25rem minmax(0,1fr);
  gap: .5rem; align-items: center; border: 0; border-top: 1px solid var(--faint);
  background: transparent; color: var(--ink); padding: .35rem 0;
  text-align: left; font: 400 10px/1.35 var(--mono); cursor: pointer;
}
.longform-outline-mobile button span:first-child { color: rgba(107,94,87,.55); }
.longform-outline-mobile button.active span:first-child { color: var(--blue); }

@container (min-width: 680px) {
  .longform-outline:not(.outline-dots) {
    position: absolute; top: 0; bottom: 0; left: calc(100% + 2.25rem);
    width: 160px; margin: 0; pointer-events: none;
  }
  .longform-outline:not(.outline-dots) .longform-outline-rail {
    position: sticky; top: 1.25rem; display: block; max-width: 160px; pointer-events: auto;
  }
  .longform-outline-label {
    margin-bottom: .55rem; color: rgba(107,94,87,.5);
    font: 500 8.5px/1.3 var(--mono); letter-spacing: .07em;
  }
  .longform-outline-list { display: grid; }
  .longform-outline-list button {
    position: relative; min-width: 0; display: grid; grid-template-columns: 2rem minmax(0,1fr);
    gap: .35rem; border: 0; background: transparent; color: rgba(107,94,87,.5);
    padding: .28rem 0; text-align: left; cursor: pointer; font: 400 8.5px/1.28 var(--mono);
  }
  .longform-outline-list button::before {
    content: ""; position: absolute; left: -.55rem; top: .52rem;
    width: 5px; height: 1px; background: transparent;
  }
  .longform-outline-list button span:first-child { color: rgba(107,94,87,.42); }
  .longform-outline-list button:hover,
  .longform-outline-list button:focus-visible { color: rgba(107,94,87,.75); outline: none; }
  .longform-outline-list button.active { color: rgba(107,94,87,.68); }
  .longform-outline-list button.active::before { background: rgba(0,60,255,.55); }
  .longform-outline-list button.active span:first-child { color: var(--blue); }
  .longform-outline:not(.outline-dots) .longform-outline-mobile { display: none; }
}

@container (min-width: 520px) {
  .longform-outline.outline-dots {
    position: absolute; top: 0; bottom: 0; left: calc(100% + .75rem);
    width: 80px; margin: 0; pointer-events: none;
  }
  .outline-dots .longform-outline-rail {
    position: sticky; top: 1.25rem; display: block; width: 80px; pointer-events: auto;
  }
  .outline-dots .longform-outline-label { display: none; }
  .outline-dots .longform-outline-list { display: grid; gap: .3rem; }
  .outline-dots .longform-outline-list button {
    position: relative; width: 24px; height: 24px; min-width: 24px; padding: 0;
    border: 0; background: transparent; cursor: pointer;
  }
  .outline-dots .longform-outline-list button span:first-child {
    position: absolute; left: 8px; top: 8px; width: 7px; height: 7px;
    overflow: hidden; border: 1px solid rgba(107,94,87,.55); border-radius: 50%;
    color: transparent; font-size: 0;
  }
  .outline-dots .longform-outline-list button span:last-child {
    position: absolute; z-index: 2; left: 24px; top: 50%; width: max-content; max-width: 52px;
    padding: .18rem .3rem; opacity: 0; pointer-events: none;
    background: var(--paper); color: var(--ink); transform: translateY(-50%);
    font: 400 8.5px/1.25 var(--mono); letter-spacing: .02em;
  }
  .outline-dots .longform-outline-list button:hover span:last-child,
  .outline-dots .longform-outline-list button:focus-visible span:last-child { opacity: 1; }
  .outline-dots .longform-outline-list button:hover span:first-child,
  .outline-dots .longform-outline-list button:focus-visible span:first-child { border-color: var(--blue); }
  .outline-dots .longform-outline-list button:focus-visible { outline: 1px solid var(--blue); outline-offset: 1px; }
  .outline-dots .longform-outline-list button.active span:first-child {
    border-color: var(--blue); background: var(--blue);
  }
  .outline-dots .longform-outline-list button::before { display: none; }
  .outline-dots .longform-outline-mobile { display: none; }
}
.world-axis li > span {
  min-width: 0; color: var(--article-muted);
  font: 400 clamp(15px, 1vw, 16px)/1.5 var(--sans);
}
.reader-footer {
  width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure);
  min-width: 0; margin: 2rem 0 0; padding-top: .9rem;
  border-top: 1px solid var(--line);
}
.history-navigation {
  max-width: 36em; margin: 0 0 1.35rem; padding: 0;
}
.history-navigation .section-label:not(:first-child) { margin-top: 1rem; }
.period-summary,
.entity-period-card,
.location-routes,
.error-sequence {
  max-width: 36em; min-width: 0; margin: 0 0 1.35rem; padding: 0;
  border: 0;
  color: var(--system-muted); font: 10px/1.45 var(--mono); letter-spacing: .045em;
}
.period-summary { margin: .45rem 0 .85rem; border: 0; padding: 0; display: grid; gap: .15rem; }
.period-summary strong,
.entity-period-card strong { color: var(--ink); font: inherit; letter-spacing: inherit; }
.entity-period-title {
  min-width: 0; padding: 0; border: 0; background: transparent; color: var(--ink);
  text-align: left; cursor: pointer; font: 500 11px/1.35 var(--mono); letter-spacing: .055em;
}
.entity-period-title:hover,
.entity-period-title:focus-visible { color: var(--blue); outline: none; }
.period-action,
.sequence-action {
  min-width: 0; margin-top: .55rem; padding: 0; border: 0; background: transparent;
  color: var(--blue); text-align: left; cursor: pointer;
  font: 500 10px/1.4 var(--mono); letter-spacing: .055em;
}
.period-action:hover,
.period-action:focus-visible,
.sequence-action:hover,
.sequence-action:focus-visible { color: var(--ink); outline: none; }
.error-sequence {
  display: grid; gap: .35rem;
}
.sequence-current {
  min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto;
  gap: .75rem; color: var(--ink); font: 500 10px/1.4 var(--mono);
}
.sequence-current span:first-child { min-width: 0; overflow-wrap: anywhere; }
.sequence-current span:last-child { color: var(--system-muted); font-weight: 400; }
.location-status { color: var(--ink); font: 500 11px/1.35 var(--mono); letter-spacing: .055em; }
.location-route {
  min-width: 0; width: 100%; display: grid; grid-template-columns: 34px minmax(0,1fr);
  gap: .7rem; padding: .5rem 0; border: 0; border-bottom: 1px solid var(--faint);
  background: transparent; color: var(--ink); text-align: left; cursor: pointer;
  font: 500 11px/1.35 var(--mono); letter-spacing: .045em;
}
.location-route:last-child,
.location-route:only-of-type { border-bottom: 0; }
.location-route span:last-child { min-width: 0; overflow-wrap: anywhere; }
.location-route:hover,
.location-route:focus-visible { color: var(--blue); outline: none; }
.chronicle-compass,
.history-routes {
  display: grid; gap: .15rem; margin: 0 0 .25rem;
}
.history-period,
.history-route {
  min-width: 0; width: 100%; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: .75rem; padding: .38rem 0; border: 0; background: transparent;
  color: var(--ink); text-align: left; cursor: pointer; font: 10px/1.35 var(--mono);
}
.history-route { display: block; }
.history-period.current,
.history-route.current { color: var(--blue); cursor: default; }
.history-period[aria-current="true"] { color: var(--blue); }
.history-period:hover,
.history-period:focus-visible,
.history-route:hover,
.history-route:focus-visible { color: var(--blue); outline: none; }
.history-axis { margin-top: .75rem; padding-top: 0; border-top: 0; }
.reader-footer .cluster-index,
.reader-footer .routes {
  margin: 0 0 1.35rem; padding-top: 0; border-top: 0;
}
.reader-footer .cluster-index:last-child,
.reader-footer .routes:last-child,
.reader-footer > :last-child { margin-bottom: 0; }
.reader-footer .route:last-child,
.reader-footer .cluster-item:last-child { border-bottom: 0; }
.source-document pre + .source-rule,
.source-document > .source-rule:last-child { display: none; }
.archive-object {
  max-width: 100%; margin: 1.5rem 0;
  justify-items: start; align-items: start;
}
.archive-object[hidden] { display: none; }
.archive-object.media-topography-visual {
  width: min(100%, var(--reader-text-measure));
  max-width: var(--reader-text-measure);
}
.topography-visual-shell {
  display: block;
  width: 100%;
  max-width: var(--reader-text-measure);
  background: var(--color-black);
}
.topography-visual-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 17 / 10;
  min-height: 320px;
  overflow: hidden;
  background: var(--color-black);
}
.topography-visual-stage canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.topography-visual-mode {
  position: absolute;
  z-index: 1;
  top: 12px;
  left: 12px;
  color: color-mix(in srgb, var(--color-paper) 42%, transparent);
  font: var(--type-micro-weight, 400) var(--type-micro-size)/var(--type-micro-line) var(--mono);
  letter-spacing: var(--type-system-tracking);
  text-transform: uppercase;
  pointer-events: none;
}
.topography-visual-open {
  position: absolute;
  z-index: 4;
  top: 13px;
  right: 14px;
  padding: 2px 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: color-mix(in srgb, var(--color-paper) 86%, transparent);
  font: var(--type-meta-weight) var(--type-meta-size)/var(--type-meta-line) var(--mono);
  letter-spacing: var(--type-system-tracking);
  text-decoration: none;
  cursor: pointer;
}
.topography-visual-open:hover,
.topography-visual-open:focus-visible {
  color: var(--color-paper);
  border-bottom-color: var(--color-cobalt);
  outline: none;
}
.topography-visual-stage:has(.topography-visual-open) .topography-visual-corner.tr { display: none; }
.topography-visual-corner {
  position: absolute;
  z-index: 1;
  width: 18px;
  height: 18px;
  opacity: .42;
  pointer-events: none;
}
.archive-object.media-canonical-measure,
.archive-object.media-canonical-measure .image-shell,
.archive-object.media-canonical-measure .image-shell img {
  width: 100%; max-width: var(--reader-text-measure); height: auto; object-fit: contain;
}
.archive-object.media-brainrot-visual {
  width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure);
}
.brainrot-visual-shell {
  display: block; width: 100%; max-width: var(--reader-text-measure); background: var(--color-black);
}
.brainrot-visual-stage {
  position: relative; isolation: isolate; width: 100%; aspect-ratio: 17 / 10; min-height: 320px;
  overflow: hidden; background: var(--color-black); color: var(--color-paper); perspective: 1100px;
}
.brainrot-visual-stage:focus-visible { outline: 1px solid var(--color-cobalt); outline-offset: 2px; }
.brainrot-fragment-field { position: absolute; inset: -8%; z-index: 2; transform-style: preserve-3d; }
.brainrot-fragment {
  position: absolute; overflow: hidden; padding: 0; border: 1px solid rgba(239,239,234,.085);
  background: #050607; cursor: crosshair; transform-style: preserve-3d;
}
.brainrot-fragment::after {
  content: attr(data-id); position: absolute; left: 6px; bottom: 5px; z-index: 2;
  color: rgba(239,239,234,.62); background: rgba(5,6,7,.62);
  font: 400 var(--type-micro-size)/var(--type-micro-line) var(--mono); letter-spacing: var(--type-system-tracking);
  opacity: 0; transition: opacity .2s;
}
.brainrot-fragment:hover { z-index: 80; border-color: rgba(239,239,234,.42); }
.brainrot-fragment:hover::after { opacity: 1; }
.brainrot-fragment.ranked { z-index: 120; outline: 1px solid var(--color-paper); }
.brainrot-fragment img {
  display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; user-select: none;
  filter: grayscale(1) contrast(1.06) brightness(var(--brainrot-brightness,.76));
  transform: scale(var(--brainrot-crop,1.18)); transform-origin: var(--brainrot-x,50%) var(--brainrot-y,50%);
}
.brainrot-fragment.highlight img { filter: grayscale(1) contrast(1.14) brightness(.9); }
.brainrot-signal-fog,.brainrot-interference,.brainrot-noise,.brainrot-scanline,.brainrot-flash {
  position: absolute; inset: 0; pointer-events: none;
}
.brainrot-signal-fog { z-index: 17; overflow: hidden; mix-blend-mode: screen; }
.brainrot-fog-cloud {
  position: absolute; width: 34%; height: 28%; border-radius: 50%; filter: blur(30px);
  background: radial-gradient(circle,rgba(239,239,234,.15),rgba(239,239,234,.05) 45%,transparent 76%);
}
.brainrot-noise { z-index: 18; width: 100%; height: 100%; opacity: .06; mix-blend-mode: screen; image-rendering: pixelated; }
.brainrot-interference { z-index: 19; overflow: hidden; mix-blend-mode: screen; }
.brainrot-glitch-band {
  position: absolute; left: -8%; width: 116%; background: linear-gradient(90deg,transparent,rgba(239,239,234,.24),transparent);
  filter: blur(.7px);
}
.brainrot-scanline {
  z-index: 20; opacity: .12; mix-blend-mode: overlay;
  background: repeating-linear-gradient(180deg,rgba(239,239,234,.02) 0 1px,transparent 1px 6px);
}
.brainrot-flash { z-index: 21; opacity: 0; background: var(--color-paper); mix-blend-mode: screen; }
.brainrot-flash.pulse { animation: brainrot-flash .95s ease-out; }
@keyframes brainrot-flash { 0%{opacity:0} 14%{opacity:.12} 100%{opacity:0} }
.brainrot-controls {
  position: absolute; z-index: 24; right: 14px; bottom: 12px; display: flex; gap: 12px;
}
.brainrot-control,.brainrot-visual-open {
  padding: 2px 0; border: 0; border-bottom: 1px solid transparent; background: transparent;
  color: color-mix(in srgb,var(--color-paper) 82%,transparent);
  font: var(--type-meta-weight) var(--type-meta-size)/var(--type-meta-line) var(--mono);
  letter-spacing: var(--type-system-tracking); text-decoration: none; cursor: pointer;
}
.brainrot-control:hover,.brainrot-control:focus-visible,.brainrot-control.active,
.brainrot-visual-open:hover,.brainrot-visual-open:focus-visible {
  color: var(--color-paper); border-bottom-color: var(--color-cobalt); outline: none;
}
.brainrot-visual-open { position: absolute; z-index: 24; top: 13px; right: 14px; }
@container (max-width: 719px) {
  .brainrot-visual-stage { aspect-ratio: 4 / 5; min-height: 0; }
  .brainrot-visual-open { top: 12px; right: 12px; }
  .brainrot-controls { right: 12px; bottom: 10px; gap: 10px; }
}
.topography-visual-corner::before,
.topography-visual-corner::after {
  content: "";
  position: absolute;
  background: color-mix(in srgb, var(--color-paper) 60%, transparent);
}
.topography-visual-corner::before { width: 18px; height: 1px; }
.topography-visual-corner::after { width: 1px; height: 18px; }
.topography-visual-corner.tl { top: 14px; left: 14px; }
.topography-visual-corner.tr { top: 14px; right: 14px; transform: scaleX(-1); }
.topography-visual-corner.bl { bottom: 14px; left: 14px; transform: scaleY(-1); }
.topography-visual-corner.br { right: 14px; bottom: 14px; transform: scale(-1); }
@container (max-width: 719px) {
  .topography-visual-stage {
    aspect-ratio: 4 / 5;
    min-height: 0;
  }
  .topography-visual-mode { top: 10px; left: 10px; }
  .topography-visual-open { top: 12px; right: 12px; }
  .topography-visual-corner { display: none; }
}
.image-shell {
  position: relative; display: flex; justify-content: flex-start; align-items: flex-start;
  width: fit-content; max-width: 100%;
  overflow: hidden; border: 0; background: transparent;
}
.image-shell img {
  display: block; width: auto; max-width: 100%; height: auto; max-height: min(48vh, 500px);
  margin: 0; object-fit: contain; object-position: left top;
  filter: grayscale(1) contrast(1.6) blur(7px); opacity: .34;
  transform: scale(1.025); transition: filter 1.4s, opacity 1.4s, transform 1.4s;
}
.image-shell.has-experience { display: grid; width: fit-content; }
.media-preview-link {
  display: block; min-width: 0; max-width: 100%; cursor: zoom-in;
  text-decoration: none; background: transparent;
}
.media-preview-link:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.media-expand {
  position: absolute; right: .75rem; bottom: .75rem; z-index: 2;
  padding: .42rem .55rem; background: rgba(239,239,234,.92); color: var(--blue);
  text-decoration: none; font: 500 10px/1.35 var(--mono); letter-spacing: .055em;
}
.media-expand:hover { color: var(--ink); }
.media-expand:focus-visible { color: var(--blue); outline: 2px solid var(--blue); outline-offset: 2px; }
.archive-object.recovered img { filter: grayscale(1) sepia(.12) contrast(1.08); opacity: .92; transform: none; }
.archive-object.media-unavailable {
  display: grid; width: min(100%, var(--reader-text-measure)); margin: .9rem 0 1rem;
}
.archive-object.media-unavailable .image-shell { width: 100%; overflow: visible; }
.media-editorial-fallback {
  display: grid; gap: .25rem; width: 100%; padding: .7rem 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  font: 10px/1.45 var(--mono); letter-spacing: .045em; color: var(--system-muted);
}
.media-editorial-fallback span:first-child { color: var(--ink); font-weight: 500; }
.archive-object.media-layout-horizontal {
  display: grid; width: fit-content; max-width: min(100%, 42rem);
}
.media-layout-horizontal .image-shell { max-width: min(100%, 42rem); }
.media-layout-horizontal .image-shell img { max-width: min(100%, 42rem); }
.archive-object.media-layout-vertical {
  display: grid; width: min(100%, 35.5rem);
  grid-template-columns: minmax(0, 16rem) minmax(0, 18rem);
  column-gap: clamp(20px, 1.5vw, 24px); align-items: start;
}
.media-layout-vertical .image-shell {
  width: fit-content; max-width: 16rem;
}
.media-layout-vertical .image-shell img {
  width: auto; max-width: min(100%, 16rem);
}
.media-layout-vertical figcaption {
  width: 100%; max-width: 18rem; margin-top: 0;
  align-self: start; align-content: start;
}
.archive-object.media-layout-square {
  display: grid; width: fit-content; max-width: min(100%, 10rem);
}
.media-layout-square .image-shell { max-width: min(100%, 10rem); }
.media-layout-square .image-shell img {
  width: auto; max-width: min(100%, 10rem); max-height: 10rem;
}
.archive-object.figure-inline {
  display: grid; width: min(100%, var(--reader-text-measure)); max-width: var(--reader-text-measure);
  grid-template-columns: minmax(0, 1fr); column-gap: 0;
}
.archive-object.hero-media.media-layout-horizontal .image-shell img,
.archive-object.hero-media.media-layout-horizontal .media-preview-link img {
  width: auto; max-width: 100%; max-height: min(34vh, 300px);
}
.archive-object.hero-media.media-layout-square .image-shell img,
.archive-object.hero-media.media-layout-square .media-preview-link img {
  width: auto; max-width: 100%; max-height: min(32vh, 280px);
}
.archive-object.figure-inline.hero-media.media-layout-vertical {
  width: min(100%, var(--reader-text-measure));
  grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); column-gap: clamp(20px, 2vw, 28px);
}
.archive-object.hero-media.media-layout-vertical .image-shell,
.archive-object.hero-media.media-layout-vertical .media-preview-link { width: fit-content; max-width: 15rem; }
.archive-object.hero-media.media-layout-vertical .image-shell img,
.archive-object.hero-media.media-layout-vertical .media-preview-link img {
  width: auto; max-width: 100%; max-height: min(42vh, 360px);
}
.archive-object.hero-media.media-layout-vertical figcaption { margin-top: 0; }
@media (max-width: 767px) {
  .archive-object.media-diagram.media-layout-vertical {
    width: min(100%, 24rem); grid-template-columns: minmax(0, 24rem); row-gap: .4rem;
  }
  .archive-object.media-diagram.media-layout-vertical .image-shell {
    width: 100%; max-width: 24rem; overflow: visible;
  }
  .archive-object.media-diagram.media-layout-vertical .image-shell img {
    display: block; width: 100%; max-width: 24rem; height: auto; max-height: none;
    aspect-ratio: auto; object-fit: contain;
  }
  .archive-object.media-diagram.media-layout-vertical figcaption {
    width: 100%; max-width: 24rem; margin-top: .4rem;
  }
}
.archive-object.media-full.figure-wide.media-layout-horizontal .image-shell,
.archive-object.media-full.figure-wide.media-layout-horizontal .image-shell img {
  width: 100%; max-width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain;
}
.figure-inline .image-shell,
.figure-inline .media-preview-link {
  width: 100%; max-width: 100%;
}
.figure-inline .image-shell img,
.figure-inline .media-preview-link img {
  width: 100%; max-width: 100%; height: auto; max-height: none;
}
.figure-inline figcaption {
  width: 100%; max-width: 100%; margin-top: .4rem;
}
.archive-object.figure-wide {
  display: grid; width: min(100%, var(--reader-wide-measure)); max-width: 100%;
  grid-template-columns: minmax(0, 1fr); column-gap: 0;
}
.figure-wide .image-shell,
.figure-wide .media-preview-link {
  width: 100%; max-width: 100%;
}
.figure-wide .image-shell img,
.figure-wide .media-preview-link img {
  width: 100%; max-width: 100%; height: auto; max-height: none;
}
.figure-wide figcaption {
  width: 100%; max-width: 100%; margin-top: .4rem;
}
.reader:not(.full-reading) .archive-object { margin: .9rem 0 1rem; }
.reader:not(.full-reading) .media-full-only { display: none; }
.reader:not(.full-reading) .archive-object figcaption { font-size: 11px; }
.reader:not(.full-reading) .archive-object.preview-reduced:not(.media-layout-square) .image-shell img { max-height: 119px; }
.scanline { position: absolute; inset: -100% 0 100%; background: linear-gradient(transparent, rgba(239,239,234,.36), transparent); animation: scan 1.3s linear; pointer-events: none; }
figcaption {
  margin-top: .4rem; display: flex; flex-direction: column; align-items: flex-start; text-align: left;
  width: 100%; max-width: 100%; gap: .35rem 1rem; min-width: 0; font: 11px/1.4 var(--mono);
}
figcaption span { min-width: 0; overflow-wrap: normal; word-break: normal; }
#imageCode { overflow-wrap: anywhere; }
@container (max-width: 719px) {
  .image-shell.has-experience { width: 100%; }
  .media-preview-link { width: 100%; }
  .media-preview-link img { width: 100%; height: auto; }
  .media-expand {
    position: static; justify-self: start; margin-top: .55rem; padding: .2rem 0;
    background: transparent;
  }
  .archive-object.media-layout-vertical {
    width: min(100%, 18rem); grid-template-columns: minmax(0, 18rem);
    row-gap: .4rem;
  }
  .archive-object.figure-inline.hero-media.media-layout-vertical {
    width: min(100%, var(--reader-text-measure)); grid-template-columns: minmax(0,1fr); row-gap: .45rem;
  }
  .archive-object.hero-media.media-layout-vertical .image-shell,
  .archive-object.hero-media.media-layout-vertical .media-preview-link { max-width: min(100%, 18rem); }
  .archive-object.hero-media.media-layout-vertical .image-shell img,
  .archive-object.hero-media.media-layout-vertical .media-preview-link img { max-height: min(46vh, 340px); }
  .media-layout-vertical figcaption {
    width: 100%; max-width: 18rem; margin-top: 0;
  }
}
.routes { margin-top: 1.8rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.section-label { margin-bottom: .55rem; font: 9px var(--mono); letter-spacing: .07em; }
.route {
  min-width: 0; max-width: 100%; width: 100%; display: grid; grid-template-columns: 34px minmax(0, 1fr) minmax(5.5rem, auto); gap: .7rem; align-items: center;
  padding: .65rem 0; border: 0; border-bottom: 1px solid var(--faint); background: transparent; text-align: left; cursor: pointer;
}
.route:hover .route-title { color: var(--blue); }
.route-index, .route-type { font: 9px var(--mono); }
.route-type { text-align: right; }
.route-title { min-width: 0; overflow-wrap: anywhere; font: 500 14px var(--mono); transition: color .2s; }
.cluster-back { margin: 0 0 1rem; padding-left: 0; }
.cluster-index { margin-top: 1.5rem; border-top: 1px solid var(--line); padding-top: .75rem; }
.cluster-group { border-bottom: 1px solid var(--faint); }
.cluster-group summary {
  padding: .6rem 0; cursor: pointer; list-style: none;
  display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .45rem 1rem;
  font: 500 10px/1.3 var(--mono); letter-spacing: .045em;
}
.cluster-group summary::-webkit-details-marker { display: none; }
.cluster-group summary::before { content: "+ "; }
.cluster-group[open] summary::before { content: "− "; }
.cluster-group summary > span:first-child { flex: 1 1 auto; }
.cluster-group summary:hover, .cluster-group summary:focus-visible { color: var(--blue); outline: none; }
.cluster-item {
  min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto;
  gap: .75rem; align-items: center; border-top: 1px solid var(--faint);
}
.cluster-link, .cluster-trace {
  min-width: 0; border: 0; background: transparent; color: var(--ink);
  padding: .55rem 0; text-align: left; cursor: pointer; font: 9px/1.3 var(--mono);
}
.cluster-link { overflow-wrap: anywhere; }
.cluster-trace { white-space: nowrap; font-size: 8px; }
.cluster-count, .cluster-status { flex: none; font: 8px/1.3 var(--mono); opacity: .62; }
.cluster-count, .cluster-status, .cluster-trace { text-align: right; }
.cluster-item.missing { opacity: .58; }
.cluster-item.missing .cluster-link { cursor: default; }
.cluster-item.missing .cluster-link:hover { color: inherit; }
.cluster-item.current .cluster-link { color: var(--blue); cursor: default; }
.cluster-link:hover, .cluster-link:focus-visible,
.cluster-trace:hover, .cluster-trace:focus-visible { color: var(--blue); outline: none; }

#relicRoutes {
  max-width: min(100%, 36em);
}
#relicRoutes .section-label {
  margin-bottom: .7rem;
  color: var(--ink);
  font: 400 20px/1.25 var(--sans);
  letter-spacing: 0;
  text-transform: none;
}
#relicRoutes .cluster-item {
  border-top: 1px solid var(--faint);
}
#relicRoutes .cluster-link {
  min-height: 34px;
  padding: .62rem .55rem .62rem 0;
  font: 400 12px/1.35 var(--mono);
  letter-spacing: .015em;
  overflow-wrap: anywhere;
}
#relicRoutes .cluster-trace,
#relicRoutes .cluster-status {
  font: 400 10px/1.3 var(--mono);
  letter-spacing: .035em;
}
#relicRoutes .cluster-status {
  color: var(--system-muted);
  opacity: 1;
}
#relicRoutes .cluster-item.current {
  border-left: 1px solid var(--blue);
  background: rgba(0, 60, 255, .06);
}
#relicRoutes .cluster-item.current .cluster-link {
  padding-left: .55rem;
  color: var(--blue);
  font-weight: 500;
}
#relicRoutes .cluster-link:hover,
#relicRoutes .cluster-link:focus-visible,
#relicRoutes .cluster-trace:hover,
#relicRoutes .cluster-trace:focus-visible {
  color: var(--blue);
  outline: 1px solid rgba(0, 60, 255, .38);
  outline-offset: -1px;
}
.tracebar {
  display: none !important;
}
.bogobot-dialogue {
  position: fixed; z-index: 30; left: 22px; bottom: 64px;
  width: clamp(380px, 32vw, 480px); max-width: calc(100% - 44px); padding: .7rem .8rem;
  border: 1px solid var(--line); background: rgba(239,239,234,.94);
  backdrop-filter: blur(8px); font-family: var(--mono);
}
.bogobot-dialogue.is-closed,
.bogobot-dialogue[hidden] { display: none !important; }
.bogobot-dialogue-close {
  position: absolute; z-index: 4; top: .45rem; right: .6rem; min-width: 44px; min-height: 32px;
  border: 0; background: transparent; color: var(--ink); cursor: pointer;
  font: 500 9px/1 var(--mono); letter-spacing: .06em;
}
.bogobot-dialogue-close:hover,
.bogobot-dialogue-close:focus-visible { color: var(--blue); outline: 1px solid var(--blue); outline-offset: 2px; }
.bogobot-dialogue-toggle { display: none; }
.bogobot-dialogue-body > label {
  display: block; margin: 0 2rem .45rem 0; font: 500 9px/1 var(--mono); letter-spacing: .07em;
}
.bogobot-dialogue-input { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; }
.bogobot-dialogue input {
  min-width: 0; width: 100%; padding: .4rem 0; border: 0; border-bottom: 1px solid var(--line);
  outline: 0; background: transparent; color: var(--ink); font: 13px/1.35 var(--mono);
}
.bogobot-dialogue input:focus { border-color: var(--blue); }
.bogobot-dialogue input::placeholder { color: rgba(107,94,87,.52); }
.bogobot-dialogue-state { color: var(--blue); font: 500 9px/1 var(--mono); letter-spacing: .06em; }
.bogobot-dialogue[data-state="THINKING"] .bogobot-dialogue-state { animation: dialogue-pulse .8s ease-in-out infinite alternate; }
.bogobot-answer {
  display: block; max-height: 340px; margin-top: .65rem; padding: .75rem .8rem; overflow-y: auto;
  overflow-x: hidden; border: 0; border-top: 1px solid var(--line); background: #080a0d; color: #e7e6e0;
  box-shadow: none;
  font: 12px/1.55 var(--mono);
}
.bogobot-answer[hidden] { display: none; }
.voice-line {
  display: block; padding-inline-start: 16px; white-space: pre-wrap; overflow-wrap: anywhere;
}
.voice-line[data-block-start="true"] { margin-top: .72rem; padding-top: .72rem; border-top: 1px solid #202631; }
.voice-line--signal,
.voice-line--formula { padding-inline-start: 0; color: var(--blue); }
.voice-line--signal { font-size: 10px; font-weight: 500; letter-spacing: .055em; }
.voice-line--formula { font-weight: 500; letter-spacing: .025em; }
.voice-line--nested { padding-inline-start: 32px; color: #c4c7ca; }
.voice-line--glitch {
  padding-inline-start: 16px; border-inline-start: 1px solid var(--blue); color: #f1f0eb;
  transform: translateX(3px);
}
.bogobot-dialogue[data-state="ANSWERING"] .bogobot-answer::after {
  content: "▌"; display: inline-block; margin: .35rem 0 0 16px; color: var(--blue);
  animation: voice-execution-marker .9s steps(1,end) infinite;
}
@keyframes voice-execution-marker { 50% { opacity: .28; } }
.bogobot-dialogue[data-answer-view="compact"] .bogobot-answer:not([hidden]) {
  max-height: none; overflow: hidden;
}
.bogobot-dialogue[data-answer-view="compact"] .bogobot-answer .voice-line:not([data-compact-visible]) { display: none; }
.bogobot-dialogue[data-state="ANSWERING"][data-answer-view="compact"] .bogobot-answer .voice-line { display: block; }
.bogobot-dialogue[data-response-kind="missing"] .bogobot-answer:not([hidden]) {
  display: block; max-height: none; overflow-x: hidden; overflow-y: visible;
}
.bogobot-node-context {
  margin-top: .6rem; padding-top: .55rem; border-top: 1px solid var(--faint);
  display: grid; gap: .25rem; font: 9px/1.3 var(--mono); letter-spacing: .05em;
}
.bogobot-node-context[hidden] { display: none; }
.bogobot-node-context strong { color: var(--blue); font: 500 12px/1.3 var(--mono); }
.bogobot-node-context.is-actionable { cursor: pointer; }
.bogobot-node-context.is-actionable:hover,
.bogobot-node-context.is-actionable:focus-visible { color: var(--blue); outline: none; }
.bogobot-connection-signal {
  margin-top: .55rem; padding-top: .55rem; border-top: 1px solid var(--faint);
  color: var(--ink); font: 500 9px/1.3 var(--mono); letter-spacing: .05em;
}
.bogobot-connection-signal[hidden] { display: none; }
.bogobot-dialogue-actions {
  margin-top: .55rem; padding-top: .35rem; border-top: 1px solid var(--faint);
  display: flex; flex-wrap: wrap; gap: .2rem 1rem;
}
.bogobot-dialogue-actions[hidden] { display: none; }
.bogobot-dialogue-actions button {
  min-height: 32px; padding: .35rem 0; border: 0; border-radius: 0; background: transparent;
  color: var(--ink); text-align: left; cursor: pointer; font: 500 9px/1.25 var(--mono); letter-spacing: .045em;
}
.bogobot-dialogue-actions button:hover,
.bogobot-dialogue-actions button:focus-visible { color: var(--blue); outline: none; text-decoration: underline; text-underline-offset: 3px; }
.bogobot-dialogue-actions .bogobot-action-primary { color: var(--blue); font-weight: 500; }
.bogobot-signals { margin-top: .65rem; padding-top: .55rem; border-top: 1px solid var(--faint); }
.bogobot-signals[hidden] { display: none; }
.bogobot-signal-list { display: grid; grid-template-columns: 1fr; gap: 0; background: transparent; }
.bogobot-signal {
  min-width: 0; width: 100%; min-height: 52px; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--faint);
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 16px;
  background: transparent; color: var(--ink); cursor: pointer; text-align: left; font-family: var(--mono);
}
.bogobot-signal-text {
  display: block; font: 500 10px/1.35 var(--mono); overflow: hidden; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.bogobot-signal-text,
.bogobot-signal-arrow { pointer-events: none; }
.bogobot-signal-arrow { color: var(--blue); font: 500 12px/1 var(--mono); }
.bogobot-signal:hover .bogobot-signal-text,
.bogobot-signal:focus-visible .bogobot-signal-text { color: var(--blue); }
.bogobot-signal:hover { background: rgba(0, 60, 255, .035); }
.bogobot-signal:active { color: var(--blue); }
.bogobot-signal:focus-visible { outline: 1px solid var(--blue); outline-offset: -2px; }
.bogobot-signals-refresh {
  width: 100%; min-height: 44px; margin-top: .35rem; padding: .25rem 0; border: 0; background: transparent; color: var(--ink);
  cursor: pointer; text-align: left; font: 500 8px/1.2 var(--mono); letter-spacing: .06em;
}
.bogobot-signals-refresh:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.bogobot-signals-refresh:focus-visible { color: var(--blue); outline: 1px solid var(--blue); outline-offset: 2px; text-decoration: none; }
.bogobot-signals-return {
  min-height: 32px; margin-left: 1rem; padding: .25rem 0; border: 0; background: transparent; color: var(--ink);
  cursor: pointer; font: 500 8px/1.2 var(--mono); letter-spacing: .06em;
}
.bogobot-signals-return[hidden] { display: none; }
.bogobot-signals-return:hover,
.bogobot-signals-return:focus-visible { color: var(--blue); outline: none; text-decoration: underline; text-underline-offset: 3px; }
@keyframes dialogue-pulse { to { opacity: 1; text-shadow: 0 0 10px var(--signal-glow); } }
.system-modal {
  width: min(360px, calc(100vw - 2rem)); padding: 0; border: 1px solid var(--line);
  background: var(--paper); color: var(--ink); font-family: var(--mono);
}
.system-modal::backdrop { background: rgba(5, 6, 7, .46); }
.system-modal-panel { margin: 0; padding: 1rem; display: grid; gap: .85rem; }
.system-modal h2 { margin: 0; color: var(--blue); font: 500 12px/1.2 var(--mono); letter-spacing: .08em; }
.system-modal p { margin: 0; font: 12px/1.45 var(--mono); }
.system-modal-actions { display: flex; justify-content: flex-end; gap: 1rem; }
.system-modal .command { min-height: 36px; }
.system-modal-danger { color: var(--blue); }

#closeReader { color: var(--blue); }
#closeReader[hidden] { display: none !important; }
#closeReader:hover, #closeReader:focus-visible { background: var(--blue); color: var(--paper); }


@media (min-width: 768px) and (max-width: 900px) {
  .topbar { gap: 10px; padding-inline: 12px; }
  .brand-lockup { flex: 0 0 auto; min-width: 0; max-width: 310px; }
  .brand-title { white-space: nowrap; }
  .commands { flex: 1 1 auto; justify-content: flex-start; overflow-x: auto; overflow-y: hidden; }
  .commands .command:first-child { margin-left: 0; }
}

@media (min-width: 768px) {
  .bogobot-dialogue {
    width: clamp(340px, 28vw, 380px); max-width: calc(100% - 44px);
    transition: width .18s ease, max-height .18s ease;
  }
  .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle {
    position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; width: 100%; min-height: 44px;
    padding: .6rem .75rem; border: 0; border-bottom: 1px solid var(--line); background: var(--paper);
    color: var(--ink); cursor: pointer; text-align: left; font: 500 9px/1.3 var(--mono); letter-spacing: .055em;
  }
  .bogobot-dialogue-toggle-title { min-width: 0; overflow-wrap: anywhere; }
  .bogobot-dialogue-toggle-action { flex: none; color: rgba(31,27,24,.72); white-space: nowrap; }
  .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle:hover,
  .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle:focus-visible {
    color: var(--blue); outline: none;
  }
  .bogobot-dialogue[data-panel="expanded"] {
    top: auto; bottom: 64px; height: auto; max-height: 50dvh; padding: 0;
    display: flex; flex-direction: column; overflow: hidden;
  }
  .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    min-height: 0; max-height: calc(50dvh - 44px); padding: .65rem .75rem .8rem;
    display: flex; flex-direction: column; overflow: hidden;
  }
  .bogobot-dialogue[data-panel="expanded"] .bogobot-answer {
    min-height: 0; max-height: min(25dvh, 250px); flex: 1 1 auto;
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  }
  .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body > label,
  .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-input,
  .bogobot-dialogue[data-panel="expanded"] .bogobot-node-context,
  .bogobot-dialogue[data-panel="expanded"] .bogobot-connection-signal,
  .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-actions { flex: none; }
  .bogobot-dialogue[data-panel="expanded"][data-desktop-view="signals"] .bogobot-dialogue-body {
    overflow-y: auto; overscroll-behavior: contain;
  }
  .bogobot-dialogue[data-desktop-view="signals"] .bogobot-answer,
  .bogobot-dialogue[data-desktop-view="signals"] .bogobot-node-context,
  .bogobot-dialogue[data-desktop-view="signals"] .bogobot-connection-signal,
  .bogobot-dialogue[data-desktop-view="signals"] .bogobot-dialogue-actions { display: none; }
  .bogobot-dialogue[data-panel="compact"].has-visible-answer { width: clamp(340px, 28vw, 380px); padding: 0; overflow: hidden; }
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-body { display: none; padding: 0; }
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-body > label,
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-input,
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-answer,
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-node-context,
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-connection-signal,
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-actions,
  .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-signals { display: none; }
  .bogobot-dialogue[data-panel="compact"]:not(.has-visible-answer) { max-height: min(430px,calc(100dvh - 86px)); overflow: hidden; }
  .bogobot-dialogue[data-panel="compact"]:not(.has-visible-answer) .bogobot-dialogue-body { max-height: inherit; overflow-x: hidden; overflow-y: auto; }
  .bogobot-dialogue-actions { align-items: center; }
  .bogobot-dialogue-actions button { color: rgba(31,27,24,.78); }
  .bogobot-signals { margin-top: .8rem; }
  .bogobot-signal { min-height: 52px; padding: 10px 12px; }
  .bogobot-signal-text { font-size: 10px; line-height: 1.4; }
}

/* P7.12E — strict global semantic color system. */
.map-pane,
.surface-3d,
#rhizome3dCanvas,
.app[data-desktop-dialogue-mode="graph"] .workspace.reader-closed .map-pane,
.app[data-desktop-dialogue-mode="voice"] .map-pane,
.app[data-mobile-mode="voice"],
.app[data-mobile-mode="voice"] .workspace.reader-closed .map-pane {
  background: var(--surface-dark);
}

.surface-3d .graph-surface-toolbar,
.surface-3d .graph-surface-controls,
.surface-3d .map-status,
.surface-3d .rhizome-hover-label,
.surface-3d .node-label,
.surface-3d .history-marker,
.surface-3d .trace-label {
  color: var(--text-dark-primary);
  fill: var(--text-dark-primary);
}
.surface-3d .graph-surface-toolbar button,
.surface-3d .graph-surface-controls button,
.surface-3d .world-navigation-meta,
.surface-3d .lens-status,
.surface-3d .map-orientation {
  color: var(--text-dark-secondary);
}
.surface-3d .graph-surface-toolbar,
.surface-3d .graph-surface-controls,
.surface-3d .graph-surface-toolbar button,
.surface-3d .graph-surface-controls button {
  border-color: var(--rule-dark);
}

.graph-node.locked .node-label,
.reader-open .graph-node.continuation .node-label,
.network-overview .graph-node.continuation .node-label,
.network-overview .graph-node.lens-discovered:not(.active):not(.continuation) .node-label,
.local-focus .graph-node.principal-school .node-label,
.network-overview .graph-node.display-context.overview-labeled .node-label {
  fill: var(--text-dark-primary);
}
.edge,
.edge.active-neighbor,
.network-overview .edge.overview-discovered,
.map-mode-relics .edge.overview-discovered,
.map-mode-relics .edge.overview-horizon,
.map-mode-relics .edge.reader-horizon,
.map-mode-relics .edge.reader-context,
.map-mode-relics .edge.reader-latent,
.map-mode-relics .edge.active-neighbor {
  stroke: var(--text-dark-primary);
}
.graph-node .node-mark { fill: var(--surface-dark); stroke: var(--text-dark-primary); }
.graph-node .node-cross { stroke: var(--text-dark-primary); }
.map-status { color: var(--signal-primary); }
.mini-node.open { fill: var(--signal-primary); stroke: var(--signal-primary); }

.rhizome-preview-card {
  background: var(--surface-dark);
  color: var(--text-dark-primary);
  border-color: rgba(255,255,255,.34);
  border-left-color: var(--interaction-primary);
}
.rhizome-preview-card h2 { color: var(--text-dark-primary); }
.rhizome-preview-card p { color: rgba(255,255,255,.88); }
.rhizome-preview-kicker { color: rgba(255,255,255,.58); }
.rhizome-preview-card .rhizome-preview-voice-label { color: var(--text-dark-secondary); }
.rhizome-preview-card #rhizomePreviewClose { color: var(--text-dark-secondary); }
.rhizome-preview-card #rhizomePreviewRead { color: var(--interaction-primary); }

.reader,
.reader-toolbar,
.reader-scroll,
.reader.guide-mode,
.reader.guide-mode .guide-content,
.reader.full-reading,
.source-document,
.preview-content {
  background-color: var(--surface-light);
  color: var(--text-light-primary);
}
.guide-steps,
body .reader.guide-mode .guide-document.source-document.source-canonical,
.editorial-lead,
.formula.formula-line,
.reader.full-reading .source-document.source-canonical,
.reader.full-reading .source-document.source-canonical > h2.formula-heading,
.standalone-formula,
.source-document blockquote,
.source-document blockquote.anticode-editorial-quote,
.anticode-formula-index > div > span:last-child,
.node-body code.formula-line,
.node-body .formula-line,
.node-body .formula-line code,
.source-document .formula-line,
.source-document .formula-line code {
  color: var(--color-warm-ink);
}

.app .bogobot-dialogue { background: var(--surface-dark-raised); color: var(--text-dark-secondary); }
.app .bogobot-dialogue-body,
.app .bogobot-answer { background: var(--surface-light); color: var(--color-warm-ink); }
.app .bogobot-dialogue-body > label,
.app .bogobot-dialogue input,
.app .bogobot-dialogue-actions button,
.app .bogobot-signal,
.app .bogobot-signals-refresh,
.app .bogobot-signals-return,
.app .bogobot-connection-signal { color: var(--color-warm-ink); }
.app .voice-line--nested { color: rgba(107,94,87,.82); }
.app .voice-line--signal,
.app .bogobot-dialogue-state,
.app .bogobot-signal-arrow { color: var(--signal-primary); }

.search-dialog.search-palette,
.search-palette__panel,
.search-palette__header,
.search-palette__input-wrap,
.search-palette__content,
.search-results.search-palette__results,
.search-palette__footer {
  background: var(--surface-light);
  color: var(--color-warm-ink);
}
.search-palette__header h2,
.search-dialog.search-palette .search-palette__input,
.search-result,
.search-result__title,
.search-result:hover .search-result__title,
.search-result[aria-selected="true"] .search-result__title,
.search-result:focus-visible .search-result__title,
.search-empty { color: var(--color-warm-ink); }
.search-palette__close,
.search-palette__clear { color: rgba(107,94,87,.72); }
.search-dialog.search-palette .search-palette__input::placeholder,
.search-result__meta,
.search-palette__footer { color: rgba(107,94,87,.58); }
.search-palette__hint { color: rgba(107,94,87,.52); }
.search-palette__section-label,
.search-empty span { color: rgba(107,94,87,.62); }

@media (min-width: 801px) {
  #nextTrace { padding-inline: .55rem; }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .workspace { position: relative; display: block; overflow: hidden; }
  .map-pane { width: 100%; height: 100%; border-right: 0; }
  .reader {
    position: absolute; z-index: 12; top: 0; right: 0; bottom: 0;
    width: clamp(340px, 40vw, 440px); border-left: 1px solid var(--line);
    box-shadow: none;
    transform: translateX(100%); transition: transform .32s ease;
  }
  .workspace.reader-closed .reader { transform: translateX(100%); width: clamp(340px, 40vw, 440px); }
  .reader.open { transform: translateX(0); }
  #closeReader { display: inline-block; }
  .reader-scroll { padding: 1rem 1.5rem 1.5rem; }
  .reader-toolbar { min-height: 46px; }
  .reader-actions { flex-wrap: wrap; }
  .reader-actions .command { padding-inline: .42rem; font-size: 8px; }
  .lexicon-index > div:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.trace-label {
  appearance: none; border: 0; background: transparent; color: var(--ink);
  padding: 0; font: 9px var(--mono);
}
.trace { min-width: 0; flex: 1; display: flex; align-items: center; gap: .45rem; overflow-x: auto; scrollbar-width: none; }
.trace button { border: 0; background: none; padding: 0; color: var(--ink); white-space: nowrap; font: 9px var(--mono); cursor: pointer; }
.trace button:last-of-type { color: var(--blue); }
.trace i { font: normal 9px var(--mono); opacity: .6; }
.trace-count { flex: none; font: 9px var(--mono); opacity: .6; white-space: nowrap; }


@keyframes scan { to { transform: translateY(300%); } }
@keyframes noise { 50% { transform: translateY(2px); opacity: .07; } }
@keyframes active-breathe {
  from { filter: drop-shadow(0 0 0 rgba(0,60,255,0)); }
  to { filter: drop-shadow(0 0 6px rgba(0,60,255,.42)); }
}
@keyframes enter-glow {
  from { text-shadow: 0 0 3px rgba(0,60,255,.2); }
  to { text-shadow: 0 0 11px rgba(0,60,255,.62); }
}

@media (max-width: 767px) {
  html, body { height: auto; min-height: 100%; }
  body { overflow: visible; }
  .app {
    height: auto; min-height: 100dvh; display: block;
  }
  .app.map-overview {
    height: 100dvh; min-height: 0; display: flex; flex-direction: column;
    overflow: hidden;
  }
  .app.map-overview .topbar,
  .app.map-overview .cluster-nav,
  .app.map-overview .world-navigation,
  .app.map-overview .map-mode-nav,
  .app.map-overview .tracebar { flex: 0 0 auto; }
  .app.map-overview .workspace {
    flex: 1 1 auto; min-height: 0; overflow: hidden;
  }
  .topbar {
    width: 100%; height: 64px; min-height: 64px; align-items: center;
    flex-wrap: nowrap; gap: 10px; padding: 0 10px; overflow: hidden;
  }
  .brand-lockup { flex: 0 1 260px; min-width: 190px; height: 50px; gap: 8px; }
  .brand,
  .brand img { flex-basis: 92px; width: 92px; min-width: 92px; }
  .brand-title { font-size: 8px; line-height: 1.2; }
  .commands {
    flex: 1 1 auto; width: auto; justify-content: flex-start;
    gap: 1px; overflow-x: auto; overflow-y: hidden;
  }
  .commands .command {
    flex: 0 0 auto; width: auto; min-height: 44px; padding: 0 8px; font-size: var(--global-nav-font-size);
  }
  .commands .command:first-child { margin-left: 0; }
  .cluster-nav {
    width: 100%; display: flex; flex-wrap: nowrap;
    padding-left: 0; overflow-x: auto; overflow-y: hidden;
  }
  .map-mode-nav:not([hidden]) {
    width: 100%; display: flex; flex-wrap: nowrap;
    padding-left: 0; overflow-x: auto; overflow-y: hidden;
  }
  .cluster-nav button {
    flex: 0 0 auto; min-height: 44px; padding: 0 .75rem;
    border-right: 1px solid var(--faint); white-space: nowrap;
  }
  .world-navigation summary {
    min-width: 0; display: flex; justify-content: space-between; gap: .75rem;
    min-height: 40px; align-items: center; padding: .35rem .65rem; cursor: pointer; list-style: none;
    font: 500 9px/1.25 var(--mono);
  }
  .world-navigation summary::-webkit-details-marker { display: none; }
  .world-navigation summary::after { content: "+"; color: var(--blue); }
  .world-navigation details[open] summary::after { content: "−"; }
  .world-navigation summary span { min-width: 0; overflow-wrap: anywhere; }
  .world-navigation-body { display: grid; gap: 1px; padding: 0 .4rem .4rem; }
  .world-navigation-meta { display: none; }
  .world-navigation-items {
    height: 44px; display: flex; overflow-x: auto; overflow-y: hidden;
    overscroll-behavior-inline: contain; scrollbar-width: none;
  }
  .world-navigation-items::-webkit-scrollbar { display: none; }
  .world-navigation-items button {
    flex: 0 0 128px; min-height: 44px; padding: .25rem .4rem;
  }
  .world-navigation-controls {
    width: 100%; min-height: 44px; margin-top: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .world-navigation-controls button { min-height: 44px; text-align: center; }
  .world-navigation-controls button:last-child { grid-column: auto; }
  .workspace {
    position: static; display: block; width: 100%; max-width: 100%;
    height: auto; min-height: 0; overflow: visible;
  }
  .map-pane {
    display: none; width: 100%; height: clamp(420px, 65vh, 680px);
    min-height: 420px; border: 0; border-bottom: 1px solid var(--line);
  }
  .workspace.reader-closed .map-pane { display: block; }
  .app.map-overview .workspace.reader-closed .map-pane {
    height: 100%; min-height: 0;
  }
  .workspace.reader-closed .reader { display: none; width: 0; }
  .reader, .reader.open, .reader.expanded {
    position: static; inset: auto; z-index: auto; display: block;
    width: 100%; max-width: 100%; height: auto; min-height: 0; max-height: none;
    margin: 0; overflow: visible; border: 0; box-shadow: none; transform: none;
  }
  .reader-toolbar {
    position: sticky; top: 0; z-index: 18;
    display: grid; grid-template-columns: minmax(0, 1fr);
    width: 100%; min-height: 0; padding: .5rem .75rem;
  }
  .reader-identification { width: 100%; }
  .reader-actions {
    width: 100%; margin-left: 0; display: flex; flex-wrap: wrap;
    justify-content: flex-start;
  }
  .reader-actions .command { flex: 0 1 auto; }
  .reader-scroll {
    width: 100%; height: auto; min-height: 0; max-height: none;
    overflow: visible; padding: 1.5rem 1.25rem 2rem;
  }
  .map-status {
    gap: .75rem; align-items: flex-start; flex-wrap: wrap;
  }
  .map-status span { white-space: normal; }
  .map-museum-status { font-size: 9px; }
  .map-orientation { display: grid; grid-template-columns: 1fr; gap: .08rem; max-width: 15rem; }
  .map-orientation[hidden] { display: none; }
  #graph { min-height: 420px; }
  .app.map-overview #graph { min-height: 0; }
  #graphViewport { transform-box: view-box; transform-origin: 0 0; }
  .legend { right: 1rem; gap: .45rem .7rem; }
  .minimap { width: 120px; height: 90px; bottom: 1rem; }
  .boot { place-items: center; overflow: hidden; }
  .boot-content {
    width: min(100% - 2rem, 34rem); min-height: min(100dvh - 1rem, 760px); padding: clamp(.75rem, 3.5vh, 1.75rem) 0;
  }
  .boot-network { right: -4rem; bottom: 1rem; width: 240px; opacity: .016; }
  .boot-network .network-lines path:nth-child(n+3),
  .boot-network .network-points circle:nth-child(n+5) { display: none; }
  .boot-logo { width: 48px; height: 48px; }
  .boot-copy { width: 100%; margin: clamp(1.2rem, 4vh, 2.4rem) 0 0; }
  .boot-copy h1 { max-width: 14ch; font-size: 28px; line-height: 1.15; }
  .boot-copy p { max-width: 100%; font-size: 15px; line-height: 1.55; }
  .boot-copy p br { display: none; }
  .boot-system-copy { width: 100%; margin-top: 1.25rem; grid-template-columns: 1fr; gap: .7rem; font-size: 9px; }
  .boot-index { width: min(240px, 100%); }
  .boot-formula { font-size: 18px; }
  .boot #enter { margin-top: 1rem; }
  h1 { font-size: 28px; }
  .node-body { max-width: 100%; font-size: clamp(15.5px, 4.2vw, 16px); line-height: 1.6; }
  .reader h1 { font-size: 28px; line-height: 1.15; }
  .editorial-lead { font-size: clamp(16.5px, 4.7vw, 18px); line-height: 1.52; }
  .reader.full-reading .source-document.source-canonical {
    max-width: 100%; font-size: clamp(15.5px, 4.2vw, 16px); line-height: 1.6;
  }
  .reader.full-reading .source-document.source-canonical > h2 {
    margin-top: 3.25rem; font-size: clamp(22px, 6.5vw, 25px);
  }
  .reader.full-reading .source-document.source-canonical > h3 {
    margin-top: 2em; font-size: clamp(18px, 5.4vw, 20px);
  }
  .reader.full-reading .source-document.source-canonical > h4 {
    font-size: clamp(11px, 3.2vw, 12px);
  }
  .reader.full-reading .source-document.source-canonical > h2[data-section]::before { font-size: 9px; }
  .reader.full-reading .source-document.source-canonical > h2.formula-heading { font-size: clamp(15px, 4.5vw, 17px); }
  .reader.full-reading .source-document.source-canonical > h2.lexicon-entry { font-size: clamp(18px, 5.4vw, 20px); }
  .reader.full-reading:not(.guide-mode) {
    --reader-text-measure: 100%;
    --reader-wide-measure: 100%;
  }
  .reader.full-reading:not(.guide-mode) .reader-scroll {
    padding: 1.75rem 1.25rem 3rem;
  }
  .reader.full-reading:not(.guide-mode) .node-meta {
    grid-template-columns: minmax(0, 1fr); gap: .22rem; margin-bottom: .9rem;
  }
  .reader.full-reading:not(.guide-mode) h1 { font-size: 29px; line-height: 1.14; }
  .reader.full-reading:not(.guide-mode) .formula {
    margin-bottom: 1.55rem; font-size: 17px; line-height: 1.5;
  }
  .reader.full-reading:not(.guide-mode) .source-document.source-canonical { line-height: 1.66; }
  .reader.full-reading:not(.guide-mode) .source-document.source-canonical > h2 {
    margin-top: 2.8rem; font-size: 21px; line-height: 1.3;
  }
  .reader.full-reading:not(.guide-mode) .source-document.source-canonical > h3 {
    margin-top: 2.1rem; font-size: 18px; line-height: 1.36;
  }
  .lexicon-index > div:last-child { grid-template-columns: 1fr; }
  .archive-legend dl > div,
  .world-axis li { grid-template-columns: 1fr; gap: .18rem; }
  .tracebar {
    position: static; width: 100%; min-height: 52px; padding: .45rem .6rem;
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "label reset" "path path"; gap: .4rem .75rem;
  }
  .app.map-overview .tracebar { max-height: 96px; overflow-y: auto; }
  .trace-label { grid-area: label; display: block; align-self: center; }
  #resetButton { grid-area: reset; display: block; justify-self: end; }
  .trace {
    grid-area: path; max-width: 100%; display: flex; flex-wrap: wrap;
    gap: .35rem .55rem; overflow: visible;
  }
  .trace i { display: none; }
  .trace button { max-width: 100%; white-space: nowrap; }
  .trace button:not(:first-of-type)::before { content: "→ "; opacity: .6; }
}

@media (max-width: 767px) {
  body:has(.app[data-mobile-mode="reader"]) { height: 100dvh; overflow: hidden; }
  .app[data-mobile-mode="reader"] {
    width: 100%; height: 100dvh; min-height: 0; display: flex; flex-direction: column; overflow: hidden;
  }
  .app[data-mobile-mode="reader"] > .topbar,
  .app[data-mobile-mode="reader"] > .cluster-nav,
  .app[data-mobile-mode="reader"] > .world-navigation,
  .app[data-mobile-mode="reader"] > .map-mode-nav,
  .app[data-mobile-mode="reader"] > .tracebar { flex: 0 0 auto; }
  .app[data-mobile-mode="reader"] > .workspace {
    flex: 1 1 auto; min-height: 0; overflow: hidden;
  }
  .app[data-mobile-mode="reader"] .reader,
  .app[data-mobile-mode="reader"] .reader.open {
    width: 100%; height: 100%; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden;
  }
  .app[data-mobile-mode="reader"] .reader-scroll {
    height: auto; min-height: 0; max-height: none; overflow-x: hidden; overflow-y: auto;
    padding-bottom: calc(2rem + 76px); overscroll-behavior: contain;
  }
  .app[data-mobile-mode="reader"] .reader-scroll.voice-overlay-open { overflow: hidden; }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open {
    position: fixed; z-index: 30; inset: auto 0 52px; width: 100%; height: 60px; max-height: 60px;
    margin: 0; padding: 0; overflow: hidden; border: 0; border-top: 1px solid var(--line);
    background: var(--paper); backdrop-filter: none;
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open:not(.has-visible-answer)[data-panel="compact"] {
    display: none;
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open .bogobot-dialogue-toggle {
    position: relative; display: flex; align-items: center; width: 100%; height: 60px; min-height: 60px;
    padding: .55rem 3rem .55rem .75rem; border: 0; background: var(--paper); color: var(--ink);
    white-space: pre-line; text-align: left; font: 500 9px/1.4 var(--mono); letter-spacing: .055em;
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open .bogobot-dialogue-toggle::after {
    content: "↑"; position: absolute; right: .85rem; color: var(--blue); font-size: 14px;
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="compact"] .bogobot-dialogue-body {
    display: none;
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"] {
    height: min(72dvh, calc(100dvh - 104px)); max-height: min(72dvh, calc(100dvh - 104px));
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"][data-answer-view="compact"],
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"][data-response-kind="missing"],
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"][data-response-kind="signals"] {
    height: auto;
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"] .bogobot-dialogue-toggle::after {
    content: "↓";
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"] .bogobot-dialogue-body {
    display: block; height: calc(100% - 60px); max-height: none;
    padding: .65rem .75rem max(.9rem, env(safe-area-inset-bottom));
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"][data-answer-view="compact"] .bogobot-dialogue-body,
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"][data-response-kind="missing"] .bogobot-dialogue-body,
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"][data-response-kind="signals"] .bogobot-dialogue-body {
    height: auto; max-height: calc(min(72dvh, calc(100dvh - 104px)) - 60px);
  }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open[data-panel="expanded"] .bogobot-answer {
    max-height: none; overflow: clip;
  }
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue {
    max-height: none; padding: .55rem .65rem; overflow: hidden;
  }
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body {
    display: block; max-height: none; padding: 0; overflow: visible;
  }
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body > label,
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue .bogobot-answer,
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue .bogobot-node-context,
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue .bogobot-connection-signal,
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-actions {
    display: none;
  }
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-input {
    display: grid;
  }
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue[data-response-kind] .bogobot-dialogue-toggle {
    display: block; width: 100%; min-height: 44px; padding: .1rem 0 .45rem;
    border: 0; border-bottom: 1px solid var(--faint); background: transparent; color: var(--blue); text-align: left;
    cursor: pointer; font: 500 9px/1.25 var(--mono); letter-spacing: .045em;
  }
  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue[data-response-kind] .bogobot-dialogue-input {
    margin-top: .4rem;
  }
  .app[data-mobile-mode="voice"].map-overview .workspace.reader-closed {
    flex: 0 0 clamp(160px, 28dvh, 240px); height: clamp(160px, 28dvh, 240px);
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed .map-pane {
    height: 100%; min-height: 0;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    position: static; flex: 1 1 auto; min-height: 0; max-height: none;
    width: 100%; margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--line);
    background: var(--paper); backdrop-filter: none; overflow: hidden;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-toggle {
    display: none;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    display: block; box-sizing: border-box; height: 100%; max-height: none;
    padding: .65rem .75rem max(.9rem, env(safe-area-inset-bottom));
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body > label {
    display: block;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-input {
    display: grid;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-answer {
    max-height: none; overflow: clip;
  }
  .app[data-mobile-mode="voice"] .mobile-world-control {
    display: block; min-height: 32px; margin-left: auto; padding: 0 .65rem;
    border: 0; border-left: 1px solid var(--line); border-right: 1px solid var(--line);
    background: transparent; color: var(--blue); cursor: pointer;
    font: 500 8px/1 var(--mono); letter-spacing: .04em;
  }
  .app[data-mobile-mode="voice"] .mobile-world-control:hover,
  .app[data-mobile-mode="voice"] .mobile-world-control:focus-visible {
    background: var(--blue); color: var(--paper); outline: none;
  }
  .bogobot-dialogue {
    left: .6rem; bottom: calc(52px + .6rem); width: calc(100% - 1.2rem); max-width: none;
    box-sizing: border-box; max-height: 45dvh; padding: .55rem .65rem;
  }
  .bogobot-dialogue.reader-is-open { left: 0; bottom: 0; width: 100%; border-inline: 0; border-bottom: 0; }
  .bogobot-dialogue.reader-is-open[data-panel="compact"] { padding: 0; }
  .bogobot-dialogue.reader-is-open[data-panel="compact"] .bogobot-dialogue-body { display: none; }
  .bogobot-dialogue[data-panel="compact"][data-response-kind] .bogobot-dialogue-body {
    display: block; max-height: none; padding: .45rem .65rem .55rem; overflow: visible;
  }
  .bogobot-dialogue[data-panel="compact"][data-response-kind] .bogobot-dialogue-body > label,
  .bogobot-dialogue[data-panel="compact"][data-response-kind] .bogobot-dialogue-input { display: none; }
  .bogobot-dialogue[data-panel="compact"][data-response-kind] .bogobot-answer {
    display: block; max-height: none; margin: 0; padding: .55rem .65rem; overflow: hidden;
  }
  .bogobot-dialogue[data-panel="compact"][data-response-kind="missing"] .bogobot-answer,
  .bogobot-dialogue[data-panel="compact"][data-response-kind="signals"] .bogobot-answer {
    display: block; max-height: none; overflow-x: hidden; overflow-y: visible;
  }
  .voice-line { padding-inline-start: 12px; }
  .voice-line--signal,
  .voice-line--formula { padding-inline-start: 0; }
  .voice-line--nested { padding-inline-start: 24px; }
  .voice-line--glitch { padding-inline-start: 12px; }
  .bogobot-dialogue[data-panel="compact"][data-response-kind] .bogobot-node-context {
    margin-top: .4rem; padding-top: .35rem;
  }
  .bogobot-dialogue[data-panel="compact"][data-response-kind] .bogobot-dialogue-actions {
    margin-top: .35rem; padding-top: .2rem;
  }
  .bogobot-dialogue[data-panel="expanded"] { max-height: 45dvh; padding: 0; overflow: hidden; }
  .bogobot-dialogue.reader-is-open .bogobot-dialogue-toggle {
    display: block; width: 100%; min-height: 52px; padding: .65rem;
    border: 0; border-radius: 0; background: var(--paper); color: var(--ink);
    text-align: left; cursor: pointer; font: 500 10px/1 var(--mono); letter-spacing: .055em;
  }
  .bogobot-dialogue.reader-is-open .bogobot-dialogue-toggle::after { content: " +"; color: var(--blue); }
  .bogobot-dialogue.reader-is-open[data-panel="expanded"] .bogobot-dialogue-toggle::after { content: " −"; }
  .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    box-sizing: border-box; max-height: 45dvh; padding: .5rem .65rem max(.9rem, env(safe-area-inset-bottom));
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  }
  .bogobot-dialogue.reader-is-open[data-panel="expanded"] .bogobot-dialogue-body { max-height: calc(45dvh - 52px); }
  .bogobot-dialogue[data-panel="expanded"] .bogobot-answer {
    max-height: none; overflow-x: hidden; overflow-y: visible;
  }
  .bogobot-dialogue-actions { display: grid; grid-template-columns: 1fr; gap: 0; }
  .bogobot-dialogue-actions button {
    width: 100%; min-height: 44px; border-bottom: 1px solid var(--faint); text-align: left;
  }
  .bogobot-dialogue-actions button:last-child { border-bottom: 0; }
  .bogobot-signal-list { grid-template-columns: 1fr; }
  .bogobot-signal { min-height: 56px; padding: 10px 4px; }
  .bogobot-signal-text { font-size: 10px; line-height: 1.35; }
  .bogobot-signals-refresh { width: 100%; min-height: 44px; text-align: left; }
  .workspace:not(.reader-closed) .reader-scroll { padding-bottom: calc(2rem + 64px); }
  .cluster-nav { scrollbar-width: none; }
  .cluster-nav::-webkit-scrollbar { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
  #enter:hover, #enter:focus-visible, #enter:active { animation: none !important; }
}
@media (min-width: 768px) {
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue {
    left: 22px; right: auto; top: auto; bottom: 54px; transform: none;
    width: clamp(380px, 38vw, 540px); max-width: calc(100% - 44px); max-height: min(70dvh, 560px);
    padding: .55rem .75rem; display: block; overflow: visible;
  }
  .desktop-stage-switcher {
    position: absolute; z-index: 45; top: 7px; left: 50%; transform: translateX(-50%);
    display: flex; align-items: center; gap: .15rem; min-height: 26px;
    padding: 2px; border: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 94%, transparent);
    font-family: var(--mono);
  }
  .desktop-stage-switcher[hidden] { display: none; }
  .desktop-stage-switcher button {
    min-height: 22px; padding: 0 .55rem; border: 0; background: transparent; color: var(--ink);
    cursor: pointer; font: 500 8px/1 var(--mono); letter-spacing: .06em;
  }
  .desktop-stage-switcher button:hover,
  .desktop-stage-switcher button:focus-visible { color: var(--blue); outline: 1px solid var(--blue); outline-offset: -1px; }
  .desktop-stage-switcher button[aria-pressed="true"] { color: var(--blue); box-shadow: inset 0 -1px 0 var(--blue); }
  .desktop-stage-switcher button:disabled { cursor: default; opacity: .34; outline: none; }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue .bogobot-dialogue-toggle {
    position: absolute; z-index: 3; top: .42rem; right: .7rem; display: none;
    width: auto; min-height: 32px; padding: .35rem 0 .35rem .75rem; border: 0; background: var(--paper);
  }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle { display: flex; }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue-toggle-title { display: none; }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue-toggle-action { color: var(--ink); }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue .bogobot-dialogue-body,
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-body {
    display: block; max-height: min(64dvh, 500px); padding: 0; overflow-x: hidden; overflow-y: auto;
  }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue-body > label,
  .app[data-desktop-dialogue-mode="graph"] .bogobot-answer,
  .app[data-desktop-dialogue-mode="graph"] .bogobot-node-context,
  .app[data-desktop-dialogue-mode="graph"] .bogobot-connection-signal,
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue-actions { display: none !important; }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue .bogobot-dialogue-input,
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-input {
    display: grid;
  }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue.has-visible-answer .bogobot-dialogue-input { padding-right: 8rem; }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-signals { display: none; }
  .app[data-desktop-dialogue-mode="graph"] .bogobot-dialogue:focus-within .bogobot-signals:not([hidden]) { display: block; }

  .app[data-desktop-dialogue-mode="graph"] .trace-label {
    appearance: none; border: 0; background: transparent; color: var(--ink); cursor: pointer;
    padding: .35rem 0; white-space: nowrap; font: 500 9px/1 var(--mono); letter-spacing: .045em;
  }
  .app[data-desktop-dialogue-mode="graph"] .trace-label:hover,
  .app[data-desktop-dialogue-mode="graph"] .trace-label:focus-visible { color: var(--blue); outline: none; }
  .app[data-desktop-dialogue-mode="graph"] .tracebar:not(.route-expanded) .trace,
  .app[data-desktop-dialogue-mode="graph"] .tracebar:not(.route-expanded) #resetButton { display: none; }
  .app[data-desktop-dialogue-mode="graph"] .tracebar.route-expanded .trace { display: flex; }

  .app[data-desktop-dialogue-mode="voice"] { grid-template-rows: 64px minmax(0, 1fr); }
  .app[data-desktop-dialogue-mode="voice"] > .cluster-nav,
  .app[data-desktop-dialogue-mode="voice"] > .world-navigation,
  .app[data-desktop-dialogue-mode="voice"] > .map-mode-nav,
  .app[data-desktop-dialogue-mode="voice"] > .tracebar { display: none; }
  .app[data-desktop-dialogue-mode="voice"] .workspace { min-height: 0; grid-template-columns: 1fr 0; }
  .app[data-desktop-dialogue-mode="voice"] .workspace .reader { display: none; width: 0; }
  .app[data-desktop-dialogue-mode="voice"] .map-pane {
    display: block; width: 100%; height: 100%; border: 0; pointer-events: none; filter: brightness(.38) saturate(.7);
  }
  .app[data-desktop-dialogue-mode="voice"] .graph-surface-toolbar,
  .app[data-desktop-dialogue-mode="voice"] .map-status,
  .app[data-desktop-dialogue-mode="voice"] .legend,
  .app[data-desktop-dialogue-mode="voice"] .minimap { visibility: hidden; }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue {
    left: 50%; right: auto; top: 50%; bottom: auto; transform: translate(-50%,-50%);
    width: clamp(520px, 43vw, 620px); max-width: calc(100% - 3rem); height: auto; max-height: 74dvh;
    padding: 0; display: flex; flex-direction: column; overflow: hidden;
    background: var(--paper); backdrop-filter: none;
  }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle {
    position: sticky; z-index: 2; top: 0; flex: none; display: flex;
  }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue-body,
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    min-height: 0; max-height: calc(74dvh - 44px); padding: .8rem .9rem 1rem;
    display: block; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue.has-visible-answer[data-desktop-view="answer"] .bogobot-dialogue-input { display: none; }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue.has-visible-answer[data-desktop-view="answer"] .bogobot-dialogue-body > label {
    margin-bottom: .65rem; color: rgba(107,94,87,.82); font-size: 9px; line-height: 1.45;
  }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-answer,
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue[data-panel="expanded"] .bogobot-answer {
    max-height: none; overflow: visible; flex: none;
  }

  .app[data-desktop-dialogue-mode="reader"] { grid-template-rows: 64px minmax(0, 1fr); }
  .app[data-desktop-dialogue-mode="reader"] > .cluster-nav,
  .app[data-desktop-dialogue-mode="reader"] > .world-navigation,
  .app[data-desktop-dialogue-mode="reader"] > .map-mode-nav,
  .app[data-desktop-dialogue-mode="reader"] > .tracebar,
  .app[data-desktop-dialogue-mode="reader"] > .bogobot-dialogue { display: none !important; }
  .app[data-desktop-dialogue-mode="reader"] .workspace,
  .app[data-desktop-dialogue-mode="reader"] .workspace:not(.reader-closed) {
    min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden;
  }
  .app[data-desktop-dialogue-mode="reader"] .map-pane { display: none !important; }
  .app[data-desktop-dialogue-mode="reader"] .reader,
  .app[data-desktop-dialogue-mode="reader"] .reader.open {
    position: static; width: 100%; max-width: none; height: 100%; display: grid; transform: none;
    grid-template-rows: auto minmax(0, 1fr); border: 0; overflow: hidden;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader-scroll {
    --reader-text-measure: 680px; --reader-wide-measure: 760px;
    width: 100%; max-width: none; padding: 48px clamp(56px,5vw,80px) 72px;
    display: block;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader-primary-layout {
    width: 100%; display: grid;
    grid-template-columns: minmax(220px,260px) minmax(0,760px);
    column-gap: clamp(64px,6vw,96px); align-items: start; justify-content: center;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader-title-flow,
  .app[data-desktop-dialogue-mode="reader"] .reader-content-flow { min-width: 0; }
  .app[data-desktop-dialogue-mode="reader"] .reader-title-flow { grid-column: 1; }
  .app[data-desktop-dialogue-mode="reader"] .reader-content-flow {
    grid-column: 2; width: 100%; max-width: 760px;
    display: flex; flex-direction: column; align-items: flex-start;
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object,
  .app[data-desktop-dialogue-mode="reader"] .preview-content,
  .app[data-desktop-dialogue-mode="reader"] .node-body { width: 100%; max-width: 760px; }
  .app[data-desktop-dialogue-mode="reader"] .archive-object .image-shell,
  .app[data-desktop-dialogue-mode="reader"] .archive-object img { width: 100%; max-width: 760px; height: auto; }
}


/* P7.5D — single active scene contract */

@media (min-width: 768px) {
  .app[data-desktop-dialogue-mode="graph"] > .bogobot-dialogue { display: none !important; }
  .app[data-desktop-dialogue-mode="graph"] .workspace.reader-closed .map-pane { background: #050505; }

  .app[data-desktop-dialogue-mode="voice"] .map-pane {
    background: #050505;
    pointer-events: none;
    filter: brightness(.28) saturate(.62) contrast(1.08);
  }
  .app[data-desktop-dialogue-mode="voice"] #graph,
  .app[data-desktop-dialogue-mode="voice"] #rhizome3dCanvas { opacity: .74; }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue:not(.has-visible-answer) .bogobot-dialogue-toggle { display: none; }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue::before {
    content: "ГЛАС / СЛУШАЕТ";
    display: block;
    padding: .8rem 7rem 0 .9rem;
    color: var(--blue);
    font: 500 10px/1.2 var(--mono);
    letter-spacing: .07em;
  }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue.has-visible-answer::before { content: none; }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue.has-visible-answer .bogobot-dialogue-body > label { display: block; }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-signals-refresh { margin-top: .35rem; color: var(--blue); }

  .app[data-desktop-dialogue-mode="reader"] {
    background: var(--paper);
  }
  .app[data-desktop-dialogue-mode="reader"] .workspace { background: var(--paper); }
  .app[data-desktop-dialogue-mode="reader"] .desktop-stage-switcher {
    background: color-mix(in srgb, var(--paper) 96%, transparent);
  }
  .app[data-desktop-dialogue-mode="reader"] .reader {
    background: var(--paper);
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="image"] .reader-scroll {
    grid-template-columns: minmax(220px, 300px) minmax(0, 780px);
    column-gap: clamp(48px,5vw,80px);
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="image"] .archive-object,
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="image"] .archive-object .image-shell,
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="image"] .archive-object img {
    max-width: 780px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="image"] .node-body,
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="image"] .preview-content {
    max-width: 660px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="longread"] .reader-scroll {
    grid-template-columns: minmax(200px,260px) minmax(0,700px);
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="longread"] .node-body,
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="longread"] .source-document {
    max-width: 700px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="schema"] .reader-scroll {
    grid-template-columns: minmax(180px,240px) minmax(0,860px);
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="schema"] .formula {
    max-width: 860px;
    padding: 1.1rem 1.25rem;
    border: 1px solid var(--line);
    color: var(--blue);
    font-size: clamp(26px,4vw,54px);
    line-height: 1.05;
    letter-spacing: .02em;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="schema"] .node-body,
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="schema"] .preview-content,
  .app[data-desktop-dialogue-mode="reader"] .reader[data-archive-presentation="schema"] .source-document {
    max-width: 760px;
  }
}

@media (max-width: 767px) {
  .node-body p:has(> .process-step) { padding-inline: 16px; }
  .node-body p:has(> .process-step):not(:has(+ p > .process-step)) { padding-bottom: 16px; }
  .node-body p:not(:has(> .process-step)) + p:has(> .process-step),
  .node-body p:has(> .process-step):first-child { padding-top: 16px; }

  .desktop-stage-switcher {
    position: sticky;
    top: 0;
    z-index: 48;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 1px;
    width: 100%;
    min-height: 40px;
    padding: 0 .55rem;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .desktop-stage-switcher::-webkit-scrollbar { display: none; }
  .desktop-stage-switcher[hidden] { display: none; }
  .desktop-stage-switcher button {
    flex: 0 0 auto;
    min-height: 36px;
    border: 0;
    background: transparent;
    color: var(--ink);
    font: 500 9px/1 var(--mono);
    letter-spacing: .06em;
  }
  .desktop-stage-switcher button[aria-pressed="true"] { color: var(--blue); box-shadow: inset 0 -1px 0 var(--blue); }
  .desktop-stage-switcher button:disabled { opacity: .34; }
  .app[data-mobile-mode="voice"] .desktop-stage-switcher,
  .app[data-mobile-mode="reader"] .desktop-stage-switcher,
  .app[data-mobile-mode="voice"] .desktop-stage-switcher button,
  .app[data-mobile-mode="reader"] .desktop-stage-switcher button { pointer-events: auto; }

  .app[data-mobile-mode="world"] .workspace.reader-closed + .bogobot-dialogue { display: none !important; }
  .app[data-mobile-mode="world"] .workspace.reader-closed .map-pane { display: block; }

  .app[data-mobile-mode="voice"] {
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
    background: #050505;
  }
  .app[data-mobile-mode="voice"] > .cluster-nav,
  .app[data-mobile-mode="voice"] > .world-navigation,
  .app[data-mobile-mode="voice"] > .map-mode-nav,
  .app[data-mobile-mode="voice"] > .tracebar { display: none; }
  .app[data-mobile-mode="voice"] .workspace.reader-closed {
    position: absolute;
    inset: 64px 0 0;
    min-height: 0;
    opacity: .18;
    pointer-events: none;
    overflow: hidden;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed .map-pane {
    height: 100%;
    background: #050505;
    filter: brightness(.25) saturate(.55);
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    position: relative;
    z-index: 35;
    flex: 1 1 auto;
    width: calc(100% - 1rem);
    margin: calc(64px + 40px + .65rem) .5rem .75rem;
    max-height: calc(100dvh - 64px - 40px - 1.4rem);
    min-height: 0;
    border: 1px solid var(--line);
    background: var(--paper);
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue:not(.has-visible-answer)::before {
    content: "ГЛАС / СЛУШАЕТ";
    display: block;
    padding: .75rem .75rem 0;
    color: var(--blue);
    font: 500 10px/1.2 var(--mono);
    letter-spacing: .07em;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue.has-visible-answer::before { content: none; }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    height: auto;
    max-height: calc(100dvh - 150px);
    overflow-x: hidden;
    overflow-y: auto;
  }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue.has-visible-answer[data-desktop-view="answer"] .bogobot-dialogue-input { display: none; }
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue:not(.has-visible-answer) .bogobot-dialogue-toggle { display: none; }

  .app[data-mobile-mode="reader"] { background: var(--paper); }
  .app[data-mobile-mode="reader"] .map-pane { display: none !important; }
  .app[data-mobile-mode="reader"] > .cluster-nav,
  .app[data-mobile-mode="reader"] > .world-navigation,
  .app[data-mobile-mode="reader"] > .map-mode-nav,
  .app[data-mobile-mode="reader"] > .tracebar { display: none !important; }
  .app[data-mobile-mode="reader"] > .workspace { background: var(--paper); }
  .app[data-mobile-mode="reader"] > .bogobot-dialogue.reader-is-open { display: none !important; }
}

.mobile-menu-toggle,
.mobile-menu-backdrop,
.mobile-global-menu { display: none; }

/* P7.5 UX REPAIR — mobile map shell only */
@media (max-width: 767px) {
  body.mobile-menu-open { overflow: hidden; }

  .app > .topbar {
    position: relative;
    z-index: 70;
    flex: 0 0 var(--global-header-height);
    width: 100%;
    height: var(--global-header-height);
    min-height: var(--global-header-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-inline: var(--global-header-padding-x);
    overflow: visible;
    background: var(--paper);
    box-shadow: none;
  }
  .app > .topbar .commands { display: none; }
  .app > .topbar .brand-lockup {
    flex: 1 1 auto;
    min-width: 0;
    height: 48px;
    gap: 8px;
    overflow: visible;
  }
  .app > .topbar .brand {
    flex: 0 0 var(--global-mobile-logo-size);
    min-width: var(--global-mobile-logo-size);
    width: var(--global-mobile-logo-size);
    height: var(--global-mobile-logo-size);
    gap: 0;
    overflow: visible;
  }
  .app > .topbar .brand img {
    flex: 0 0 var(--global-mobile-logo-size);
    width: var(--global-mobile-logo-size);
    height: var(--global-mobile-logo-size);
    object-fit: contain;
    object-position: left center;
  }
  .app > .topbar .brand-title {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    font-size: 9px;
    line-height: 1.15;
  }
  .app > .topbar .brand:focus-visible {
    outline: 1px solid var(--blue);
    outline-offset: 3px;
  }

  .mobile-menu-toggle {
    display: inline-grid;
    flex: 0 0 var(--global-mobile-menu-size);
    width: var(--global-mobile-menu-size);
    min-width: var(--global-mobile-menu-size);
    min-height: var(--global-mobile-menu-size);
    place-items: center;
    gap: 4px;
    padding: 12px 8px;
    border: 0;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
  }
  .mobile-menu-toggle span {
    display: block;
    width: 24px;
    height: 1px;
    background: currentColor;
  }
  .mobile-menu-toggle:hover { color: var(--blue); }
  .mobile-menu-toggle:focus-visible {
    color: var(--blue);
    outline: 1px solid var(--blue);
    outline-offset: 3px;
  }
  .mobile-menu-backdrop:not([hidden]) {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 78;
    background: rgba(5, 5, 5, .18);
  }
  .mobile-global-menu:not([hidden]) {
    display: block;
    position: fixed;
    z-index: 79;
    inset: 64px 0 auto;
    max-height: calc(100dvh - 64px - 56px - env(safe-area-inset-bottom));
    overflow-y: auto;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--paper);
  }
  .app:not([data-mobile-mode="reader"]) > .topbar,
  .app:has(.workspace.reader-closed) > .topbar {
    background: #050607;
    border-bottom-color: rgba(239,239,234,.18);
    color: var(--paper);
  }
  .mobile-global-menu-inner { display: grid; min-width: 0; }
  .mobile-global-command {
    min-height: 48px;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0 14px;
    border: 0;
    border-bottom: 1px solid var(--faint);
    background: transparent;
    color: var(--ink);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    font: 400 var(--global-nav-font-size)/1.2 var(--mono);
    letter-spacing: .055em;
  }
  .mobile-global-command:hover { color: var(--blue); background: var(--faint); }
  .mobile-global-command:focus-visible {
    color: var(--blue);
    outline: 1px solid var(--blue);
    outline-offset: -2px;
  }
  .mobile-global-command-close { color: var(--blue); }

  .desktop-stage-switcher {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 76;
    width: 100%;
    min-height: 56px;
    padding: 0 0 env(safe-area-inset-bottom);
    box-sizing: content-box;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 0;
    border: 0;
    border-top: 1px solid var(--line);
    background: var(--paper);
    overflow: hidden;
    scrollbar-width: none;
  }
  .desktop-stage-switcher::-webkit-scrollbar { display: none; }
  .desktop-stage-switcher button[data-desktop-stage] {
    min-width: 0;
    min-height: 56px;
    padding: 0;
    border: 0;
    border-top: 1px solid transparent;
    background: transparent;
    color: var(--ink);
    text-align: center;
    font: 500 9px/1 var(--mono);
    letter-spacing: .06em;
  }
  .desktop-stage-switcher button[data-desktop-stage]:hover { color: var(--blue); background: transparent; }
  .desktop-stage-switcher button[data-desktop-stage]:focus-visible {
    color: var(--blue);
    outline: 1px solid var(--blue);
    outline-offset: -3px;
  }
  .desktop-stage-switcher button[data-desktop-stage][aria-pressed="true"] {
    color: var(--blue);
    border-top-color: var(--blue);
    box-shadow: none;
  }
  .desktop-stage-switcher button[data-desktop-stage]:disabled { opacity: .34; }

  .app.map-overview .workspace {
    flex: 1 1 auto;
    min-height: 0;
    padding-bottom: calc(104px + env(safe-area-inset-bottom));
  }
  .app.map-overview .map-pane {
    min-height: 0;
  }
  .app.map-overview .map-pane::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    height: calc(104px + env(safe-area-inset-bottom));
    pointer-events: none;
    background: linear-gradient(180deg, rgba(5,5,5,0), rgba(5,5,5,.18));
  }

  .app.map-overview[data-mobile-mode="world"] .workspace {
    display: flex;
    padding-bottom: 0;
    overflow: hidden;
  }
  .app.map-overview[data-mobile-mode="world"] .workspace.reader-closed .map-pane {
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
  }
  .app.map-overview[data-mobile-mode="world"] .map-pane::after { display: none; }

  .app.map-overview .tracebar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(56px + env(safe-area-inset-bottom));
    z-index: 74;
    min-height: 48px;
    height: 48px;
    max-height: 48px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 0 16px;
    overflow: hidden;
    border-top: 1px solid rgba(239,239,234,.22);
    background: rgba(5, 5, 5, .86);
    color: var(--paper);
  }
  .app.map-overview .tracebar .trace,
  .app.map-overview .tracebar #resetButton { display: none; }
  .app.map-overview .tracebar .trace-label {
    min-height: 48px;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--paper);
    text-align: left;
  }
  .app.map-overview .tracebar .trace-label::after {
    content: "РАЗВЕРНУТЬ ↑";
    flex: 0 0 auto;
    color: var(--paper);
    opacity: .86;
  }
  .app.map-overview .tracebar.route-expanded {
    height: auto;
    max-height: 42dvh;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "label reset" "path path";
    align-items: start;
    padding: .75rem 14px .9rem;
    overflow-x: hidden;
    overflow-y: auto;
    border-top: 1px solid var(--line);
    background: var(--paper);
    color: var(--ink);
  }
  .app.map-overview .tracebar.route-expanded .trace-label {
    grid-area: label;
    min-height: 32px;
    color: var(--ink);
  }
  .app.map-overview .tracebar.route-expanded .trace-label::after {
    content: "СВЕРНУТЬ ↓";
    color: var(--blue);
    opacity: 1;
  }
  .app.map-overview .tracebar.route-expanded .trace {
    grid-area: path;
    display: flex;
    max-width: 100%;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    overflow: visible;
  }
  .app.map-overview .tracebar.route-expanded .trace button { color: var(--ink); }
  .app.map-overview .tracebar.route-expanded .trace button:last-of-type { color: var(--blue); }
  .app.map-overview .tracebar.route-expanded #resetButton {
    grid-area: reset;
    display: block;
    justify-self: end;
    align-self: start;
  }

  .app[data-mobile-mode="voice"] > .tracebar,
  .app[data-mobile-mode="reader"] > .tracebar { display: none !important; }
  .app[data-mobile-mode="reader"] .reader-scroll {
    padding-bottom: calc(80px + env(safe-area-inset-bottom));
  }
}

/* P7.5 UX REPAIR — mobile voice keeps bottom stage navigation above overlay */
@media (max-width: 767px) {
  .app[data-mobile-mode="voice"] .desktop-stage-switcher,
  .app[data-mobile-mode="reader"] .desktop-stage-switcher,
  .app[data-mobile-mode="world"] .desktop-stage-switcher {
    z-index: 90;
    background: var(--paper);
  }
}

/* P7.5 UX REPAIR — mobile Voice as standalone light screen */
@media (max-width: 767px) {
  .app[data-mobile-mode="voice"] {
    background: var(--paper);
    overflow-x: hidden;
    overflow-y: hidden;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed {
    display: contents !important;
    flex: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed .map-pane,
  .app[data-mobile-mode="voice"] .workspace.reader-closed #graph,
  .app[data-mobile-mode="voice"] .workspace.reader-closed #rhizome3dCanvas,
  .app[data-mobile-mode="voice"] .workspace.reader-closed .graph-surface-toolbar,
  .app[data-mobile-mode="voice"] .workspace.reader-closed .map-status,
  .app[data-mobile-mode="voice"] .workspace.reader-closed .legend,
  .app[data-mobile-mode="voice"] .workspace.reader-closed .minimap {
    display: none !important;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    position: relative;
    inset: auto;
    transform: none;
    z-index: 35;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-content: start;
    align-items: stretch;
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    height: calc(100dvh - 64px - 56px - env(safe-area-inset-bottom));
    min-height: 0;
    max-height: calc(100dvh - 64px - 56px - env(safe-area-inset-bottom));
    margin: 0;
    padding: 20px 16px calc(80px + env(safe-area-inset-bottom));
    box-sizing: border-box;
    border: 0;
    box-shadow: none;
    background: var(--paper);
    overflow-x: hidden;
    overflow-y: auto;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue:not(.has-visible-answer)::before {
    padding: 0 0 .75rem;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    max-height: none;
    width: 100%;
    padding: 0;
    overflow: visible;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-input,
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-signals,
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-signal-list {
    width: 100%;
    max-width: 100%;
  }
}

/* Phase 2 — mobile shell and navigation cleanup */
@media (max-width: 767px), (max-height: 430px) and (orientation: landscape) {
  body.mobile-menu-open { overflow: hidden; }
  .app > .topbar {
    position: relative;
    z-index: 95;
    flex: 0 0 64px;
    min-height: 64px;
    max-height: 64px;
    padding-inline: var(--global-header-padding-x);
    overflow: visible;
  }
  .app > .topbar .commands { display: none; }
  .app > .topbar .brand-lockup { flex: 1 1 auto; min-width: 0; max-width: calc(100vw - 78px); overflow: visible; }
  .app > .topbar .brand { flex: 0 0 48px; min-width: 48px; width: 48px; height: 48px; overflow: visible; }
  .app > .topbar .brand img { flex: 0 0 48px; min-width: 48px; width: 48px; height: 48px; }
  .app > .topbar .brand-title {
    display: block;
    min-width: 0;
    overflow: visible;
    white-space: normal;
    text-overflow: clip;
    font-size: clamp(8px, 2.45vw, 10px);
    line-height: 1.12;
  }
  .mobile-menu-toggle {
    display: inline-grid;
    flex: 0 0 var(--global-mobile-menu-size);
    width: var(--global-mobile-menu-size);
    min-width: var(--global-mobile-menu-size);
    min-height: var(--global-mobile-menu-size);
    place-items: center;
    gap: 4px;
    padding: 12px 8px;
    touch-action: manipulation;
  }
  .mobile-menu-toggle span {
    display: block;
    width: 24px;
    height: 1px;
    background: currentColor;
    opacity: 1;
  }
  .mobile-global-menu:not([hidden]) {
    display: block;
    position: fixed;
    z-index: 96;
    inset: 64px 0 auto;
    max-height: calc(100dvh - 64px - env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(107,94,87,.45) transparent;
  }
  .mobile-menu-backdrop:not([hidden]) { z-index: 94; }
  .mobile-global-command { min-height: 48px; touch-action: manipulation; }
}

@media (max-width: 767px) {
  html,
  body,
  .app { max-width: 100%; overflow-x: hidden; }
  .reader-toolbar,
  .reader-actions { gap: .45rem; }
  .reader-actions .command,
  #closeReader,
  #previousTrace,
  #nextTrace,
  .bogobot-dialogue-actions button,
  .route,
  .command.small { min-height: 44px; touch-action: manipulation; }
  .reader-scroll,
  .preview-content,
  .source-document { font-size: 14px; line-height: 1.58; }
  .bogobot-dialogue input { min-height: 44px; font-size: 15px; }
  .bogobot-answer { font-size: 13px; line-height: 1.62; scrollbar-width: thin; scrollbar-color: rgba(107,94,87,.45) transparent; }
  .bogobot-signal { min-height: 56px; width: 100%; touch-action: manipulation; }
  .bogobot-signal-text { font-size: 12px; line-height: 1.4; }
  .bogobot-signals-refresh { min-height: 44px; font-size: 10px; }
  .trace-label { cursor: pointer; min-height: 48px; touch-action: manipulation; }
  .app.map-overview .tracebar { scrollbar-width: thin; scrollbar-color: rgba(107,94,87,.45) transparent; }
}

@media (max-height: 430px) and (orientation: landscape) {
  .app > .topbar { flex-basis: 56px; min-height: 56px; max-height: 56px; }
  .mobile-global-menu:not([hidden]) { inset-block-start: 56px; max-height: calc(100dvh - 56px); }
  .bogobot-dialogue,
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue {
    max-height: calc(100dvh - 72px);
  }
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue-body,
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    max-height: calc(100dvh - 124px);
  }
}

/* P7.13D — GLAS is a compact terminal voice over the graph, not a paper modal. */
body.glas-open .glas-backdrop {
  background: transparent;
  pointer-events: none;
}

body.glas-open .bogobot-dialogue,
body.glas-open .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
  left: 50%;
  right: auto;
  top: calc(50% + 32px);
  bottom: auto;
  transform: translate(-50%, -50%);
  width: clamp(420px, 34vw, 480px);
  max-width: calc(100vw - 48px);
  max-height: min(64dvh, 560px);
  grid-template-rows: auto minmax(0, 1fr);
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-dark-primary);
  box-shadow: none;
  backdrop-filter: none;
  overflow: hidden;
}

body.glas-open .bogobot-dialogue::before,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
  content: "GLAS / SYSTEM VOICE";
  min-height: 30px;
  padding: 0 2px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(231, 230, 223, .22);
  background: rgba(0, 0, 0, .80);
  color: var(--signal-primary);
  font: 500 10px/1 var(--mono);
  letter-spacing: .065em;
}

body.glas-open .bogobot-dialogue::after,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::after {
  content: none;
}

body.glas-open .bogobot-dialogue-close,
body.glas-open .app[data-mobile-mode="voice"] .bogobot-dialogue-close {
  top: 0;
  right: 0;
  min-width: 92px;
  min-height: 30px;
  padding: 0 2px 0 12px;
  color: var(--text-dark-secondary);
  font: 500 9px/1 var(--mono);
  letter-spacing: .045em;
}

body.glas-open .bogobot-dialogue-close:hover,
body.glas-open .bogobot-dialogue-close:focus-visible {
  color: var(--signal-primary);
  outline: 1px solid var(--signal-primary);
  outline-offset: -1px;
}

body.glas-open .bogobot-dialogue-body,
body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
  min-height: 0;
  max-height: min(58dvh, 520px);
  padding: 16px 2px 2px;
  border: 0;
  background: rgba(0, 0, 0, .80);
  color: var(--text-dark-primary);
  overflow-x: hidden;
  overflow-y: auto;
}

body.glas-open .bogobot-dialogue-body > label {
  margin: 0 0 10px;
  color: var(--text-dark-secondary);
  font: 500 9px/1.2 var(--mono);
  letter-spacing: .055em;
}

body.glas-open .bogobot-dialogue-input {
  min-height: 42px;
  margin: 0;
  padding: 0;
  gap: 12px;
  border: 0;
  background: transparent;
}

body.glas-open .bogobot-dialogue input {
  min-height: 42px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(231, 230, 223, .28);
  background: transparent;
  color: var(--text-dark-primary);
  font: 400 13px/1.35 var(--mono);
}

body.glas-open .bogobot-dialogue input::placeholder {
  color: var(--text-dark-secondary);
}

body.glas-open .bogobot-dialogue-state {
  color: var(--signal-primary);
  font: 500 9px/1 var(--mono);
}

body.glas-open .bogobot-answer {
  max-width: none;
  max-height: min(38dvh, 300px);
  margin: 12px 0 0;
  padding: 12px 0;
  border-block: 1px solid rgba(231, 230, 223, .18);
  background: transparent;
  color: var(--text-dark-primary);
  font: 400 12px/1.5 var(--mono);
  overflow-x: hidden;
  overflow-y: auto;
}

body.glas-open .bogobot-dialogue[data-answer-view="compact"] .bogobot-answer:not([hidden]) {
  max-height: calc(5 * 1.5em + 24px);
}

body.glas-open .voice-line--nested,
body.glas-open .bogobot-node-context,
body.glas-open .bogobot-connection-signal,
body.glas-open .bogobot-dialogue-actions button,
body.glas-open .bogobot-signal,
body.glas-open .bogobot-signals-refresh,
body.glas-open .bogobot-signals-return {
  color: var(--text-dark-secondary);
}

body.glas-open .voice-line--signal,
body.glas-open .voice-line--formula,
body.glas-open .bogobot-signal-arrow,
body.glas-open .bogobot-action-primary {
  color: var(--signal-primary);
}

body.glas-open .bogobot-signals,
body.glas-open .bogobot-node-context,
body.glas-open .bogobot-connection-signal,
body.glas-open .bogobot-dialogue-actions {
  border-color: rgba(231, 230, 223, .18);
}

body.glas-open .bogobot-signal-list {
  background: transparent;
}

body.glas-open .bogobot-signal {
  min-height: 44px;
  padding: 8px 0;
  border-bottom-color: rgba(231, 230, 223, .14);
  background: transparent;
}

body.glas-open .bogobot-signal:hover,
body.glas-open .bogobot-signal:focus-visible,
body.glas-open .bogobot-dialogue-actions button:hover,
body.glas-open .bogobot-dialogue-actions button:focus-visible {
  background: rgba(231, 230, 223, .045);
  color: var(--signal-primary);
}

body.glas-open .bogobot-dialogue-actions {
  margin-top: 10px;
  padding-top: 4px;
}

body.glas-open .bogobot-dialogue-actions button {
  min-height: 44px;
  padding: 8px 0;
}

@media (max-width: 767px) {
  body.glas-open .bogobot-dialogue,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    left: 50%;
    right: auto;
    top: calc(50% + 28px);
    bottom: auto;
    width: calc(100vw - 32px);
    max-width: 480px;
    max-height: min(68dvh, 560px);
    border-radius: 0;
  }

  body.glas-open .bogobot-dialogue-body,
  body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    max-height: min(62dvh, 520px);
    padding: 14px 2px 2px;
  }

  body.glas-open .bogobot-answer {
    font-size: 11px;
    line-height: 1.5;
  }
}

@media (max-height: 430px) and (orientation: landscape) {
  body.glas-open .bogobot-dialogue,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    left: 50%;
    right: auto;
    top: calc(50% + 20px);
    bottom: auto;
    width: min(480px, calc(100vw - 48px));
    max-height: calc(100dvh - 48px);
  }

  body.glas-open .bogobot-dialogue::before,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
    min-height: 28px;
    padding-inline: 2px;
    font-size: 9px;
  }

  body.glas-open .bogobot-dialogue-close,
  body.glas-open .app[data-mobile-mode="voice"] .bogobot-dialogue-close {
    min-height: 28px;
  }

  body.glas-open .bogobot-dialogue-body,
  body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    max-height: calc(100dvh - 76px);
    padding-block: 10px 2px;
  }
}


/* Phase 2 final — entry screen low-height fit */
@media (max-height: 430px) and (orientation: landscape) {
  .boot-content {
    width: min(100% - 2rem, 920px);
    min-height: calc(100dvh - 1rem);
    padding: .45rem 0;
    grid-template-columns: 58px minmax(0, 1fr);
    column-gap: clamp(.7rem, 2vw, 1.4rem);
    align-items: center;
  }
  .boot-logo { width: 46px; height: 46px; align-self: start; }
  .boot-copy {
    width: min(100%, 760px);
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 240px);
    column-gap: clamp(1rem, 4vw, 2rem);
    row-gap: .35rem;
    align-items: end;
  }
  .boot-copy h1 {
    grid-column: 1;
    max-width: 12ch;
    margin-bottom: .55rem;
    font-size: 28px;
    line-height: 1.15;
  }
  .boot-copy p { grid-column: 1; max-width: 480px; font-size: 12px; line-height: 1.32; }
  .boot #enter { grid-column: 1; width: max-content; min-height: 38px; margin-top: .3rem; padding-block: .45rem; }
  .boot-system-copy {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
    width: 100%;
    margin-top: 0;
    grid-template-columns: 1fr;
    gap: .6rem;
  }
  .boot-index { transform: none; width: min(210px, 100%); font-size: 8px; line-height: 1.32; }
  .boot-formula { font-size: 16px; }
}

@media (min-width: 768px) and (max-width: 900px) and (min-height: 700px) {
  .boot-copy { margin-top: clamp(1.5rem, 4vh, 3rem); }
  .boot-system-copy { margin-top: 2rem; }
}


/* Phase 2 low-height landscape — GLAS fit and single map exit */
@media (max-height: 430px) and (orientation: landscape) {
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue-close,
  .app[data-mobile-mode="voice"] .bogobot-dialogue-close {
    display: none !important;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue {
    top: calc(50% + 6px);
    width: calc(100vw - 32px);
    max-width: calc(100vw - 32px);
    height: calc(100dvh - 88px);
    max-height: calc(100dvh - 88px);
    overflow: hidden;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue::before {
    flex: 0 0 auto;
    padding: .5rem .65rem 0;
    font-size: 9px;
    line-height: 1.1;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue-body,
  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    padding: .5rem .65rem .6rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue-body > label {
    margin-bottom: .35rem;
    font-size: 8px;
    line-height: 1.2;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue-input {
    gap: .45rem;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue input {
    min-height: 34px;
    padding: .28rem 0;
    font-size: 12px;
    line-height: 1.25;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-signals {
    margin-top: .42rem;
    padding-top: .35rem;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-signal {
    min-height: 44px;
    padding: 6px 10px;
    column-gap: 12px;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-signal-text {
    font-size: 9px;
    line-height: 1.28;
    -webkit-line-clamp: 2;
  }

  .app[data-desktop-dialogue-mode="voice"] .bogobot-signals-refresh {
    min-height: 44px;
    margin-top: .2rem;
    font-size: 8px;
  }
}

@media (max-height: 430px) and (orientation: landscape) {
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    position: relative;
    inset: auto;
    transform: none;
    width: calc(100% - 32px);
    height: calc(100dvh - 112px - env(safe-area-inset-bottom));
    max-height: calc(100dvh - 112px - env(safe-area-inset-bottom));
    margin: 0 auto;
    padding: .45rem .65rem .55rem;
    overflow: hidden;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
    flex: 0 0 auto;
    padding: 0 0 .35rem;
    font-size: 9px;
    line-height: 1.1;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    height: auto;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body > label {
    margin-bottom: .3rem;
    font-size: 8px;
    line-height: 1.15;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-input {
    gap: .45rem;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue input {
    min-height: 34px;
    padding: .28rem 0;
    font-size: 12px;
    line-height: 1.25;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-signals {
    margin-top: .38rem;
    padding-top: .3rem;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-signal {
    min-height: 44px;
    padding: 5px 9px;
    column-gap: 12px;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-signal-text {
    font-size: 9px;
    line-height: 1.24;
    -webkit-line-clamp: 2;
  }

  .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-signals-refresh {
    min-height: 44px;
    margin-top: .16rem;
    font-size: 8px;
  }
}

/* P7.5 — unified dark IDE visual system for allowed main-app surfaces only. */
.app {
  color: var(--text-primary);
  background:
    radial-gradient(circle at 18% 12%, rgba(0, 60, 255, .12), transparent 30%),
    radial-gradient(circle at 86% 78%, rgba(231, 230, 223, .045), transparent 28%),
    var(--bg-root);
}

.app .reader,
.app .bogobot-dialogue,
.app[data-desktop-dialogue-mode="reader"] .desktop-stage-switcher,
.app[data-mobile-mode="reader"] .desktop-stage-switcher {
  color: var(--ink);
}

.app .topbar,
.app .cluster-nav,
.app .map-mode-nav,
.app .world-navigation,
.app .tracebar,
.app .map-pane,
.app .graph-surface-toolbar,
.mobile-global-menu:not([hidden]) {
  --ink: var(--text-primary);
  --line: var(--line-default);
  --faint: var(--line-soft);
}

.app .topbar,
.app .cluster-nav,
.app .map-mode-nav,
.app .world-navigation,
.app .tracebar {
  background: color-mix(in srgb, var(--bg-surface) 94%, transparent);
  border-color: var(--line-default);
  color: var(--text-primary);
}

.app .topbar,
.app .graph-surface-toolbar,
.app .tracebar,
.search-dialog,
.system-modal {
  backdrop-filter: blur(10px);
}

.app .command:hover,
.app .cluster-nav button:hover,
.app .map-mode-nav button:hover,
.app .world-navigation-items button:hover,
.app .world-navigation-controls button:hover,
.mobile-global-command:hover {
  background: var(--state-hover);
  color: var(--text-primary);
}

.app .command:focus-visible,
.app .cluster-nav button:focus-visible,
.app .map-mode-nav button:focus-visible,
.app .world-navigation-items button:focus-visible,
.app .world-navigation-controls button:focus-visible,
.mobile-menu-toggle:focus-visible,
.mobile-global-command:focus-visible,
.search-dialog button:focus-visible,
.system-modal .command:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.app .command[aria-current="page"],
.app .command.guide-active,
.app .cluster-nav button.active,
.app .map-mode-nav button.active,
.app .world-navigation-items button.active {
  color: var(--accent-primary-bright);
  border-color: var(--line-active);
  background: var(--state-active);
}

.app .map-pane,
.app .workspace.reader-closed .map-pane,
.app[data-desktop-dialogue-mode="graph"] .workspace.reader-closed .map-pane {
  background: #050607;
  border-color: var(--line-default);
  color: var(--text-primary);
}

.app .map-pane::before {
  opacity: .16;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
}

.app #graph,
.app .surface-2d {
  background: #050607;
}

.app .map-status,
.app .legend,
.app .lens-status,
.app .history-marker,
.app .map-orientation {
  color: var(--text-secondary);
}

.app .map-museum-status,
.app .map-heading,
.app .legend-title {
  color: var(--text-primary);
}

.app .graph-surface-toolbar {
  background: rgba(5, 6, 7, .84);
  border-color: var(--line-default);
}

.app .graph-surface-controls,
.app .rhizome-view-controls button {
  border-color: var(--line-default);
}

.app .graph-surface-controls button,
.app .rhizome-view-controls button {
  color: var(--text-secondary);
}

.app .graph-surface-controls button[aria-pressed="true"],
.app .rhizome-view-controls button[aria-pressed="true"] {
  color: var(--text-primary);
  background: var(--accent-primary);
}

.app .world-navigation-items,
.app .world-navigation-controls {
  background: var(--line-soft);
}

.app .world-navigation-items button,
.app .world-navigation-controls button,
.mobile-global-command {
  background: var(--bg-surface-raised);
  color: var(--text-secondary);
}

.app .world-navigation-controls button:disabled {
  color: var(--text-disabled);
  background: var(--state-disabled);
}

.system-modal {
  background: var(--bg-surface-raised);
  color: var(--text-primary);
  border-color: var(--line-default);
  box-shadow: var(--glow-soft);
}

.system-modal::backdrop {
  background: var(--bg-overlay);
  backdrop-filter: blur(5px);
}

.system-modal p {
  color: var(--text-muted);
}

.system-modal .command {
  color: var(--text-secondary);
  border-color: var(--line-soft);
}

.system-modal .command:hover,
.system-modal .command:focus-visible {
  background: var(--state-hover);
  color: var(--accent-primary-bright);
}

@media (max-width: 767px) {
  .app > .topbar,
  .mobile-global-menu:not([hidden]) {
    background: color-mix(in srgb, var(--bg-surface) 96%, transparent);
    border-color: var(--line-default);
    color: var(--text-primary);
  }

  .mobile-menu-backdrop:not([hidden]) {
    background: rgba(5, 6, 7, .56);
  }

  .mobile-menu-toggle,
  .mobile-global-command {
    color: var(--text-primary);
  }
}

/* P7.5.3 — contextual theme freeze: archive/GLAS stay light, map shell stays dark. */
.app:not([data-desktop-dialogue-mode="reader"]):not([data-mobile-mode="reader"]) .desktop-stage-switcher {
  --ink: var(--text-primary);
  --line: var(--line-default);
  --faint: var(--line-soft);
  background: color-mix(in srgb, var(--bg-surface) 94%, transparent);
  border-color: var(--line-default);
  color: var(--text-secondary);
  box-shadow: none;
}

.app:not([data-desktop-dialogue-mode="reader"]):not([data-mobile-mode="reader"]) .desktop-stage-switcher button {
  color: var(--text-secondary);
}

.app:not([data-desktop-dialogue-mode="reader"]):not([data-mobile-mode="reader"]) .desktop-stage-switcher button:hover {
  color: var(--text-primary);
  background: transparent;
}

.app:not([data-desktop-dialogue-mode="reader"]):not([data-mobile-mode="reader"]) .desktop-stage-switcher button:focus-visible {
  color: var(--accent-primary-bright);
  outline: 1px solid var(--accent-primary);
  outline-offset: -2px;
  box-shadow: none;
}

.app:not([data-desktop-dialogue-mode="reader"]):not([data-mobile-mode="reader"]) .desktop-stage-switcher button[aria-pressed="true"] {
  color: var(--accent-primary-bright);
  border-color: var(--accent-primary);
  box-shadow: inset 0 -1px 0 var(--accent-primary);
  background: transparent;
}

.app[data-desktop-dialogue-mode="reader"],
.app[data-mobile-mode="reader"] {
  --ink: #6b5e57;
  --line: rgba(107, 94, 87, 0.42);
  --faint: rgba(107, 94, 87, 0.18);
  color: var(--ink);
  background: var(--paper);
}

.app[data-desktop-dialogue-mode="reader"] .topbar,
.app[data-desktop-dialogue-mode="reader"] .cluster-nav,
.app[data-desktop-dialogue-mode="reader"] .map-mode-nav,
.app[data-desktop-dialogue-mode="reader"] .tracebar,
.app[data-desktop-dialogue-mode="reader"] .desktop-stage-switcher,
.app[data-mobile-mode="reader"] .topbar,
.app[data-mobile-mode="reader"] .cluster-nav,
.app[data-mobile-mode="reader"] .map-mode-nav,
.app[data-mobile-mode="reader"] .tracebar,
.app[data-mobile-mode="reader"] .desktop-stage-switcher,
.app[data-mobile-mode="reader"] .mobile-global-menu:not([hidden]) {
  --ink: #6b5e57;
  --line: rgba(107, 94, 87, 0.42);
  --faint: rgba(107, 94, 87, 0.18);
  background: color-mix(in srgb, var(--paper) 96%, transparent);
  border-color: var(--line);
  color: var(--ink);
  box-shadow: none;
  backdrop-filter: none;
}

.app[data-desktop-dialogue-mode="reader"] .topbar .commands .command,
.app[data-desktop-dialogue-mode="reader"] .cluster-nav button,
.app[data-desktop-dialogue-mode="reader"] .map-mode-nav button,
.app[data-desktop-dialogue-mode="reader"] .desktop-stage-switcher button,
.app[data-mobile-mode="reader"] .topbar .commands .command,
.app[data-mobile-mode="reader"] .cluster-nav button,
.app[data-mobile-mode="reader"] .map-mode-nav button,
.app[data-mobile-mode="reader"] .desktop-stage-switcher button,
.app[data-mobile-mode="reader"] .mobile-global-command {
  color: var(--ink);
  background: transparent;
}

.app[data-desktop-dialogue-mode="reader"] .topbar .commands .command:hover,
.app[data-desktop-dialogue-mode="reader"] .cluster-nav button:hover,
.app[data-desktop-dialogue-mode="reader"] .map-mode-nav button:hover,
.app[data-desktop-dialogue-mode="reader"] .desktop-stage-switcher button:hover,
.app[data-mobile-mode="reader"] .topbar .commands .command:hover,
.app[data-mobile-mode="reader"] .cluster-nav button:hover,
.app[data-mobile-mode="reader"] .map-mode-nav button:hover,
.app[data-mobile-mode="reader"] .desktop-stage-switcher button:hover,
.app[data-mobile-mode="reader"] .mobile-global-command:hover {
  color: var(--blue);
  background: var(--faint);
  box-shadow: none;
}

.app[data-desktop-dialogue-mode="reader"] .topbar .commands .command:focus-visible,
.app[data-desktop-dialogue-mode="reader"] .cluster-nav button:focus-visible,
.app[data-desktop-dialogue-mode="reader"] .map-mode-nav button:focus-visible,
.app[data-desktop-dialogue-mode="reader"] .desktop-stage-switcher button:focus-visible,
.app[data-mobile-mode="reader"] .topbar .commands .command:focus-visible,
.app[data-mobile-mode="reader"] .cluster-nav button:focus-visible,
.app[data-mobile-mode="reader"] .map-mode-nav button:focus-visible,
.app[data-mobile-mode="reader"] .desktop-stage-switcher button:focus-visible,
.app[data-mobile-mode="reader"] .mobile-global-command:focus-visible {
  color: var(--blue);
  outline: 1px solid var(--blue);
  outline-offset: -2px;
  box-shadow: none;
  background: transparent;
}

.app[data-desktop-dialogue-mode="reader"] .topbar .commands .command[aria-current="page"],
.app[data-desktop-dialogue-mode="reader"] .topbar .commands .command.guide-active,
.app[data-desktop-dialogue-mode="reader"] .cluster-nav button.active,
.app[data-desktop-dialogue-mode="reader"] .map-mode-nav button.active,
.app[data-desktop-dialogue-mode="reader"] .desktop-stage-switcher button[aria-pressed="true"],
.app[data-mobile-mode="reader"] .topbar .commands .command[aria-current="page"],
.app[data-mobile-mode="reader"] .topbar .commands .command.guide-active,
.app[data-mobile-mode="reader"] .cluster-nav button.active,
.app[data-mobile-mode="reader"] .map-mode-nav button.active,
.app[data-mobile-mode="reader"] .desktop-stage-switcher button[aria-pressed="true"] {
  color: var(--blue);
  border-color: var(--blue);
  background: transparent;
  box-shadow: inset 0 -1px 0 var(--blue);
}

.app[data-desktop-dialogue-mode="reader"] .reader,
.app[data-desktop-dialogue-mode="reader"] .reader.open,
.app[data-desktop-dialogue-mode="reader"] .reader-scroll,
.app[data-desktop-dialogue-mode="reader"] .workspace,
.app[data-mobile-mode="reader"] .reader,
.app[data-mobile-mode="reader"] .reader.open,
.app[data-mobile-mode="reader"] .reader-scroll,
.app[data-mobile-mode="reader"] > .workspace {
  background: var(--paper);
  color: var(--ink);
}

.app[data-desktop-dialogue-mode="reader"] .reader-toolbar,
.app[data-mobile-mode="reader"] .reader-toolbar {
  background: var(--paper);
  border-color: var(--line);
  color: var(--ink);
  backdrop-filter: none;
}

.app[data-desktop-dialogue-mode="reader"] .reader-toolbar .command,
.app[data-desktop-dialogue-mode="reader"] .reader-actions .command,
.app[data-mobile-mode="reader"] .reader-toolbar .command,
.app[data-mobile-mode="reader"] .reader-actions .command,
.app[data-mobile-mode="reader"] .mobile-menu-toggle {
  color: var(--ink);
  background: transparent;
  box-shadow: none;
}

.app[data-desktop-dialogue-mode="reader"] .reader-toolbar .command:hover,
.app[data-desktop-dialogue-mode="reader"] .reader-actions .command:hover,
.app[data-mobile-mode="reader"] .reader-toolbar .command:hover,
.app[data-mobile-mode="reader"] .reader-actions .command:hover,
.app[data-mobile-mode="reader"] .mobile-menu-toggle:hover {
  color: var(--blue);
  background: var(--faint);
  box-shadow: none;
}

.app[data-desktop-dialogue-mode="reader"] .reader-toolbar .command:focus-visible,
.app[data-desktop-dialogue-mode="reader"] .reader-actions .command:focus-visible,
.app[data-mobile-mode="reader"] .reader-toolbar .command:focus-visible,
.app[data-mobile-mode="reader"] .reader-actions .command:focus-visible,
.app[data-mobile-mode="reader"] .mobile-menu-toggle:focus-visible {
  color: var(--blue);
  outline: 1px solid var(--blue);
  outline-offset: -2px;
  background: transparent;
  box-shadow: none;
}

.app .bogobot-dialogue,
.app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue,
.app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
  --ink: #6b5e57;
  --line: rgba(107, 94, 87, 0.42);
  --faint: rgba(107, 94, 87, 0.18);
  background: rgba(239, 239, 234, .94);
  color: var(--ink);
  border-color: var(--line);
  box-shadow: none;
}

.app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
  background: var(--paper);
}

.app .bogobot-dialogue input,
.app .bogobot-dialogue-actions button,
.app .bogobot-signal,
.app .bogobot-signals-refresh,
.app .bogobot-signals-return,
.app .bogobot-connection-signal {
  color: var(--ink);
}

.app .bogobot-dialogue input {
  border-color: var(--line);
}

.app .bogobot-dialogue input::placeholder {
  color: rgba(107, 94, 87, .52);
}

.app .bogobot-answer {
  background: rgba(255, 255, 255, .28);
  color: var(--ink);
  border-color: var(--line);
}

.app .voice-line--nested {
  color: rgba(81, 71, 65, .82);
}

.app .voice-line--signal,
.app .voice-line--formula,
.app .bogobot-dialogue-state,
.app .bogobot-signal-arrow,
.app .bogobot-dialogue-actions .bogobot-action-primary {
  color: var(--blue);
}

.app .bogobot-signal:hover {
  background: rgba(0, 60, 255, .035);
}

@media (min-width: 768px) {
  .app .topbar .commands .command,
  .app .cluster-nav button,
  .app .map-mode-nav button,
  .app .world-navigation-items button,
  .app .world-navigation-controls button,
  .app .graph-surface-controls button,
  .app .rhizome-view-controls button,
  .app .tracebar,
  .app .map-status {
    font-size: 12px;
    letter-spacing: .025em;
  }

  .app .world-navigation-meta,
  .app .lens-status,
  .app .map-orientation,
  .app .trace-label,
  .app .trace button,
  .app .trace-count {
    font-size: 12px;
    letter-spacing: .025em;
  }
}

/* P7.5.5 — GLAS shell refinement. */
.app .bogobot-dialogue,
.app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue,
.app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
  --ink: #6b5e57;
  --line: rgba(35, 39, 44, .28);
  --faint: rgba(35, 39, 44, .14);
  background: #0d1118;
  color: var(--text-secondary);
  border-color: rgba(231, 230, 223, .18);
  box-shadow: none;
}

.app .bogobot-dialogue-close {
  color: var(--text-secondary);
}

.app .bogobot-dialogue-close:hover,
.app .bogobot-dialogue-close:focus-visible {
  color: var(--accent-primary-bright);
  outline: 1px solid var(--accent-primary);
  outline-offset: 2px;
}

.app .bogobot-dialogue-body,
.app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue-body,
.app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
.app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
  background: #efefea;
  color: #514741;
  border: 1px solid rgba(35, 39, 44, .24);
}

.app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
  background: #0d1118;
}

.app .bogobot-dialogue-body > label {
  color: #514741;
}

.app .bogobot-dialogue input,
.app .bogobot-dialogue-actions button,
.app .bogobot-signal,
.app .bogobot-signals-refresh,
.app .bogobot-signals-return,
.app .bogobot-connection-signal {
  color: #514741;
}

.app .bogobot-dialogue input {
  border-color: rgba(35, 39, 44, .28);
}

.app .bogobot-dialogue input::placeholder {
  color: rgba(81, 71, 65, .52);
}

.app .bogobot-dialogue input:focus {
  border-color: var(--blue);
}

.app .bogobot-answer {
  background: #f6f5ef;
  color: #514741;
  border-color: rgba(35, 39, 44, .22);
}

.app .voice-line[data-block-start="true"],
.app .bogobot-node-context,
.app .bogobot-connection-signal,
.app .bogobot-dialogue-actions,
.app .bogobot-signals,
.app .bogobot-signal {
  border-color: rgba(35, 39, 44, .16);
}

.app .voice-line--nested {
  color: rgba(81, 71, 65, .82);
}

.app .voice-line--signal,
.app .voice-line--formula,
.app .bogobot-dialogue-state,
.app .bogobot-signal-arrow,
.app .bogobot-dialogue-actions .bogobot-action-primary {
  color: var(--blue);
}

.app .bogobot-signal:hover {
  background: rgba(0, 60, 255, .045);
}

.app .bogobot-signal:focus-visible,
.app .bogobot-signals-refresh:focus-visible,
.app .bogobot-signals-return:focus-visible,
.app .bogobot-dialogue-actions button:focus-visible {
  color: var(--blue);
  outline: 1px solid var(--blue);
  outline-offset: -2px;
}

.search-dialog:not([open]),
.system-modal:not([open]) {
  display: none !important;
}

body.glas-open {
  overflow: hidden;
}

body.glas-open .glas-backdrop {
  position: fixed;
  inset: 0;
  z-index: 55;
  display: block;
  background: rgba(5, 7, 10, .08);
  pointer-events: auto;
}

body.glas-open .bogobot-dialogue,
body.glas-open .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
  position: fixed;
  inset: auto 40px 40px auto;
  z-index: 60;
  box-sizing: border-box;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: clamp(520px, 44vw, 660px);
  max-width: none;
  height: auto;
  max-height: min(70dvh, 720px);
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 32px 32px 32px 10px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: none;
  backdrop-filter: none;
  overflow-x: hidden;
  overflow-y: hidden;
  overscroll-behavior: contain;
}

body.glas-open .bogobot-dialogue::before,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
  content: "ГЛАС";
  min-height: 52px;
  display: flex;
  align-items: center;
  padding: 0 28px;
  border-bottom: 1px solid var(--line);
  box-sizing: border-box;
  background: transparent;
  color: var(--ink);
  font: 400 20px/1.2 var(--sans);
}

body.glas-open .bogobot-dialogue::after,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::after {
  content: "";
  position: absolute;
  right: 42px;
  bottom: -12px;
  width: 22px;
  height: 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  transform: rotate(45deg);
}

body.glas-open .bogobot-dialogue-close,
body.glas-open .app[data-mobile-mode="voice"] .bogobot-dialogue-close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  min-height: 52px;
  padding: 0 24px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: 400 12px/1 var(--mono);
  letter-spacing: .025em;
}

body.glas-open .bogobot-dialogue-body,
body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
  box-sizing: border-box;
  min-height: 0;
  height: auto;
  max-height: none;
  padding: 28px 32px;
  border: 0;
  background: transparent;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

body.glas-open .bogobot-dialogue-body > label {
  margin: 0 0 14px;
  font: 400 11px/1.2 var(--mono);
  letter-spacing: .04em;
}

body.glas-open .bogobot-dialogue-input {
  min-height: 72px;
  margin: 0 -32px -28px;
  padding: 16px 28px;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
}

body.glas-open .bogobot-dialogue input {
  min-height: 44px;
  font: 400 16px/1.35 var(--sans);
}

body.glas-open .bogobot-answer {
  max-width: 62ch;
  margin-top: 0;
  padding: 0 0 22px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: 400 18px/1.55 var(--sans);
}

body.glas-open .bogobot-dialogue-state,
body.glas-open .bogobot-node-context,
body.glas-open .bogobot-connection-signal {
  font-weight: 400;
}

@media (max-width: 767px) {
  body.glas-open .bogobot-dialogue,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    left: 12px;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    width: auto;
    max-height: 78dvh;
    border-radius: 24px 24px 8px 24px;
  }
  body.glas-open .bogobot-dialogue::before {
    min-height: 50px;
    padding-inline: 22px;
    font-size: 18px;
  }
  body.glas-open .bogobot-dialogue-close {
    min-height: 50px;
    min-width: 112px;
    padding-inline: 18px;
  }
  body.glas-open .bogobot-dialogue-body,
  body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    padding: 22px;
  }
  body.glas-open .bogobot-dialogue-input {
    margin: 0 -22px -22px;
    padding: 14px 22px;
  }
  body.glas-open .bogobot-answer {
    font-size: 17px;
    line-height: 1.5;
  }
}

@media (max-height: 430px) and (orientation: landscape) {
  body.glas-open .bogobot-dialogue,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    top: 12px;
    bottom: 12px;
    max-height: calc(100dvh - 24px);
  }
  body.glas-open .bogobot-dialogue::before,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
    min-height: 44px;
    padding-inline: 22px;
    font-size: 18px;
  }
  body.glas-open .bogobot-dialogue-close,
  body.glas-open .app[data-mobile-mode="voice"] .bogobot-dialogue-close {
    min-height: 44px;
  }
  body.glas-open .bogobot-dialogue-body,
  body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    padding-block: 14px;
  }
  body.glas-open .bogobot-dialogue-body > label {
    margin-bottom: 8px;
  }
  body.glas-open .bogobot-dialogue-input {
    min-height: 52px;
    padding-block: 8px;
  }
  body.glas-open .bogobot-signals {
    margin-top: 10px;
    padding-top: 8px;
  }
}

/* P7.2B — compact SEARCH command palette. */
body.search-open {
  overflow: hidden;
}

#searchButton.search-active {
  background: var(--blue);
  color: var(--paper);
  border-bottom-color: var(--paper);
}

.app.search-is-open .topbar .commands .command[aria-current="page"]:not(#searchButton),
.app.search-is-open .topbar .commands .command.guide-active:not(#searchButton) {
  background: transparent;
  color: inherit;
  border-bottom-color: transparent;
}

.search-dialog.search-palette {
  position: fixed;
  z-index: 40;
  top: clamp(72px, 10vh, 112px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(560px, 54vw, 720px);
  max-width: calc(100vw - 32px);
  height: auto;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #f1f0eb;
  color: #4a433d;
  border: 1px solid rgba(54, 49, 44, .32);
  box-shadow: none;
}

.search-dialog.search-palette::backdrop {
  background: transparent;
  backdrop-filter: none;
}

.search-palette__panel {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, auto);
  height: auto;
  max-height: none;
  min-height: 0;
  overflow: hidden;
  background: #f1f0eb;
}

.search-palette__header {
  position: absolute;
  z-index: 3;
  top: 0;
  right: 4px;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0;
  border: 0;
  background: transparent;
}

.search-palette__header h2 {
  display: none;
}

.search-palette__close,
.search-palette__clear {
  border: 0;
  background: transparent;
  color: rgba(74, 67, 61, .72);
  cursor: pointer;
  font: 500 10px/1 var(--mono);
  letter-spacing: .06em;
}

.search-palette__close {
  min-width: 44px;
  min-height: 44px;
}

.search-palette__close:hover,
.search-palette__clear:hover {
  color: var(--blue);
}

.search-palette__close:focus-visible,
.search-palette__clear:focus-visible {
  outline: 1px solid var(--blue);
  outline-offset: -2px;
  color: var(--blue);
}

.search-palette__input-wrap {
  position: relative;
  display: grid;
  gap: 6px;
  padding: 0 92px 0 18px;
  border-bottom: 1px solid rgba(54, 49, 44, .18);
  background: #f1f0eb;
}

.search-dialog.search-palette .search-palette__input {
  width: 100%;
  min-height: 58px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #4a433d;
  outline: none;
  font: 400 24px/1.18 var(--sans);
}

.search-dialog.search-palette .search-palette__input::placeholder {
  color: rgba(74, 67, 61, .58);
}

.search-dialog.search-palette .search-palette__input:focus {
  box-shadow: inset 0 -1px 0 var(--blue);
}

.search-palette__clear {
  position: absolute;
  z-index: 2;
  right: 48px;
  top: 7px;
  width: 44px;
  height: 44px;
  font-size: 18px;
  letter-spacing: 0;
}

.search-palette__hint {
  display: none;
  margin: 0;
  color: rgba(74, 67, 61, .52);
  font: 500 10px/1.25 var(--mono);
  letter-spacing: .035em;
}

.search-palette__hint[hidden] {
  display: none !important;
}

.search-palette__content {
  min-height: 0;
  max-height: 232px;
  overflow: hidden;
  background: #f1f0eb;
}

.search-dialog[data-search-state="initial"] .search-palette__content {
  display: none;
}

.search-dialog[data-search-state="empty"] .search-palette__content {
  max-height: 96px;
}

.search-palette__section-label {
  display: none;
  padding: 0;
  color: rgba(74, 67, 61, .62);
  font: 500 10px/1 var(--mono);
  letter-spacing: .065em;
}

.search-results.search-palette__results {
  min-height: 0;
  max-height: 232px;
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  background: #f1f0eb;
  scrollbar-width: thin;
  scrollbar-color: rgba(74, 67, 61, .26) transparent;
}

.search-dialog[data-search-state="initial"] .search-results.search-palette__results,
.search-dialog[data-search-state="empty"] .search-results.search-palette__results {
  overflow: hidden;
}

.search-result {
  position: relative;
  width: 100%;
  padding: 6px 24px 7px 22px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  grid-template-rows: auto auto;
  align-content: start;
  column-gap: 20px;
  row-gap: 2px;
  border: 0;
  border-bottom: 1px solid rgba(54, 49, 44, .11);
  background: transparent;
  color: #4a433d;
  text-align: left;
  cursor: pointer;
  user-select: none;
}

.search-result::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: transparent;
}

.search-result__title {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #4a433d;
  font-family: var(--sans);
  font-size: 15.5px;
  font-weight: 400;
  line-height: 1.18;
}

.search-result__snippet {
  min-width: 0;
  overflow: hidden;
  grid-column: 1 / -1;
  grid-row: 2;
  display: block;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(107,94,87,.80);
  font: var(--type-body-weight) var(--type-small-size)/var(--type-small-line) var(--sans);
}

.search-result__meta {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  max-width: 32vw;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(74, 67, 61, .58);
  white-space: nowrap;
  font: 500 10px/1.1 var(--mono);
  letter-spacing: .045em;
}

.search-result:hover,
.search-result[aria-selected="true"],
.search-result:focus-visible {
  background: rgba(0, 60, 255, .06);
  outline: none;
}

.search-result:hover::before,
.search-result[aria-selected="true"]::before,
.search-result:focus-visible::before {
  background: var(--blue);
}

.search-result:hover .search-result__title,
.search-result[aria-selected="true"] .search-result__title,
.search-result:focus-visible .search-result__title {
  color: #2f2a26;
}

.search-empty {
  min-height: 96px;
  padding: 14px 22px 20px;
  display: grid;
  align-content: start;
  gap: 8px;
  color: #4a433d;
}

.search-empty b {
  font: 500 12px/1 var(--mono);
  letter-spacing: .06em;
}

.search-empty span {
  color: rgba(74, 67, 61, .62);
  font: 400 13px/1.35 var(--sans);
}

.search-palette__footer {
  display: none;
  min-height: 0;
  align-items: center;
  padding: 0 22px;
  border-top: 1px solid rgba(54, 49, 44, .18);
  background: #f1f0eb;
  color: rgba(74, 67, 61, .58);
  font: 500 10px/1 var(--mono);
  letter-spacing: .055em;
}

@media (max-width: 767px) {
  .search-dialog.search-palette {
    top: calc(var(--global-header-height) + 8px);
    left: 14px;
    right: 14px;
    width: auto;
    max-width: none;
    height: auto;
    max-height: none;
    transform: none;
  }

  .search-palette__panel {
    max-height: none;
  }

  .search-palette__header {
    min-height: 56px;
    padding: 0;
  }

  .search-palette__input-wrap {
    padding-inline: 16px 88px;
  }

  .search-dialog.search-palette .search-palette__input {
    min-height: 56px;
    font-size: 19px;
  }

  .search-palette__section-label,
  .search-palette__footer {
    padding-inline: 16px;
  }

  .search-results.search-palette__results {
    max-height: 220px;
  }

  .search-result {
    padding: 6px 16px 7px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 28%);
    column-gap: 12px;
  }

  .search-result__title {
    font-size: 15px;
  }

  .search-result__meta {
    font-size: 9.5px;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .search-dialog.search-palette[open] {
    animation: none;
  }
}

@keyframes search-palette-in {
  from { opacity: 0; transform: translate(-50%, -6px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  @keyframes search-palette-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

/* P7.10 Phase 1B — one GLOBAL row and one ARCHIVE row on every app surface. */
@media (min-width: 768px) {
  .app[data-desktop-dialogue-mode="reader"] {
    grid-template-rows: var(--global-header-height) 34px minmax(0, 1fr);
  }
  .app[data-desktop-dialogue-mode="reader"] > .cluster-nav {
    display: flex !important;
  }
}

@media (max-width: 767px) {
  .app > .topbar {
    overflow: hidden;
  }
  .app > .topbar .brand-lockup {
    flex: 0 0 48px;
    min-width: 48px;
    max-width: 48px;
  }
  .app > .topbar .commands {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
  }
  .app > .topbar .mobile-menu-toggle,
  .mobile-menu-backdrop,
  .mobile-global-menu {
    display: none !important;
  }
  .app[data-mobile-mode="reader"] > .cluster-nav {
    display: flex !important;
  }
}

/* P7.11A — local Reader controls remain inside the document header. */
@media (min-width: 768px) {
  .app[data-desktop-dialogue-mode="reader"] .reader-toolbar {
    padding: .4rem clamp(56px, 5vw, 80px);
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 760px);
    column-gap: clamp(64px, 6vw, 96px);
    justify-content: center;
    align-items: center;
  }

  .app[data-desktop-dialogue-mode="reader"] .reader-identification {
    grid-column: 1;
  }

  .app[data-desktop-dialogue-mode="reader"] .reader-actions {
    grid-column: 2;
    width: 100%;
    max-width: 760px;
    margin-left: 0;
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .app[data-mobile-mode="reader"] .reader-toolbar {
    position: relative;
    top: auto;
    z-index: 2;
    padding: .65rem 1.25rem .15rem;
    border-bottom: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .2rem;
  }

  .app[data-mobile-mode="reader"] .reader-actions {
    width: 100%;
    margin-left: 0;
    gap: 0 .7rem;
    justify-content: flex-start;
  }

  .app[data-mobile-mode="reader"] .reader-actions .command {
    padding-inline: 0 .35rem;
  }

  .app[data-mobile-mode="reader"] .reader.guide-mode .reader-toolbar {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    padding-bottom: .35rem;
  }

  .app[data-mobile-mode="reader"] .reader.guide-mode .reader-actions {
    width: auto;
  }
}

/* P7.12D — final cascade application of the semantic type contract. */
.brand-title,.app .topbar .commands .command,.app .cluster-nav button,.app .map-mode-nav button,.app .world-navigation-items button,.app .world-navigation-controls button,.app .graph-surface-controls button,.app .rhizome-view-controls button,.app .tracebar,.app .map-status{font-family:var(--mono);font-size:var(--type-meta-size);line-height:var(--type-meta-line);letter-spacing:var(--type-nav-tracking)}
.world-navigation-meta,.lens-status,.map-orientation,.trace-label,.trace button,.trace-count,.reader-identification strong,.reader-actions .command,.command.small{font-family:var(--mono);font-size:var(--type-micro-size);line-height:var(--type-micro-line);letter-spacing:var(--type-system-tracking)}
.graph-node.tier-core .node-label{font-size:var(--type-map-node-primary-size)}
.graph-node.tier-structural .node-label{font-size:var(--type-map-node-structural-size)}
.graph-node.tier-trace .node-label{font-size:var(--type-map-node-trace-size)}
.rhizome-preview-kicker,.rhizome-preview-voice-label,.rhizome-preview-close{font:var(--type-meta-weight) var(--type-card-meta-size)/var(--type-meta-line) var(--mono);letter-spacing:var(--type-system-tracking)}
.rhizome-preview-card h2{font:var(--type-title-weight) var(--type-card-title-size)/1.18 var(--sans);letter-spacing:0}
.rhizome-preview-card p{font:var(--type-body-weight) var(--type-card-body-size)/1.35 var(--sans);letter-spacing:0}
.rhizome-preview-voice{font:var(--type-meta-weight) var(--type-card-body-size)/1.35 var(--mono)}
.rhizome-preview-open{font:var(--type-meta-weight) var(--type-card-body-size)/1 var(--mono);letter-spacing:var(--type-system-tracking)}
.reader:not(.full-reading) h1,.guide-content h1{font:var(--type-title-weight) var(--type-title-size)/var(--type-title-line) var(--sans);letter-spacing:var(--type-display-tracking)}
.reader.full-reading:not(.guide-mode) h1{font:var(--type-title-weight) var(--type-title-size)/var(--type-title-line) var(--sans);letter-spacing:var(--type-display-tracking)}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical>h2,.guide-content h2{font:var(--type-section-weight) var(--type-section-size)/var(--type-section-line) var(--sans);letter-spacing:var(--type-section-tracking)}
.reader.full-reading:not(.guide-mode) .source-document.source-canonical>h3,.guide-content h3{font:var(--type-subhead-weight) var(--type-subhead-size)/var(--type-subhead-line) var(--sans);letter-spacing:var(--type-subhead-tracking)}
.editorial-lead,.reader.full-reading:not(.guide-mode) .reader-deck{font:var(--type-lead-weight) var(--type-lead-size)/var(--type-lead-line) var(--sans)}
.node-body,.reader.full-reading:not(.guide-mode) .source-document.source-canonical,.guide-content{font:var(--type-body-weight) var(--type-body-size)/var(--type-body-line) var(--sans)}
.source-note p,.archive-note,.reader-anticode .source-document blockquote{font-size:var(--type-small-size);line-height:var(--type-small-line)}
.node-meta,figcaption,.source-caption,.reader-outline-mobile,.lexicon-index a{font-family:var(--mono);font-size:var(--type-meta-size);line-height:var(--type-meta-line)}
.source-document strong{font-weight:500}
.search-palette__header h2,.search-palette__close,.search-palette__hint,.search-palette__section-label,.search-result__meta,.search-palette__footer{font-family:var(--mono);font-size:var(--type-meta-size);line-height:var(--type-meta-line);font-weight:var(--type-system-weight);letter-spacing:var(--type-system-tracking)}
.search-dialog.search-palette .search-palette__input{font:var(--type-body-weight) var(--type-search-display-size)/1.18 var(--sans)}
.search-result__title,.search-empty span{font:var(--type-body-weight) var(--type-small-size)/var(--type-small-line) var(--sans)}
.search-empty b{font:var(--type-system-weight) var(--type-meta-size)/var(--type-meta-line) var(--mono);letter-spacing:var(--type-system-tracking)}
.bogobot-dialogue-body>label,.bogobot-dialogue-state,.bogobot-dialogue-actions button,.bogobot-signal,.bogobot-signals-refresh,.bogobot-signals-return,.bogobot-connection-signal{font-family:var(--mono);font-size:var(--type-meta-size);line-height:var(--type-meta-line)}
.bogobot-answer,.voice-line{font-size:var(--type-small-size);line-height:var(--type-small-line)}
.boot-copy h1{font:var(--type-title-weight) var(--type-title-size)/var(--type-title-line) var(--sans);letter-spacing:var(--type-display-tracking)}
.boot-copy p{font:300 var(--type-body-size)/var(--type-body-line) var(--sans)}
.boot-system-copy{font:var(--type-system-weight) var(--type-meta-size)/var(--type-meta-line) var(--mono);letter-spacing:var(--type-system-tracking)}
.boot-formula{font:var(--type-body-weight) var(--type-subhead-size)/var(--type-subhead-line) var(--mono)}
.reader.guide-mode .guide-content{font:var(--type-body-weight) var(--type-body-size)/var(--type-body-line) var(--sans)}
.reader.guide-mode .guide-content h1{font:var(--type-title-weight) var(--type-title-size)/var(--type-title-line) var(--sans);letter-spacing:var(--type-display-tracking)}
.reader.guide-mode .guide-content h2{font:var(--type-section-weight) var(--type-section-size)/var(--type-section-line) var(--sans);letter-spacing:var(--type-section-tracking)}
.reader.guide-mode .guide-content h3{font:var(--type-subhead-weight) var(--type-subhead-size)/var(--type-subhead-line) var(--sans);letter-spacing:var(--type-subhead-tracking)}
.reader.guide-mode .guide-content p{font-size:var(--type-body-size);line-height:var(--type-body-line)}
@media(max-width:767px){.reader-scroll,.preview-content,.source-document{line-height:var(--type-body-line)}}

/* P7.12D.3 — approved final semantic typography corrections. */
.reader.full-reading:not(.guide-mode) .editorial-lead {
  font: var(--type-lead-weight) var(--type-lead-size)/var(--type-lead-line) var(--sans);
}
.reader.guide-mode .guide-content .guide-document.source-canonical > h2 {
  font: var(--type-section-weight) var(--type-section-size)/var(--type-section-line) var(--sans);
  letter-spacing: var(--type-section-tracking);
}
.reader.guide-mode .guide-steps,
.reader.guide-mode .guide-steps li {
  font: var(--type-body-weight) var(--type-body-size)/var(--type-body-line) var(--sans);
}
.reader.guide-mode .guide-command {
  font: var(--type-body-weight) var(--type-small-size)/var(--type-small-line) var(--mono);
}
.rhizome-preview-card.mobile.micro-preview p {
  font-size: 13px;
  line-height: 1.48;
}
#rhizomePreviewCard #rhizomePreviewRead {
  font: var(--type-meta-weight) var(--type-card-meta-size)/var(--type-meta-line) var(--mono);
  letter-spacing: var(--type-system-tracking);
}

/* P7.12D.4 — approved Reader and guide structural rhythm. */
.reader.guide-mode .guide-steps {
  margin-top: 24px;
  margin-bottom: 64px;
  padding-top: 32px;
  padding-bottom: 24px;
}
.reader.guide-mode .guide-steps li:first-child { margin-top: 0; }
.reader.guide-mode .guide-steps li:last-child { margin-bottom: 0; }
.reader.guide-mode .guide-divider { display: none; }
.reader.guide-mode .guide-document.source-canonical > h2 {
  margin-bottom: 24px;
}
.reader.guide-mode .guide-document.source-canonical > h2[data-section]::before {
  margin-bottom: 12px;
}
.related-materials { margin-top: 48px; }

@media (min-width: 768px) {
  .app[data-desktop-dialogue-mode="reader"] .reader.guide-mode .reader-scroll > .guide-content {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 680px);
    column-gap: clamp(64px, 6vw, 96px);
    align-items: start;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.guide-mode .guide-content > h1 {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.guide-mode .guide-steps {
    grid-column: 2;
    grid-row: 1;
    margin-top: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.guide-mode .guide-document.source-document.source-canonical {
    grid-column: 2;
    grid-row: 2;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-title-flow > #nodeTitle {
    width: 100%; margin: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-title-flow > #nodeSubtitle {
    width: 100%; margin: 12px 0 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.has-epsilon-title-split #nodeTitle .epsilon-title-main {
    display: none;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.has-epsilon-title-split .source-brief > .epsilon-title-duplicate {
    display: none;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > * { order: 6; }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > .node-meta {
    order: 0; width: min(100%, var(--reader-text-measure)); margin: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > #readerSystemLabel:not([hidden]) {
    order: 1; margin: 32px 0 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > .cluster-back {
    order: 2; align-self: flex-start; margin: 32px 0 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > .archive-object:not(.media-topography-visual):not(.media-brainrot-visual) {
    order: 3; margin-top: 32px; margin-bottom: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > #readerSystemLabel:not([hidden]) ~ .archive-object:not(.media-topography-visual):not(.media-brainrot-visual),
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > .cluster-back ~ .archive-object:not(.media-topography-visual):not(.media-brainrot-visual) {
    margin-top: 16px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > #nodeFormula:not([hidden]) {
    order: 4; margin: 32px 0 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode):not(.has-title-deck) .reader-content-flow:has(> .archive-object:not([hidden]):not(.media-topography-visual):not(.media-brainrot-visual)) > #nodeFormula:not([hidden]) {
    margin-top: 48px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > #readerDivider {
    order: 4; display: none; margin: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > .preview-content {
    order: 5; margin-top: 32px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > .preview-content .source-brief > :first-child {
    margin-top: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow:has(> .archive-object:not([hidden]):not(.media-topography-visual):not(.media-brainrot-visual)) > .preview-content {
    margin-top: 48px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode):not(.has-title-deck) .reader-content-flow > #nodeFormula:not([hidden]) ~ .preview-content {
    margin-top: 32px;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow > :is(.media-topography-visual,.media-brainrot-visual) {
    order: 5;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader:not(.guide-mode) .reader-content-flow:has(> :is(.media-topography-visual,.media-brainrot-visual)) > .preview-content {
    order: 6;
    margin-top: 0;
  }
  .app[data-desktop-dialogue-mode="reader"] .reader.has-title-deck:not(.guide-mode) .reader-content-flow > #nodeFormula,
  .app[data-desktop-dialogue-mode="reader"] .reader.has-title-deck:not(.guide-mode) .reader-content-flow > #readerDivider {
    display: none;
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object .image-shell.has-experience {
    width: fit-content;
  }
}

@media (max-width: 767px) {
  .reader:not(.guide-mode) .reader-scroll {
    display: flex; flex-direction: column; align-items: stretch;
  }
  .reader-primary-layout,
  .reader-title-flow,
  .reader-content-flow { display: contents; }
  .reader-content-flow > * { order: 9; }
  .reader-content-flow > .cluster-back { order: 0; }
  .reader-content-flow > .node-meta { order: 1; }
  .reader-content-flow > #readerSystemLabel { order: 2; }
  .reader-title-flow > #nodeTitle { order: 3; }
  .reader-title-flow > #nodeSubtitle { order: 4; }
  .reader-title-flow > .longform-outline,
  .reader-title-flow > .lexicon-index { order: 5; }
  .reader-content-flow > #nodeFormula { order: 6; }
  .reader-content-flow > #readerDivider { order: 7; }
  .reader-content-flow > .archive-object { order: 8; }
  .reader.has-epsilon-title-split #nodeSubtitle {
    display: none;
  }
  .reader.has-epsilon-title-split #nodeTitle .epsilon-title-identifier,
  .reader.has-epsilon-title-split #nodeTitle .epsilon-title-main {
    display: block;
  }
  .reader.has-epsilon-title-split #nodeTitle .epsilon-title-main {
    margin-top: 8px;
  }
}

/* P7.12E — final color cascade. */
.map-pane,.surface-3d,#rhizome3dCanvas,
.app[data-desktop-dialogue-mode="graph"] .workspace.reader-closed .map-pane,
.app[data-desktop-dialogue-mode="voice"] .map-pane,
.app[data-mobile-mode="voice"],
.app[data-mobile-mode="voice"] .workspace.reader-closed .map-pane{background:var(--surface-dark)}
.surface-3d .node-label,.graph-node.locked .node-label,.reader-open .graph-node.continuation .node-label,.network-overview .graph-node.continuation .node-label,.network-overview .graph-node.lens-discovered:not(.active):not(.continuation) .node-label,.local-focus .graph-node.principal-school .node-label,.network-overview .graph-node.display-context.overview-labeled .node-label{fill:var(--text-dark-primary)}
.surface-3d .graph-surface-toolbar,.surface-3d .graph-surface-controls,.surface-3d .map-status,.surface-3d .rhizome-hover-label,.surface-3d .history-marker,.surface-3d .trace-label{color:var(--text-dark-primary)}
.surface-3d .graph-surface-toolbar button,.surface-3d .graph-surface-controls button,.surface-3d .world-navigation-meta,.surface-3d .lens-status,.surface-3d .map-orientation{color:var(--text-dark-secondary)}
.edge,.edge.active-neighbor,.network-overview .edge.overview-discovered,.map-mode-relics .edge.overview-discovered,.map-mode-relics .edge.overview-horizon,.map-mode-relics .edge.reader-horizon,.map-mode-relics .edge.reader-context,.map-mode-relics .edge.reader-latent,.map-mode-relics .edge.active-neighbor{stroke:var(--text-dark-primary)}
.graph-node .node-mark{fill:var(--surface-dark);stroke:var(--text-dark-primary)}
.graph-node .node-cross{stroke:var(--text-dark-primary)}
.surface-3d .map-status{color:var(--signal-primary)}
.mini-node.open{fill:var(--signal-primary);stroke:var(--signal-primary)}
.rhizome-preview-card{background:var(--surface-dark);color:var(--text-dark-primary);border-color:rgba(255,255,255,.34);border-left-color:var(--interaction-primary)}
.rhizome-preview-card h2{color:var(--text-dark-primary)}
.rhizome-preview-card p,.rhizome-preview-card.micro-preview p{color:rgba(255,255,255,.88)}
.rhizome-preview-kicker{color:rgba(255,255,255,.58)}
.rhizome-preview-card .rhizome-preview-voice-label,.rhizome-preview-card #rhizomePreviewClose{color:var(--text-dark-secondary)}
#rhizomePreviewCard #rhizomePreviewRead{color:var(--accent-primary-bright)}
.reader,.reader-toolbar,.reader-scroll,.reader.guide-mode,.reader.guide-mode .guide-content,.reader.full-reading,.source-document,.preview-content{background-color:var(--surface-light);color:var(--text-light-primary)}
.guide-steps,body .reader.guide-mode .guide-document.source-document.source-canonical,.editorial-lead,.formula.formula-line,.reader.full-reading .source-document.source-canonical,.reader.full-reading .source-document.source-canonical>h2.formula-heading,.standalone-formula,.source-document blockquote,.source-document blockquote.anticode-editorial-quote,.anticode-formula-index>div>span:last-child,.node-body code.formula-line,.node-body .formula-line,.node-body .formula-line code,.source-document .formula-line,.source-document .formula-line code{color:var(--color-warm-ink)}
.app .bogobot-dialogue{background:var(--surface-dark-raised);color:var(--text-dark-secondary)}
.app .bogobot-dialogue-body,.app .bogobot-answer{background:var(--surface-light);color:var(--color-warm-ink)}
.app .bogobot-dialogue-body>label,.app .bogobot-dialogue input,.app .bogobot-dialogue-actions button,.app .bogobot-signal,.app .bogobot-signals-refresh,.app .bogobot-signals-return,.app .bogobot-connection-signal{color:var(--color-warm-ink)}
.app .voice-line--nested{color:rgba(107,94,87,.82)}
.app .voice-line--signal,.app .bogobot-dialogue-state,.app .bogobot-signal-arrow{color:var(--signal-primary)}
.app .voice-line--signal,.app .bogobot-dialogue-state,.app .bogobot-signal-arrow{opacity:1}
.map-pane .graph-node.active .node-label,
.map-pane .graph-node.visual-focus .node-label,
.map-pane .graph-node:hover:not(.locked) .node-label,
.map-pane .graph-node:focus-visible .node-label,
.map-pane .graph-node.route-parent .node-label,
.map-pane .graph-node.cluster-preview .node-label,
.map-pane .reader-open .graph-node.continuation:hover .node-label,
.map-pane .reader-open .graph-node.continuation:focus-visible .node-label,
.map-pane .network-overview .graph-node.continuation:hover .node-label,
.map-pane .network-overview .graph-node.continuation:focus-visible .node-label{fill:var(--accent-primary-bright)}
.app[data-desktop-dialogue-mode="graph"] .topbar .command[aria-current="page"],
.app[data-desktop-dialogue-mode="voice"] .topbar .command[aria-current="page"],
.app[data-mobile-mode="world"] .topbar .command[aria-current="page"],
.app[data-mobile-mode="voice"] .topbar .command[aria-current="page"],
.cluster-nav button.active,
.map-mode-nav button.active,
.world-navigation-items button.active{color:var(--accent-primary-bright)}
.search-dialog.search-palette,.search-palette__panel,.search-palette__header,.search-palette__input-wrap,.search-palette__content,.search-results.search-palette__results,.search-palette__footer{background:var(--surface-light);color:var(--color-warm-ink)}
.search-palette__header h2,.search-dialog.search-palette .search-palette__input,.search-result,.search-result__title,.search-result:hover .search-result__title,.search-result[aria-selected="true"] .search-result__title,.search-result:focus-visible .search-result__title,.search-empty{color:var(--color-warm-ink)}
.search-palette__close,.search-palette__clear{color:rgba(107,94,87,.72)}
.search-dialog.search-palette .search-palette__input::placeholder,.search-result__meta,.search-palette__footer{color:rgba(107,94,87,.58)}
.search-palette__hint{color:rgba(107,94,87,.52)}
.search-palette__section-label,.search-empty span{color:rgba(107,94,87,.62)}

/* P7.12 — SEARCH is the editable topbar control; results attach directly below it. */
.search-command {
  position: relative;
  display: inline-flex;
  align-items: stretch;
  flex: 0 0 180px;
  width: 180px;
  min-width: 180px;
  height: var(--global-nav-min-height);
  min-height: var(--global-nav-min-height);
  box-sizing: border-box;
  border: 1px solid transparent;
}
.search-command__input {
  width: 100%;
  min-width: 0;
  min-height: var(--global-nav-min-height);
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  padding: 0 12px;
  text-align: left;
  cursor: pointer;
  appearance: none;
}
.commands .search-command__input { flex: 1 1 auto; width: 100%; }
.search-command__input::-webkit-search-cancel-button { display: none; }
.search-command__input::placeholder { color: inherit; opacity: 1; }
.search-command:not(.search-active) .search-command__input { caret-color: transparent; }
.search-command.search-active {
  position: relative;
  z-index: 41;
  top: auto;
  left: auto;
  width: 180px;
  height: var(--global-nav-min-height);
  min-height: var(--global-nav-min-height);
  transform: none;
  border-color: transparent;
  border-bottom-color: var(--interaction-primary);
  background: transparent;
  color: inherit;
}
.app .topbar .commands .search-command.search-active .search-command__input {
  width: 100%;
  min-height: calc(var(--global-nav-min-height) - 2px);
  padding: 0 48px 0 12px;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: text;
  caret-color: var(--interaction-primary);
  font: inherit;
}
.app .topbar .commands .search-command.search-active .search-command__input:focus {
  outline: 0;
  box-shadow: inset 0 -2px 0 var(--interaction-primary);
}
.search-command .search-palette__clear {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  width: 42px;
  height: 42px;
}
.search-dialog.search-palette {
  top: 58px;
  left: 50%;
  width: clamp(560px, 54vw, 720px);
  max-width: calc(100vw - 32px);
  transform: translateX(-50%);
  border: 1px solid rgba(54,49,44,.32);
  border-top: 0;
  background: var(--surface-light);
}
.search-dialog.search-palette[data-search-state="initial"] { display: none; }
.search-dialog.search-palette { display: none !important; }
.search-dialog.search-palette .search-palette__panel { display: block; }
.search-dialog.search-palette .search-palette__content,
.search-dialog.search-palette .search-results.search-palette__results { max-height: 232px; }

@media (max-width: 767px) {
  .search-command,
  .search-command.search-active {
    flex-basis: 164px;
    min-width: 164px;
    left: auto;
    right: auto;
    width: 164px;
    transform: none;
  }
  .search-dialog.search-palette {
    top: 58px;
    left: 14px;
    right: 14px;
    width: auto;
    max-width: none;
    transform: none;
  }
  .search-dialog.search-palette .search-palette__content,
  .search-dialog.search-palette .search-results.search-palette__results { max-height: 220px; }
}

/* P7.21 — two-size desktop Reader raster geometry. */
@media (min-width: 768px) {
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media.media-layout-horizontal {
    width: min(100%, 680px);
    max-width: 680px;
    grid-template-columns: minmax(0, 680px);
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media.media-layout-horizontal .image-shell,
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media.media-layout-horizontal .media-preview-link,
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media.media-layout-horizontal .image-shell img,
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media.media-layout-horizontal .media-preview-link img {
    width: 100%;
    max-width: 680px;
    height: auto;
    max-height: none;
    object-fit: contain;
  }

  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media:is(.media-layout-vertical,.media-layout-square):not(.media-compact.preview-reduced) {
    width: min(100%, 680px);
    max-width: 680px;
    grid-template-columns: max-content minmax(0, 1fr);
    column-gap: 24px;
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media:is(.media-layout-vertical,.media-layout-square):not(.media-compact.preview-reduced) .image-shell,
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media:is(.media-layout-vertical,.media-layout-square):not(.media-compact.preview-reduced) .media-preview-link {
    width: fit-content;
    max-width: 460px;
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media:is(.media-layout-vertical,.media-layout-square):not(.media-compact.preview-reduced) .image-shell img,
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media:is(.media-layout-vertical,.media-layout-square):not(.media-compact.preview-reduced) .media-preview-link img {
    display: block;
    width: auto;
    max-width: 460px;
    height: auto;
    max-height: calc(100dvh - 404px);
    object-fit: contain;
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media:is(.media-layout-vertical,.media-layout-square):not(.media-compact.preview-reduced) figcaption {
    width: 100%;
    max-width: 100%;
    margin-top: 0;
  }
}

/* P7.13B1 — desktop Reader caption and system-mark geometry. */
@media (min-width: 768px) {
  .reader.has-location-title-hierarchy .location-title-mobile-suffix { display: none; }

  .app[data-desktop-dialogue-mode="reader"] .archive-object.hero-media.media-layout-horizontal figcaption {
    width: 100%;
    max-width: 680px;
  }

  .app[data-desktop-dialogue-mode="reader"] .archive-object.media-compact.preview-reduced.hero-media {
    width: min(100%, 680px);
    max-width: 680px;
    grid-template-columns: 360px minmax(0, 1fr);
    column-gap: 24px;
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object.media-compact.preview-reduced.hero-media .image-shell,
  .app[data-desktop-dialogue-mode="reader"] .archive-object.media-compact.preview-reduced.hero-media .image-shell img {
    width: 360px;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
  }
  .app[data-desktop-dialogue-mode="reader"] .archive-object.media-compact.preview-reduced.hero-media figcaption {
    width: 100%;
    max-width: 100%;
    margin-top: 0;
  }

}

@media (max-width: 767px) {
  .reader.has-location-title-hierarchy #nodeSubtitle { display: none; }
  .reader.has-location-title-hierarchy .location-title-mobile-suffix { display: inline; }
  .reader.has-title-deck #nodeSubtitle { display: none; }
}

/* P7.13D cascade lock: terminal presentation wins over the recovered modal shell. */
body.glas-open .glas-backdrop { background: transparent; pointer-events: none; }
body.glas-open .app[data-desktop-dialogue-mode="graph"] > .bogobot-dialogue { display: grid !important; }
body.glas-open .bogobot-dialogue,
body.glas-open .app[data-desktop-dialogue-mode="graph"] > .bogobot-dialogue,
body.glas-open .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
  left: 50%; right: auto; top: calc(50% + 32px); bottom: auto;
  transform: translate(-50%, -50%);
  width: clamp(420px, 34vw, 480px); max-width: calc(100vw - 48px);
  max-height: min(64dvh, 560px); grid-template-rows: auto minmax(0, 1fr);
  border: 0; border-radius: 0; background: transparent;
  color: var(--text-dark-primary); box-shadow: none; backdrop-filter: none;
}
body.glas-open .bogobot-dialogue::before,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before {
  content: "GLAS / SYSTEM VOICE"; min-height: 30px; padding: 0 2px;
  border-bottom: 1px solid rgba(231,230,223,.22);
  background: rgba(0, 0, 0, .80); color: var(--signal-primary);
  font: 500 10px/1 var(--mono); letter-spacing: .065em;
}
body.glas-open .bogobot-dialogue::after,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::after { content: none; }
body.glas-open .bogobot-dialogue-close,
body.glas-open .app[data-mobile-mode="voice"] .bogobot-dialogue-close {
  top: 0; right: 0; min-width: 92px; min-height: 30px; padding: 0 2px 0 12px;
  color: var(--text-dark-secondary); font: 500 9px/1 var(--mono);
}
body.glas-open .bogobot-dialogue-toggle,
body.glas-open .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle,
body.glas-open .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle {
  position: static; min-height: 30px; padding: 0 100px 0 2px;
  border: 0; border-bottom: 1px solid rgba(231,230,223,.22);
  background: rgba(0, 0, 0, .80); color: var(--text-dark-secondary);
  font: 500 9px/1 var(--mono); letter-spacing: .045em;
}
body.glas-open .bogobot-dialogue-toggle-title { color: var(--signal-primary); }
body.glas-open .bogobot-dialogue-toggle-action { color: var(--text-dark-secondary); }
body.glas-open .bogobot-dialogue-body,
body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
  min-height: 0; max-height: min(58dvh, 520px); padding: 16px 2px 2px;
  border: 0; background: rgba(0, 0, 0, .80); color: var(--text-dark-primary);
  overflow-x: hidden; overflow-y: auto;
}
body.glas-open .bogobot-dialogue-body > label {
  margin: 0 0 10px; color: var(--text-dark-secondary);
  font: 500 9px/1.2 var(--mono); letter-spacing: .055em;
}
body.glas-open .bogobot-dialogue-input {
  min-height: 42px; margin: 0; padding: 0; gap: 12px; border: 0; background: transparent;
}
body.glas-open .bogobot-dialogue input {
  min-height: 42px; padding: 8px 0; border-bottom: 1px solid rgba(231,230,223,.28);
  background: transparent; color: var(--text-dark-primary); font: 400 13px/1.35 var(--mono);
}
body.glas-open .bogobot-dialogue input::placeholder,
body.glas-open .voice-line--nested,
body.glas-open .bogobot-node-context,
body.glas-open .bogobot-connection-signal,
body.glas-open .bogobot-dialogue-actions button,
body.glas-open .bogobot-signal,
body.glas-open .bogobot-signals-refresh,
body.glas-open .bogobot-signals-return { color: var(--text-dark-secondary); }
body.glas-open .bogobot-dialogue-state,
body.glas-open .voice-line--signal,
body.glas-open .voice-line--formula,
body.glas-open .bogobot-signal-arrow,
body.glas-open .bogobot-action-primary { color: var(--signal-primary); }
body.glas-open .bogobot-answer {
  max-width: none; max-height: min(38dvh, 300px); margin: 12px 0 0; padding: 12px 0;
  border: 0; border-block: 1px solid rgba(231,230,223,.18);
  background: transparent; color: var(--text-dark-primary);
  font: 400 12px/1.5 var(--mono); overflow-x: hidden; overflow-y: auto;
}
body.glas-open .bogobot-dialogue[data-answer-view="compact"] .bogobot-answer:not([hidden]) {
  max-height: calc(5 * 1.5em + 24px);
}
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer {
  width: clamp(420px,34vw,480px); max-height: min(48dvh,420px); padding: 0;
}
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-body {
  display: block; max-height: min(42dvh,370px); padding: 12px 2px 2px; overflow-y: auto;
}
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-body > label,
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-input,
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-node-context,
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-connection-signal,
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-signals { display: none; }
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-answer {
  display: block; max-height: calc(5 * 1.5em + 24px); margin-top: 0;
}
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-answer .voice-line:not([data-compact-visible]) {
  display: none;
}
body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer .bogobot-dialogue-actions {
  display: flex !important; flex-wrap: wrap; gap: 0 16px;
}
body.glas-open .bogobot-signal-list { background: transparent; }
body.glas-open .bogobot-signal {
  min-height: 44px; padding: 8px 0; border-bottom-color: rgba(231,230,223,.14); background: transparent;
}
body.glas-open .bogobot-dialogue-actions { margin-top: 10px; padding-top: 4px; }
body.glas-open .bogobot-dialogue-actions button { min-height: 44px; padding: 8px 0; }

@media (min-width: 768px) {
  body.glas-open .app[data-desktop-dialogue-mode="voice"] .map-pane {
    pointer-events: auto;
    filter: none;
  }
  body.glas-open .app[data-desktop-dialogue-mode="voice"] #graph,
  body.glas-open .app[data-desktop-dialogue-mode="voice"] #rhizome3dCanvas { opacity: 1; }
}

@media (max-width: 767px) {
  body.glas-open .app[data-mobile-mode="voice"] { background: var(--surface-dark); }
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed {
    position: absolute !important;
    inset: 64px 0 0 !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    opacity: 1;
    pointer-events: auto;
    overflow: hidden;
  }
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed .map-pane,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed #rhizome3dCanvas {
    display: block !important;
    filter: none;
    opacity: 1;
  }
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed .map-pane {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
  body.glas-open .bogobot-dialogue,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    left: 50%; right: auto; top: calc(50% + 28px); bottom: auto;
    width: calc(100vw - 32px); max-width: 480px; max-height: min(68dvh,560px); border-radius: 0;
  }
  body.glas-open .bogobot-dialogue[data-panel="compact"].has-visible-answer {
    width: calc(100vw - 32px); max-width: 480px;
  }
  body.glas-open .bogobot-dialogue-body,
  body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    max-height: min(62dvh,520px); padding: 14px 2px 2px;
  }
  body.glas-open .bogobot-answer { font-size: 11px; line-height: 1.5; }
}
@media (max-height: 430px) and (orientation: landscape) {
  body.glas-open .bogobot-dialogue,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    left: 50%; right: auto; top: calc(50% + 20px); bottom: auto;
    width: min(480px,calc(100vw - 48px)); max-height: calc(100dvh - 48px);
  }
  body.glas-open .bogobot-dialogue-body,
  body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    max-height: calc(100dvh - 76px); padding-block: 10px 2px;
  }
}

/* GLAS mobile terminal: opaque local underlay, graph unchanged outside its footprint. */
@media (max-width: 899px) {
  body.glas-open .bogobot-dialogue::before,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue::before,
  body.glas-open .bogobot-dialogue-toggle,
  body.glas-open .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle,
  body.glas-open .app[data-desktop-dialogue-mode="voice"] .bogobot-dialogue.has-visible-answer .bogobot-dialogue-toggle,
  body.glas-open .bogobot-dialogue-body,
  body.glas-open .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue .bogobot-dialogue-body,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue[data-panel="expanded"] .bogobot-dialogue-body {
    background: rgb(0, 0, 0);
  }
}

/* GLAS active surface: recede only the rendered graph below persistent navigation. */
body.glas-open .workspace.reader-closed .map-pane {
  isolation: isolate;
}
body.glas-open .workspace.reader-closed .map-pane::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 32px 0 0;
  display: block;
  background: rgba(0, 0, 0, .88);
  pointer-events: none;
}

@media (min-width: 768px) {
  body.glas-open .app[data-desktop-dialogue-mode="voice"] {
    grid-template-rows: var(--global-header-height) 34px minmax(0, 1fr);
  }
  body.glas-open .app[data-desktop-dialogue-mode="voice"] > .cluster-nav {
    display: flex !important;
  }
}

/* P7.14B — one compact mobile navigation surface. */
@media (max-width: 899px) {
  body.mobile-menu-open { overflow: hidden; }
  .app,
  .app.map-mode-open,
  .app.world-navigation-open,
  body.glas-open .app[data-desktop-dialogue-mode="voice"] {
    grid-template-rows: 56px minmax(0, 1fr);
  }
  .app > .topbar {
    position: relative;
    z-index: 110;
    width: 100%;
    height: 56px;
    min-height: 56px;
    max-height: 56px;
    padding-inline: 8px 10px;
    overflow: visible;
    background: var(--paper);
  }
  .app:not([data-mobile-mode="reader"]) > .topbar,
  .app:has(.workspace.reader-closed) > .topbar {
    background: #050607;
    border-bottom-color: rgba(239,239,234,.18);
    color: var(--paper);
  }
  .app > .topbar .brand-lockup {
    flex: 0 0 48px;
    min-width: 48px;
    max-width: 48px;
    height: 48px;
  }
  .app > .topbar .brand,
  .app > .topbar .brand img {
    width: 48px;
    min-width: 48px;
    height: 48px;
  }
  .app > .topbar .commands { display: none !important; }
  .app.search-is-open > .topbar .commands {
    position: fixed;
    z-index: 115;
    top: 56px;
    left: 0;
    right: 0;
    height: 48px;
    display: flex !important;
    padding: 0;
    overflow: hidden;
    background: var(--paper);
  }
  .app.search-is-open > .topbar .commands > :not(.search-command) { display: none !important; }
  .app.search-is-open > .topbar .commands .search-command,
  .app.search-is-open > .topbar .commands .search-command.search-active {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 48px;
  }
  .app.search-is-open + .search-dialog.search-palette[open]:not([data-search-state="initial"]),
  .search-dialog.search-palette[open]:not([data-search-state="initial"]) {
    display: block !important;
    top: 104px;
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    transform: none;
  }
  .app > .topbar .mobile-menu-toggle {
    display: inline-grid !important;
    margin-left: auto;
    width: 48px;
    min-width: 48px;
    min-height: 48px;
    place-items: center;
    gap: 4px;
    padding: 12px;
    box-sizing: border-box;
    border: 1px solid rgba(239,239,234,.22);
    background: #050607;
    color: rgba(239,239,234,.72);
    touch-action: manipulation;
  }
  .app > .topbar .mobile-menu-toggle span {
    display: block;
    width: 24px;
    height: 1px;
    background: currentColor;
  }
  .app > .topbar .mobile-menu-toggle:hover {
    background: #050607;
    color: var(--paper);
  }
  .app > .topbar .mobile-menu-toggle:focus-visible,
  .app > .topbar .mobile-menu-toggle[aria-expanded="true"] {
    border-color: var(--blue);
    outline: 0;
    background: #050607;
    color: var(--blue);
  }
  .app > .cluster-nav,
  .app > .map-mode-nav,
  .app > .world-navigation,
  .app .graph-surface-toolbar { display: none !important; }
  .mobile-menu-backdrop:not([hidden]) {
    display: block !important;
    position: fixed;
    z-index: 108;
    inset: 56px 0 0;
    background: rgba(0,0,0,.72);
  }
  .mobile-global-menu:not([hidden]) {
    display: block !important;
    position: fixed;
    z-index: 120;
    inset: 56px 0 0;
    width: 100%;
    max-height: calc(100dvh - 56px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 0;
    background: #050607;
    color: var(--paper);
  }
  .mobile-global-menu-inner,
  .mobile-menu-section { display: grid; min-width: 0; }
  .mobile-menu-section-label {
    min-height: 32px;
    display: flex;
    align-items: end;
    padding: 12px 16px 7px;
    border-bottom: 1px solid rgba(239,239,234,.16);
    color: rgba(239,239,234,.52);
    font: 500 9px/1 var(--mono);
    letter-spacing: .12em;
  }
  .mobile-global-command {
    min-height: 48px;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0 16px;
    border: 0;
    border-bottom: 1px solid rgba(239,239,234,.12);
    background: transparent;
    color: var(--paper);
    text-align: left;
    text-decoration: none;
    font: 400 var(--global-nav-font-size)/1.2 var(--mono);
    letter-spacing: .055em;
    touch-action: manipulation;
  }
  .mobile-global-command-sub { padding-left: 32px; color: rgba(239,239,234,.72); }
  .mobile-global-command:hover,
  .mobile-global-command:focus-visible { color: var(--blue); background: rgba(239,239,234,.05); }
  .mobile-global-command.active,
  .mobile-global-command[aria-pressed="true"] { color: var(--blue); }
  .mobile-global-command-close { color: var(--signal); }
  .map-pane::before { inset-block-start: 0; }
  .graph-surface-toolbar[hidden] ~ #rhizome3dCanvas,
  #rhizome3dCanvas { inset-block-start: 0; height: 100%; }
  body.glas-open .bogobot-dialogue,
  body.glas-open .app[data-mobile-mode="voice"] .workspace.reader-closed + .bogobot-dialogue {
    top: calc(50% + 28px);
    z-index: 105;
  }
  body.glas-open .app[data-mobile-mode="voice"] > .topbar { display: flex !important; }
}
