/* Follow the Grift
   Layout: a financial-disclosure form printed on banknote security paper.
   Ruled form cells carry mono labels; the total is engraved like currency;
   confidence tiers are told apart by pattern (solid / hatched / dotted), not hue alone. */

:root{
  --paper:#eceee8;      /* security paper, green-grey */
  --sheet:#f5f6f2;      /* the form itself */
  --field:#e3e7e0;      /* filled form cells, bar tracks */
  --ink:#16211c;        /* green-black intaglio ink */
  --ink-2:#4a5952;
  --ink-3:#5c6963;      /* 4.5:1 on --field: WCAG AA for small text */
  --rule:#c6cec7;
  --rule-2:#a3afa7;
  --seal:#a3302a;       /* Treasury-seal red: stamps, focus, active state */
  --seal-wash:#a3302a14;

  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"Newsreader",Georgia,"Times New Roman",serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;

  --gutter-l:max(16px, env(safe-area-inset-left, 0px));
  --gutter-r:max(16px, env(safe-area-inset-right, 0px));
  --maxw:1120px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0c1311; --sheet:#111a17; --field:#18231f;
    --ink:#e3eae5; --ink-2:#a3b2aa; --ink-3:#7a8b84;
    --rule:#24302b; --rule-2:#34433d;
    --seal:#e0685a; --seal-wash:#e0685a1c;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0c1311; --sheet:#111a17; --field:#18231f;
  --ink:#e3eae5; --ink-2:#a3b2aa; --ink-3:#7a8b84;
  --rule:#24302b; --rule-2:#34433d;
  --seal:#e0685a; --seal-wash:#e0685a1c;
  color-scheme:dark;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%; scroll-padding-top:72px} /* linked items clear the sticky masthead */
body{
  margin:0; background:var(--paper); color:var(--ink);
  font:400 1.0625rem/1.55 var(--f-body);
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  font-variant-numeric:tabular-nums;
}
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:30; background:var(--paper)}
a{color:inherit; text-decoration-color:var(--rule-2); text-underline-offset:3px; text-decoration-thickness:1px}
a:hover{text-decoration-color:var(--seal)}
:focus-visible{outline:2px solid var(--seal); outline-offset:2px; border-radius:2px}
.wrap{max-width:var(--maxw); margin-inline:auto; padding-left:var(--gutter-l); padding-right:var(--gutter-r)}
.skip{position:absolute; left:-999px}
.skip:focus{left:16px; top:16px; z-index:40; background:var(--sheet); padding:8px 12px}

/* small mono form labels */
.lbl{font:500 .6875rem/1.2 var(--f-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3)}

/* ---------------------------------------------------------------- masthead */
.mast{position:sticky; top:env(safe-area-inset-top,0px); z-index:20; background:var(--paper); border-bottom:1px solid var(--rule)}
.mast .wrap{display:flex; align-items:center; gap:20px; min-height:58px; flex-wrap:wrap}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none}
.brand-seal{
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center; flex:none;
  border:1.5px solid var(--seal); color:var(--seal);
  box-shadow:inset 0 0 0 2.5px var(--paper), inset 0 0 0 3.5px var(--seal);
  font:800 .5625rem/1 var(--f-display); font-stretch:125%; letter-spacing:.04em;
}
.wordmark{font:800 1rem/1 var(--f-display); font-stretch:125%; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap}
.nav{margin-left:auto; display:flex; gap:2px; flex-wrap:wrap}
.nav a{white-space:nowrap; font:500 .75rem/1 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; text-decoration:none; color:var(--ink-2); padding:9px 10px; border-radius:2px}
.nav a:hover{color:var(--ink); background:var(--field)}
.nav a[aria-current="page"]{color:var(--ink); box-shadow:inset 0 -2px 0 var(--seal)}
.nav a.nav-donate{color:var(--sheet); background:var(--seal); margin-left:6px}
.nav a.nav-donate:hover{color:var(--sheet); background:var(--ink)}
.nav a.nav-donate[aria-current="page"]{box-shadow:none; background:var(--ink)}

/* ------------------------------------------------------------ statement --- */
.statement{position:relative; overflow:hidden; border-bottom:1px solid var(--rule)}
.statement canvas{position:absolute; inset:0; width:100%; height:100%; pointer-events:none}
.statement .wrap{position:relative; padding-block:28px 34px}

