/* The specification page: the Read register on the site's own inks (style.css). */
.doc {
  --ground: var(--paper-sunken);
  --ink-2: var(--ink-muted);
  --ink-3: var(--ink-faint);
  --rule-2: var(--ink);
  --serif: var(--text);
}
.doc{max-width:1040px;margin:0 auto;padding:0 20px 88px}
@media (min-width:900px){
  .doc{padding:0 40px 128px}
}

a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--ink-3)}
a:hover{text-decoration-color:var(--ink)}
code,kbd,pre,.mono{font-family:var(--mono)}
code{font-size:.88em;overflow-wrap:anywhere}
/* Masthead: a ruled sheet with the document's title. */
.mast{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  padding:44px 0 18px;
  border-bottom:1px solid var(--rule-2);
}
.mast h1{
  font-family:var(--display);
  font-size:40px;
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.01em;
  margin:0;
}
.ident{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  gap:5px 22px;
  margin:0;
  padding:14px 0 0;
  font-size:13px;
  line-height:1.4;
}
.ident dt{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink-2);
  padding-top:2px;
}
.ident dd{margin:0;max-width:70ch}

.lede{
  font-size:23px;
  line-height:1.3;
  letter-spacing:-.005em;
  max-width:34ch;
  margin:40px 0 0;
}
@media (min-width:900px){.lede{font-size:27px}}

.toc{
  margin:36px 0 0;
  padding:18px 0 22px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  font-size:14px;
}
.toc h2{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:400;
  color:var(--ink-3);
  margin:0 0 10px;
}
.toc ol{margin:0;padding-left:2.2em;columns:1;column-gap:48px;max-width:none}
.toc li{padding:2px 0;break-inside:avoid}
@media (min-width:640px){.toc ol{columns:2}}
@media (min-width:900px){.toc ol{columns:3}}

/* Sections: a margin column, a continuous vertical rule, the body. */
.s{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  border-top:1px solid var(--rule);
}
.s:last-of-type .b{padding-bottom:28px}
.n{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink-2);
  padding:24px 0 0;
}
.b{padding:8px 0 40px;min-width:0}
@media (min-width:900px){
  .s{grid-template-columns:96px minmax(0,1fr)}
  .n{padding-top:37px}
  .b{border-left:1px solid var(--rule);padding:28px 0 60px 44px}
}
h2{
  font-size:22px;
  font-weight:400;
  line-height:1.2;
  letter-spacing:-.005em;
  margin:0 0 16px;
}
@media (min-width:900px){h2{font-size:24px}}
h3{
  font-size:1em;
  font-weight:400;
  font-style:italic;
  margin:30px 0 8px;
}
h3 + p,h3 + .tscroll,h3 + pre{margin-top:0}
p{max-width:66ch;margin:0 0 14px}
ul,ol{max-width:66ch;margin:0 0 14px;padding-left:1.4em}
li{margin:0 0 5px}
.b > p:last-child{margin-bottom:0}
.src{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.02em;
  color:var(--ink-3);
  margin:-8px 0 20px;
  max-width:none;
}
.small{font-size:14px;color:var(--ink-2)}

pre{
  font-family:var(--mono);
  font-size:13px;
  line-height:1.5;
  margin:14px 0 18px;
  padding:14px 16px;
  border:1px solid var(--rule);
  background:var(--ground);
  overflow-x:auto;
  white-space:pre;
  max-width:100%;
  tab-size:2;
}
pre i{font-style:normal;color:var(--ink-3)}

.tscroll{overflow-x:auto;margin:12px 0 20px;max-width:100%}
table{
  border-collapse:collapse;
  width:100%;
  font-size:14px;
  line-height:1.4;
  font-variant-numeric:tabular-nums;
}
th{
  font-family:var(--mono);
  font-weight:400;
  font-size:12px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink-2);
  text-align:left;
  padding:0 14px 8px 0;
  border-bottom:1px solid var(--ink);
  white-space:nowrap;
}
td{
  padding:7px 14px 7px 0;
  border-bottom:1px solid var(--rule);
  vertical-align:top;
}
td:last-child,th:last-child{padding-right:0}
td.mono,th.mono{font-family:var(--mono);font-size:13px;white-space:nowrap}
table.errs td:first-child{font-family:var(--mono);font-size:13px;white-space:nowrap;width:4ch}
@media (max-width:639px){
  td.mono{white-space:normal}
  th{white-space:normal}
}
td.num,th.num{text-align:right;white-space:nowrap}
tbody tr:last-child td{border-bottom:1px solid var(--rule)}

/* The journal: an accountant's ruling. */
table.ledger{font-family:var(--mono);font-size:13px}
.ledger caption{
  text-align:left;
  font-family:var(--serif);
  font-size:15px;
  padding:0 0 10px;
  caption-side:top;
}
.ledger caption b{font-weight:400;font-style:italic}
.ledger td{padding:6px 14px 6px 0;white-space:nowrap}
.ledger td.cr{padding-left:3ch}
.ledger td.ccy{color:var(--ink-3)}
.ledger tr.sum td{
  border-top:1px solid var(--ink);
  border-bottom:3px double var(--ink);
  padding-top:7px;
  padding-bottom:6px;
}
.ledger tr.grp td{
  border-bottom:none;
  padding-top:14px;
  padding-bottom:2px;
  color:var(--ink-3);
  font-size:12px;
  letter-spacing:.09em;
  text-transform:uppercase;
}

/* The two identities: the old one on the left, ours on the right. */
.eq{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:18px 40px;
  margin:26px 0 24px;
  padding:20px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
/* Side by side once there is room for both columns; the identity wraps like prose either way. */
@media (min-width:1080px){.eq{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center}}
.eq .old{font-size:19px;line-height:1.5;margin:0}
.eq .old i{font-style:italic}
.eq .old .op{font-style:normal;color:var(--ink-2);padding:0 .15em}
@media (min-width:640px){.eq .old{font-size:21px}}
.eq .ours{
  font-family:var(--mono);
  font-size:13px;
  line-height:1.65;
  color:var(--ink-2);
  margin:0;
  max-width:none;
}
.eq .ours b{font-weight:400;color:var(--ink);font-size:15px}

dl.terms{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px 24px;
  margin:0 0 20px;
  font-size:15px;
}
@media (min-width:640px){dl.terms{grid-template-columns:max-content minmax(0,1fr)}}
dl.terms dt{font-family:var(--mono);font-size:13px;padding-top:2px}
dl.terms dd{margin:0;max-width:62ch}
@media (max-width:639px){dl.terms dd{padding-bottom:6px;border-bottom:1px solid var(--rule)}}

.notbuilt li{margin-bottom:10px}

.colophon{
  margin-top:0;
  padding-top:22px;
  border-top:1px solid var(--rule-2);
  font-size:13.5px;
  color:var(--ink-2);
}
.colophon p{margin:0 0 8px}
