:root {
  --bg: #0b0b0b; --fg: #d8d8d0; --dim: #8a8a80; --hi: #ffb000; --ok: #7fd97f;
  --link: #8fb8ff; --visited: #c49cff; --rule: #3a3a34;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg: #f4f1e8; --fg: #1d1d1a; --dim: #66665c; --hi: #9a4d00; --ok: #1f6f1f;
    --link: #0000cc; --visited: #551a8b; --rule: #bdb8a8;
  }
}
html { background: var(--bg); }
body {
  background: var(--bg); color: var(--fg);
  font-family: "Courier New", Courier, ui-monospace, monospace;
  font-size: 15px; line-height: 1.45;
  max-width: 80ch; margin: 0 auto; padding: 16px;
}
pre { margin: 0 0 1em; overflow-x: auto; white-space: pre; }
pre.banner {
  color: var(--hi); line-height: 1.1;
  overflow: hidden; padding-bottom: .2em;
  font-size: min(1em, calc((100vw - 32px) / 31));
}
h1, h2, h3 { font-size: 1em; font-weight: bold; color: var(--hi); margin: 1.6em 0 .4em; }
h2::before { content: "[ "; color: var(--dim); }
h2::after  { content: " ]"; color: var(--dim); }
hr { border: 0; border-top: 1px dashed var(--rule); margin: 1.5em 0; }
a { color: var(--link); } a:visited { color: var(--visited); }
.dim { color: var(--dim); }
.ok { color: var(--ok); }
.hi { color: var(--hi); }
.bar { color: var(--ok); white-space: pre; }
table { border-collapse: collapse; width: 100%; }
td, th { text-align: left; padding: 0 1ch 0 0; vertical-align: top; }
th { color: var(--dim); font-weight: normal; border-bottom: 1px dashed var(--rule); }
ul { padding-left: 2ch; } li { margin: .15em 0; }
.blink { animation: blink 1.2s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .blink { animation: none; } }
footer { color: var(--dim); margin-top: 2em; }