/* the ruled form header */
.formhead{display:grid; grid-template-columns:1.1fr 2fr 1.6fr 1.1fr; border:1px solid var(--rule-2); background:var(--sheet)}
.formhead > div{padding:8px 12px 10px; border-left:1px solid var(--rule); min-width:0; display:flex; flex-direction:column; gap:5px}
.formhead > div:first-child{border-left:0}
.formhead .val{font:600 .875rem/1.25 var(--f-mono); color:var(--ink)}
.formhead .val.big{font:800 1.05rem/1.1 var(--f-display); font-stretch:125%; letter-spacing:.04em}

.total-block{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 32px; align-items:end; margin-top:30px}
.total{margin:4px 0 0; display:flex; align-items:flex-start; line-height:.86; font-family:var(--f-display); font-weight:800; font-stretch:68%; letter-spacing:-.01em}
.total .cur{font-size:clamp(2rem,6vw,3.6rem); margin-top:.18em; margin-right:.04em; color:var(--ink-2); font-weight:700}
.total .num{
  font-size:clamp(5.5rem,19vw,12.5rem);
  color:var(--ink);
}
@supports (-webkit-background-clip:text) or (background-clip:text){
  .total .num{
    /* intaglio engraving: fine horizontal lines clipped to the glyphs */
    background:repeating-linear-gradient(180deg, var(--ink) 0 2px, transparent 2px 3.6px);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
}
.total .unit{font-size:clamp(2rem,6vw,3.6rem); margin-top:.18em; margin-left:.08em; font-stretch:125%; color:var(--seal)}
.deck{margin:16px 0 0; max-width:52ch; font-size:1.2rem; line-height:1.45; color:var(--ink-2); text-wrap:pretty}
.deck b{color:var(--ink); font-weight:600}

/* tier composition of the total */
.compo{display:flex; flex-direction:column; gap:8px; min-width:min(300px,100%)}
.compo-bar{display:flex; height:14px; border:1px solid var(--ink); background:var(--sheet)}
.compo-bar .seg{display:block; height:100%; flex:none; transition:width .55s var(--ease)}
.compo-bar .seg + .seg{border-left:1.5px solid var(--sheet)}
.compo-legend{display:grid; grid-template-columns:auto 1fr auto; gap:4px 10px; align-items:center; font:500 .78rem/1.3 var(--f-mono)}
.compo-legend .camt{text-align:right}

/* --------------------------------------------------------------- filters -- */
.filters{display:flex; gap:12px 28px; flex-wrap:wrap; margin-top:26px; padding-top:18px; border-top:1px dashed var(--rule-2)}
.fgroup{display:flex; align-items:center; gap:8px; flex-wrap:wrap; border:0; margin:0; padding:0; min-width:0}
.fgroup .lbl{margin-right:4px}
.fhelp{align-self:center; margin-left:auto; color:var(--ink-2); text-decoration:underline; text-decoration-color:var(--rule-2)}
.fhelp:hover{color:var(--ink); text-decoration-color:var(--seal)}
.tog{
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font:500 .8125rem/1 var(--f-mono); color:var(--ink-2);
  background:var(--sheet); border:1px solid var(--rule-2); border-radius:2px; padding:8px 11px;
  transition:border-color .15s, color .15s, background .15s;
}
.tog:hover{border-color:var(--ink-2); color:var(--ink)}
.tog[aria-pressed="true"]{color:var(--ink); border-color:var(--ink); background:var(--field)}
.tog .box{width:12px; height:12px; border:1.5px solid var(--ink-2); display:grid; place-items:center; flex:none}
.tog[aria-pressed="true"] .box{border-color:var(--ink); background:var(--ink)}
.tog[aria-pressed="true"] .box::after{content:""; width:6px; height:3px; border:solid var(--sheet); border-width:0 0 1.5px 1.5px; transform:translateY(-1px) rotate(-45deg)}

/* tier swatches: form encodes the tier */
.sw{width:22px; height:12px; display:inline-block; flex:none}
.p-disclosed{background:var(--ink)}
.p-reported{background:repeating-linear-gradient(135deg, var(--ink) 0 1.6px, transparent 1.6px 4.2px); box-shadow:inset 0 0 0 1px var(--ink)}
.p-alleged{background:transparent; box-shadow:none; outline:1.5px dotted var(--ink); outline-offset:-1.5px}

/* ----------------------------------------------------------- leaderboard -- */
.board{padding-block:34px 10px}
.board-top{display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px}
.board-top h2{margin:0; font:800 1.05rem/1 var(--f-display); font-stretch:125%; letter-spacing:.06em; text-transform:uppercase}
.board-top p{margin:0}

.sheet{background:var(--sheet); border:1px solid var(--rule-2)}
.cols, .row > summary{
  display:grid;
  grid-template-columns:3.2rem 3.6rem minmax(0,1.5fr) minmax(0,2.4fr) 8.5rem 2rem;
  gap:0 16px; align-items:center;
}
.cols{padding:9px 16px; border-bottom:1px solid var(--rule-2)}
.cols .r{text-align:right}

.rows{list-style:none; margin:0; padding:0}
.rows > li{border-bottom:1px solid var(--rule); position:relative; background:var(--sheet)}
.rows > li:last-child{border-bottom:0}
.row > summary{list-style:none; cursor:pointer; padding:18px 16px; transition:background .15s}
.row > summary::-webkit-details-marker{display:none}
.row > summary:hover{background:var(--field)}
.row[open] > summary{background:var(--field)}

.rank{font:800 2.4rem/1 var(--f-display); font-stretch:62%; color:var(--ink-3)}
.rows > li:first-child .rank{color:var(--seal)}

.seal{
  position:relative; width:54px; height:54px; border-radius:50%; display:grid; place-items:center;
  border:1.5px solid var(--ink); background:var(--sheet);
  font:800 .8rem/1 var(--f-display); font-stretch:125%; letter-spacing:.03em; color:var(--ink);
}
.seal::before{content:""; position:absolute; inset:4px; border-radius:50%; border:1px dotted var(--ink-2)}
.seal.lg{width:84px; height:84px; font-size:1.15rem}
.seal.lg::before{inset:6px}

.who{min-width:0; display:flex; flex-direction:column; gap:3px}
.who .name{font:700 1.3rem/1.15 var(--f-body); text-wrap:balance}
.who .role{font:400 .9rem/1.3 var(--f-body); color:var(--ink-2); font-style:italic}

.barcell{display:flex; flex-direction:column; gap:7px; min-width:0}
.bar{height:16px; background:var(--field); display:flex; overflow:hidden}
.bar .seg{height:100%; flex:none; transition:width .55s var(--ease)}
.bar .seg + .seg{border-left:1.5px solid var(--sheet)}
.barnote{font:400 .75rem/1.3 var(--f-mono); color:var(--ink-3)}
.barnote .x{color:var(--seal)}

.amt{text-align:right; display:flex; flex-direction:column; gap:3px}
.amt .v{font:800 2rem/1 var(--f-display); font-stretch:72%; letter-spacing:-.005em}
.amt .v.zero{color:var(--ink-3)}
.amt .n{font:500 .72rem/1.2 var(--f-mono); color:var(--ink-3); letter-spacing:.04em}

.chev{justify-self:end; width:22px; height:22px; border:1px solid var(--rule-2); display:grid; place-items:center; transition:transform .2s var(--ease)}
.chev::before{content:""; width:6px; height:6px; border:solid var(--ink-2); border-width:0 1.5px 1.5px 0; transform:translateY(-2px) rotate(45deg)}
.row[open] .chev{transform:rotate(180deg)}

/* ---------------------------------------------------- itemized schedule --- */
.schedule{padding:4px 16px 22px calc(16px + 3.2rem + 16px)}
.schedule-head{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:10px 0 8px; border-bottom:1px solid var(--ink)}
.items{list-style:none; margin:0; padding:0}
.item{display:grid; grid-template-columns:6.2rem minmax(0,1fr) 8.5rem; gap:6px 18px; padding:16px 0; border-bottom:1px solid var(--rule)}
.item:last-child{border-bottom:0}
.item .when{display:flex; flex-direction:column; gap:4px; font:500 .78rem/1.3 var(--f-mono); color:var(--ink-2)}
.item .what{min-width:0}
.item h3{margin:0 0 6px; font:600 1.12rem/1.3 var(--f-body); text-wrap:balance}
.item .tags{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:8px}
.item p{margin:0 0 8px; max-width:64ch; color:var(--ink-2); line-height:1.5}
.item .note{font-size:.94rem; font-style:italic; color:var(--ink-2); padding-left:12px; border-left:2px solid var(--rule-2)}
.item .src{list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:5px}
.item .src li{font:400 .8rem/1.4 var(--f-mono); color:var(--ink-3); min-width:0; overflow-wrap:anywhere}
.item .src a{color:var(--ink-2)}
.item .src .k{color:var(--ink-3); margin-right:6px}
.item .money{text-align:right; display:flex; flex-direction:column; gap:4px; align-items:flex-end}
.item .money .v{font:800 1.45rem/1 var(--f-display); font-stretch:72%}
.item .money .pend{font:500 .78rem/1.3 var(--f-mono); color:var(--ink-3); text-align:right}
.item .money .bar{width:100%; height:8px}
.item.off{opacity:.5}
.item.off .money .v{text-decoration:line-through; text-decoration-thickness:1.5px}
.offnote{font:500 .7rem/1.2 var(--f-mono); color:var(--seal); letter-spacing:.04em; text-transform:uppercase}

/* rubber stamps for tier */
.stamp{
  display:inline-block; font:600 .66rem/1 var(--f-mono); letter-spacing:.12em; text-transform:uppercase;
  padding:4px 7px 3px; border:1.5px solid currentColor; border-radius:2px; transform:rotate(-1.5deg);
}
.stamp.t-disclosed{color:var(--ink)}
.stamp.t-reported{color:var(--ink); border-style:dashed}
.stamp.t-alleged{color:var(--seal); border-style:dotted; background:var(--seal-wash)}
.tag{font:500 .72rem/1 var(--f-mono); color:var(--ink-2); letter-spacing:.04em; text-transform:uppercase}
.tag + .tag::before{content:"· "; color:var(--ink-3)}
.est{font:600 .66rem/1 var(--f-mono); color:var(--ink-2); letter-spacing:.08em; text-transform:uppercase; border-bottom:1px dotted var(--ink-3)}

.permalink{font:500 .75rem/1 var(--f-mono); letter-spacing:.04em}

/* ------------------------------------------------------------ the desk ---- */
.desk{padding-block:40px 20px}
.desk-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--ink)}
.lead{padding:14px 18px 18px 0; border-bottom:1px solid var(--rule); display:flex; flex-direction:column; gap:6px; min-width:0}
.lead:nth-child(3n+2), .lead:nth-child(3n){padding-left:18px; border-left:1px solid var(--rule)}
.lead a{font:600 1.02rem/1.35 var(--f-body); text-decoration:none; text-wrap:balance}
.lead a:hover{text-decoration:underline; text-decoration-color:var(--seal)}
.lead .meta{font:400 .74rem/1.3 var(--f-mono); color:var(--ink-3)}
.desk-foot{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:14px}

