body {
  --acc: #8a2333;
  background: #f7f6f1;
  color: #111;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 17px;
  line-height: 1.55;
  max-width: 46rem;
  margin: 0 auto 4rem;
  padding: 2.5rem 1.25rem 0;
  border-top: 4px solid var(--acc);
}
body.sec-archive   { --acc: #8a2333; }
body.sec-substrate { --acc: #23508f; }
body.sec-regions   { --acc: #3f6f3f; }
body.sec-agents    { --acc: #a8731f; }
body.sec-logs      { --acc: #a03325; }
body.sec-apparatus { --acc: #6b5a8e; }

h1 {
  font-size: 1.5rem;
  font-weight: normal;
  margin: 0.5rem 0 1.5rem;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid var(--acc);
  width: fit-content;
}
h2 {
  font-size: 1.1rem;
  margin-top: 2.25rem;
  padding-left: 0.6rem;
  border-left: 4px solid var(--acc);
}
h3 { font-size: 1rem; }
main ul li::marker, main ol li::marker { color: var(--acc); }
a { color: #0000c8; transition: color 0.12s, background 0.12s; }
a:visited { color: #551a8b; }
a:hover { color: var(--acc); }
hr { border: none; border-top: 1px solid #ccc9c0; margin: 2rem 0 1rem; }

.crumb, .foot-nav, .fine, .apparatus {
  font-family: 'Courier New', monospace;
  font-size: 0.8rem;
  color: #555;
}
.crumb { margin-bottom: 2rem; }
.crumb-sec { color: var(--acc); font-weight: bold; }
.apparatus { margin-top: 2.25rem; }
.apparatus .k { color: var(--acc); }
.apparatus + .apparatus { margin-top: 0.4rem; }

.foot-nav a { text-decoration: none; font-weight: bold; }
.foot-nav a:hover { text-decoration: underline; }
.fn-arc { color: #8a2333; }
.fn-sub { color: #23508f; }
.fn-reg { color: #3f6f3f; }
.fn-agt { color: #a8731f; }
.fn-log { color: #a03325; }
.fn-app { color: #6b5a8e; }
.fn-sw  { color: #777; font-style: italic; }

blockquote {
  margin: 1.25rem 0;
  padding: 0.6rem 1rem;
  border-left: 3px solid var(--acc);
  background: #f1eee3;
  color: #333;
}
blockquote p:first-child { margin-top: 0; }
blockquote p:last-child { margin-bottom: 0; }
blockquote .src, .src { font-family: 'Courier New', monospace; font-size: 0.8rem; color: #777; }

pre, code, table {
  font-family: 'Courier New', monospace;
  font-size: 0.85rem;
}
pre {
  background: #efede6;
  padding: 0.75rem 1rem;
  overflow-x: auto;
  line-height: 1.45;
}

/* transcripts: tinted panel, colored speakers */
pre.transcript {
  background: #f2efe5;
  border: 1px solid #e0dccd;
  border-left: 3px solid var(--acc);
}
.ts { color: #a89e8c; }
.ob { color: #23508f; font-weight: bold; }
.ag { font-weight: bold; }
.ag-mb  { color: #a03325; }
.ag-eb  { color: #1f6f74; }
.ag-fb  { color: #a8731f; }
.ag-pb  { color: #6b5a8e; }
.ag-la  { color: #33302a; background: #dcd7c7; }
.ag-me  { color: #7a2d1e; }
.ag-lo  { color: #3f6f3f; }
.ag-al  { color: #a34d62; }
.ag-lh  { color: #4a6fa5; }
.ag-vc  { color: #6b4f3f; }
.ag-ctrl { color: #888; }

table { border-collapse: collapse; width: 100%; margin: 1rem 0; }
th, td { border: 1px solid #ccc9c0; padding: 0.3rem 0.6rem; text-align: left; }
th { font-weight: bold; color: var(--acc); background: #f1eee3; }
tbody tr:nth-child(even) td { background: #f2f0e8; }
tbody tr:hover td { background: #ece8d9; }
del { color: #999; }
.redacted { background: #111; color: #111; }
.redacted:hover { color: #111; }

/* figures: line schematics, ink on paper, oxblood highlights */
figure.fig { margin: 1.75rem 0; }
figure.fig pre.art {
  background: none;
  border: none;
  padding: 0.25rem 0;
  color: #4a463e;
  font-size: 0.78rem;
  line-height: 1.2;
}
.art .hi { color: #a03325; font-weight: bold; }
.art .dim { color: #a29d92; }
.art .ink { color: #111; }
figure.fig figcaption {
  font-family: 'Courier New', monospace;
  font-size: 0.72rem;
  color: #8a857a;
  margin-top: 0.35rem;
  padding-left: 0.55rem;
  border-left: 2px solid var(--acc);
}

/* instrument traces: phosphor on dark, scanlines, faint glow */
pre.trace {
  background-color: #14170f;
  background-image: repeating-linear-gradient(
    0deg, rgba(255, 255, 255, 0.028) 0 1px, transparent 1px 3px);
  color: #8fb573;
  border: 1px solid #2c3323;
  border-left: 3px solid #5a7a3a;
  padding: 0.65rem 0.9rem;
  font-size: 0.78rem;
  line-height: 1.35;
  text-shadow: 0 0 7px rgba(143, 181, 115, 0.35);
  border-radius: 2px;
}
.trace .warn { color: #d0a04a; text-shadow: 0 0 7px rgba(208, 160, 74, 0.4); }
.trace .alarm { color: #d06045; font-weight: bold; text-shadow: 0 0 8px rgba(208, 96, 69, 0.5); }
.trace .dim { color: #55614a; text-shadow: none; }
.trace .off { color: #3a4233; text-shadow: none; }

/* agent status colors */
.st-active { color: #3f6f3f; font-weight: bold; }
.st-idle { color: #a8731f; font-weight: bold; }
.st-susp { color: #a8731f; font-weight: bold; }
.st-dead { color: #a03325; font-weight: bold; }
.st-redact { background: #111; color: #f7f6f1; padding: 0 0.35rem; font-weight: bold; }

.ca { margin-top: 1rem; word-break: break-all; }

/* masthead */
pre.masthead {
  background: none;
  padding: 0;
  color: #111;
  font-size: 0.8rem;
  line-height: 1.15;
  margin-bottom: 1.5rem;
}
.masthead .hi { color: #a03325; }
.masthead .dim { color: #a29d92; }
.cur {
  color: #a03325;
  animation: blink 1.1s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

::selection { background: var(--acc); color: #f7f6f1; }
