/* Heavy Haul Rules — reference-publication layout: thin rules, serif headings, mono figures, citations in view. */
:root{
  --paper:#F7F8F9; --surface:#FFFFFF; --ink:#141B26; --ink-2:#3B4756; --muted:#66727F; --line:#D7DCE2; --line-2:#E9ECEF;
  --navy:#17365D; --link:#1B4F8A; --link-ink:#143A66;
  --warn:#9A4A00; --warn-soft:#FBEEDC; --crit:#9B1C1C; --crit-soft:#F9E3E3; --ok:#1E6A3A; --ok-soft:#E1F1E6;
  --f-head:"Source Serif 4",Georgia,"Times New Roman",serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#0F141A; --surface:#161C24; --ink:#E8ECF1; --ink-2:#C2CAD3; --muted:#8C98A5; --line:#2A3440; --line-2:#1F2831;
  --navy:#9DB9DE; --link:#8DB4E6; --link-ink:#B4CDEE;
  --warn:#F0A95C; --warn-soft:#3A2A14; --crit:#F08A8A; --crit-soft:#3C1C1C; --ok:#7CCB97; --ok-soft:#163022; color-scheme:dark}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.55;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 40px}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--link-ink)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--link);outline-offset:2px}
h1,h2,h3{font-family:var(--f-head);font-weight:600;text-wrap:balance;line-height:1.15;margin:0;letter-spacing:-.005em}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:8px;background:var(--surface);padding:8px;z-index:5}

/* Top bar + masthead */
.topbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-size:13px;color:var(--muted);padding:8px 0;border-bottom:1px solid var(--line-2)}
.topbar b{color:var(--ink-2);font-weight:600}
.mast{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;padding:22px 0 14px;border-bottom:2px solid var(--ink)}
.wordmark{text-decoration:none;color:var(--ink);display:grid;gap:2px}
.wordmark strong{font-family:var(--f-head);font-weight:700;font-size:clamp(24px,3.4vw,32px);letter-spacing:.01em;line-height:1}
.wordmark span{font-size:13px;color:var(--muted);letter-spacing:.02em}
nav ul{display:flex;flex-wrap:wrap;gap:4px 22px;list-style:none;margin:0;padding:0}
nav a{font-size:15px;color:var(--ink-2);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}