/* ------------------------------------------------------- subject page ----- */
.subj{padding-block:30px 10px}
.back{font:500 .78rem/1 var(--f-mono); letter-spacing:.04em; text-transform:uppercase; text-decoration:none; color:var(--ink-2)}
.subj-id{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:20px; align-items:center; margin-top:22px; padding:22px; background:var(--sheet); border:1px solid var(--rule-2)}
.subj-id h1{margin:0; font:700 clamp(2rem,5vw,3rem)/1.05 var(--f-body); text-wrap:balance}
.subj-id .role{margin:6px 0 0; color:var(--ink-2); font-style:italic}
.subj-id .amt .v{font-size:clamp(2.4rem,7vw,4rem)}
.subj .sheet{margin-top:22px}
.subj .schedule{padding:4px 22px 22px}

/* --------------------------------------------------------------- prose ---- */
.prose{padding-block:34px 50px}
.prose .inner{max-width:68ch}
.prose h1{font:800 clamp(1.9rem,5vw,2.8rem)/1.05 var(--f-display); font-stretch:110%; letter-spacing:.01em; margin:14px 0 18px; text-wrap:balance}
.prose h2{font:700 1.35rem/1.25 var(--f-body); margin:2em 0 .5em; text-wrap:balance}
.prose p, .prose li{line-height:1.6}
.prose li{margin:.45em 0}
.prose code{font:500 .88em var(--f-mono); background:var(--field); padding:1px 5px}
.defs{display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px 18px; margin:18px 0; padding:0}
.defs dt{padding-top:2px}
.defs dd{margin:0; color:var(--ink-2)}
.tablewrap{overflow-x:auto; border:1px solid var(--rule-2); background:var(--sheet); margin-top:18px}
table.news{width:100%; border-collapse:collapse; min-width:640px}
table.news th, table.news td{text-align:left; vertical-align:top; padding:10px 14px; border-bottom:1px solid var(--rule)}
table.news th{font:500 .68rem/1.2 var(--f-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); border-bottom-color:var(--rule-2)}
table.news td{font-size:.98rem}
table.news td.m{font:400 .78rem/1.4 var(--f-mono); color:var(--ink-3); white-space:nowrap}
table.news tr:last-child td{border-bottom:0}

