@font-face { font-family: Newsreader; src: url('../fonts/newsreader-latin.woff2') format('woff2'); font-style: normal; font-weight: 300 800; font-display: swap; }
@font-face { font-family: Inter; src: url('../fonts/inter-latin.woff2') format('woff2'); font-style: normal; font-weight: 100 900; font-display: swap; }
body { font-family: var(--esl-sans); font-size: 1rem; line-height: 1.58; color: var(--esl-ink); text-rendering: optimizeLegibility; }
h1, h2, h3, h4 { font-family: var(--esl-serif); font-weight: 520; line-height: 1.01; letter-spacing: -.025em; text-wrap: balance; }
h1 { font-size: clamp(2.8rem, 8.5vw, 5.4rem); }
h2 { font-size: clamp(2.15rem, 6.8vw, 4rem); }
h3 { font-size: clamp(1.42rem, 4.8vw, 2.15rem); }
.esl-kicker { font-size: .68rem; font-weight: 780; letter-spacing: .15em; line-height: 1.35; text-transform: uppercase; color: var(--esl-accent-dark); }
.esl-prose { max-width: var(--esl-reading); font-family: var(--esl-serif); font-size: clamp(1.16rem, 2.3vw, 1.31rem); line-height: 1.72; }
.esl-prose > * + * { margin-top: 1.25em; }
.esl-prose h2, .esl-prose h3 { margin-top: 1.8em; }
.esl-prose a { text-decoration-thickness: .07em; }
@media (max-width: 30rem) { .esl-prose { font-size: 1.16rem; line-height: 1.68; } }
