:root{
  --paper:#f5f0e6;      /* page */
  --card:#fffdf8;       /* panels, register */
  --deep:#1c232e;       /* committee band, table headers */
  --ink:#1c2230;
  --ink2:#353c4a;       /* body copy */
  --mute:#5c6370;       /* 5.6:1 on --paper */
  --rule:#d8cfbd;
  --pay:#2f6aa3;        /* salary */
  --accent:#0044c9;     /* Democratic blue: site name, political checks, highlights */
  --accent-soft:rgba(0,68,201,.2);
  --accent-text:#0044c9;
  --pay-text:#2f6aa3;
  --reg:#e4ede6;        /* check-register green */
  /* light paper, used inside the check, earnings summary and disclosure card */
  --doc-paper:#fffdf8;
  --doc-ink:#1c2230;
  --doc-mute:#5c6370;
  --doc-rule:#d8cfbd;
  --check:#e8f0ee;
  --serif:"Inter Tight",Inter,system-ui,sans-serif;     /* headlines */
  --sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --doc-serif:"Fraunces",Georgia,"Times New Roman",serif; /* the check and earnings summary */
  --doc-sans:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --maxw:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;color-scheme:light}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.pay-ink{color:var(--ink)}
.accent-ink{color:var(--accent-text)}
.fig{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---------- masthead ---------- */
.mast{
  display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap;
  max-width:var(--maxw);margin:0 auto;padding:22px 16px 14px;border-bottom:3px double var(--ink);
}
.mark{color:var(--accent);font-family:var(--serif);font-weight:800;font-size:clamp(24px,3.4vw,38px);line-height:1.1;text-decoration:none;letter-spacing:-.022em}

/* ---------- opening ---------- */
.open{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,7vw,80px) 16px clamp(48px,7vw,88px)}
h1{
  font-family:var(--serif);font-weight:900;font-size:clamp(2.1rem,5vw,3.9rem);line-height:1.02;
  letter-spacing:-.025em;margin:0 0 22px;max-width:18ch;text-wrap:balance;
}
h1 span{font-weight:800;font-style:italic;padding-right:.12em}
.lede strong{font-family:var(--mono);font-weight:600}
.lede{font-size:clamp(1.05rem,1.8vw,1.25rem);max-width:60ch;margin:0;color:var(--ink2)}
.open-top{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,3.5vw,44px);align-items:end;margin-bottom:52px}
.open-top h1{max-width:none}
@media (max-width:960px){.open-top{grid-template-columns:1fr}}

.pfdcard{max-width:360px;margin:0;background:var(--card);border:1px solid var(--rule);padding:14px 18px 12px;
  transform:rotate(1deg);box-shadow:0 10px 24px -16px rgba(28,34,48,.45);font-size:13px;line-height:1.35}
.pfd-h{margin:0 0 6px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:12.5px}
.pfdcard blockquote{margin:0 0 6px;font-family:var(--doc-serif);font-weight:400;font-style:italic;font-size:17px;line-height:1.25}
.pfd-who{margin:0 0 10px;font-size:11.5px;color:var(--mute)}
.pfd-who b{font-size:14px;color:var(--ink)}
.pfd-who a{color:var(--mute)}
.pfd-zero{display:inline;margin:0;font-weight:700;font-size:15px;line-height:1.5;background:#fbe07a;padding:2px 6px;
  box-decoration-break:clone;-webkit-box-decoration-break:clone}
.pfd-zero u{text-decoration-thickness:2px;text-underline-offset:2px}
.pfd-fn{margin:8px 0 0;font-size:10.5px;color:var(--mute)}
@media (max-width:560px){.pfdcard{transform:none;max-width:none}}

.docs{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:32px;align-items:start}
@media (max-width:860px){.docs{grid-template-columns:1fr}}