/* -------------------------------------------------------------- footer ---- */
.foot{margin-top:40px; border-top:1px solid var(--ink); background:var(--sheet)}
.foot .wrap{padding-block:26px 40px; display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:24px}
.foot p{margin:0 0 10px; color:var(--ink-2); font-size:.95rem; max-width:58ch}
.foot nav{display:flex; flex-direction:column; gap:8px; align-items:flex-start}
.foot nav a{font:500 .78rem/1.2 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; text-decoration:none}
.foot nav a:hover{color:var(--seal)}
.addr{font:500 .85rem/1.3 var(--f-mono); user-select:all; color:var(--ink)}

/* ---------------------------------------------------------- responsive ---- */
@media (max-width:900px){
  .formhead{grid-template-columns:1fr 1fr}
  .formhead > div:nth-child(3){border-left:0}
  .formhead > div:nth-child(n+3){border-top:1px solid var(--rule)}
  .total-block{grid-template-columns:minmax(0,1fr)}
  .desk-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .lead:nth-child(3n+2), .lead:nth-child(3n){padding-left:0; border-left:0}
  .lead:nth-child(2n){padding-left:18px; border-left:1px solid var(--rule)}
}
@media (max-width:720px){
  /* phones: the masthead scrolls away instead of covering a sixth of the screen */
  html{scroll-padding-top:12px}
  .mast{position:static}
  .nav{margin-left:-10px; width:calc(100% + 10px); padding-bottom:6px; flex-wrap:wrap; gap:0}
  .nav a{padding:8px 10px}
  .cols{display:none}
  .row > summary{
    grid-template-columns:2.2rem 3.2rem minmax(0,1fr) auto;
    grid-template-areas:"rank seal who chev" "bar bar bar bar" "amt amt amt amt";
    gap:12px 12px; padding:16px 14px;
  }
  .row > summary .rank{grid-area:rank; font-size:1.9rem}
  .row > summary .seal{grid-area:seal; width:46px; height:46px; font-size:.7rem}
  .row > summary .who{grid-area:who}
  .row > summary .barcell{grid-area:bar}
  .row > summary .amt{grid-area:amt; flex-direction:row; justify-content:space-between; align-items:baseline}
  .row > summary .chev{grid-area:chev}
  .schedule{padding:4px 14px 18px}
  .item{grid-template-columns:minmax(0,1fr); gap:8px}
  .item .when{flex-direction:row; gap:12px}
  .item .money{align-items:flex-start; text-align:left; order:-1}
  .item .money .bar{display:none}
  .desk-grid{grid-template-columns:minmax(0,1fr)}
  .lead:nth-child(2n){padding-left:0; border-left:0}
  .subj-id{grid-template-columns:auto minmax(0,1fr)}
  .subj-id .amt{grid-column:1 / -1; text-align:left; flex-direction:row; align-items:baseline; justify-content:space-between}
  .foot .wrap{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:420px){
  .formhead{grid-template-columns:minmax(0,1fr)}
  .formhead > div{border-left:0}
  .formhead > div + div{border-top:1px solid var(--rule)}
  .wordmark{font-size:.9rem}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important; animation:none!important}
}

