/* bearhuddleston.dev — shared CRT design system.
   Loaded after each page's own <style>, so shell rules here win and
   page-specific component rules (charts, tables) keep working. */

@font-face {
  font-family: "VT323";
  src: url("/assets/fonts/vt323.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/jetbrains-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/jetbrains-mono-700.woff2") format("woff2");
  font-weight: 600 800;
  font-display: swap;
}
/* Older pages name "Courier New" directly, including inside SVG charts.
   Both faces use a 0.6em advance, so chart label widths are unchanged. */
@font-face {
  font-family: "Courier New";
  src: url("/assets/fonts/jetbrains-mono-400.woff2") format("woff2");
  font-weight: 400 500;
  font-display: swap;
}
@font-face {
  font-family: "Courier New";
  src: url("/assets/fonts/jetbrains-mono-700.woff2") format("woff2");
  font-weight: 600 800;
  font-display: swap;
}

.crt {
  color-scheme: dark;
  /* Phosphor palette */
  --background: #050805;
  --screen: #0b160d;
  --screen-edge: #050a06;
  --text: #c2f7c3;
  --prose: #d3ead6;
  --muted: #9cc6a3;
  --dim: #74a27b;
  --accent: #85ff9d;
  --amber: #f5c96c;
  --red: #ff9b8f;
  --border: #2f5236;
  --panel: #0f2113;
  --glow: 0 0 .4em rgb(133 255 157 / .38), 0 0 1.4em rgb(133 255 157 / .12);
  --glow-amber: 0 0 .4em rgb(245 201 108 / .35);
  /* Aliases used by older report stylesheets */
  --bg: var(--background);
  --fg: var(--prose);
  --mint: var(--accent);
  --line: var(--border);
  /* Case plastic */
  --case-hi: #2a2e27;
  --case: #1b1e19;
  --case-lo: #10120f;
  /* Type */
  --font-display: "VT323", "JetBrains Mono", monospace;
  --font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;
  --font-prose: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.crt *, .crt *::before, .crt *::after { box-sizing: border-box; }

html:has(body.crt) { background: #050805; scroll-padding-top: 24px; }

body.crt {
  margin: 0;
  min-height: 100vh;
  padding: clamp(10px, 3vw, 44px);
  background:
    radial-gradient(120% 80% at 50% 0%, #121810 0%, transparent 60%),
    var(--background);
  color: var(--text);
  font: 15.5px/1.7 var(--font-mono);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.crt.report { font: 17px/1.65 var(--font-prose); color: var(--prose); }

.crt a { color: var(--accent); text-underline-offset: .28em; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.crt a:hover { color: var(--amber); text-shadow: var(--glow-amber); }
.crt :is(a, button, select, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--amber);
  outline-offset: 4px;
  border-radius: 2px;
}
.crt ::selection { background: var(--accent); color: #041006; text-shadow: none; }

.crt .skip {
  position: absolute; top: 10px; left: 14px; z-index: 20;
  padding: 10px 14px; background: var(--amber); color: #120c00;
  font: 700 14px/1 var(--font-mono); transform: translateY(-200%);
}
.crt .skip:focus { transform: none; }
.crt .sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- Monitor case ---------- */
.crt .page {
  position: relative;
  max-width: 1180px;
  margin-inline: auto;
  padding: clamp(8px, 2.2vw, 26px) clamp(8px, 2.2vw, 26px) clamp(8px, 1.6vw, 18px);
  border-radius: clamp(14px, 2.4vw, 30px);
  background:
    linear-gradient(180deg, var(--case-hi) 0%, var(--case) 18%, var(--case) 82%, var(--case-lo) 100%);
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / .07),
    inset 0 -2px 0 rgb(0 0 0 / .5),
    0 1px 0 #000,
    0 30px 60px -20px rgb(0 0 0 / .9),
    0 0 0 1px #0a0b09;
}
body.crt.report .page { max-width: 1240px; }

.crt .case-header, .crt .case-footer {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 6px 20px;
  padding: 0 clamp(4px, 1vw, 12px);
  color: #a3ad9e;
  font: 600 12px/1.4 var(--font-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  text-shadow: 0 1px 0 #000;
}
.crt .case-header { margin: 0 0 clamp(8px, 1.4vw, 16px); }
.crt .case-footer { margin: clamp(8px, 1.4vw, 16px) 0 0; }
.crt .case-brand { display: inline-flex; align-items: center; gap: 12px; color: #b9c2b3; }
.crt .case-brand a { color: inherit; text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; gap: 12px; }
.crt .case-brand a:hover { color: var(--accent); text-shadow: none; }
.crt .case-badge {
  display: inline-grid; place-items: center;
  width: 30px; height: 22px;
  border-radius: 3px;
  background: linear-gradient(#3a3f36, #262a23);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .12), 0 1px 0 #000;
  color: var(--accent);
  font: 700 11px/1 var(--font-mono);
  letter-spacing: .04em;
}
.crt .case-model { color: #6f786b; }
.crt .power { display: inline-flex; align-items: center; gap: 10px; }
.crt .power-light {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 6px var(--accent), 0 0 14px rgb(133 255 157 / .5);
}
.crt .vents {
  flex: 1 1 80px; max-width: 220px; height: 10px;
  background: repeating-linear-gradient(90deg, #0b0c0a 0 3px, transparent 3px 7px);
  border-radius: 2px; opacity: .8;
}
/* ---------- The glass ---------- */
.crt .terminal {
  position: relative;
  isolation: isolate;
  min-width: 0;
  padding: clamp(18px, 4.2vw, 56px);
  border: 0;
  border-radius: clamp(12px, 2vw, 22px) / clamp(14px, 2.4vw, 26px);
  background:
    radial-gradient(140% 110% at 50% 45%, #0f2012 0%, var(--screen) 55%, var(--screen-edge) 100%);
  box-shadow:
    0 0 0 2px #070907,
    0 0 0 clamp(5px, .9vw, 10px) #141712,
    0 0 0 calc(clamp(5px, .9vw, 10px) + 1px) #2b3028,
    inset 0 0 clamp(40px, 8vw, 120px) rgb(0 0 0 / .75),
    inset 0 0 3px rgb(133 255 157 / .25);
  overflow: clip;
}
body.crt.report .terminal { padding: clamp(18px, 3.6vw, 48px); }

/* Static scanlines + subtle RGB mask. Never intercepts input. */
.crt .terminal::after {
  content: "";
  position: absolute; inset: 0; z-index: 5;
  border-radius: inherit;
  pointer-events: none;
  background:
    repeating-linear-gradient(to bottom, transparent 0 2px, rgb(0 0 0 / .11) 2px 3px),
    repeating-linear-gradient(90deg, rgb(255 0 0 / .018) 0 1px, rgb(0 255 0 / .012) 1px 2px, rgb(0 0 255 / .018) 2px 3px);
  mix-blend-mode: multiply;
}
/* Glass reflection. */
.crt .terminal::before {
  content: "";
  position: absolute; inset: 0; z-index: 6;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(60% 40% at 22% 8%, rgb(255 255 255 / .05), transparent 70%),
    linear-gradient(180deg, rgb(255 255 255 / .025), transparent 30%);
}
.crt .terminal > * { position: relative; z-index: 1; }

/* Power-on: a short vertical expand, once, and only with motion allowed. */
@media (prefers-reduced-motion: no-preference) {
  .crt .terminal > * { animation: crt-on .55s cubic-bezier(.2, .7, .2, 1) both; }
  @keyframes crt-on {
    0% { opacity: 0; filter: brightness(2.2); transform: scaleY(.02); }
    45% { opacity: 1; filter: brightness(1.6); transform: scaleY(1); }
    100% { opacity: 1; filter: none; transform: none; }
  }
}

/* ---------- Status bar inside the screen ---------- */
.crt .display-header {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 6px 22px;
  margin: 0 0 4px;
  padding: 0 0 12px;
  border-bottom: 1px dashed var(--border);
  color: var(--muted);
  font: 500 13px/1.5 var(--font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.crt .display-header p { margin: 0; }
.crt .display-title { color: var(--accent); font-weight: 700; letter-spacing: .1em; text-shadow: var(--glow); }
.crt .display-header nav, .crt .site-nav { display: flex; flex-wrap: wrap; gap: 0 18px; }
.crt .home-link, .crt .site-link, .crt .site-nav a {
  display: inline-flex; align-items: center; min-height: 44px;
  text-decoration: none; letter-spacing: .08em;
}
.crt .home-link:hover, .crt .site-link:hover, .crt .site-nav a:hover { text-decoration: underline; }
.crt .site-nav a[aria-current="page"] { color: var(--amber); text-shadow: var(--glow-amber); }
.crt .site-nav a[aria-current="page"]::before { content: "\25B8"; margin-right: 6px; }
.crt .private-badge { color: var(--amber); }

/* ---------- Type ---------- */
.crt .command {
  display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px;
  margin: 22px 0 14px; padding: 0;
  color: var(--amber);
  font: 500 13px/1.5 var(--font-mono);
  letter-spacing: .03em;
  text-shadow: var(--glow-amber);
}
.crt .prompt { color: var(--muted); margin: 0; text-shadow: none; }
.crt .command-name { overflow-wrap: anywhere; }
.crt .cursor {
  display: inline-block;
  flex-shrink: 0;
  width: .6em; height: 1.1em;
  vertical-align: -.18em;
  background: var(--accent);
  box-shadow: 0 0 8px rgb(133 255 157 / .7);
  animation: cursor-blink 1.2s steps(1, end) infinite;
}
@keyframes cursor-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }

.crt h1, .crt h2, .crt h3 { text-wrap: balance; }
.crt h1 {
  margin: 8px 0 20px;
  color: var(--accent);
  font: 400 clamp(40px, 6.4vw, 78px)/.98 var(--font-display);
  letter-spacing: .005em;
  text-transform: none;
  text-shadow: var(--glow);
  max-width: 22ch;
}
.crt h2 {
  margin: 0 0 14px;
  color: var(--amber);
  font: 400 clamp(29px, 3.4vw, 40px)/1.05 var(--font-display);
  letter-spacing: .01em;
  text-shadow: var(--glow-amber);
}
.crt h3 {
  color: var(--accent);
  font: 700 16px/1.45 var(--font-mono);
  letter-spacing: 0;
}
body.crt.report p, body.crt.report li { max-width: 72ch; }
body.crt.report h1 { max-width: 34ch; font-size: clamp(38px, 5vw, 64px); line-height: 1; }
.crt .lede, .crt .intro {
  color: var(--text);
  font-size: clamp(18px, 2.1vw, 22px);
  line-height: 1.5;
  max-width: 62ch;
}
.crt strong { color: var(--text); }
.crt .eyebrow {
  margin: 0 0 10px;
  color: var(--muted);
  font: 500 12px/1.5 var(--font-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.crt :is(.caption, .muted, small, .metric-note) { color: var(--muted); }
.crt code, .crt kbd { font-family: var(--font-mono); font-size: .92em; }
.crt :is(table, .bar-row, .route-row, .cost-row, .protocol-path, .pins, .fact, .ratio, .bar-value) { font-family: var(--font-mono); }
.crt table { font-variant-numeric: tabular-nums; }
.crt thead th { color: var(--amber); font-weight: 700; letter-spacing: .02em; }
/* ---------- Report furniture ---------- */
.crt .report-nav {
  display: flex; flex-wrap: wrap; gap: 0 20px;
  margin: 18px 0 8px; padding: 6px 0;
  border-block: 1px solid var(--border);
}
.crt .report-nav a {
  display: inline-flex; align-items: center; min-height: 44px;
  font: 500 13px/1.3 var(--font-mono);
  letter-spacing: .02em;
  text-decoration: none;
}
.crt .report-nav a::before { content: "›"; color: var(--dim); margin-right: 7px; }
.crt .report-nav a:hover { text-decoration: underline; }

.crt .section { border-top: 1px dashed var(--border); scroll-margin-top: 24px; }
.crt section { scroll-margin-top: 24px; }

.crt details { border-top: 1px dashed var(--border); min-width: 0; max-width: 100%; }
.crt summary {
  cursor: pointer;
  min-height: 48px;
  padding: 12px 0;
  color: var(--text);
  font: 700 15px/1.45 var(--font-mono);
  list-style: none;
  overflow-wrap: anywhere;
}
.crt summary::-webkit-details-marker { display: none; }
.crt summary::before {
  content: "[+]";
  display: inline-block;
  min-width: 3.4ch;
  margin-right: 10px;
  color: var(--amber);
  font-weight: 700;
}
.crt details[open] > summary { color: var(--amber); }
.crt details[open] > summary::before { content: "[−]"; }
.crt summary:hover { color: var(--accent); }

.crt button, .crt select {
  font: 500 14px/1.2 var(--font-mono);
  color: var(--text);
  background: var(--screen);
  border: 1px solid var(--border);
  border-radius: 0;
  min-height: 44px;
  padding: 8px 14px;
  cursor: pointer;
}
.crt button:hover { border-color: var(--accent); color: var(--accent); background: var(--panel); }
.crt button[aria-pressed="true"] {
  background: var(--accent); color: #041006; border-color: var(--accent);
  box-shadow: 0 0 12px rgb(133 255 157 / .35);
}

.crt .table-scroll, .crt .table-wrap, .crt .chart-scroll { scrollbar-color: var(--border) transparent; }

.crt .report-foot, .crt .provenance { color: var(--muted); font-size: 13px; }

/* ---------- Home ---------- */
.crt .boot {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  color: var(--muted);
  font: 13px/1.75 var(--font-mono);
}
.crt .boot b { color: var(--accent); font-weight: 400; }

.crt .hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
  gap: clamp(20px, 4vw, 56px);
  align-items: start;
  padding: clamp(14px, 2.6vw, 30px) 0 clamp(22px, 3.2vw, 36px);
  border-bottom: 1px dashed var(--border);
}
.crt .hero h1 {
  margin: 6px 0 14px;
  font-size: clamp(64px, 11vw, 132px);
  line-height: .82;
  letter-spacing: -.01em;
}
.crt .hero h1 span { display: block; }
.crt .hero h1 .alt { color: var(--amber); text-shadow: var(--glow-amber); }
.crt .role {
  margin: 18px 0 0;
  color: var(--text);
  font: 500 clamp(15px, 1.7vw, 18px)/1.5 var(--font-mono);
}
.crt .role span { display: block; color: var(--muted); }
.crt .hero-links { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 18px 0 0; padding: 0; list-style: none; font: 700 14px/1.2 var(--font-mono); }
.crt .hero-links a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.crt .hero-links a::before { content: ">"; color: var(--amber); margin-right: 8px; }
.crt .hero-links a:hover { text-decoration: underline; }
.crt .pitch {
  margin: 12px 0 0;
  max-width: 44ch;
  color: var(--prose);
  font: clamp(17px, 1.9vw, 21px)/1.55 var(--font-prose);
}
.crt .sysinfo {
  margin: 0;
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 6px 16px;
  padding: 16px 18px;
  border: 1px solid var(--border);
  background: rgb(5 12 6 / .55);
  margin-top: clamp(8px, 2vw, 26px);
  font: 14px/1.5 var(--font-mono);
}
.crt .sysinfo dt { color: var(--amber); text-transform: uppercase; letter-spacing: .08em; }
.crt .sysinfo dd { margin: 0; color: var(--text); overflow-wrap: anywhere; }
.crt .sysinfo .sys-title {
  grid-column: 1 / -1;
  margin: 0 0 6px; padding-bottom: 8px;
  border-bottom: 1px dashed var(--border);
  color: var(--muted); letter-spacing: .12em; text-transform: uppercase; font-size: 12px;
}

.crt .block { padding: clamp(24px, 3.6vw, 40px) 0 4px; }
.crt .block-head {
  display: flex; align-items: baseline; justify-content: space-between;
  flex-wrap: wrap; gap: 4px 20px;
  margin-bottom: 14px;
}
.crt .block-head h2 { margin: 0; }
.crt .block-head .command { margin: 0; }
.crt .block-note { margin: 0 0 12px; color: var(--muted); font: 16px/1.6 var(--font-prose); max-width: 64ch; }

/* DIR-style listing: one row per entry, the whole row is the link target. */
.crt .dir { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border); }
.crt .dir li { border-bottom: 1px solid var(--border); }
.crt .dir a.row {
  display: grid;
  grid-template-columns: 3ch minmax(0, 15ch) minmax(0, 1fr) max-content;
  gap: 4px 20px;
  align-items: baseline;
  min-height: 56px;
  padding: 14px 10px;
  color: var(--text);
  text-decoration: none;
}
.crt .dir .num { color: var(--dim); font: 13px/1.5 var(--font-mono); }
.crt .dir .name { color: var(--accent); font: 700 16px/1.4 var(--font-mono); text-shadow: var(--glow); }
.crt .dir .desc { color: var(--prose); font: 16px/1.55 var(--font-prose); }
.crt .dir .meta { color: var(--muted); font: 12px/1.5 var(--font-mono); text-transform: uppercase; letter-spacing: .08em; text-align: right; white-space: nowrap; }
.crt .dir .meta b { color: var(--amber); font-weight: 400; }
.crt .dir a.row:hover, .crt .dir a.row:focus-visible {
  background: var(--accent);
  outline: none;
  text-shadow: none;
}
.crt .dir a.row:hover *, .crt .dir a.row:focus-visible * { color: #041006; text-shadow: none; }
.crt .dir a.row:focus-visible { box-shadow: 0 0 0 2px var(--amber); }

.crt .contact { display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 4px 0 0; padding: 0; list-style: none; }
.crt .contact a {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 48px; padding: 8px 16px;
  border: 1px solid var(--border);
  font: 700 14px/1.2 var(--font-mono);
  letter-spacing: .04em;
  text-decoration: none;
}
.crt .contact a:hover, .crt .contact a:focus-visible { background: var(--accent); color: #041006; border-color: var(--accent); text-shadow: none; }
.crt .contact .key { color: var(--dim); font-weight: 400; }
.crt .contact a:hover .key { color: #041006; }

.crt .display-footer {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 8px 24px;
  margin-top: clamp(26px, 4vw, 44px);
  padding-top: 16px;
  border-top: 1px dashed var(--border);
  font: 13px/1.5 var(--font-mono);
}
.crt .ready { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--accent); font-size: 15px; text-shadow: var(--glow); }
.crt .next { margin: 0; color: var(--muted); }
/* ---------- Research portal ---------- */
.crt .topic { padding: 26px 0 6px; border-top: 1px dashed var(--border); scroll-margin-top: 24px; }
.crt .topic-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); gap: 18px 40px; align-items: start; }
.crt .topic .question { margin: 0 0 14px; color: var(--text); font: 500 clamp(18px, 2vw, 21px)/1.5 var(--font-mono); }
.crt .topic .takeaway { margin: 0 0 10px; color: var(--prose); }
.crt .topic .limit { margin: 0 0 16px; color: var(--muted); font-size: 15px; }
.crt .verdict {
  margin: 0;
  padding: 16px 18px;
  border: 1px solid var(--amber);
  color: var(--amber);
  font: 13px/1.6 var(--font-mono);
  box-shadow: inset 0 0 24px rgb(245 201 108 / .06);
}
.crt .verdict b { display: block; margin-bottom: 4px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.crt .verdict span { color: var(--prose); font-family: var(--font-prose); font-size: 15px; }
.crt .primary-link {
  display: inline-flex; align-items: center; gap: 12px;
  min-height: 48px; padding: 10px 16px;
  border: 1px solid var(--accent);
  color: var(--accent);
  font: 700 15px/1.3 var(--font-mono);
  text-decoration: none;
  box-shadow: 0 0 14px rgb(133 255 157 / .12);
}
.crt .primary-link:hover, .crt .primary-link:focus-visible { background: var(--accent); color: #041006; text-shadow: none; }
.crt .study-list { list-style: none; margin: 0; padding: 0; }
.crt .study-list li { padding: 8px 0 14px; }
.crt .study-list li + li { border-top: 1px solid var(--border); }
.crt .study-list a { display: inline-flex; align-items: center; min-height: 44px; font: 700 15px/1.4 var(--font-mono); }
.crt .study-list p { margin: 0; color: var(--muted); font-size: 15px; }
.crt .topic .status { margin: 10px 0 0; color: var(--muted); font-size: 14px; }

/* ---------- Motion, contrast, small screens, print ---------- */
.crt .reduced-motion-note { display: none; }

@media (prefers-reduced-motion: reduce) {
  .crt .cursor { animation: none; opacity: 1; }
  .crt .terminal > * { animation: none !important; }
  .crt .reduced-motion-note { display: inline; }
}

@media (forced-colors: active) {
  .crt .terminal::before, .crt .terminal::after { display: none; }
  .crt .cursor, .crt .power-light { background: CanvasText; box-shadow: none; }
  .crt .page { border: 1px solid CanvasText; }
}

@media (max-width: 900px) {
  .crt .hero { grid-template-columns: 1fr; align-items: start; }
  .crt .topic-grid { grid-template-columns: 1fr; }
  .crt .dir a.row { grid-template-columns: 3ch minmax(0, 1fr) max-content; }
  .crt .dir .desc { grid-column: 2 / -1; }
}

@media (max-width: 560px) {
  body.crt { padding: 6px; font-size: 15px; }
  body.crt.report { font-size: 16px; }
  .crt .page { padding: 6px 6px 8px; border-radius: 14px; }
  .crt .terminal { padding: 18px 14px 20px; border-radius: 10px / 12px; }
  .crt .case-header, .crt .case-footer { font-size: 11px; letter-spacing: .06em; }
  .crt .case-model, .crt .vents { display: none; }
  .crt .display-header { font-size: 11px; }
  .crt .hero h1 { font-size: clamp(56px, 20vw, 88px); }
  .crt h1 { font-size: clamp(36px, 10.5vw, 48px); }
  .crt h2 { font-size: clamp(27px, 8vw, 34px); }
  .crt .dir a.row { grid-template-columns: minmax(0, 1fr) max-content; padding: 12px 6px; }
  .crt .dir .num { display: none; }
  .crt .dir .desc { grid-column: 1 / -1; font-size: 15px; }
  .crt .contact a { flex: 1 1 100%; }
  .crt .sysinfo { grid-template-columns: 1fr; gap: 0; }
  .crt .sysinfo dd { margin-bottom: 8px; }
  .crt .report-nav { gap: 0 14px; }
  .crt .report-nav a { font-size: 12.5px; }
}

@media print {
  .crt {
    --background: #fff; --screen: #fff; --text: #111; --prose: #111; --muted: #444;
    --accent: #174d29; --amber: #6a4400; --border: #999;
  }
  body.crt { padding: 0; background: #fff; }
  .crt .page { box-shadow: none; background: none; padding: 0; }
  .crt .terminal { box-shadow: none; background: none; padding: 0; }
  .crt .terminal::before, .crt .terminal::after, .crt .cursor, .crt .skip,
  .crt .case-header, .crt .vents, .crt .boot { display: none !important; }
  .crt h1, .crt h2, .crt .display-title, .crt a { text-shadow: none; }
}
