:root{ --fairway-dark:#1e3a2b; --fairway:#2f5c40; --paper:#eee6cf; --paper-line:#c9bc99; --ink:#20281f; --clay:#a13d2b; }
*{ box-sizing:border-box; }
body{ margin:0; background:var(--fairway-dark); font-family:'IBM Plex Sans',sans-serif; color:var(--ink); }
a{ color:var(--fairway); }
.site-header{ display:flex; justify-content:space-between; align-items:center; gap:10px 18px; flex-wrap:wrap; max-width:960px; margin:0 auto; padding:14px 20px; }
.site-header a{ color:var(--paper); text-decoration:none; }
.brand{ font-family:'Fraunces',serif; font-weight:700; font-size:20px; }
.site-header nav a{ font-family:'IBM Plex Mono',monospace; font-size:12px; margin-left:16px; }
.wrap{ max-width:960px; margin:0 auto; background:var(--paper); padding:36px 32px 56px; }
.crumbs{ font-family:'IBM Plex Mono',monospace; font-size:12px; margin:0 0 14px; color:#6b6248; }
.crumbs a{ text-decoration:none; }
h1{ font-family:'Fraunces',serif; font-weight:700; font-size:34px; line-height:1.15; color:var(--fairway-dark); margin:0 0 6px; }
.sub{ font-family:'Fraunces',serif; font-style:italic; color:#6b6248; margin:0 0 20px; font-size:17px; }
h2{ font-family:'Fraunces',serif; font-weight:600; font-size:23px; color:var(--fairway-dark); margin:38px 0 12px; border-bottom:1.5px solid var(--paper-line); padding-bottom:6px; }
h3{ font-family:'Fraunces',serif; font-weight:600; font-size:17.5px; color:var(--fairway-dark); margin:22px 0 6px; }
p, li, dd{ font-size:16px; line-height:1.72; }
p{ margin:0 0 14px; }
.lead{ font-size:17.5px; }
.cta{ display:inline-block; background:var(--fairway-dark); color:var(--paper) !important; text-decoration:none; padding:12px 20px; border-radius:5px; font-family:'IBM Plex Mono',monospace; font-size:13.5px; margin:6px 12px 6px 0; }
.cta.alt{ background:transparent; color:var(--fairway-dark) !important; border:1.5px solid var(--fairway-dark); }
.aff{ border:1.5px dashed var(--paper-line); border-radius:8px; padding:12px 16px; margin:20px 0; background:rgba(255,255,255,.35); }
.aff p{ margin:0 0 8px; } .aff .aff-note{ font-size:13px; color:#6b6248; margin:6px 0 0; line-height:1.5; }
.est-note{ font-size:14px; color:#6b6248; }
.stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin:22px 0 8px; }
.stat{ background:rgba(47,92,64,.09); border:1px solid var(--paper-line); border-radius:6px; padding:12px 14px; }
.stat b{ display:block; font-family:'Fraunces',serif; font-size:26px; color:var(--fairway-dark); }
.stat span{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#6b6248; }
.note{ background:#f6efd9; border-left:4px solid var(--clay); padding:12px 16px; border-radius:0 6px 6px 0; margin:18px 0; }
.note p{ margin:0; font-size:15px; }
.codebox{ background:#f8f1dd;border:1px solid var(--paper-line);border-radius:6px;padding:12px 14px;font-family:'IBM Plex Mono',monospace;font-size:13.5px;line-height:1.6;word-break:break-word;margin:0 0 14px; }
.table-scroll{ overflow-x:auto; border:1px solid var(--paper-line); border-radius:6px; background:#f8f1dd; }
table{ border-collapse:collapse; width:100%; font-size:14.5px; }
th, td{ text-align:left; padding:8px 12px; border-bottom:1px solid var(--paper-line); vertical-align:top; }
th{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:#6b6248; background:rgba(47,92,64,.08); position:sticky; top:0; }
td.num, th.num{ text-align:right; white-space:nowrap; }
tr:last-child td{ border-bottom:none; }
.dir{ max-height:none; }
.notable{ list-style:none; padding:0; margin:0; }
.notable li{ padding:12px 0; border-bottom:1px solid var(--paper-line); }
.notable li:last-child{ border-bottom:none; }
.notable .meta{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:#6b6248; }
.state-grid{ list-style:none; padding:0; margin:0; columns:3 180px; column-gap:22px; }
.state-grid li{ font-size:14.5px; line-height:1.9; break-inside:avoid; }
.site-footer{ max-width:960px; margin:0 auto; padding:24px 20px 46px; color:#cfd8cd; font-size:13px; line-height:1.7; }
.site-footer a{ color:#e3ecdf; }
@media (max-width:640px){ .wrap{ padding:26px 18px 40px; } h1{ font-size:28px; } .site-header nav a{ margin:0 14px 0 0; } th, td{ padding:7px 9px; font-size:13.5px; } }
