
:root{--paper:#ece4d3;--card:#f7f2e7;--ink:#1b2a23;--leaf:#37644a;--leaf-deep:#244233;
--amber:#cf8a1c;--brick:#a6391f;--rule:#c3b89e;--muted:#6c6657;}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
a{color:var(--brick)}
/* nav */
.topnav{position:sticky;top:0;z-index:50;background:rgba(36,66,51,.97);backdrop-filter:blur(6px);border-bottom:3px solid var(--amber)}
.topnav .row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 24px;max-width:1080px;margin:0 auto;flex-wrap:wrap}
.brand{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.12em;color:#f0c460;text-transform:uppercase;text-decoration:none;font-weight:600;white-space:nowrap}
.navlinks{display:flex;gap:4px;flex-wrap:wrap}
.navlinks a{font-size:13px;color:#d9d3c2;text-decoration:none;padding:5px 10px;border-radius:4px;letter-spacing:.02em}
.navlinks a:hover{background:rgba(255,255,255,.08);color:#fff}
.navlinks a.active{color:#1b2a23;background:var(--amber);font-weight:600}
/* hero */
.hero{background:var(--leaf-deep);color:#f3efe2;padding:56px 0 46px;border-bottom:1px solid rgba(0,0,0,.15)}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--amber);margin:0 0 18px}
.hero h1{font-family:"Newsreader",serif;font-weight:500;font-size:clamp(30px,5vw,52px);line-height:1.06;letter-spacing:-.01em;margin:0 0 16px;max-width:22ch}
.hero p.lede{font-size:clamp(15px,1.9vw,18px);max-width:64ch;color:#d9d3c2;margin:0 0 30px}
.conf{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:3px}
.conf.high{background:#cfe0cb;color:#244233}.conf.med{background:#f0dcb0;color:#7a4f08}.conf.low{background:#eccabe;color:#8a2f1a}
.heroStats{display:flex;flex-wrap:wrap;gap:30px;border-top:1px solid rgba(243,239,226,.22);padding-top:24px;margin-top:26px}
.heroStat .n{font-family:"IBM Plex Mono",monospace;font-size:clamp(22px,3vw,32px);font-weight:600;color:#fff;line-height:1}
.heroStat .n.down{color:#e8a48c}.heroStat .n.up{color:#f0c460}
.heroStat .l{font-size:12px;color:#bdb6a4;margin-top:7px;max-width:25ch}
/* sections */
section{padding:50px 0;border-bottom:1px solid var(--rule)}
section:last-of-type{border-bottom:none}
.sec-no{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.2em;color:var(--leaf);font-weight:600}
h2{font-family:"Newsreader",serif;font-weight:500;font-size:clamp(23px,3.3vw,33px);line-height:1.12;letter-spacing:-.01em;margin:8px 0 16px;max-width:26ch}
h3{font-family:"Newsreader",serif;font-weight:600;font-size:20px;margin:28px 0 9px}
p{margin:0 0 15px;max-width:72ch}.lead{font-size:17px;color:#37322a;max-width:70ch}
strong{font-weight:600}
ul.clean{padding-left:20px}ul.clean li{margin-bottom:8px;max-width:72ch}
/* charts */
.chartCard{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:22px 20px 16px;margin:24px 0}
.chartCard .cap{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:6px;flex-wrap:wrap}
.chartCard .cap h4{margin:0;font-weight:600;font-size:14.5px}
.chartCard .cap .src{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted)}
.chartBox{position:relative;height:330px}
.legendNote{font-size:12.5px;color:var(--muted);margin:10px 2px 0;display:flex;gap:18px;flex-wrap:wrap}
.swatch{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:6px;vertical-align:middle}
.covid-key{display:inline-block;width:22px;height:11px;background:rgba(166,57,31,.14);border:1px dashed rgba(166,57,31,.6);margin-right:6px;vertical-align:middle}
/* tables */
.tableScroll{overflow-x:auto;margin:22px 0}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
caption{text-align:left;font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-bottom:9px}
th,td{text-align:left;padding:10px 13px;border-bottom:1px solid var(--rule);vertical-align:top}
thead th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--leaf-deep);border-bottom:2px solid var(--leaf)}
tbody tr:nth-child(even){background:rgba(255,255,255,.35)}
td.num{font-family:"IBM Plex Mono",monospace;text-align:right;white-space:nowrap}
.pos{color:var(--leaf);font-weight:600}.neg{color:var(--brick);font-weight:600}
.tag{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.04em;padding:2px 8px;border-radius:3px;white-space:nowrap}
.tag.steady{background:#dfe7d6;color:var(--leaf-deep)}.tag.grow{background:#f5e2bc;color:#8a5a08}.tag.vol{background:#f0d4c9;color:var(--brick)}.tag.emerg{background:#dfe7d6;color:#244233}
/* cards grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:18px;margin:26px 0}
.fcard{display:block;background:var(--card);border:1px solid var(--rule);border-top:4px solid var(--leaf);border-radius:4px;padding:20px;text-decoration:none;color:var(--ink);transition:transform .12s,box-shadow .12s}
.fcard:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(27,42,35,.12)}
.fcard.grow{border-top-color:var(--amber)}.fcard.vol{border-top-color:var(--brick)}.fcard.emerg{border-top-color:var(--leaf)}
.fcard h3{margin:0 0 4px;font-family:"IBM Plex Sans";font-size:18px;font-weight:600}
.fcard .meta{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted);margin-bottom:10px}
.fcard .stat{font-family:"IBM Plex Mono",monospace;font-size:22px;font-weight:600;color:var(--leaf-deep)}
.fcard .sl{font-size:12.5px;color:var(--muted)}
/* callout */
.callout{background:var(--leaf-deep);color:#eee9da;border-radius:4px;padding:28px;margin:28px 0}
.callout h3{color:#fff;margin-top:0}.callout p{color:#d9d3c2;max-width:66ch}
.callout .verdict{font-family:"Newsreader",serif;font-size:21px;color:var(--amber);margin:0 0 12px;font-weight:500}
.note{font-size:13px;color:var(--muted);border-left:3px solid var(--rule);padding:4px 0 4px 15px;margin:16px 0;max-width:74ch}
.srcline{font-family:"IBM Plex Mono",monospace;font-size:11.5px}
footer{background:var(--leaf-deep);color:#bdb6a4;padding:34px 0 48px;font-size:12.5px}
footer a{color:#f0c460;text-decoration:none}footer .fnav{margin-bottom:14px}
footer .fnav a{margin-right:14px;font-family:"IBM Plex Mono",monospace;font-size:12px}
@media (max-width:720px){section{padding:38px 0}.heroStats{gap:20px}.navlinks{gap:2px}.navlinks a{padding:5px 7px;font-size:12px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fcard{transition:none}}