/* ------------------------------------------------- portraits & SEO bits --- */
.vh{position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
.seal.photo{overflow:hidden; padding:0; background:var(--field)}
.seal.photo::before{z-index:1; border-color:var(--sheet); opacity:.85}
.seal.photo img{
  width:100%; height:100%; object-fit:cover; display:block; border-radius:50%;
  filter:grayscale(1) contrast(1.08) brightness(1.02); mix-blend-mode:multiply;
  transition:filter .35s var(--ease);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .seal.photo img{mix-blend-mode:normal; filter:grayscale(1) contrast(1.05) brightness(.9)} }
:root[data-theme="dark"] .seal.photo img{mix-blend-mode:normal; filter:grayscale(1) contrast(1.05) brightness(.9)}
.row > summary:hover .seal.photo img, .row[open] .seal.photo img, .subj-id .seal.photo:hover img{filter:none; mix-blend-mode:normal}
.crumbs{display:flex; justify-content:space-between; align-items:baseline; gap:12px}
.credit{margin:8px 0 0; font:400 .72rem/1.4 var(--f-mono); color:var(--ink-3)}
.credit a{color:var(--ink-3)}
.sub-top{margin-top:28px; margin-bottom:0}
.sub-top + .sheet{margin-top:10px}
.subj .sheet{margin-top:10px}
.sub-desk{padding-inline:0}
.left-out{margin-top:18px}
.left-out .item{grid-template-columns:6.2rem minmax(0,1fr)}
.item h2.claim{margin:0 0 6px; font:600 1.12rem/1.35 var(--f-body); text-wrap:balance}
.prose .sheet .schedule{padding:4px 18px 18px}
@media (max-width:720px){ .left-out .item{grid-template-columns:minmax(0,1fr)} }

/* ------------------------------------------- where it came from + figures */
.total .num, .figv, .amt .v{font-variant-numeric:proportional-nums}
.split{display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:40px; padding-block:40px 0}
.where{position:relative; min-width:0}
.breakdown{list-style:none; margin:0; padding:0; border-top:1px solid var(--ink)}
.brow{display:grid; grid-template-columns:10.5rem minmax(0,1fr) 4.5rem; gap:14px; align-items:center; padding:11px 4px; border-bottom:1px solid var(--rule); cursor:default}
.brow:hover, .brow:focus-visible{background:var(--field)}
.blabel{font:600 1rem/1.25 var(--f-body)}
.btrack{display:flex; align-items:center; height:18px; min-width:0}
.btrack .seg{height:18px; flex:none; transition:width .55s var(--ease)}
.btrack .seg + .seg{margin-left:2px}
.btrack .seg:last-of-type{border-radius:0 4px 4px 0}
.bval{margin-left:8px; font:800 1.05rem/1 var(--f-display); font-stretch:72%; white-space:nowrap}
.bn{font:500 .72rem/1.2 var(--f-mono); color:var(--ink-3); text-align:right; white-space:nowrap}
.btip{position:absolute; z-index:5; pointer-events:none; background:var(--sheet); border:1px solid var(--ink); padding:9px 11px; box-shadow:4px 4px 0 var(--rule); font:500 .78rem/1.5 var(--f-mono); color:var(--ink); min-width:200px}
.btip b{font:700 .95rem/1.3 var(--f-body); display:block; margin-bottom:2px}
.btip .r{display:flex; justify-content:space-between; gap:16px}
.figs{min-width:0}
.figs .board-top{margin-bottom:0}
.fig{display:flex; flex-direction:column; gap:4px; padding:14px 0; border-top:1px solid var(--rule)}
.figs .board-top + .fig{border-top:1px solid var(--ink)}
.figv{font:800 2.6rem/1 var(--f-display); font-stretch:70%}
.figl{color:var(--ink-2); font-size:.98rem; line-height:1.4; max-width:34ch}

/* item links and archived sources */
.itemlink{margin-left:6px; font:500 .66rem/1 var(--f-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); text-decoration:none; border:1px solid var(--rule-2); padding:3px 5px; vertical-align:3px; white-space:nowrap}
.itemlink:hover{color:var(--seal); border-color:var(--seal)}
.itemlink.done{color:var(--sheet); background:var(--ink); border-color:var(--ink)}
.item .src a.arch{color:var(--ink-3)}
.item:target{background:var(--seal-wash); box-shadow:-16px 0 0 var(--seal-wash), 16px 0 0 var(--seal-wash)}

/* full ledger */
.lfilters{display:flex; flex-wrap:wrap; gap:12px 16px; align-items:flex-end; margin-top:22px}
.lfilters label{display:flex; flex-direction:column; gap:6px; min-width:0}
.lfilters input, .lfilters select{font:500 .9rem/1.2 var(--f-mono); color:var(--ink); background:var(--sheet); border:1px solid var(--rule-2); border-radius:2px; padding:9px 10px; min-width:0; max-width:100%}
.lfilters input{width:16rem}
.lsum{margin:0 0 0 auto; padding-bottom:10px}
.ledgertable{min-width:820px}
.ledgertable th button{all:unset; cursor:pointer; font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit}
.ledgertable th button:hover, .ledgertable th[aria-sort] button{color:var(--ink)}
.ledgertable th[aria-sort="descending"] button::after{content:" ↓"}
.ledgertable th[aria-sort="ascending"] button::after{content:" ↑"}
.ledgertable .num{text-align:right; font:800 1.15rem/1 var(--f-display); font-stretch:72%; white-space:nowrap}
.ledgertable th.num{font:500 .68rem/1.2 var(--f-mono)}
.ledgertable .num.off{color:var(--ink-3); text-decoration:line-through}
.ledgertable td a{text-decoration:none; font-weight:600}
.ledgertable td a:hover{text-decoration:underline}
.ledgertable .stamp{white-space:nowrap}

@media (max-width:900px){
  .split{grid-template-columns:minmax(0,1fr); gap:28px}
}
@media (max-width:720px){
  .brow{grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"l n" "t t"; gap:6px 10px}
  .blabel{grid-area:l} .bn{grid-area:n} .btrack{grid-area:t}
  .lfilters input{width:100%}
  .lfilters label{flex:1 1 140px}
  .lsum{margin-left:0; width:100%}
  /* phones: each ledger row becomes a card, headline and amount on top */
  .tablewrap{overflow-x:visible}
  table.news.ledgertable, .ledgertable tbody{display:block; min-width:0}
  .ledgertable thead{display:block}
  .ledgertable thead tr{display:flex; gap:4px 16px; padding:10px 14px; border-bottom:1px solid var(--rule-2)}
  .ledgertable thead th{padding:0; border:0}
  .ledgertable thead th:not(:has(button)){display:none}
  .ledgertable thead th.num{margin-left:auto}
  .ledgertable tbody tr{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; padding:14px; border-bottom:1px solid var(--rule)}
  .ledgertable tbody tr:last-child{border-bottom:0}
  .ledgertable tbody td{padding:0; border:0}
  .ledgertable tbody td:nth-child(3){order:-2; flex:1 1 60%; min-width:0}
  .ledgertable tbody td.num{order:-1; margin-left:auto}
  .ledgertable tbody td:nth-child(2){font:500 .78rem/1.4 var(--f-mono); color:var(--ink-2)}
}

/* ------------------------------------------- payer, responses, switches */
.item .payer{margin:0 0 8px; font-size:.98rem; color:var(--ink)}
.item .payer .lbl{margin-right:6px}
.muted{color:var(--ink-3)}
.resp{display:grid; grid-template-columns:auto minmax(0,1fr); gap:4px 12px; align-items:baseline; margin:10px 0 4px; padding:10px 12px; background:var(--field); border-left:3px solid var(--ink-2)}
.resp p{margin:0; color:var(--ink); font-size:.98rem; max-width:none}
.resp b{font-weight:600}
.resp a{color:var(--ink-2); font:500 .78rem/1 var(--f-mono); margin-left:4px}
.resp-k{font:600 .66rem/1.6 var(--f-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); white-space:nowrap}
.resp.r-denial{border-left-color:var(--seal)}
.resp.r-denial .resp-k{color:var(--seal)}
.seg-switch{display:inline-flex; border:1px solid var(--rule-2); border-radius:2px; overflow:hidden}
.seg-switch button{all:unset; cursor:pointer; font:500 .72rem/1 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-2); padding:7px 10px; background:var(--sheet)}
.seg-switch button + button{border-left:1px solid var(--rule-2)}
.seg-switch button[aria-pressed="true"]{background:var(--ink); color:var(--sheet)}
.seg-switch button:focus-visible{outline:2px solid var(--seal); outline-offset:-2px}
.ledgertable .tpayer, .ledgertable .tresp{display:block; font:400 .74rem/1.4 var(--f-mono); color:var(--ink-3); margin-top:3px}
.ledgertable .tresp{color:var(--seal)}
@media (max-width:720px){ .resp{grid-template-columns:minmax(0,1fr)} }

