/* The reading pages (the study, the patterns, privacy): the same house as the landing page. Tokens, header, buttons
   and footer come from site.css; this file is the article itself. */
:root { --rule: var(--line); --card: var(--panel); --bar: var(--jev); --bar2: #5a5248; }
body { font: 17.5px/1.68 var(--sans); }
main.article { max-width: 760px; padding: clamp(36px, 6vw, 72px) var(--pad) 40px; }
.article h1 { font: 400 clamp(40px, 6vw, 64px)/1 var(--serif); letter-spacing: -0.022em; margin: 0 0 18px; text-wrap: balance; }
.article h2 { font: 400 clamp(28px, 3.4vw, 36px)/1.12 var(--serif); letter-spacing: -0.015em; margin: 58px 0 10px; max-width: none; }
h3 { font: 600 15px/1.3 var(--sans); margin: 30px 0 4px; letter-spacing: .01em; }
.article p { margin: 12px 0; }
.article > p, .article section > p, .article li { color: var(--soft); }
.article b { color: var(--ink); font-weight: 600; }
.article .lede { font-size: clamp(19px, 2vw, 22px); line-height: 1.5; color: var(--soft); margin: 0 0 22px; max-width: none; }
.by { font: 13px/1.5 var(--sans); color: var(--dim); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:10px 0; margin: 18px 0 28px; }
code { font: 14px/1.4 var(--mono); background: var(--card); border:1px solid var(--rule); padding: 1px 5px; border-radius: 4px; }
.strip { display:grid; grid-template-columns: repeat(2, 1fr); gap:10px; margin: 22px 0; }
@media (min-width: 620px) { .strip { grid-template-columns: repeat(4, 1fr); } }
.stat { background:var(--card); border:1px solid var(--rule); border-radius:8px; padding:12px; }
.stat b { display:block; font: 400 34px/1 var(--serif); color: var(--jev); font-variant-numeric: tabular-nums; }
.stat span { font: 12.5px/1.35 var(--sans); color: var(--dim); }
figure { margin: 22px 0; background:var(--card); border:1px solid var(--rule); border-radius:8px; padding:16px; }
figcaption { font: 13px/1.45 var(--sans); color: var(--dim); margin-top: 10px; }
figure h4 { font: 600 14px/1.3 var(--sans); margin: 0 0 12px; }
.bars { display:grid; grid-template-columns: minmax(120px, 38%) 1fr 56px; gap: 7px 10px; align-items:center; font: 13.5px/1.25 var(--sans); }
.bars .t { height: 16px; background: transparent; position:relative; }
.bars .t i { position:absolute; left:0; top:0; bottom:0; background: var(--bar); border-radius: 2px; }
.bars .t i.alt { background: var(--bar2); }
.bars .t i.neg { background: var(--bad); }
.bars .v { text-align:right; font-variant-numeric: tabular-nums; }
.bars .fail { color: var(--bad); font-weight:600; }
table { width:100%; border-collapse: collapse; font: 14px/1.4 var(--sans); margin: 14px 0; }
th, td { text-align:left; padding: 7px 8px; border-bottom:1px solid var(--rule); vertical-align: top; }
th { color: var(--dim); font-weight: 600; font-size: 12.5px; }
td.n, th.n { text-align:right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fail { color: var(--bad); }
.box { border-left: 3px solid var(--gold); background: var(--card); padding: 10px 14px; margin: 18px 0; font-size: 16px; }
ol.rules li { margin: 8px 0; }
.legend { font: 12.5px/1.3 var(--sans); color: var(--dim); margin-bottom: 10px; }
.legend i { display:inline-block; width:10px; height:10px; border-radius:2px; margin: 0 4px 0 10px; vertical-align:-1px; }
.article footer { margin-top: 60px; max-width: none; padding-inline: 0; font: 13px/1.5 var(--sans); color: var(--dim); border-top:1px solid var(--rule); padding-top: 14px; }
.pat { border-top: 1px solid var(--rule); margin-top: 44px; padding-top: 6px; }
.pat .n { font: 600 12.5px/1 var(--sans); letter-spacing: .08em; color: var(--jev); text-transform: uppercase; }
.pat h2 { margin-top: 8px; }
.two { display: grid; gap: 10px; margin: 14px 0; }
@media (min-width: 620px) { .two { grid-template-columns: 1fr 1fr; } }
.two > div { background: var(--card); border: 1px solid var(--rule); border-radius: 8px; padding: 12px 14px; font: 14.5px/1.5 var(--sans); }
.two b.h { display:block; font: 600 12px/1.2 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--dim); margin-bottom: 6px; }
.two ul { margin: 0; padding-left: 18px; }
.m { font: 13.5px/1.5 var(--mono); color: var(--jev); }
  
pre { margin: 18px 0; padding: 16px 18px; background: var(--card); border: 1px solid var(--rule); border-radius: 8px; overflow-x: auto; }
pre code { display: block; padding: 0; border: 0; background: none; font: 13px/1.6 var(--mono); color: var(--soft); white-space: pre; }
