
/* BROADSHEET — editorial investigations-desk aesthetic. Warm paper, ink, one
   decisive red; Fraunces / Source Serif 4 / Libre Franklin. The red box is the
   brand mark. Heatmap grafted from the Sunlight concept. */
:root{
  --paper:#faf8f2;--paper-bright:#fffdf8;--ink:#1c1712;--ink-soft:#57503f;
  --ink-faint:#8d8471;--red:#b93425;--red-deep:#8e2417;--amber:#9a6b1f;
  --hair:rgba(28,23,18,.16);--hair-mid:rgba(28,23,18,.34);--hair-strong:rgba(28,23,18,.75);
  --red-h1:#f4ded8;--red-h2:#dc9a8b;--red-h3:#c9604c;--red-h4:#b93425;
  --display:"Fraunces","Iowan Old Style","Times New Roman",serif;
  --text:"Source Serif 4",Georgia,serif;
  --grot:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);font-size:1.0625rem;line-height:1.65;font-optical-sizing:auto}
.wrap{max-width:68rem;margin:0 auto;padding:0 2rem}
a{color:inherit;text-decoration-color:var(--hair-mid);text-underline-offset:3px}
a:hover{color:var(--red-deep);text-decoration-color:var(--red)}
::selection{background:var(--red);color:var(--paper-bright)}
code{font-size:.85em;background:var(--paper-bright);border:1px solid var(--hair);padding:.05em .35em}

/* the brand mark: a literal red box */
.redbox{display:inline-block;width:.52em;height:.52em;background:var(--red);vertical-align:.06em}

/* masthead */
.masthead{padding-top:1.1rem}
.folio{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;border-bottom:1px solid var(--hair);padding-bottom:.6rem;font-family:var(--grot);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.folio nav{display:flex;gap:1.75rem}
.folio nav a{text-decoration:none;color:var(--ink-soft)}
.folio nav a:hover{color:var(--red-deep)}
.folio nav a[aria-current="page"]{color:var(--ink);font-weight:700;border-bottom:2px solid var(--red);padding-bottom:2px}
.nameplate{text-align:center;padding:2.1rem 2rem 1.6rem}
.brand{font-family:var(--display);font-size:clamp(2rem,5vw,3.1rem);font-weight:620;font-variation-settings:"opsz" 144,"WONK" 1;letter-spacing:-.01em;line-height:1;text-decoration:none;color:var(--ink);white-space:nowrap}
.brand:hover{color:var(--ink)}
.brand .redbox{width:.42em;height:.42em;margin-right:.34em;vertical-align:.05em}
.brand:hover .redbox{background:var(--red-deep)}
.tagline{margin:.75rem 0 0;font-family:var(--grot);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}
.double-rule{border-top:3px solid var(--ink)}
.double-rule::after{content:"";display:block;border-top:1px solid var(--ink);margin-top:2px}

/* editorial furniture */
.kicker{margin:0 0 1.1rem;font-family:var(--grot);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:center;gap:.7em;flex-wrap:wrap}
.kicker .redbox{width:.45em;height:.45em}
.kicker .k-hot{color:var(--red-deep);font-weight:700}
.headline{margin:0;font-family:var(--display);font-weight:540;font-variation-settings:"opsz" 144,"WONK" 1;font-size:clamp(2.5rem,6.4vw,4.15rem);line-height:1.01;letter-spacing:-.018em;text-wrap:balance;max-width:20ch}
.headline-cand{font-size:clamp(2.1rem,5.4vw,3.4rem);max-width:none}
.deck{margin:1.35rem 0 0;font-family:var(--display);font-weight:400;font-style:italic;font-variation-settings:"opsz" 34;font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.45;color:var(--ink-soft);max-width:34em;text-wrap:pretty}
.byline-row{margin:1.8rem 0 0;padding:.65rem 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font-family:var(--grot);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);display:flex;gap:.7em 1.4em;flex-wrap:wrap;align-items:baseline}
.byline-row strong{color:var(--ink);font-weight:700}
.byline-row .sep{color:var(--red)}
.dropcap::first-letter{font-family:var(--display);font-weight:800;font-variation-settings:"opsz" 144;float:left;font-size:3.7em;line-height:.78;padding:.06em .12em 0 0;color:var(--ink)}
.section-head{margin:0 0 .4rem;font-family:var(--display);font-weight:590;font-variation-settings:"opsz" 72;font-size:1.6rem;line-height:1.18;letter-spacing:-.008em;text-wrap:balance}
.section-head .redbox{width:.42em;height:.42em;margin-right:.5em;vertical-align:.08em}
.section-head-quiet{color:var(--ink-soft)}
.article .section-head{margin-top:2.6rem}
.srcline{margin:.35rem 0 0;font-family:var(--grot);font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);line-height:1.9}
.srcline a{color:var(--ink-soft);text-transform:none;letter-spacing:.01em;overflow-wrap:anywhere}
.lbl{margin:0;font-family:var(--grot);font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}

