:root {
  --bg: #ffffff;
  --fg: #000000;
  --fg-trace: rgba(0,0,0,0.32);
  --fg-soft: rgba(0,0,0,0.62);
  --fg-hairline: rgba(0,0,0,0.14);
  --bg-soft: rgba(0,0,0,0.022);
  --font-display: "Spectral", "Iowan Old Style", Garamond, "Times New Roman", serif;
  --font-body: "Charter", "Iowan Old Style", "Georgia", "Source Serif Pro", "Source Serif 4", serif;
  --font-mono: "SF Mono", "Menlo", "Consolas", monospace;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #000000;
    --fg: #ffffff;
    --fg-trace: rgba(255,255,255,0.32);
    --fg-soft: rgba(255,255,255,0.62);
    --fg-hairline: rgba(255,255,255,0.14);
    --bg-soft: rgba(255,255,255,0.04);
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html {
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body { min-height: 100dvh; padding: clamp(24px, 5vw, 60px); }
::selection { background: var(--fg); color: var(--bg); }
a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--fg-trace);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
}
a:hover { text-decoration-color: var(--fg); }
header.viewer {
  max-width: 100ch;
  margin: 0 auto 2.4em;
}
header.viewer h1 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(24px, 3vw, 36px);
  margin: 0 0 0.4em 0;
  letter-spacing: -0.012em;
}
header.viewer .crumbs, header.viewer .raw {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12.5px;
  letter-spacing: 0.05em;
  color: var(--fg-trace);
  line-height: 1.7;
}
.synthetic-banner {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--fg-soft);
  border: 1px solid var(--fg-hairline);
  background: var(--bg-soft);
  padding: 0.8em 1em;
  margin: 1.4em 0 0;
  line-height: 1.5;
}
main.viewer {
  max-width: 100ch;
  margin: 0 auto;
  font-size: clamp(15px, 1.2vw, 17px);
  line-height: 1.65;
}
main.viewer.prose { max-width: 72ch; }
main.viewer h1, main.viewer h2, main.viewer h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-style: italic;
  letter-spacing: -0.008em;
  margin: 1.8em 0 0.6em;
  line-height: 1.3;
}
main.viewer h1 { font-size: 1.55em; }
main.viewer h2 { font-size: 1.3em; }
main.viewer h3 { font-size: 1.1em; }
main.viewer p { margin: 0 0 1em 0; text-wrap: pretty; }
main.viewer table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.6em 0;
  font-size: 0.92em;
}
main.viewer th {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 0.82em;
  letter-spacing: 0.05em;
  color: var(--fg-trace);
  text-align: left;
  padding: 0.5em 0.9em 0.5em 0;
  border-bottom: 1px solid var(--fg-hairline);
  white-space: nowrap;
}
main.viewer td {
  padding: 0.65em 0.9em 0.65em 0;
  border-bottom: 1px solid var(--fg-hairline);
  vertical-align: top;
}
main.viewer code, main.viewer .mono {
  font-family: var(--font-mono);
  font-size: 0.82em;
  word-break: break-all;
}
main.viewer code { background: var(--bg-soft); border: 1px solid var(--fg-hairline); padding: 0.08em 0.3em; }
main.viewer .hash { color: var(--fg-trace); font-family: var(--font-mono); font-size: 0.74em; word-break: break-all; }
main.viewer .pill {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.82em;
  color: var(--fg-soft);
  white-space: nowrap;
}
main.viewer .big-hash {
  font-family: var(--font-mono);
  font-size: 0.85em;
  background: var(--bg-soft);
  border: 1px solid var(--fg-hairline);
  padding: 0.9em 1.1em;
  word-break: break-all;
  margin: 0 0 1.6em 0;
}
footer {
  text-align: center;
  font-family: var(--font-display);
  font-size: 11.5px;
  letter-spacing: 0.04em;
  color: var(--fg-trace);
  font-style: italic;
  padding: 4vh 0 1vh;
}
@media (max-width: 640px) {
  body { padding: 20px 14px; }
  main.viewer { font-size: 14px; }
  main.viewer table { display: block; overflow-x: auto; }
}
