:root { color-scheme: light; --paper: #faf8f3; --ink: #252b2a; --muted: #535e57; --rule: #c7ccc3; --accent: #8d3925; --green: #24604f; font-size: 18px; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); }
a { color: var(--accent); text-underline-offset: .17em; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.skip-link { position: absolute; top: -6rem; left: 1rem; padding: .7rem; background: var(--paper); z-index: 2; }
.skip-link:focus { top: 1rem; }
.masthead { max-width: 1120px; margin: 0 auto; padding: 1rem 2rem; border-bottom: 1px solid var(--rule); display: flex; justify-content: space-between; gap: 1rem; font: .75rem/1.5 system-ui, sans-serif; }
.masthead a { font-weight: 650; color: var(--ink); text-decoration: none; }
.masthead span { color: var(--muted); }
main { max-width: 860px; margin: 0 auto; padding: 2.1rem 2rem 3rem; }
article { font: 1.05rem/1.65 Georgia, 'Times New Roman', serif; }
.article-header { margin-bottom: 1.3rem; }
h1 { max-width: 25ch; font: 650 clamp(2rem, 4.1vw, 2.85rem)/1.1 system-ui, sans-serif; letter-spacing: -.04em; margin: 0 0 1rem; text-wrap: balance; }
.standfirst { font: 1.08rem/1.5 system-ui, sans-serif; color: var(--muted); margin: 0 0 .9rem; }
.byline { font: .73rem/1.5 system-ui, sans-serif; color: var(--muted); margin: 0; }
p { margin: 0 0 1rem; }
h2 { font: 650 1.4rem/1.25 system-ui, sans-serif; letter-spacing: -.025em; margin: 2rem 0 .9rem; text-wrap: balance; }
code { font: .83em/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
strong { font-weight: 700; }
figure { margin: 1.4rem 0 1.5rem; }
.article-figure img { display: block; width: 100%; height: auto; }
figcaption { margin-top: .65rem; font: .78rem/1.5 system-ui, sans-serif; color: var(--muted); }
figcaption strong { color: var(--ink); font-weight: 650; }
.decision-matrix { border-top: 1px solid var(--rule); padding-top: .8rem; }
.decision-matrix th:first-child { width: 24%; }
table { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: left; font: .8rem/1.5 system-ui, sans-serif; }
caption { margin-bottom: .8rem; text-align: left; font-weight: 650; color: var(--ink); }
th, td { padding: .75rem .65rem .75rem 0; vertical-align: top; border-bottom: 1px solid var(--rule); overflow-wrap: break-word; }
th:first-child { width: 28%; }
thead th { color: var(--muted); font-weight: 600; border-bottom-color: var(--ink); }
tbody th { font-weight: 650; }
.article-footer { border-top: 1px solid var(--rule); margin-top: 2.2rem; padding-top: 1.2rem; font: .8rem/1.6 system-ui, sans-serif; color: var(--muted); }
.article-footer h2 { font-size: 1rem; margin: 1.3rem 0 .8rem; }
.article-footer details { border-top: 1px solid var(--rule); padding: .8rem 0; }
.article-footer summary { cursor: pointer; color: var(--ink); font-weight: 600; }
.article-footer details p { margin: .8rem 0 0; }
.author { color: var(--ink); }
.index-list { list-style: none; padding: 0; font: 1rem/1.6 system-ui, sans-serif; }
.index-list p { color: var(--muted); }
@media (max-width: 560px) { :root { font-size: 16px; } .masthead { padding: .8rem 1rem; } main { padding: 1.6rem 1rem 2rem; } article { font-size: 1.12rem; line-height: 1.62; } h1 { font-size: 2rem; } h2 { font-size: 1.4rem; } figure { margin: 1.1rem 0 1.3rem; } table { font-size: .78rem; line-height: 1.45; } th, td { padding: .65rem .35rem .65rem 0; } th:first-child { width: 29%; } }
@media print { body { background: white; color: black; } .masthead, .skip-link { display: none; } main { padding: 0; max-width: none; } figure { break-inside: avoid; } a { color: inherit; } }
