:root{
  --ink:#1A1A18;
  --faint:#6B6B66;
  --prussian:#123A5C;
  --rule:#C9C9C2;
  --bg:#FFFFFF;
  --wash:#F4F6F5;
}

/* type: Newsreader for prose, Fraunces for display, Martian Mono for metadata */
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Newsreader",Georgia,serif;
  font-optical-sizing:auto;
  font-size:1.15rem;
  line-height:1.55;
}
.display{font-family:"Fraunces",Georgia,serif;font-optical-sizing:auto}
.mono{font-family:"Martian Mono",ui-monospace,monospace;font-size:.78em;letter-spacing:-.02em}
a{color:var(--prussian);text-decoration-thickness:1px;text-underline-offset:2px}
h2{font-family:"Fraunces",serif;font-size:1.6rem;font-weight:500}
::selection{background:var(--prussian);color:#fff}

/* frame: one container, asymmetry lives in the 3/9 split inside it */
.frame{max-width:76rem;margin:0 auto;padding:0 1.25rem}

/* the hanging metadata rail */
.meta-rail{
  font-family:"Martian Mono",monospace;
  font-size:.72rem;line-height:1.9;letter-spacing:-.02em;
  color:var(--faint);
}
.meta-rail a{color:var(--faint)}
.meta-rail .k{color:var(--ink)}
@media (min-width:992px){
  .rail-sticky{position:sticky;top:1.5rem}
}

/* nav */
.topnav{font-family:"Martian Mono",monospace;font-size:.78rem;padding:1.4rem 0;border-bottom:1px solid var(--rule)}
.topnav a{text-decoration:none;color:var(--ink)}
.topnav a:hover{text-decoration:underline}
.topnav .site{color:var(--prussian);font-weight:500}
.topnav .links{display:flex;gap:1.8rem;flex-wrap:wrap}
.topnav .here{color:var(--faint);pointer-events:none}

/* hero: rail + oversized display head */
.hero{padding:4rem 0 3.5rem}
.hero h1{
  font-family:"Fraunces",serif;
  font-size:clamp(2.6rem,7.5vw,5.4rem);
  font-weight:500;line-height:1.02;letter-spacing:-.015em;
  margin:0;max-width:14ch;
}
.hero h1 .placeholder{color:var(--faint);border:1px dashed var(--rule);padding:0 .15em}
.hero .plain{max-width:46ch;margin:1.8rem 0 0;font-size:1.2rem}
.hero .actions{margin-top:2rem;display:flex;gap:1.6rem;align-items:baseline;flex-wrap:wrap}
.btn-lic{
  display:inline-block;background:var(--prussian);color:#fff;
  font-family:"Martian Mono",monospace;font-size:.78rem;padding:.7rem 1.3rem;
  text-decoration:none;
}
.btn-lic:hover{background:#0B2B45;color:#fff}
.hero .alt{font-size:1rem}

/* pitch: problem / bet, mirrors the notes strip but on white */
.pitch{padding:0 1.25rem 3rem}
.pitch h2{font-size:1.25rem}
.pitch p{font-size:1.02rem;max-width:56ch}

/* ruled rows with hanging numerals: the condition in three steps */
.ruled{border-top:1px solid var(--ink)}
.ruled .r{border-bottom:1px solid var(--rule);padding:1.6rem 0}
.ruled .num{
  font-family:"Fraunces",serif;font-size:2.6rem;font-weight:400;line-height:1;
  color:var(--prussian);
}
.ruled p{font-size:1.08rem;margin:0;max-width:52ch}
.ruled strong{font-weight:600}

/* specimen: bordered artifact, no radius, no shadow, pushed off the text axis */
.specimen-wrap{padding:3.5rem 0 3rem}
.specimen{
  background:var(--wash);
  border:1px solid var(--ink);
  padding:1.5rem 1.7rem;
}
.specimen .head{
  font-family:"Martian Mono",monospace;font-size:.62rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint);
  border-bottom:1px solid var(--rule);padding-bottom:.6rem;margin-bottom:1rem;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.specimen .body{font-size:1.18rem;font-style:italic;font-family:"Newsreader",serif}
.specimen .sig{font-family:"Martian Mono",monospace;font-size:.62rem;color:var(--faint);margin-top:1.1rem}
.specimen .tests{list-style:none;margin:1rem 0 0;padding:0;border-top:1px solid var(--rule)}
.specimen .tests li{padding:.55rem 0;border-bottom:1px solid var(--rule);font-size:.95rem;line-height:1.45}
.specimen .tests li:last-child{border-bottom:0;padding-bottom:0}
.specimen .tests .t{display:block;font-family:"Martian Mono",monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:.15rem}
.specimen .tests .fail .t{color:var(--prussian);font-weight:500}
.specimen-note{font-size:1.02rem;max-width:38ch}
.specimen-note .catch{border-left:2px solid var(--prussian);padding-left:1rem}

/* chooser: catalog rows, not cards */
.choose{padding:3rem 0 3.5rem}
.choose .intro{max-width:52ch}
.switch-line{font-size:1rem;margin:.8rem 0 1.4rem}
.switch-line a{cursor:pointer}
.switch-line .on{color:var(--ink);text-decoration:none;font-weight:600;cursor:default}
.lic-row{border-bottom:1px solid var(--rule);padding:1.5rem 0}
.lic-row:first-of-type{border-top:1px solid var(--ink)}
.lic-row .id{font-family:"Martian Mono",monospace;font-size:.78rem;color:var(--prussian)}
.lic-row .get{font-family:"Martian Mono",monospace;font-size:.72rem;display:block;margin-top:.5rem}
.lic-row h3{font-family:"Fraunces",serif;font-size:1.45rem;font-weight:500;margin:0 0 .1rem}
.lic-row .after{color:var(--faint);font-size:.95rem;font-style:italic;margin:0}
.lic-row .q{font-size:1.05rem;margin:0;max-width:44ch}

/* notes strip */
.notes{background:var(--wash);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:2.6rem 0}
.notes h2{font-size:1.25rem}
.notes p{font-size:1.02rem;max-width:56ch}

/* footer */
footer{padding:2.2rem 0 3rem;color:var(--faint);font-size:.92rem}
footer p{max-width:56ch;margin:0}

/* document pages (in depth, full texts): rail + reading column */
.docgrid{padding:2.5rem 0 4rem}
.docgrid h1{font-family:"Fraunces",serif;font-size:2.2rem;font-weight:500;margin:0}
.docgrid .sub{color:var(--faint);font-style:italic;margin:.3rem 0 0}
.docgrid .content{max-width:44rem}
.docgrid .content p{margin-bottom:.9rem}
.docgrid .content h2{font-size:1.35rem;margin:2.4rem 0 .8rem;position:relative}
.sect-num{color:var(--faint);font-weight:400;margin-right:.4rem}
@media (min-width:992px){
  .docgrid .content h2 .sect-num{
    position:absolute;right:100%;margin-right:1.2rem;
    font-family:"Martian Mono",monospace;font-size:.8rem;line-height:2.2;
  }
}
.toc{font-family:"Martian Mono",monospace;font-size:.72rem;line-height:2;letter-spacing:-.02em;list-style:none;padding:0;margin:1.2rem 0 0}
.toc a{color:var(--faint);text-decoration:none}
.toc a:hover{color:var(--prussian);text-decoration:underline}
table{font-size:.98rem}
.table>:not(caption)>*>*{background:transparent;border-color:var(--rule);padding:.55rem .6rem;vertical-align:top}
thead th{font-family:"Martian Mono",monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:500}
dt{font-weight:600;font-style:italic}
dd{margin-bottom:.8rem}
.fn{font-size:.92rem;color:var(--faint)}
.fn p{margin-bottom:.5rem}
sup a{text-decoration:none}
hr{border-top:1px solid var(--rule);opacity:1;margin:2rem 0}

/* license listing */
.liclist{list-style:none;padding:0}
.liclist li{border-bottom:1px solid var(--rule);padding:1rem 0}
.liclist li:first-child{border-top:1px solid var(--ink)}
.liclist .files{font-family:"Martian Mono",monospace;font-size:.75rem}
.liclist .files a{margin-right:1rem}
.liclist p{margin:.3rem 0 0;font-size:1rem;max-width:52ch}
