:root{--ink:#101014;--mute:#5A5A63;--faint:#8A8A93;--line:#E6E6EA;--hair:#F1F1F4;
  --bg:#FBFBFC;--accent:#E8552F;--accentDark:#C8431F;--blue:#2F6FE8;--green:#12876F;--wash:#F5F5F7}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
h1,h2,h3,h4,p,ul,li,figure{margin:0;padding:0}
ul{list-style:none}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mono{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-variant-numeric:tabular-nums}
.fine{font-size:12px;color:var(--faint);line-height:1.6}
.mt{margin-top:18px}
.accent{color:var(--accent)}

.nav{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:10px 20px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:20}
.bd{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:640;
  letter-spacing:-.02em;white-space:nowrap;color:var(--ink)}
.bd img{display:block;width:48px;height:48px;flex:none}
.bd:hover{color:var(--ink)}
.bd:hover i{color:var(--accentDark)}
.bd i{font-style:normal;color:var(--accent)}
.navr{display:flex;gap:16px;align-items:center;font-size:13px;color:var(--mute)}
.navr a.on{color:var(--ink);font-weight:500}
.navr{gap:14px}
.pill{border:1px solid var(--line);border-radius:6px;padding:6px 12px;font-size:12px;color:var(--ink)}
.pill:hover{border-color:var(--ink);color:var(--ink)}

.wrap{max-width:900px;margin:0 auto;padding:0 20px}
.wide{max-width:1040px;margin:0 auto;padding:0 20px}

/* search */
.searchhero{padding:38px 0 30px}
.searchhero h1{font-size:clamp(26px,6vw,36px);letter-spacing:-.03em;font-weight:660;line-height:1.1}
.sbox{display:flex;border:2px solid var(--ink);border-radius:10px;overflow:hidden;background:#fff;margin-top:18px}
.sbox input{flex:1;border:0;outline:none;font-size:16px;padding:15px 16px;min-width:0;background:none}
.sbox button{border:0;background:var(--ink);color:#fff;font-size:15px;font-weight:500;padding:0 20px;cursor:pointer}
.sbox button:hover{background:var(--accentDark)}
.hints{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.hint{border:1px solid var(--line);background:#fff;border-radius:100px;padding:6px 12px;font-size:12px;color:var(--mute)}
.hint b{font-weight:600;color:var(--ink)}

.rtable{width:100%;border-collapse:collapse;font-size:13px}
.rtable th{text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);
  font-weight:500;padding:0 10px 10px 0;border-bottom:1px solid var(--ink)}
.rtable td{padding:12px 10px 12px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.rtable tr:last-child td{border-bottom:0}
.rtable .r{text-align:right}
.rtable a{font-weight:500}
.tag{display:inline-block;font-size:10px;border:1px solid var(--line);border-radius:4px;
  padding:2px 6px;color:var(--mute);background:#fff;white-space:nowrap}

/* labs */
.kicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}
.hero{padding:38px 0 26px}
.hero h1{font-size:clamp(28px,7vw,42px);line-height:1.05;letter-spacing:-.035em;font-weight:680;margin-top:10px}
.hero p{font-size:16px;line-height:1.6;color:var(--mute);margin-top:12px;max-width:600px}
.labgrid{display:grid;grid-template-columns:1fr;gap:14px;padding-bottom:36px}
.lab{border:1px solid var(--line);border-radius:12px;background:#fff;padding:18px 20px;
  display:flex;flex-direction:column;gap:7px}
.lab:hover{border-color:var(--ink)}
.lab .cat{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.lab h3{font-size:18px;line-height:1.22;letter-spacing:-.02em;font-weight:620}
.lab p{font-size:13px;color:var(--mute);line-height:1.55}
.lab .stat{margin-top:8px;font-size:21px;font-weight:660;letter-spacing:-.02em;color:var(--accent)}
.lab.soon{background:var(--wash);border-style:dashed}
.lab.soon .stat{color:var(--faint);font-size:12px;font-weight:500}
.lab.feature{grid-column:1/-1}
.lab.feature h3{font-size:24px}

.figure{border:1px solid var(--line);border-radius:12px;background:#fff;padding:18px 20px;margin-top:18px}
.figure h4{font-size:13px;font-weight:600}
.figure .sub{font-size:12px;color:var(--faint);margin:2px 0 12px}
.cv{width:100%;height:auto;display:block;overflow:visible}
.legend{display:flex;gap:14px;font-size:11px;color:var(--mute);margin-top:10px;flex-wrap:wrap}
.legend i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:5px}
.bignum{font-size:clamp(44px,12vw,68px);line-height:1;font-weight:700;letter-spacing:-.04em}
.body{font-size:16px;line-height:1.72;color:#26262C;margin-top:15px}
.body b{font-weight:620}
.pull{border-left:3px solid var(--accent);padding-left:15px;margin:20px 0;font-size:18px;
  line-height:1.45;letter-spacing:-.015em}
.method{background:var(--wash);border:1px solid var(--line);border-radius:10px;padding:15px 17px;margin-top:24px}
.method h4{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:7px}
.method p{font-size:13px;color:var(--mute);line-height:1.65}
.method p+p{margin-top:8px}
.share{display:flex;gap:7px;margin-top:14px;flex-wrap:wrap}
.share a{border:1px solid var(--line);border-radius:6px;padding:7px 12px;font-size:12px;color:var(--mute);background:#fff}
.darkhero{background:var(--ink);color:#fff;padding:40px 0 34px;margin-bottom:4px}
.darkhero .kicker{color:#FF7A54}
.darkhero h1{font-size:clamp(24px,6vw,32px);letter-spacing:-.03em;font-weight:660;margin-top:10px;max-width:620px}
.darkhero p{color:#9A9AA4;margin-top:12px;max-width:560px;font-size:15px}

.statrow{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:18px}
.statrow div{background:#fff;padding:13px 15px}
.statrow .n{font-size:21px;font-weight:640;letter-spacing:-.02em}
.statrow .l{font-size:11px;color:var(--faint);margin-top:2px}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.chip{border:1px solid var(--line);background:#fff;border-radius:100px;padding:6px 12px;font-size:12px;color:var(--mute)}
.chip.on{border-color:var(--ink);color:var(--ink)}
.seo{border-top:1px solid var(--line);background:#fff;margin-top:34px;padding:30px 0 10px}
.seo h2{font-size:22px;letter-spacing:-.025em;font-weight:640}
.seo h3{font-size:14px;font-weight:600;margin-bottom:6px}
.seo p{font-size:14px;color:var(--mute);line-height:1.75;margin-top:8px}
.cols{display:grid;grid-template-columns:1fr;gap:22px;margin-top:18px}
.cols a{display:block;font-size:13px;color:var(--mute);padding:4px 0}
.code{background:var(--ink);color:#E8E8EC;border-radius:8px;padding:13px 15px;font-size:12px;
  overflow-x:auto;margin-top:12px;font-family:ui-monospace,"SF Mono",Menlo,monospace}
.foot{border-top:1px solid var(--line);padding:20px;font-size:12px;color:var(--faint);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:1040px;margin:30px auto 0}

@media (min-width:700px){
  .nav{padding:14px 30px}
  .navr a:not(.pill){display:inline}
  .navr{gap:20px}
  .labgrid{grid-template-columns:repeat(2,1fr)}
  .statrow{grid-template-columns:repeat(4,1fr)}
  .cols{grid-template-columns:repeat(3,1fr);gap:34px}
  .wrap,.wide{padding:0 30px}
}
@media (max-width:699px){
  .rtable{display:block;overflow-x:auto;white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* search loading state */
.loading{position:fixed;inset:0;background:rgba(251,251,252,.94);z-index:60;
  display:flex;align-items:center;justify-content:center;padding:24px}
.loading[hidden]{display:none}
.loadinner{text-align:center;max-width:320px}
.loadinner p{font-size:14px;color:var(--mute);margin-top:14px}
.loadinner .fine{margin-top:6px}
.bar{height:3px;background:var(--line);border-radius:2px;overflow:hidden;position:relative}
.bar i{position:absolute;inset:0 auto 0 0;width:36%;background:var(--accent);border-radius:2px;
  animation:slide 1.1s ease-in-out infinite}
@keyframes slide{0%{left:-36%}100%{left:100%}}
@media (prefers-reduced-motion:reduce){
  .bar i{animation:none;left:0;width:100%;opacity:.5}
}

/* pagination + email gate */
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.pager .next{border:1px solid var(--ink);border-radius:8px;padding:10px 18px;
  font-size:14px;font-weight:500;color:var(--ink)}
.pager .next:hover{background:var(--ink);color:#fff}
.gate{border:1px solid var(--line);border-radius:12px;background:#fff;
  padding:26px 24px;margin-top:20px;max-width:520px}
.gate h2{font-size:21px;letter-spacing:-.025em;font-weight:640}
.gate p{font-size:14px;color:var(--mute);line-height:1.6;margin-top:8px}
.gateform{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.gateform input{flex:1;min-width:200px;border:1px solid var(--line);border-radius:8px;
  padding:11px 13px;font-size:15px;outline:none;background:#fff}
.gateform input:focus{border-color:var(--ink)}
.gateform button{border:0;background:var(--ink);color:#fff;border-radius:8px;
  padding:11px 20px;font-size:15px;font-weight:500;cursor:pointer}
.gateform button:hover{background:var(--accentDark)}
.gate .fine{margin-top:12px}

/* provider pages */
.pcols{display:grid;grid-template-columns:1fr;gap:26px;margin-top:22px}
.kv{display:grid;grid-template-columns:1fr;gap:0;margin-top:10px}
.kv dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);
  margin-top:14px}
.kv dt:first-child{margin-top:0}
.kv dd{font-size:14px;margin:3px 0 0;line-height:1.55}
.sites{margin-top:8px}
.sites li{font-size:13px;color:var(--mute);padding:4px 0;border-bottom:1px solid var(--hair)}

/* exclusion record — deliberately sober, not alarmist */
.excl{border:1px solid #E5C9B8;background:#FEF8F4;border-radius:12px;padding:20px 22px;margin-top:20px}
.excl h2{font-size:17px;font-weight:640;letter-spacing:-.02em}
.exclrow{border-top:1px solid #EBD9CC;margin-top:14px;padding-top:14px}
.excltop{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}
.excldl{display:grid;grid-template-columns:130px 1fr;gap:4px 14px;margin-top:10px;font-size:13px}
.excldl dt{color:var(--faint);font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  padding-top:2px}
.excldl dd{margin:0;line-height:1.5}
@media (min-width:700px){
  .pcols{grid-template-columns:1fr 1fr;gap:40px}
  .kv{grid-template-columns:150px 1fr;gap:0 16px}
  .kv dt{margin-top:10px}
  .kv dd{margin-top:10px}
  .kv dt:first-child,.kv dt:first-child + dd{margin-top:0}
}
@media (max-width:699px){ .excldl{grid-template-columns:1fr} .excldl dt{margin-top:8px} }

/* nav dropdowns */
.menu{position:relative}
.menu summary{list-style:none;cursor:pointer;color:var(--mute);font-size:13px}
.menu summary::-webkit-details-marker{display:none}
.menu summary::after{content:"";display:inline-block;width:5px;height:5px;margin-left:5px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px)}
.menu summary:hover,.menu summary.on{color:var(--ink)}
.menu[open] summary{color:var(--ink)}
.menupanel{position:absolute;top:26px;left:-14px;z-index:30;background:#fff;
  border:1px solid var(--line);border-radius:10px;padding:8px;min-width:330px;
  box-shadow:0 8px 28px rgba(16,16,20,.10)}
.menupanel.narrow{min-width:250px}
.menupanel a{display:block;padding:9px 11px;border-radius:7px}
.menupanel a:hover{background:var(--wash);color:var(--ink)}
.menupanel b{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.menupanel span{display:block;font-size:12px;color:var(--faint);margin-top:1px;line-height:1.45}

/* radar */
.radarform{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:16px;
  padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.rf{display:flex;flex-direction:column;gap:4px}
.rf label{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.rf input,.rf select{border:1px solid var(--line);border-radius:7px;padding:8px 10px;
  font-size:14px;outline:none;background:#fff;min-width:110px}
.rf input:focus,.rf select:focus{border-color:var(--ink)}
.radarform button{border:0;background:var(--ink);color:#fff;border-radius:7px;
  padding:9px 18px;font-size:14px;font-weight:500;cursor:pointer;height:36px}
.radarform button:hover{background:var(--accentDark)}
.resultbar{display:flex;justify-content:space-between;align-items:center;gap:12px;
  flex-wrap:wrap;margin-top:18px;padding-bottom:12px;border-bottom:1px solid var(--ink)}
.resultbar b{font-size:20px;letter-spacing:-.02em}
.acts{display:flex;gap:8px}
.btn{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:8px;
  padding:9px 16px;font-size:13px;font-weight:500;display:inline-block}
.btn:hover{background:var(--accentDark);border-color:var(--accentDark);color:#fff}
.btn.ghost{background:#fff;color:var(--ink)}
.btn.ghost:hover{background:var(--wash);color:var(--ink)}
.notice{border:1px solid #E5C9B8;background:#FEF8F4;border-radius:10px;padding:14px 16px;margin-top:16px}
.notice p{font-size:14px;line-height:1.6}
.notice p+p{margin-top:6px}
.lede.sm{font-size:15px;color:var(--mute);margin-top:8px;max-width:640px}

.chip.strong{border-color:var(--ink);font-weight:500}
.chip.strong.on{background:var(--ink);color:#fff}
.chip.strong.on .fine{color:rgba(255,255,255,.7)}
.savedbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  align-items:baseline;border:1px solid var(--line);background:var(--wash);
  border-radius:10px;padding:11px 14px;margin-top:14px;font-size:13px}


/* burger, for touch — dropdowns need a hover/click distinction phones do not have */
.burger{position:relative;display:block}
.burger summary{list-style:none;cursor:pointer;padding:6px 2px}
.burger summary::-webkit-details-marker{display:none}
.bars,.bars::before,.bars::after{display:block;width:20px;height:2px;background:var(--ink);
  border-radius:2px;content:""}
.bars{position:relative}
.bars::before{position:absolute;top:-6px}
.bars::after{position:absolute;top:6px}
.burger[open] .bars{background:transparent}
.burger[open] .bars::before{top:0;transform:rotate(45deg)}
.burger[open] .bars::after{top:0;transform:rotate(-45deg)}
.burgerpanel{position:absolute;right:0;top:34px;z-index:40;background:#fff;
  border:1px solid var(--line);border-radius:12px;padding:8px;width:min(86vw,330px);
  max-height:76vh;overflow-y:auto;box-shadow:0 10px 32px rgba(16,16,20,.14)}
.burgerpanel a{display:block;padding:10px 11px;border-radius:8px}
.burgerpanel a:active,.burgerpanel a:hover{background:var(--wash)}
.burgerpanel b{display:block;font-size:14px;font-weight:600;color:var(--ink)}
.burgerpanel span{display:block;font-size:12px;color:var(--faint);margin-top:1px;line-height:1.45}
.bgroup{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
  padding:12px 11px 5px}
.bgroup:first-child{padding-top:5px}
.desktop-nav{display:none}

@media (min-width:760px){
  .desktop-nav{display:flex}
  .burger{display:none}
}

.limitbox{border:1px solid var(--line);background:var(--wash);border-radius:12px;
  padding:20px 22px;margin-top:20px}
.limitbox h3{font-size:18px;letter-spacing:-.02em;font-weight:640}
.limitbox p{font-size:14px;color:var(--mute);line-height:1.6;margin-top:6px}

.fieldhead{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);
  font-weight:500;margin-top:16px}
.fieldhead + .chips{margin-top:8px}

/* stacked filters */
.filters{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;min-height:30px;align-items:center}
.fchip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ink);
  border-radius:100px;padding:6px 8px 6px 13px;font-size:12px;background:#fff}
.fchip b{font-weight:600;font-size:10px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--faint)}
.fchip a{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;
  border-radius:50%;background:var(--wash);color:var(--mute);font-size:13px;line-height:1}
.fchip a:hover{background:var(--accent);color:#fff}
.addfilter{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:12px;
  padding:13px;border:1px dashed var(--line);border-radius:10px;background:#fff}
.addfilter button{border:0;background:var(--ink);color:#fff;border-radius:7px;
  padding:9px 18px;font-size:14px;font-weight:500;cursor:pointer;height:36px}
.addfilter button:hover{background:var(--accentDark)}
.builderhint{flex:1 1 100%;margin-top:2px;color:var(--faint)}
.fguide{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}
.fguide h2{font-size:18px;letter-spacing:-.02em;font-weight:640}
.fguide code{font-size:12px;background:var(--wash);padding:2px 6px;border-radius:4px}

.footbrand{display:inline-flex;align-items:center;gap:8px}
.footbrand img{opacity:.55;flex:none}
/* The mark carries fine line work, so it needs about 40px to read at all. Below
   that the header would be showing an orange smudge, and the wordmark does the
   identifying instead. */
@media (max-width:520px){ .bd img{width:38px;height:38px} .bd{font-size:14px;gap:8px} }
@media (max-width:360px){ .bd img{width:32px;height:32px} }


/* Homepage hero mark — the one place with room for the full drawing. */
.heromark{display:block;width:180px;height:180px;margin:0 auto 6px}
@media (max-width:700px){ .heromark{width:132px;height:132px} }
@media (prefers-reduced-motion:no-preference){
  .heromark{animation:rise .5s cubic-bezier(.2,.7,.3,1) both}
}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.searchhero{text-align:center}
.searchhero h1,.searchhero .fine{text-align:center}
.searchhero .hints{justify-content:center}