/* notices */
.review-banner{margin:1.6rem 0 0;padding:1rem 1.3rem;border-top:1px solid var(--amber);border-bottom:1px solid var(--amber);font-style:italic;font-size:.97rem;color:var(--ink-soft)}
.review-banner strong{font-style:normal;color:var(--amber)}
.coverage{margin:1.4rem 0 0;font-family:var(--grot);font-size:.8rem;line-height:1.75;color:var(--ink-soft)}
.coverage strong{color:var(--ink)}

/* index page */
.page-index{padding:3.2rem 2rem 0}
.lede-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:0 3rem;margin-top:2.4rem}
.lede-copy{padding-right:3rem;border-right:1px solid var(--hair)}
.standfirst{margin:0;font-size:1.14rem;line-height:1.72;text-wrap:pretty}
.standfirst+p{margin:1.1rem 0 0;color:var(--ink-soft);font-size:.98rem}
.standfirst strong,.lede-copy strong{font-weight:640}
.stat-deck{display:flex;flex-direction:column;justify-content:center}
.stat{padding:.9rem 0;border-bottom:1px solid var(--hair);display:flex;align-items:baseline;gap:1rem}
.stat:first-child{padding-top:.2rem}
.stat:last-child{border-bottom:none}
.stat b{font-family:var(--display);font-weight:620;font-variation-settings:"opsz" 144;font-size:2.55rem;line-height:1;letter-spacing:-.02em;font-feature-settings:"tnum";min-width:4.6ch}
.stat.stat-hot b{color:var(--red)}
.stat.stat-warm b{color:var(--amber)}
.stat span{font-family:var(--grot);font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);line-height:1.5}