.stub,.check,.pfdcard{--card:var(--doc-paper);--ink:var(--doc-ink);--mute:var(--doc-mute);--rule:var(--doc-rule);
  --pay:#2f6aa3;--pay-text:#2f6aa3;color:var(--ink)}
.stub,.check{--serif:var(--doc-serif);--sans:var(--doc-sans);font-family:var(--doc-sans)}
.stub{
  background:var(--card);border:1px solid var(--rule);padding:22px 24px 18px;transform:rotate(-1.2deg);
  box-shadow:0 1px 0 var(--rule),0 12px 28px -18px rgba(28,34,48,.35);position:relative;
}
.stub::after{ /* perforated tear line */
  content:"";position:absolute;left:0;right:0;bottom:-7px;height:7px;
  background:radial-gradient(circle at 5px 0,transparent 4px,var(--card) 4.5px) 0 0/10px 7px repeat-x;
}
.stub header{
  display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--pay);
  padding-bottom:8px;margin-bottom:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:var(--pay);
}
.tag{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--mute);border:1px solid var(--rule);padding:1px 6px;font-weight:500}
.stub dl{margin:0 0 12px;display:grid;gap:4px}
.stub dl div{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.stub dt{color:var(--mute)}
.stub dd{margin:0;text-align:right;font-weight:600}
.stub table{width:100%;border-collapse:collapse;font-size:14px}
.stub td{padding:7px 0;border-top:1px dashed var(--rule)}
.stub td.fig{text-align:right}
.stub tr.net td{border-top:2px solid var(--ink);font-weight:700;font-size:16px;color:var(--pay)}

.check{
  position:relative;padding:22px 26px 20px;transform:rotate(.8deg);border:1px solid #b9cdc8;
  background:
    repeating-linear-gradient(135deg,rgba(47,106,163,.05) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(45deg,rgba(47,106,163,.04) 0 1px,transparent 1px 9px),
    var(--check);
  box-shadow:0 14px 32px -18px rgba(28,34,48,.4);
}
.check-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}
.check-top b{font-family:var(--serif);font-size:18px;letter-spacing:.04em;display:block}
.check-top small{font-size:12px;color:var(--mute)}
.checkno{font-family:var(--mono);font-size:13px;color:var(--mute)}
.lbl{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);white-space:nowrap}
.line{border-bottom:1px solid #6d7b86;flex:1;min-height:1.4em}
.payto{display:flex;gap:12px;align-items:flex-end;margin-bottom:14px}
.payto .line{font-family:var(--serif);font-size:clamp(15px,1.8vw,18px);font-style:italic;padding:0 4px 2px}
.amtbox{
  display:inline-flex;align-items:baseline;gap:6px;float:right;margin:-4px 0 10px 16px;
  border:1.5px solid var(--ink);background:var(--card);padding:6px 14px;
}
.amtbox span{font-family:var(--serif);font-size:20px}
.amtbox b{font-family:var(--mono);font-size:clamp(22px,3vw,30px);font-weight:600;color:var(--accent-text)}
.words{clear:both;border-bottom:1px solid #6d7b86;font-family:var(--serif);font-style:italic;font-size:clamp(14px,1.6vw,16px);padding:2px 4px;margin-bottom:22px}
.words em{float:right;font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding-top:4px}
.check-foot{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:end}
.check-foot > div:first-child{display:flex;gap:10px;align-items:flex-end}
.check-foot .line{font-size:14px;padding:0 4px 2px}
.sig{display:flex;flex-direction:column;gap:4px}
.sig small{font-size:11px;color:var(--mute);line-height:1.3}
@media (max-width:560px){
  .check,.stub{transform:none}
  .check{padding:18px}
  .amtbox{float:none;margin:0 0 12px}
  .check-foot{grid-template-columns:1fr;gap:16px}
}

/* ---------- sections ---------- */
.sec{max-width:var(--maxw);margin:0 auto;padding:clamp(56px,8vw,96px) 16px}
.sec + .sec{border-top:1px solid var(--rule)}
h2{font-family:var(--serif);font-weight:800;font-size:clamp(1.8rem,3.8vw,2.8rem);line-height:1.1;letter-spacing:-.022em;margin:0 0 14px;text-wrap:balance}
.intro{max-width:64ch;color:var(--ink2);margin:0 0 34px}
.fine{font-size:13px;color:var(--mute);max-width:80ch;margin-top:18px}
.legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:14px;font-size:14px;color:var(--mute)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.k{display:inline-block;width:14px;height:14px;border-radius:2px;flex:none}
.k.pay{background:var(--pay)}
.k.accent{background:var(--accent)}
.k.hatch,.hatch{background:repeating-linear-gradient(45deg,var(--accent) 0 2.5px,var(--accent-soft) 2.5px 5px)}
.k.empty{background:transparent;border:1.5px solid var(--rule)}

/* ---------- the 75 cents band ---------- */
.band{background:var(--card);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cents{max-width:var(--maxw);margin:0 auto;padding:clamp(56px,8vw,96px) 16px;display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:clamp(32px,6vw,80px);align-items:center}
@media (max-width:820px){.cents{grid-template-columns:1fr}}
.waffle{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;aspect-ratio:1;max-width:420px;width:100%}
.waffle i{border-radius:2px;background:transparent;border:1.5px solid var(--rule)}
.waffle i.accent{background:var(--accent);border-color:var(--accent)}
.waffle i.hatch{border-color:var(--accent);background:repeating-linear-gradient(45deg,var(--accent) 0 2.5px,var(--accent-soft) 2.5px 5px)}
.big{font-family:var(--serif);font-weight:800;font-size:clamp(5rem,14vw,9rem);line-height:.9;letter-spacing:-.022em}
.bigcopy{font-family:var(--serif);font-weight:500;letter-spacing:-.005em;font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.35;margin:10px 0 22px;max-width:30ch}
.key{list-style:none;padding:0;margin:0;display:grid;gap:8px;max-width:440px}
.key li{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px dashed var(--rule)}
.key li b{font-family:var(--mono);min-width:3ch}
.key .fig{margin-left:auto;color:var(--mute);font-size:14px}

/* ---------- payees ---------- */
.payees{list-style:none;padding:0;margin:0;columns:2;column-gap:56px}
@media (max-width:760px){.payees{columns:1}}
.payees li{break-inside:avoid;display:flex;align-items:baseline;gap:8px;padding:7px 0;font-size:15px}
.payees .nm{flex:none;max-width:70%}
.payees .nm small{display:block;font-size:12px;color:var(--mute);font-family:var(--mono)}
.payees .dots{flex:1;border-bottom:2px dotted #b8ad98;transform:translateY(-4px);min-width:16px}
.payees .amt{font-family:var(--mono);font-weight:600}
.payees li.own .amt{color:var(--accent-text)}
.payees li.lead .nm{font-weight:700}

/* ---------- what the checks paid for ---------- */
.causes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
@media (max-width:820px){.causes{grid-template-columns:1fr}}
.cause{background:var(--card);border:1px solid var(--rule);border-top:4px solid var(--accent);padding:20px 22px 16px}
.cause:first-child,.cause:last-child:nth-child(even){grid-column:1/-1}
.cause header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px dashed var(--rule);padding-bottom:10px;margin-bottom:10px}
.cause h3{font-family:var(--serif);font-weight:800;font-size:1.35rem;line-height:1.2;letter-spacing:-.022em;margin:0}
.cause small{font-family:var(--mono);font-size:12px;color:var(--mute)}
.cause small .pill{margin-left:8px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--mute);padding:0 5px}
.cause header b{font-family:var(--mono);font-size:1.3rem;font-weight:600;color:var(--accent-text);white-space:nowrap}
.cause .also{margin:0 0 8px;font-size:14px;font-weight:600}
.cause .lead{margin:0 0 6px;font-size:15px;color:var(--ink2)}
.cause ul{margin:0 0 12px;padding-left:20px;display:grid;gap:6px;font-size:15px}
.cause li::marker{color:var(--accent)}
.cause .srcs{margin:0;font-size:12px;color:var(--mute)}

/* ---------- committee band ---------- */
.band.dark{background:var(--deep);color:#eef1f5;border:0}
.band.dark .sec{border:0}
.band.dark .intro{color:#c9d0da}
.band.dark .intro strong{color:#fff;font-family:var(--mono);font-weight:600}
.stubs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.mini{background:#262e3f;border-left:4px solid #6f9bf2;padding:14px 16px}
.mini b{display:block;font-family:var(--mono);font-size:20px;font-weight:600;color:#fff}
.mini span{font-size:13px;color:#aeb7c4}

/* ---------- register ---------- */
.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}
.seg{display:inline-flex;border:1px solid var(--ink)}
.seg button{font:inherit;font-size:13px;font-weight:600;padding:7px 13px;background:transparent;border:0;cursor:pointer;color:var(--ink)}
.seg button + button{border-left:1px solid var(--ink)}
.seg button.on{background:var(--ink);color:var(--paper)}
.seg button:focus-visible,#fSearch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#fSearch{font:inherit;font-size:14px;padding:7px 12px;border:1px solid var(--ink);background:var(--card);color:var(--ink);min-width:0;flex:1 1 180px;max-width:300px}
.count{font-family:var(--mono);font-size:13px;color:var(--mute);margin:0 0 10px}
.regwrap{max-height:640px;overflow:auto;border:1px solid var(--rule);background:var(--card)}
.reg{width:100%;border-collapse:collapse;font-size:14px}
.reg th{
  position:sticky;top:0;background:var(--ink);color:var(--paper);text-align:left;font-weight:600;
  font-size:11px;text-transform:uppercase;letter-spacing:.1em;padding:9px 12px;white-space:nowrap;
}
.reg td{padding:8px 12px;border-bottom:1px solid #cfdcd2;vertical-align:top}
.reg tbody tr:nth-child(even){background:var(--reg)}
.reg .r{text-align:right}
.reg td.no,.reg td.dt,.reg td.amt,.reg td.run,.reg td.src{font-family:var(--mono);font-size:13px;white-space:nowrap}
.reg td.no,.reg td.src{color:var(--mute)}
.reg td.amt{font-weight:600}
.reg td.run{color:var(--mute)}
.reg .pill{display:inline-block;margin-left:6px;font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--accent);color:var(--accent-text);padding:0 5px;vertical-align:1px}
.reg .fl{color:var(--accent-text);font-weight:700}
.reg .pill.pre{border-color:var(--mute);color:var(--mute)}
.reg tr.pre td{color:var(--mute)}
.reg tr.pre td.amt{color:#3d4452}
.reg tr.sworn td{background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:7px 12px}
.caveat{border-left:4px solid var(--accent);background:var(--card);padding:14px 18px;margin:-12px 0 26px;max-width:76ch;font-size:15px;color:var(--ink2)}
.caveat b{display:block;color:var(--ink);margin-bottom:2px}
.caveat strong{font-family:var(--mono);color:var(--ink)}
@media (max-width:640px){.c-no,.c-src,.reg td.no,.reg td.src{display:none}}

/* ---------- notes ---------- */
.notes ol{max-width:76ch;padding-left:22px;margin:0;display:grid;gap:14px;font-size:15px;color:var(--ink2)}
.notes li::marker{font-family:var(--mono);color:var(--accent)}

.foot{max-width:var(--maxw);margin:0 auto;padding:22px 16px 40px;border-top:3px double var(--ink);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;font-size:13px;color:var(--mute)}
.foot span:first-child{font-family:var(--serif);font-weight:800;color:var(--accent);font-size:16px}
.paidfor{flex-basis:100%;margin:14px 0 0;text-align:center}
.paidfor span{display:inline-block;padding:6px 14px;border:1.5px solid var(--ink);color:var(--ink);font-family:var(--sans);font-size:14px;font-weight:600}

@media (forced-colors:active){.k,.waffle i{forced-color-adjust:none}}
@media print{.controls{display:none}.regwrap{max-height:none}}
