:root{
  /* Neutral page colors with a restrained accent for links. */
  --paper:#fff;--ink:#242424;--quiet:#5c5c5c;--faint:#767676;
  --rule:#d6d6d6;--wash:#f4f4f4;--postscript:#494949;--link:#245b90;--link-hover:#174772;--visited:#66507b;
  /* System sans serif throughout; mono for code. */
  --sans:system-ui,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,monospace;
  /* 16px reading text; 14–15px supporting text; 18/24/32px headings. */
  --text-body:1rem;--text-small:.875rem;--text-nav:.9375rem;
  --heading-page:2rem;--heading-section:1.5rem;--heading-subsection:1.125rem;
  --heading-home:clamp(2.25rem,7vw,3rem);
  /* An 8px based spacing scale for page rhythm. */
  --space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{max-inline-size:72ch;margin:0 auto;padding:var(--space-5) var(--space-3) calc(var(--space-5) + var(--space-5));background:var(--paper);color:var(--ink);font:var(--text-body)/1.6 var(--sans);text-align:left;word-spacing:normal;letter-spacing:normal;text-rendering:optimizeLegibility}
main{min-width:0}
.top{display:flex;gap:var(--space-2);margin:0 0 var(--space-4);font:var(--text-nav)/1.5 var(--sans)}
a{color:var(--link);text-underline-offset:.14em;text-decoration-thickness:1px}
a:visited{color:var(--visited)}
a:hover{color:var(--link-hover);text-decoration-thickness:2px}
a:focus-visible{outline:2px solid var(--link-hover);outline-offset:3px}
p{margin:0 0 var(--space-2);text-align:left;word-spacing:normal;letter-spacing:normal;white-space:normal;text-wrap:pretty}
img{display:block;max-width:100%;height:auto;border-radius:6px}
p:has(>img){margin:var(--space-3) 0;text-align:center}
p:has(>img) img,.hero{margin:0 auto}
.hero{margin-bottom:var(--space-3)}
h1,h2,h3{font-family:var(--sans);font-weight:500;line-height:1.2;letter-spacing:-.025em;text-wrap:pretty}
h1{margin:0 0 var(--space-1);font-size:var(--heading-page)}
h2{margin:var(--space-4) 0 var(--space-1);font-size:var(--heading-section)}
h3{margin:var(--space-3) 0 var(--space-1);font-size:var(--heading-subsection)}
.home h1{margin:0 0 var(--space-2);font-size:var(--heading-home);line-height:1;letter-spacing:-.035em}
.dek{margin:var(--space-1) 0;color:var(--quiet)}
.meta{margin:var(--space-1) 0 var(--space-4);color:var(--quiet);font:var(--text-small)/1.5 var(--sans)}
.home p:nth-of-type(1){margin-bottom:var(--space-1);text-wrap:pretty}
.home p:has(a[href^="mailto:"]){display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin-bottom:var(--space-3);font:var(--text-nav)/1.5 var(--sans)}
.home p:has(a[href^="mailto:"]) a{white-space:nowrap}
.home h2{margin:var(--space-4) 0 var(--space-1)}
.home ol,.home ul{list-style:none;margin:var(--space-1) 0 var(--space-3);padding:0}
.home li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-1) var(--space-2);align-items:baseline;margin:var(--space-1) 0;padding:0 0 0 var(--space-2);position:relative}
.home li:before{content:"";position:absolute;left:0;top:.72em;width:.28rem;height:.28rem;border-radius:50%;background:var(--faint)}
.date{color:var(--quiet);white-space:nowrap;font:var(--text-small)/1.4 var(--sans);font-variant-numeric:tabular-nums}
article:not(.home) ol{padding-left:var(--space-3)}
article:not(.home) ul{padding-left:var(--space-3)}
article:not(.home) li{margin:var(--space-1) 0}
article:not(.home) p:has(>img) img{max-height:520px}
code,pre{font-family:var(--mono)}
code{font-size:.9em}
pre{overflow:auto;padding:var(--space-2);border:1px solid var(--rule);background:var(--wash);white-space:pre}
.ohev-code{margin:var(--space-3) 0;padding:var(--space-2);border:1px solid var(--rule);border-radius:6px;background:#f8f9fb;color:var(--ink);font-size:.8125rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2}
.ohev-code code{font-size:inherit}
.ohev-code .code-keyword{color:var(--visited);font-weight:600}
.ohev-code .code-function{color:var(--link)}
.ohev-code .code-string{color:#326655}
blockquote{margin:var(--space-3) 0;padding-left:var(--space-2);border-left:3px solid var(--faint);color:var(--quiet)}
hr{border:0;border-top:1px solid var(--rule);margin:var(--space-4) 0}
p.faded{color:var(--postscript)}
p.faded a,p.faded a:visited{color:var(--link)}
p.faded a:hover{color:var(--link-hover)}
.markline{border-bottom:1px solid currentColor}
.problem-tuple{margin:var(--space-3) 0;padding:var(--space-1) 0 var(--space-1) var(--space-2);border-left:1px solid var(--faint);color:var(--quiet)}
.problem-tuple h3{margin:0 0 var(--space-1);font-size:var(--text-nav);font-weight:500;color:var(--ink)}
.problem-tuple dl{display:grid;gap:.25rem;margin:0}
.problem-tuple div{display:grid;grid-template-columns:9rem 1fr;gap:var(--space-1);align-items:baseline}
.problem-tuple dt{color:var(--faint);font:var(--text-small)/1.4 var(--mono)}
.problem-tuple dd{margin:0}
.export-list{margin:var(--space-1) 0;padding-left:var(--space-3)}
.export-list .export-list{margin:var(--space-1) 0;padding-left:var(--space-3)}
@media(max-width:640px){
  body{padding:var(--space-4) var(--space-2) var(--space-5)}
  .top{margin-bottom:var(--space-4)}
  .home li{display:block;padding-left:var(--space-2)}
  .home li .date{grid-column:2}
  .date{display:block;margin-top:.05rem;white-space:normal}
  article:not(.home) p:has(>img) img{max-height:none}
  .problem-tuple div{grid-template-columns:1fr;gap:.05rem}
}

/* The unlisted harness draft omits these old figure elements. */
.harness .breadth,.harness .comparison-gain{display:none!important}
.harness .lineage-edge,.harness .lineage-node{opacity:1!important;transition:none!important}