.crumbs{font-size:13px;color:var(--muted);padding-top:16px}
.crumbs a{color:var(--muted)}
.lede{padding:26px 0 22px;border-bottom:1px solid var(--line);display:grid;gap:10px}
.lede h1{font-size:clamp(30px,4.6vw,46px);max-width:24ch}
.lede p{margin:0;max-width:66ch;color:var(--ink-2);font-size:17px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.meta{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 18px}
.meta b{color:var(--ink-2);font-weight:600}

/* Checker */
.checker{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:36px;padding-block:28px}
@media (max-width:820px){.checker{grid-template-columns:minmax(0,1fr)}}
form{display:grid;gap:18px;align-content:start}
fieldset{border:0;margin:0;padding:0;display:grid;gap:8px;min-width:0}
legend{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:0;margin-bottom:2px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.field{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:3px}
.field:focus-within{border-color:var(--link)}
.field input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font-family:var(--f-mono);font-size:17px;padding:10px 0 9px 12px;font-variant-numeric:tabular-nums}
.field input:focus{outline:none}
.field span{font-family:var(--f-mono);color:var(--muted);font-size:13px;padding:0 12px}
.states-pick{display:flex;flex-wrap:wrap;gap:6px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:inline-block;font-size:14px;padding:5px 10px;border:1px solid var(--line);border-radius:3px;background:var(--surface);cursor:pointer;color:var(--ink-2)}
.chip input:checked + span{background:var(--navy);color:#fff;border-color:var(--navy)}
@media (prefers-color-scheme:dark){.chip input:checked + span{color:#0F141A}}
.chip input:focus-visible + span{outline:3px solid var(--link);outline-offset:2px}
.hint{font-size:13px;color:var(--muted);margin:0}
.btnrow{display:flex;flex-wrap:wrap;gap:8px}
button{font-family:var(--f-body);font-weight:600;font-size:15px;border-radius:3px;padding:10px 16px;cursor:pointer;border:1px solid var(--navy)}
.btn-primary{background:var(--navy);color:#fff}
@media (prefers-color-scheme:dark){.btn-primary{color:#0F141A}}
.btn-ghost{background:transparent;color:var(--ink-2);border-color:var(--line)}

.results{display:grid;gap:16px;align-content:start;min-width:0}
.summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.summary h2{font-size:22px}
.summary .dims{font-family:var(--f-mono);color:var(--muted);font-size:13px}
.sc{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:18px 20px;display:grid;gap:12px;min-width:0}
.sc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.sc-head h3{font-size:21px}
.pills{display:flex;flex-wrap:wrap;gap:6px}
.pill{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:2px}
.p-ok{background:var(--ok-soft);color:var(--ok)}
.p-warn{background:var(--warn-soft);color:var(--warn)}
.p-crit{background:var(--crit-soft);color:var(--crit)}
dl.rows{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px 16px;margin:0}
@media (max-width:480px){dl.rows{grid-template-columns:minmax(0,1fr);gap:2px}dl.rows dd{margin-bottom:10px}}
dl.rows dt{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:3px}
dl.rows dd{margin:0}
dl.rows ul{margin:0;padding-left:18px}
dl.rows li+li{margin-top:4px}
.src{font-size:13px;color:var(--muted);border-top:1px solid var(--line-2);padding-top:10px}
.empty{color:var(--muted);padding:16px 0}

/* Sections */
section.block{padding-block:36px 8px;border-top:1px solid var(--line);margin-top:20px;display:grid;gap:16px}
section.block > h2{font-size:clamp(24px,3.2vw,32px)}
section.block > p.intro{margin:0;max-width:66ch;color:var(--ink-2)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:820px){.grid2{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:18px 20px;min-width:0}
.panel h2,.panel h3{font-size:18px;margin-bottom:10px}
.panel table{width:100%;border-collapse:collapse;font-size:15px}
.panel td,.panel th{text-align:left;vertical-align:top;padding:8px 0;border-top:1px solid var(--line-2)}
.panel th{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding-right:16px;width:1%;color:var(--muted)}
.panel td{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:14.5px}
.panel td.t{font-family:var(--f-body);font-size:15px}
.panel tr:first-child td,.panel tr:first-child th{border-top:0}
.panel ul{margin:0;padding-left:18px}
.panel li+li{margin-top:6px}
.panel p{margin:0}
.wide{grid-column:1/-1}
.note{font-size:14px;background:var(--warn-soft);border-left:3px solid var(--warn);padding:10px 12px;margin-top:10px}
.faq details{border-top:1px solid var(--line-2);padding:12px 0}
.faq details:first-of-type{border-top:0}
.faq summary{font-family:var(--f-head);font-weight:600;font-size:17px;cursor:pointer}
.faq details p{margin:8px 0 0;max-width:68ch}

.statelist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.statecard{display:grid;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:14px 16px;text-decoration:none;color:var(--ink)}
.statecard:hover{border-color:var(--navy)}
.statecard strong{font-family:var(--f-head);font-size:19px;font-weight:600}
.statecard span{font-family:var(--f-mono);font-size:12.5px;color:var(--muted)}
.coming{display:flex;flex-wrap:wrap;gap:6px}
.coming span{font-size:13px;color:var(--muted);border:1px dashed var(--line);border-radius:3px;padding:3px 8px}

.tablewrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:3px}
table.sl{border-collapse:collapse;width:100%;min-width:680px;font-size:15px}
table.sl th,table.sl td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line-2);vertical-align:top}
table.sl thead th{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
table.sl tbody th{font-family:var(--f-head);font-weight:600;font-size:17px}
table.sl tbody th a{color:var(--ink);text-decoration:none}
table.sl tbody th a:hover{text-decoration:underline}
table.sl td{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:14.5px}
table.sl td.t{font-family:var(--f-body);font-size:15px}
table.sl tr:last-child td,table.sl tr:last-child th{border-bottom:0}

/* Pricing */
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:860px){.tiers{grid-template-columns:minmax(0,1fr)}}
.tier{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:22px;display:grid;gap:14px;align-content:start}
.tier.featured{border-color:var(--navy);box-shadow:inset 0 3px 0 var(--navy)}
.tier h2{font-size:22px}
.price{font-family:var(--f-mono);font-size:34px;font-weight:600;line-height:1}
.price small{font-family:var(--f-body);font-size:14px;color:var(--muted);font-weight:400}
.tier ul{margin:0;padding-left:18px;color:var(--ink-2)}
.tier li+li{margin-top:6px}
.tier .who{font-size:14px;color:var(--muted);margin:0}
.btn-link{display:inline-block;text-align:center;text-decoration:none;font-weight:600;font-size:15px;border-radius:3px;padding:10px 16px;border:1px solid var(--navy);color:var(--navy)}
.btn-link.solid{background:var(--navy);color:#fff}
@media (prefers-color-scheme:dark){.btn-link.solid{color:#0F141A}}
.soon{font-size:13px;color:var(--muted);margin:0}

.prose{max-width:68ch}
.prose p{margin:0 0 14px}
.prose h2{font-size:24px;margin:26px 0 10px}
.prose ul{margin:0 0 14px;padding-left:20px}
.prose li+li{margin-top:6px}
footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);display:grid;gap:8px}
footer .cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}
footer a{color:var(--muted)}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px}
@media (prefers-reduced-motion:no-preference){.sc{animation:rise .2s ease-out both}@keyframes rise{from{transform:translateY(3px)}to{transform:none}}}