/* ------------------------------------------- federal awards ------------- */
.item.off.award{opacity:.8}
.item .payer.tie{font-size:.94rem; color:var(--ink-2)}
.item .money .pot{font:500 .7rem/1.3 var(--f-mono); color:var(--ink-3); letter-spacing:.03em; text-align:right}
.callout{display:flex; justify-content:space-between; align-items:flex-end; gap:12px 28px; flex-wrap:wrap; margin-top:34px; padding-block:20px; border-top:1px solid var(--ink); border-bottom:1px solid var(--rule)}
.callout > div{max-width:68ch}
.callout h2{margin:8px 0 6px; font:700 1.35rem/1.25 var(--f-body); text-wrap:balance}
.callout .cv{font:800 1.6rem/1 var(--f-display); font-stretch:72%}
.callout p{margin:0; color:var(--ink-2); line-height:1.5}
.prose .lede{font-size:1.12rem}
.awards{margin-top:18px}
.awards .schedule + .schedule{margin-top:10px}
.badge{display:inline-block; vertical-align:middle; margin-left:8px; font:600 .6rem/1 var(--f-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); border:1px solid var(--rule-2); padding:3px 5px 2px; border-radius:2px; text-decoration:none}
.subj-id .role .badge{margin:0 8px 0 0; font-style:normal}
.awards-h{margin-top:30px}
.awards-note{max-width:68ch; color:var(--ink-2); line-height:1.5; margin:0 0 4px}

