/* Base: reset, paper, type roles, links, focus, helpers. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background-color: var(--newsprint);
  background-image: url(../img/tex-newsprint.webp);
  background-size: 512px 512px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: var(--fs-body);
  font-optical-sizing: auto;
  line-height: 1.5;
  overflow-wrap: break-word;
}
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--rule); }
h1, h2, h3 { font-weight: 700; font-variation-settings: "opsz" 72; text-wrap: balance; }
h1 { font-weight: 800; font-size: var(--fs-h1); line-height: 0.98; letter-spacing: -0.01em; }
h2 { font-size: var(--fs-h2); line-height: 1.02; letter-spacing: -0.005em; }
h3 { font-size: var(--fs-h3); line-height: 1.1; font-variation-settings: "opsz" 36; }
p { text-wrap: pretty; hanging-punctuation: first; }
.tn { font-variant-numeric: tabular-nums lining-nums; }
.kicker, .folio, .ear, .dateline, .tk-label {
  font-weight: 600; font-size: var(--fs-label); letter-spacing: 0.12em; text-transform: uppercase;
}
.kicker { color: var(--ledger-red); margin-bottom: 12px; }
.kicker-soft { color: var(--ink-soft); }
.standfirst { font-style: italic; font-size: var(--fs-sf); line-height: 1.35; font-variation-settings: "opsz" 24; }
.caption, figcaption, .note, .foot { font-style: italic; font-size: var(--fs-cap); line-height: 1.4; }
.note, .foot, .caption { color: var(--ink-soft); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 16px; top: -100px; z-index: 100; background: var(--ink); color: var(--newsprint); padding: 12px 16px; font-weight: 700; }
.skip:focus { top: 8px; }
[id] { scroll-margin-top: 72px; }
@media (min-width: 768px) { [id] { scroll-margin-top: 24px; } }
