
:root{
  --ink:#16181d;--ink-2:#4b5260;--muted:#5d6470;--line:#d9dce1;--line-2:#e3e6ea;--panel:#f3f5f8;--paper:#ffffff;
  --accent:#1f4fd1;--accent-ink:#163a9c;--red:#b42318;--amber:#8a5a00;--go:#0f5f3a;--go-soft:#e6f0e8;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:2px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}
a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:var(--accent-ink)}
h1,h2,h3,h4{font-family:var(--sans);font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0 0 .4em;color:var(--ink)}
h1{font-size:clamp(1.6rem,3.2vw,2.1rem)}
h2{font-size:1.15rem;margin-top:0}
h3{font-size:1rem}
p{margin:0 0 1em}
dl,ul,ol{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
@media (max-width:720px){.wrap{padding:0 16px}}
.narrow{max-width:780px}
.muted{color:var(--muted)}
.small{font-size:.86rem}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hp{position:absolute;left:-9999px}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.eyebrow{font:500 .8rem/1.2 var(--mono);color:var(--muted);margin-bottom:10px}
.kicker{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}

/* Header */
.top{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:30}
.top .wrap{display:flex;align-items:center;gap:28px;min-height:56px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.logo{font-weight:700;font-size:16px;color:var(--ink);text-decoration:none;white-space:nowrap;letter-spacing:-.01em}
.nav{display:flex;gap:22px;flex-wrap:wrap;align-items:center;flex:1}
.nav a{color:var(--ink-2);text-decoration:none;font-size:.95rem}
.nav a:hover,.nav a[aria-current]{color:var(--ink)}
.nav .right{margin-left:auto;display:flex;gap:16px;align-items:center}
.nav .btn{color:#fff}
@media (max-width:900px){.nav a:not(.btn){display:none}.nav .right{margin-left:auto}}

/* Buttons & inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--ink);color:#fff;border:0;border-radius:var(--r);padding:10px 16px;font:600 .92rem/1 var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:#000;color:#fff}
.btn.blue{background:var(--accent)}.btn.blue:hover{background:var(--accent-ink)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--panel)}
.btn.sm{padding:8px 14px;font-size:.85rem}
.btn.lg{padding:12px 22px;font-size:1rem}
.btn.full{display:flex;width:100%}
input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #aeb4bf;border-radius:var(--r);padding:9px 12px;width:100%;min-height:40px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
label{font-weight:600;font-size:.86rem;display:block;margin-bottom:4px;color:var(--ink-2)}

/* Page head */
.hero{padding:28px 0 8px}
.hero .lede{font-size:1.05rem;color:var(--ink-2);max-width:760px;margin:0}
.hero.home{padding:56px 0 24px}
.hero.home h1{font-size:clamp(1.9rem,4vw,2.8rem);max-width:820px}
.hero.home .lede{font-size:1.15rem;max-width:680px}
.crumbs{font-size:.84rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--accent)}
.idline{font:400 .84rem/1.3 var(--mono);color:var(--muted);margin:0 0 4px}

/* Stat strip */
dl.stats{display:flex;flex-wrap:wrap;margin:22px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
dl.stats>div{padding:12px 24px 12px 0;margin-right:24px;border-right:1px solid var(--line)}
dl.stats>div:last-child{border-right:0;margin-right:0}
dl.stats dt{font-size:.78rem;color:var(--muted)}
dl.stats dd{margin:0;font:400 1.3rem/1.2 var(--mono)}
dl.stats dd.red{color:var(--red)}
@media (max-width:600px){dl.stats>div{padding-right:14px;margin-right:14px}dl.stats dd{font-size:1.1rem}}

/* Verdict */
.verdict{margin-top:24px;border:2px solid var(--ink);border-radius:var(--r);padding:22px 26px;display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.verdict>.say{flex:1 1 320px;min-width:0}
.verdict .lead{font-size:1.3rem;line-height:1.35;margin:0 0 10px;font-weight:500}
.verdict .lead.go{color:var(--go)}
.verdict .lead.stop{color:var(--red)}
.verdict .why{margin:0;color:var(--ink-2)}
.verdict dl.tiles{flex:1 1 400px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 22px;min-width:0}
.verdict dl.tiles dt{font-size:.78rem;color:var(--muted)}
.verdict dl.tiles dd.v{margin:0;font:400 1.75rem/1.1 var(--mono)}
.verdict dl.tiles dd.v.blue{color:var(--accent)}
.verdict dl.tiles dd.s{margin:2px 0 0;font-size:.76rem;color:var(--muted)}
@media (max-width:600px){.verdict dl.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.verdict{padding:16px}.verdict dl.tiles dd.v{font-size:1.4rem}}

/* Layout */
.cols{display:flex;flex-wrap:wrap;gap:40px;margin-top:28px;align-items:flex-start}
.main{flex:999 1 560px;min-width:0}
.side{flex:1 1 280px;max-width:340px;display:flex;flex-direction:column;gap:20px;min-width:0}
@media (max-width:960px){.side{max-width:none;flex-basis:100%}}
.rail{flex:1 1 200px;max-width:230px;font-size:.92rem}
@media (max-width:960px){.rail{max-width:none;flex-basis:100%}}
.rail fieldset{border:0;padding:0;margin:0 0 18px}
.rail legend{font-weight:600;font-size:.84rem;margin-bottom:6px}
.rail label{display:flex;gap:8px;align-items:center;padding:3px 0;font-weight:400;font-size:.92rem;color:var(--ink)}
.rail label input{width:auto;min-height:0;margin:0}
.rail .n{margin-left:auto;color:var(--muted);font-family:var(--mono);font-size:.8rem}
section.block{padding:36px 0}
.sec{margin-top:36px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.sec-head p{margin:0;color:var(--muted);font-size:.9rem}
.sec-head .more{font-size:.9rem}
.rule{border-top:2px solid var(--ink);padding-top:14px}
.grid{display:grid;gap:20px}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:800px){.g3,.g2{grid-template-columns:1fr}}

/* Tables */
.tw{overflow-x:auto;max-width:100%}
table.t{width:100%;border-collapse:collapse;font-size:.92rem}
table.t th{text-align:left;padding:8px 12px;font-weight:600;border-bottom:2px solid var(--ink);white-space:nowrap;vertical-align:bottom}
table.t th:first-child,table.t td:first-child{padding-left:0}
table.t th:last-child,table.t td:last-child{padding-right:0}
table.t td{padding:11px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}
table.t th.num,table.t td.num{text-align:right}
table.t th a{color:var(--ink);text-decoration:none}
table.t th a:hover{color:var(--accent)}
table.t th a.on::after{content:" ↑"}
table.t td .sub{display:block;color:var(--muted);font-size:.82rem;margin-top:2px}
table.t td a.t-link{font-weight:500}
table.t.compact td{padding:7px 12px}
table.t td.mono{white-space:nowrap}
table.t td,table.t th{overflow-wrap:normal}
.funder-m{display:none}
@media (max-width:720px){table.t{min-width:560px}table.t.compact{min-width:480px}.sidebox table{min-width:0}}
@media (max-width:600px){.funder-col{display:none}.funder-m{display:block}table.t,table.t.compact{min-width:0}table.t td,table.t th{padding-left:8px;padding-right:8px}table.t td:first-child,table.t th:first-child{padding-left:0}table.t td:last-child,table.t th:last-child{padding-right:0}}
table.t td.nw{white-space:nowrap}
.when{font-family:var(--mono);white-space:nowrap;font-size:.9rem}
.when small{display:block;font-size:.76rem;color:var(--muted)}
.when.urgent,.when.urgent small{color:var(--red)}
.when.soon,.when.soon small{color:var(--amber)}
.mark{display:inline-block;font-size:.72rem;font-weight:600;padding:2px 6px;border-radius:var(--r);background:var(--go-soft);color:var(--go);vertical-align:middle;margin-left:4px;white-space:nowrap}
.mark.gray{background:var(--panel);color:var(--ink-2)}
.mark.red{background:#fbe5e1;color:var(--red)}
.empty{padding:20px 0;color:var(--muted);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.srcnote{font-size:.82rem;color:var(--muted);margin:12px 0 0}

/* Lists */
.linklist{list-style:none;padding:0;margin:0;font-size:.92rem}
.linklist li{padding:6px 0;border-bottom:1px solid var(--line-2)}
.linklist li span{color:var(--muted);font-size:.8rem}
.statelist{columns:4 180px;column-gap:24px}
.statelist a{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line-2);text-decoration:none;color:var(--ink);break-inside:avoid}
.statelist a:hover{color:var(--accent)}
.statelist span{color:var(--muted);font-family:var(--mono);font-size:.8rem}
.inline-links{font-size:.9rem;color:var(--muted)}
.inline-links a{margin-right:12px}

/* Signup */
.signup{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:16px 0}
.signup form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.signup .say{flex:1 1 240px;font-weight:500;margin:0}
.signup input[type=email]{flex:1 1 200px;width:auto}
.signup select{flex:0 1 170px;width:auto}
.signup .btn{background:var(--accent)}
.signup .btn:hover{background:var(--accent-ink)}
.signup .fine{flex-basis:100%;margin:0;font-size:.78rem;color:var(--muted)}
.signup.stack{padding:18px}
.signup.stack h2,.signup.stack h3{font-size:1rem;margin:0 0 6px}
.signup.stack p{font-size:.9rem;color:var(--ink-2);margin:0 0 10px}
.signup.stack form{display:block}
.signup.stack input,.signup.stack select{width:100%;margin-bottom:8px}
.signup.stack .btn{width:100%}
.sidebox{border-top:2px solid var(--ink);padding-top:12px}
.sidebox h2,.sidebox h3{font-size:1rem;margin:0 0 6px}
.sidebox p{font-size:.9rem;color:var(--ink-2);margin:0 0 10px}
.sidebox table{width:100%;border-collapse:collapse;font-size:.86rem}
.sidebox td{padding:4px 0;border-bottom:1px solid var(--line-2)}
.sidebox ul.checks{list-style:none;padding:0;margin:0 0 10px;font-size:.9rem;color:var(--ink-2)}
.sidebox ul.checks li{padding:3px 0 3px 16px;position:relative}
.sidebox ul.checks li::before{content:"–";position:absolute;left:0;color:var(--muted)}

/* Finder */
.finder{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;max-width:860px}
.finder select,.finder input{flex:1 1 220px;width:auto;min-height:44px}
.finder .btn{min-height:44px}
.proof{display:flex;flex-wrap:wrap;gap:0;margin-top:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proof>a,.proof>div{flex:1 1 180px;padding:14px 20px 14px 0;margin-right:20px;border-right:1px solid var(--line);text-decoration:none;color:var(--ink)}
.proof>*:last-child{border-right:0;margin-right:0}
.proof strong{display:block;font:400 1.5rem/1.1 var(--mono);color:var(--ink)}
.proof span{font-size:.84rem;color:var(--muted)}
.proof a:hover strong{color:var(--accent)}
@media (max-width:600px){.proof>a,.proof>div{flex-basis:100%;border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding:10px 0}.proof>*:last-child{border-bottom:0}dl.stats>div{flex:1 1 40%}}

/* Detail */
.prose{color:var(--ink-2);font-size:1rem;max-width:760px}
.prose p{white-space:pre-line}
.facts{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}
.facts>div{padding:12px 22px 12px 0;margin-right:22px;border-right:1px solid var(--line)}
.facts>div:last-child{border-right:0;margin-right:0}
.facts .k{font-size:.76rem;color:var(--muted)}
.facts .v{font:400 1.05rem/1.3 var(--mono)}
.notice{border-left:3px solid var(--red);padding:10px 14px;background:#fbe5e1;color:#7d241b;margin:14px 0;font-size:.95rem}
.notice.info{border-color:var(--accent);background:var(--panel);color:var(--ink-2)}
.chips{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.9rem}
details{border-top:1px solid var(--line-2);padding:12px 0}
details:last-child{border-bottom:1px solid var(--line-2)}
summary{cursor:pointer;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--accent);font-weight:400}
details[open] summary::after{content:"–"}
details p{margin:8px 0 0;color:var(--ink-2)}
.variants{font-size:.84rem;color:var(--muted)}
.bars{display:flex;align-items:flex-end;gap:6px;height:80px;margin:10px 0 28px}
.bars div{flex:1;background:var(--accent);min-height:3px;position:relative}
.bars span{position:absolute;bottom:-20px;left:0;right:0;text-align:center;font-size:.7rem;color:var(--muted);font-family:var(--mono)}
.pager{display:flex;gap:10px;margin-top:18px}
.success{border:2px solid var(--ink);padding:18px 22px;margin-bottom:24px}
.success h1{font-size:1.5rem;margin:0 0 6px}
.form{display:grid;gap:12px}
.form .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:560px){.form .two{grid-template-columns:1fr}}
.box{border:1px solid var(--line);padding:22px;border-radius:var(--r)}

/* Footer */
footer.site{margin-top:56px;border-top:1px solid var(--line);background:var(--panel);font-size:.86rem;color:var(--muted)}
footer.site .wrap{padding-top:28px;padding-bottom:28px;display:flex;flex-wrap:wrap;gap:16px 40px}
footer.site .cols4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;width:100%}
@media (max-width:800px){footer.site .cols4{grid-template-columns:repeat(2,minmax(0,1fr))}}
footer.site h4{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:0 0 8px}
footer.site ul{list-style:none;padding:0;margin:0;display:grid;gap:5px}
footer.site a{color:var(--ink-2);text-decoration:none}
footer.site a:hover{color:var(--accent);text-decoration:underline}
footer.site .base{width:100%;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}

/* Mobile sticky CTA */
.mcta{display:none}
@media (max-width:720px){
  .mcta.show{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:40;justify-content:center;box-shadow:0 8px 24px -8px rgba(0,0,0,.4)}
  body{padding-bottom:72px}
}