/* findings-by-state heatmap (from the Sunlight concept, re-inked) */
.map-band{display:grid;grid-template-columns:1.4fr 1fr;gap:0 3rem;margin-top:3rem;padding-top:1.4rem;border-top:2px solid var(--ink)}
.map-cell{min-width:0}
.statemap{margin-top:1.1rem;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));grid-auto-rows:1fr;gap:4px;max-width:44rem}
.st{aspect-ratio:1/1;position:relative;outline:1px solid var(--hair);outline-offset:-1px;font-family:var(--grot);font-size:clamp(8px,.95vw,11px);font-weight:600;letter-spacing:.04em;color:var(--ink-faint);padding:3px 0 0 4px}
.st .n{position:absolute;right:4px;bottom:3px;font-size:.9em;font-feature-settings:"tnum";opacity:.9}
.st.h1{background:var(--red-h1);outline-color:var(--red-h1);color:var(--red-deep)}
.st.h2{background:var(--red-h2);outline-color:var(--red-h2);color:#fff}
.st.h3{background:var(--red-h3);outline-color:var(--red-h3);color:#fff}
.st.h4{background:var(--red-h4);outline-color:var(--red-h4);color:#fff}
.statemap .st:hover,.statemap .st:focus-visible{outline:2px solid var(--ink);outline-offset:-2px;z-index:3}
.st.has-pop{cursor:pointer}
.st.has-pop:hover,.st.has-pop:focus-within{z-index:4}
/* hover popup: the state's finding candidates */
.pop{position:absolute;left:-1px;bottom:calc(100% + 2px);width:19rem;max-height:19rem;overflow-y:auto;
  padding:.8rem .95rem .7rem;background:var(--paper-bright);border:1px solid var(--hair-strong);
  box-shadow:0 2px 0 var(--hair),0 10px 26px rgba(28,23,18,.14);cursor:default;
  visibility:hidden;opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease,visibility .12s;
  font-family:var(--grot);text-transform:none;letter-spacing:normal;font-weight:400}
.pop::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px}
.pop-below{bottom:auto;top:calc(100% + 2px);transform:translateY(-4px)}
.pop-below::after{bottom:auto;top:-8px}
.pop-right{left:auto;right:-1px}
.st:hover .pop,.st:focus-within .pop{visibility:visible;opacity:1;transform:translateY(0)}
.pop-head{margin:0;font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  display:flex;align-items:center;gap:.55em;padding-bottom:.5rem;border-bottom:1px solid var(--hair-strong)}
.pop-head .redbox{width:.6em;height:.6em}
.pop-list{list-style:none;margin:0;padding:0}
.pop-list li{display:flex;align-items:baseline;gap:.7em;padding:.42rem 0;border-bottom:1px solid var(--hair);font-size:.78rem;line-height:1.4}
.pop-list li:last-child{border-bottom:none}
.pop-list a{font-weight:600;color:var(--ink);text-decoration:none;min-width:0}
.pop-list a:hover{color:var(--red-deep);text-decoration:underline;text-decoration-color:var(--red)}
.pop-seat{color:var(--ink-faint);font-size:.68rem;letter-spacing:.05em;white-space:nowrap}
.pop-ie{margin-left:auto;font-weight:600;font-size:.72rem;font-feature-settings:"tnum";color:var(--red-deep);white-space:nowrap}
.pop-foot{margin:.55rem 0 0;font-family:var(--text);font-style:italic;font-size:.72rem;color:var(--ink-faint)}
.map-aside{display:flex;flex-direction:column;gap:1rem;justify-content:center;font-family:var(--grot)}
.map-note{margin:.4rem 0 0;font-size:.8rem;line-height:1.7;color:var(--ink-soft)}
.map-legend{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.map-legend .key{display:inline-flex;align-items:center;gap:.45em;font-size:.68rem;letter-spacing:.1em;color:var(--ink-soft)}
.map-legend .key i{width:.85em;height:.85em;outline:1px solid var(--hair-mid);outline-offset:-1px}
.map-legend .k1 i{background:var(--red-h1);outline:none}
.map-legend .k2 i{background:var(--red-h2);outline:none}
.map-legend .k3 i{background:var(--red-h3);outline:none}
.map-legend .k4 i{background:var(--red-h4);outline:none}
.map-offgrid{margin:0;font-size:.74rem;color:var(--ink-soft)}
.map-count{margin:0;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-feature-settings:"tnum"}

/* filters — wire-desk control strip */
.controls{margin-top:3rem;padding:.9rem 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--hair);display:flex;gap:.9rem;align-items:center;flex-wrap:wrap}
.controls label{font-family:var(--grot);font-size:.65rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-right:.2rem}
.controls input[type="search"],.controls select{appearance:none;-webkit-appearance:none;font-family:var(--grot);font-size:.8125rem;color:var(--ink);background:var(--paper-bright);border:1px solid var(--hair-mid);border-radius:0;padding:.5rem .8rem}
.controls input[type="search"]{flex:1 1 14rem}
.controls input[type="search"]::placeholder{color:var(--ink-faint);font-style:italic;font-family:var(--text)}
.controls select{padding-right:2rem;background-image:linear-gradient(45deg,transparent 49%,var(--ink) 51%),linear-gradient(135deg,var(--ink) 49%,transparent 51%);background-position:right 1.05rem top 55%,right .75rem top 55%;background-size:.3rem .3rem;background-repeat:no-repeat}
.controls input:focus,.controls select:focus{outline:none;border-color:var(--red);box-shadow:0 1px 0 var(--red)}
.controls .paged-note{flex-basis:100%;margin:.15rem 0 0;font-family:var(--text);font-style:italic;font-size:.85rem;color:var(--ink-faint)}

/* the agate table */
.agate{width:100%;border-collapse:collapse;font-family:var(--grot);font-size:.84rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}
.agate thead th{font-size:.65rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);text-align:left;padding:.8rem .7rem .55rem;border-bottom:1px solid var(--hair-strong);white-space:nowrap;cursor:pointer;user-select:none}
.agate td{padding:.58rem .7rem;border-bottom:1px solid var(--hair);vertical-align:baseline}
.agate .num,.agate th.num{text-align:right}
.agate td.cand{font-weight:600;letter-spacing:.015em}
.agate td.cand a{text-decoration:none}
.agate td.cand a:hover{text-decoration:underline;text-decoration-color:var(--red);color:var(--red-deep)}
.agate td.seat,.agate td.party{color:var(--ink-soft);font-size:.78rem;letter-spacing:.04em}
.src-tag{font-size:.6rem;font-weight:700;letter-spacing:.12em;color:var(--ink-faint);vertical-align:.08em;margin-left:.15em}
.agate .ie{font-weight:600}
.agate .conf,.agate .pages{color:var(--ink-soft);font-size:.8rem}

/* status marks — small squares echoing the brand */
.status{font-size:.66rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap}
.status::before{content:"";display:inline-block;width:.75em;height:.75em;margin-right:.6em;vertical-align:-.02em}
.status.pill-pos{color:var(--red-deep)}
.status.pill-pos::before{background:var(--red)}
.status.pill-pending,.status.pill-amb{color:var(--amber)}
.status.pill-pending::before,.status.pill-amb::before{outline:1px solid var(--amber);outline-offset:-1px}
.status.pill-neg{color:var(--ink-faint)}
.status.pill-neg::before{outline:1px solid var(--hair-mid);outline-offset:-1px}
.status.pill-muted{color:var(--ink-faint)}
.status.pill-muted::before{outline:1px dashed var(--hair-mid);outline-offset:-1px}

/* pager */
.pager{display:flex;align-items:baseline;gap:1.1rem;flex-wrap:wrap;margin:1.6rem 0 0;font-family:var(--grot);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.pager a{text-decoration:none;color:var(--ink-soft)}
.pager a:hover{color:var(--red-deep)}
.pager .pg-nums{display:flex;gap:.8em;flex-wrap:wrap}
.pager .pg-nums strong{color:var(--red-deep);border-bottom:2px solid var(--red)}
.pager .pg-off{color:var(--hair-mid)}
.pager .pg-of{color:var(--ink-faint);margin-left:auto;font-feature-settings:"tnum"}

/* candidate / article pages */
.page-finding{padding:2.6rem 2rem 0}
.crumb{margin:0 0 2.2rem;font-family:var(--grot);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.crumb a{text-decoration:none;color:var(--ink-soft)}
.crumb a:hover{color:var(--red-deep)}
.article{max-width:46.5rem;margin:0 auto}
.finding-tag{display:inline-flex;align-items:center;gap:.55em;font-family:var(--grot);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:.4em .85em;margin-left:.35rem;vertical-align:.55em;white-space:nowrap}
.finding-tag.pill-pos{color:var(--red-deep);border:1px solid var(--red)}
.finding-tag.pill-pos::before{content:"";width:.62em;height:.62em;background:var(--red)}
.finding-tag.pill-pending,.finding-tag.pill-amb{color:var(--amber);border:1px solid var(--amber)}
.finding-tag.pill-neg,.finding-tag.pill-muted{color:var(--ink-faint);border:1px solid var(--hair-mid)}
.meta{margin:2.1rem 0 0;border-top:2px solid var(--ink);font-family:var(--grot);font-size:.85rem;display:grid;grid-template-columns:10.5rem 1fr}
.meta dt{padding:.55rem .5rem .55rem 0;font-size:.65rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--hair)}
.meta dd{margin:0;padding:.55rem 0;border-bottom:1px solid var(--hair);font-feature-settings:"tnum";overflow-wrap:anywhere}
.meta dd a{text-decoration-color:var(--hair-mid)}
.detection{margin-top:3.6rem}
.rationale{margin:1.7rem 0 0;font-size:1.1rem;line-height:1.72;text-wrap:pretty}
.evidence-head{margin:3rem 0 .4rem;font-family:var(--grot);font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:.7em}
.evidence-head::after{content:"";flex:1;border-top:1px solid var(--hair)}
.evidence-head .redbox{width:.55em;height:.55em}
.evidence{list-style:none;margin:0;padding:0}
.evidence li{margin:2.4rem 0 0;padding-left:1.7rem;border-left:3px solid var(--red)}
.evidence blockquote{margin:0;position:relative;font-family:var(--text);font-style:italic;font-weight:440;font-size:1.32rem;line-height:1.5;letter-spacing:-.004em;text-wrap:pretty}
.evidence blockquote::before{content:"\201C";position:absolute;left:-.62em;top:-.28em;font-family:var(--display);font-weight:800;font-style:normal;font-variation-settings:"opsz" 144;font-size:2.2em;line-height:1;color:var(--red);background:var(--paper);padding-bottom:.05em}
.evidence .why{display:block;margin-top:.8rem;font-family:var(--grot);font-size:.68rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;line-height:1.8;color:var(--ink-soft)}
.evidence .why::before{content:"\2014\2002";color:var(--red)}
.exhibit{margin:3.4rem 0 0}
.exhibit-frame{display:block;background:var(--paper-bright);border:1px solid var(--hair-mid);padding:.65rem;box-shadow:0 1px 0 var(--hair)}
.exhibit-frame img{display:block;width:100%;height:auto}
.exhibit figcaption{margin-top:.75rem;font-family:var(--grot);font-size:.74rem;line-height:1.75;color:var(--ink-soft);overflow-wrap:anywhere}
.exhibit-label{font-weight:700;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--red-deep);margin-right:.6em}
.exhibit-label::before{content:"";display:inline-block;width:.55em;height:.55em;background:var(--red);margin-right:.55em}
.evlinks{margin:1.6rem 0 0;font-family:var(--grot);font-size:.78rem;color:var(--ink-soft)}
.corroboration{margin-top:4.2rem}
.sequence{margin:1.6rem 0 0;font-size:1.06rem;line-height:1.7;text-wrap:pretty}
.sequence strong{font-weight:700;font-feature-settings:"tnum"}
.sequence .money-hot{color:var(--red-deep)}
.ie-table{margin-top:1.8rem;font-size:.82rem}
.ie-table td.committee{font-weight:600;letter-spacing:.02em}
.ie-table td.range{color:var(--ink-soft);font-size:.76rem;white-space:nowrap}
.ind{display:inline-flex;align-items:center;justify-content:center;width:1.35em;height:1.35em;font-size:.66rem;font-weight:700;line-height:1;font-family:var(--grot)}
.ind-S{color:var(--paper-bright);background:var(--red)}
.ind-O{color:var(--ink-soft);background:transparent;box-shadow:inset 0 0 0 1px var(--hair-mid)}
.legend{margin:.7rem 0 0;font-family:var(--grot);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.caveat{margin:1.8rem 0 0;padding:1.1rem 1.4rem;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font-style:italic;font-size:.94rem;line-height:1.7;color:var(--ink-soft)}
.caveat strong{font-style:normal;color:var(--ink);font-feature-settings:"tnum"}

/* change history */
.changes{margin-top:3.6rem}
.changelog{list-style:none;margin:1.4rem 0 0;padding:0;font-family:var(--grot);font-size:.85rem}
.changelog li{padding:.7rem 0;border-bottom:1px solid var(--hair);line-height:1.7}
.changelog li:first-child{border-top:2px solid var(--ink)}
.chg-when{display:inline-block;min-width:6.5em;color:var(--ink-faint);font-feature-settings:"tnum";font-size:.78rem;letter-spacing:.06em}
.changelog li.chg-down strong{color:var(--red-deep)}
.changelog li.chg-up strong{color:var(--amber)}
.chg-url{color:var(--ink-faint);font-size:.76rem;overflow-wrap:anywhere}

/* standards list (corrections page) */
.standards{margin:1.7rem 0 0;padding-left:1.2rem;font-size:1.02rem;line-height:1.72}
.standards li{margin:.8rem 0;padding-left:.4rem}
.standards li::marker{content:"\25A0\2002";color:var(--red);font-size:.6em}

/* footer */
.site-foot{margin-top:5rem;padding-bottom:3rem}
.site-foot .double-rule{margin-bottom:1.4rem}
.site-foot p{margin:0;font-family:var(--grot);font-size:.76rem;line-height:1.8;color:var(--ink-soft);max-width:56rem}
.site-foot strong{color:var(--ink)}
.site-foot .foot-mark{margin-bottom:.9rem}
.site-foot .foot-mark .redbox{width:.6em;height:.6em}

/* responsive */
@media (max-width:860px){
  .lede-grid{grid-template-columns:1fr;gap:2.4rem 0}
  .lede-copy{padding-right:0;border-right:none}
  .stat-deck{border-top:1px solid var(--hair)}
  .map-band{grid-template-columns:1fr;gap:1.6rem 0}
  .agate .pages,.agate th:nth-child(7){display:none}
}
@media (max-width:640px){
  .wrap,.page-index,.page-finding{padding-left:1.1rem;padding-right:1.1rem}
  .folio{flex-direction:column;gap:.5rem;align-items:flex-start}
  .meta{grid-template-columns:8rem 1fr}
  .agate .conf,.agate th:nth-child(5){display:none}
  .evidence li{padding-left:1.1rem}
  .evidence blockquote::before{display:none}
}