/* ------------------------------------------- donations ------------------ */
.donate-card{display:grid; grid-template-columns:auto minmax(0,1fr); gap:22px; align-items:center; margin:22px 0 8px; padding:22px; background:var(--sheet); border:1px solid var(--rule-2)}
.donate-qr{width:184px; height:184px; background:#fff; padding:6px; border:1px solid var(--rule-2)}
.donate-qr:empty{display:none}
.donate-qr svg{display:block; width:100%; height:100%}
.donate-addr{display:block; margin:6px 0 12px; font:500 .95rem/1.4 var(--f-mono); overflow-wrap:anywhere; user-select:all; color:var(--ink)}
.donate-actions{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.donate-actions button, .donate-actions a{font:500 .74rem/1 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; padding:9px 12px; border:1px solid var(--rule-2); background:var(--paper); color:var(--ink); cursor:pointer; text-decoration:none; border-radius:2px}
.donate-actions .donate-copy{background:var(--ink); color:var(--sheet); border-color:var(--ink)}
.donate-actions button:focus-visible, .donate-actions a:focus-visible{outline:2px solid var(--seal); outline-offset:2px}
.donate-note{margin:12px 0 0; font-size:.94rem; color:var(--ink-2)}
@media (max-width:620px){ .donate-card{grid-template-columns:minmax(0,1fr)} .donate-qr{margin:0 auto} }
.donate-band{display:flex; justify-content:space-between; align-items:center; gap:16px 32px; flex-wrap:wrap; margin-top:30px; padding:24px 26px; background:var(--sheet); border:1px solid var(--rule-2); border-left:4px solid var(--seal)}
.donate-band > div{max-width:64ch}
.donate-band h2{margin:8px 0 6px; font:700 1.45rem/1.2 var(--f-body)}
.donate-band p{margin:0; color:var(--ink-2); line-height:1.5}
.donate-btn{display:inline-block; font:600 .8rem/1 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; text-decoration:none; color:var(--sheet); background:var(--seal); padding:14px 18px; border-radius:2px; white-space:nowrap}
.donate-btn:hover{background:var(--ink); color:var(--sheet)}
.donate-btn:focus-visible{outline:2px solid var(--ink); outline-offset:2px}

/* line-item pages */
.itempage .sheet{margin-top:18px}
.itempage .items{padding:4px 22px 6px}
.item h1{margin:0 0 8px; font:700 clamp(1.5rem,3.6vw,2.1rem)/1.2 var(--f-body); text-wrap:balance}
.itempage .item{border-bottom:0}
.itempage .who{display:grid; grid-template-columns:auto minmax(0,1fr); gap:16px; align-items:center; margin-top:18px; padding:16px 22px; background:var(--sheet); border:1px solid var(--rule-2)}
.itempage .who .nm{font:700 1.3rem/1.2 var(--f-body); color:var(--ink); text-decoration:none}
.itempage .who .nm:hover{text-decoration:underline}
.itempage .who .role{margin:4px 0 6px; color:var(--ink-2); font-style:italic}
.itempage .who .lbl{margin:0}
.moreitems{margin-top:22px}
.moreitems h2{margin:0 0 8px}
.moreitems ul, .upday ul{list-style:none; margin:0 0 10px; padding:0; border-top:1px solid var(--rule-2)}
.moreitems li, .upday li{display:flex; gap:12px; align-items:baseline; padding:9px 0; border-bottom:1px solid var(--rule)}
.moreitems li a, .upday li a{flex:1; min-width:0; color:var(--ink); font-family:var(--f-body)}
.moreitems .m, .upday .m{font:800 1rem/1 var(--f-display); font-stretch:72%; white-space:nowrap}
/* updates page */
.updates{margin-top:10px}
.upday{margin:0 0 26px}
.upday h2{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0 0 8px; font:800 1.05rem/1.2 var(--f-display); font-stretch:125%; text-transform:uppercase; letter-spacing:.04em}
.upday .who{flex:0 0 11rem; font:500 .8rem/1.3 var(--f-mono); color:var(--ink-2)}
.upday .stamp{flex:none}
@media (max-width:640px){
  .upday li{flex-wrap:wrap; gap:4px 10px}
  .upday .who{flex-basis:100%}
  .itempage .items{padding:0 14px}
  .itempage .who{padding:14px}
}
.upday .m.up{font:500 .74rem/1.2 var(--f-mono); font-stretch:100%; color:var(--ink-3)}
.itempage .cite{margin-top:22px}
.itempage .cite h2{margin:0 0 6px}
.itempage .cite p{margin:0 0 8px; max-width:72ch; font:400 .85rem/1.5 var(--f-mono); color:var(--ink-2); overflow-wrap:anywhere}
button.itemlink{background:none; cursor:pointer; margin-left:0}
