:root {
  --ink: #111;
  --muted: #666;
  --rule: #b7b7b7;
  --paper: #fff;
  --link: #111;
  --measure: 48rem;
}

* { box-sizing: border-box; }
html { font-size: 17px; background: var(--paper); color: var(--ink); }
body {
  margin: 0;
  font-family: "Latin Modern Roman", "Computer Modern Serif", "CMU Serif", "STIX Two Text", "Times New Roman", serif;
  line-height: 1.54;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
}
main, header, footer { width: min(var(--measure), calc(100% - 2.4rem)); margin-inline: auto; }
header { padding: 4.4rem 0 2.2rem; border-bottom: 1px solid var(--ink); }
header .kicker, footer, .meta, .hash, nav { font-size: .82rem; }
header h1 { font-size: 2rem; font-weight: 500; margin: .2rem 0 .3rem; letter-spacing: -.015em; }
header p { margin: .25rem 0; }
nav { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 1rem; }
main { padding: 2.6rem 0 4rem; }
section { margin: 0 0 2.6rem; }
h2 { font-size: 1.28rem; font-weight: 600; margin: 0 0 .8rem; }
h3 { font-size: 1rem; font-weight: 600; margin: 1.6rem 0 .5rem; }
p { margin: .6rem 0 1rem; }
a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: .16em; }
a:hover { text-decoration-thickness: 2px; }
ol, ul { padding-left: 1.4rem; }
li { margin: .3rem 0; }
hr { border: 0; border-top: 1px solid var(--rule); margin: 2.4rem 0; }
table { width: 100%; border-collapse: collapse; font-size: .91rem; margin: 1rem 0 1.4rem; }
th, td { text-align: left; vertical-align: top; padding: .48rem .5rem .48rem 0; border-bottom: 1px solid #ddd; }
th { font-weight: 600; border-bottom-color: var(--ink); }
code, .hash {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  overflow-wrap: anywhere;
}
.hash { display: block; color: #333; margin-top: .25rem; }
.note { border-left: 2px solid var(--ink); padding-left: 1rem; }
.smallcaps { font-variant-caps: small-caps; letter-spacing: .03em; }
.doclist article { margin: 1.5rem 0; }
.doclist h3 { margin-bottom: .2rem; }
.meta { color: var(--muted); }
footer { padding: 1.5rem 0 3rem; border-top: 1px solid var(--ink); color: var(--muted); }
@media (max-width: 600px) {
  html { font-size: 16px; }
  header { padding-top: 2.7rem; }
  table { display: block; overflow-x: auto; }
}
@media print {
  nav { display: none; }
  header, footer { border-color: #000; }
  a { text-decoration: none; }
}
