/* styles.css paints body terracotta as the overscroll fill and expects each
   section to paint its own ground on top. These are this page's sections. */
.masthead,.states,.stakes,.cite,.rows-section,.board-section,.tab{background:var(--iaf-ground);display:flow-root}
/* flow-root keeps a child's top margin inside its section. Without it the
   filter bar's 30px margin collapsed out and opened a terracotta stripe. */
:root{
  /* Board-local short names for the palette. In the built site these alias
     Layer 1 in styles.css, so editing the brand colour there moves the board
     too; the fallbacks after the comma are what a local preview renders with,
     since the preview has no styles.css. */
  --iaf-teal:var(--color-teal,#1F4E52);--iaf-teal-dark:var(--color-teal-dark,#163C40);
  --terracotta:var(--color-terracotta,#D06B45);--terracotta-dk:var(--color-terracotta-dark,#B85734);
  --ink-0:var(--color-ink-0,#252322);--ink-1:var(--color-ink-1,#2E2B2A);--ink-2:var(--color-ink-2,#3A3735);
  --ink-3:var(--color-ink-3,#4F4B47);--ink-4:var(--color-ink-4,#6E6962);--ink-5:var(--color-ink-5,#8F8A82);
  --ink-6:var(--color-ink-6,#B0ACA5);
  --rule:var(--color-rule,#B8C0B0);--rule-soft:var(--color-rule-soft,#CFD5C5);
  --paper-2:var(--color-cream,#F4F1EA);--cream:var(--color-cream,#F4F1EA);
  --paper-green:var(--color-paper-green,#DCE4D5);--paper-green-1:var(--color-paper-green-1,#E4EADD);
  --paper-green-2:var(--color-paper-green-2,#CAD3C0);
  --font-serif:'Source Serif 4',Georgia,'Times New Roman',serif;--font-sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --font-mono:'IBM Plex Mono','Courier New',monospace;--font-wordmark:'Bagnard',Georgia,serif;
  /* Layer 2 is defined in styles.css. These repeat it only so a local preview
     resolves; in the built site the stylesheet's own definitions win. */
  --iaf-identity:var(--iaf-teal);--iaf-identity-hover:var(--iaf-teal-dark);--iaf-accent:var(--terracotta);--iaf-accent-hover:var(--terracotta-dk);
  --iaf-ground:var(--paper-green);--iaf-ground-card:var(--paper-green-1);--iaf-ground-deep:var(--paper-green-2);
  --iaf-rule:var(--rule);--iaf-rule-soft:var(--rule-soft);--iaf-type-primary:var(--ink-1);--iaf-type-secondary:var(--ink-3);--iaf-type-muted:var(--ink-4);
  --iaf-surface-dark:var(--ink-0);
  /* board geometry */
  --label-w:400px;--status-w:200px;
}
*{box-sizing:border-box}
a{color:var(--iaf-identity);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s}
a:hover{color:var(--iaf-identity-hover)}
:focus-visible{outline:2px solid var(--iaf-identity);outline-offset:2px}
h1,h2,h3,p{margin:0}
.iaf-logo-line{font-family:var(--font-wordmark);font-weight:400;line-height:.95;letter-spacing:0;display:block;text-align:center;white-space:nowrap}
.iaf-logo-line+.iaf-logo-line{margin-top:2px}

/* masthead */
.masthead{background:var(--iaf-identity);color:var(--cream);padding:56px 0 44px}
.mast-grid{display:grid;grid-template-columns:minmax(360px,5fr) 8fr;gap:24px 56px;align-items:end}
.mast-text{min-width:0}
.mast-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream);opacity:.68;margin-bottom:26px}
/* The country page's name line: the name, big enough to remember, over the
   headline that explains it. On a phone the meta drops under the name. */
.mast-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:22px;color:var(--cream)}
.mast-brand{font-family:var(--font-serif);font-size:28px;line-height:1.15;letter-spacing:-.01em;font-variation-settings:'opsz' 30}
.mast-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.68}
@media (max-width:700px){.mast-brand{font-size:24px}.mast-meta{font-size:10px;letter-spacing:.1em}}
.mast-title{font-family:var(--font-serif);font-weight:400;font-size:46px;line-height:1.05;letter-spacing:-.02em;font-variation-settings:'opsz' 60;color:var(--cream);text-wrap:balance}
.mast-rank{font-family:var(--font-mono);font-size:12px;line-height:1.7;letter-spacing:.04em;color:var(--cream);opacity:.85;margin-top:22px}
.mast-tally{font-family:var(--font-mono);font-size:13px;line-height:1.7;letter-spacing:.04em;color:var(--cream);margin-top:22px}
.mast-tally b{font-weight:500}
@media (min-width:901px){.mast-tally .t{white-space:nowrap}}
.mast-sub{font-family:var(--font-serif);font-size:22px;line-height:1.4;color:var(--cream);opacity:.88;margin-top:22px}
.mast-sub > span{display:block;text-wrap:balance}.mast-sub b{font-weight:600}
/* The open-data line is the claim and the link to the proof, so it reads as a sentence, not a button. */
.mast-sub a{color:inherit;text-decoration-color:rgba(244,241,234,.45);text-decoration-thickness:1px;text-underline-offset:4px}.mast-sub a:hover{color:inherit;text-decoration-color:currentColor}
.mast-sub a svg{width:.8em;height:.8em;fill:currentColor;vertical-align:-.05em;margin-right:.35em}
/* On a phone the full sentence takes two lines ahead of the form; two words take one. */
.mast-sub .os-short{display:none}
@media (max-width:700px){.mast-sub .os-long{display:none}.mast-sub .os-short{display:inline}.mast-sub a{white-space:nowrap}}
.mast-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.mast-form{flex:1 1 100%;max-width:440px;min-height:44px}
/* Our methodology is a text link beside the state picker, so the form stays
   the one thing to do. On a phone the picker is full width and it drops under. */
.mast-method{align-self:center;margin-left:6px;font-family:var(--font-sans);font-size:15px;font-weight:500;color:var(--cream);text-decoration:underline;text-decoration-color:rgba(244,241,234,.5);text-underline-offset:3px}
.mast-method:hover{color:var(--cream);text-decoration-color:var(--cream)}
@media (max-width:700px){.mast-actions{gap:14px}.mast-method{align-self:flex-start;margin-left:0}}
.mast-find select{-webkit-appearance:none;appearance:none;height:44px;padding:0 40px 0 16px;font-family:var(--font-sans);font-size:14px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--cream);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23F4F1EA' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 16px center;border:1px solid rgba(244,241,234,.5);border-radius:0;cursor:pointer}
.mast-find select:hover,.mast-find select:focus-visible{border-color:var(--cream)}
.mast-find option{color:var(--ink-1);background:#fff;text-transform:none}
/* 16px so an iPhone does not zoom when the picker is tapped. */
@media (max-width:700px){.mast-find{width:100%}.mast-find select{width:100%;font-size:16px}}
.nw{white-space:nowrap}
.mast-links{margin-top:26px;font-family:var(--font-sans);font-size:14px}
.mast-links a{color:var(--cream);text-decoration-color:rgba(244,241,234,.5)}.mast-links a:hover{color:var(--cream);text-decoration-color:var(--cream)}
.mast-links a+a{margin-left:22px}
.mast-map{margin:0;min-width:0;position:relative}
.usmap,.stmap{display:block;width:100%;height:auto}
.usmap .m-states path,.usmap .m-states a path{fill:var(--iaf-teal);stroke:var(--cream);stroke-opacity:.32;stroke-width:.6;stroke-linejoin:round;transition:stroke-opacity .15s,fill .15s}
.usmap .m-nation path{fill:none;stroke:var(--cream);stroke-opacity:.75;stroke-width:1;stroke-linejoin:round;pointer-events:none}
.usmap .m-marks circle{stroke:var(--iaf-teal);stroke-width:1;transition:opacity .15s}
.usmap .m-marks a,.stmap .m-marks a{outline:none;transition:opacity .15s}
.usmap .m-producing circle,.stmap .m-producing circle{fill:var(--cream)}
.usmap .m-not_yet circle,.stmap .m-not_yet circle{fill:none;stroke:var(--cream);stroke-width:1.8}
.stmap .m-not_yet circle{stroke-width:calc(1.8px*var(--sw))}
.usmap .m-cancelled path,.stmap .m-cancelled path{fill:none;stroke:var(--cream);stroke-width:1.8;stroke-linecap:square}
.stmap .m-cancelled path{stroke-width:calc(1.8px*var(--sw))}
.stmap .m-marks circle{stroke:var(--iaf-teal);stroke-width:calc(1px*var(--sw))}
.usmap .m-marks a:focus-visible circle{stroke-width:2.5}
.usmap.has-hot .m-states path:not(.hot){stroke-opacity:.14}
/* Producing marks at full strength, the rest at half, so the lit marks are the
   factories producing today. Half is the lowest that keeps 3:1 against the teal. */
.usmap .m-not_yet,.usmap .m-cancelled{opacity:.5}
.usmap .m-marks a:focus-visible,.usmap.has-hot .m-marks a.hot{opacity:1}
/* Hover only where there is a pointer that hovers. On a phone a tap fires the
   hover first, and it stays lit when you come back to the page. */
@media (hover:hover){.usmap .m-marks a:hover{opacity:1}.usmap .m-marks a:hover circle{stroke-width:2.5}.lrow:hover{background:var(--iaf-ground-card);color:var(--iaf-type-primary)}}
.usmap.has-hot .m-marks a:not(.hot){opacity:.28}
.usmap .m-states .hot,.usmap .m-states a.hot path{stroke-opacity:1;stroke-width:1.3;fill:var(--iaf-teal-dark)}
.usmap .m-state{cursor:pointer}
.stmap .m-context path{fill:var(--iaf-teal);stroke:var(--cream);stroke-opacity:.18;stroke-width:calc(.6px*var(--sw))}
.stmap .m-self path{fill:var(--iaf-teal-dark);stroke:var(--cream);stroke-opacity:.9;stroke-width:calc(1.1px*var(--sw))}
.stmap .m-labels text{font-family:var(--font-mono);fill:var(--cream);fill-opacity:.92;paint-order:stroke;stroke:var(--iaf-teal-dark);stroke-width:calc(3px*var(--sw));stroke-linejoin:round}
/* The readout sits in the empty band above the northern border, so filling it
   on hover moves nothing below it. */
.readout{position:absolute;top:0;right:0;margin:0;font-family:var(--font-mono);font-size:12px;line-height:18px;letter-spacing:.06em;color:var(--cream);text-align:right;text-transform:uppercase;pointer-events:none}
.mast-map figcaption{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--cream);opacity:.78}
.mast-map .m-key{display:inline-flex;align-items:center;gap:7px}.mast-map .k-fill{fill:var(--cream)}.mast-map .k-ring{fill:none;stroke:var(--cream);stroke-width:1.4}.mast-map .k-x{fill:none;stroke:var(--cream);stroke-width:1.6}
.mast-map .m-src{width:100%;text-transform:uppercase;letter-spacing:.14em;font-size:10px;opacity:.85}
.mast-map .m-cap{display:block;margin-top:14px;font-size:12px;line-height:1.9;opacity:.85}
.mast-map .m-cap b{font-weight:500}.mast-map .m-cap .m-legend{display:block}.mast-map .m-cap .m-key{gap:6px;white-space:nowrap}
.mast-map .m-cap .k-ring,.mast-map .m-cap .k-x{opacity:.5}
@media (max-width:1100px){.mast-grid{grid-template-columns:1fr;gap:32px}.mast-title{font-size:52px;max-width:820px}}
@media (max-width:900px){.mast-title{font-size:44px}}
@media (max-width:700px){.masthead{padding:44px 0 40px}.mast-label{font-size:10px;letter-spacing:.1em}.mast-title{font-size:34px}.mast-tally,.mast-rank{font-size:12px}.mast-sub{font-size:19px}.mast-map figcaption{gap:6px 14px}.readout{display:none}.mast-map .m-cap .m-tally{display:none}}

/* names: three real projects under the hero, one per stage, each a link into its row */
.names{background:var(--iaf-teal-dark);color:var(--cream);padding:16px 0 18px}
.names-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 40px}
.names-lab{font-family:var(--font-mono);font-size:11px;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.names-list a{display:inline-block;margin-top:3px;font-family:var(--font-serif);font-size:18px;line-height:1.3;color:var(--cream);text-decoration:underline;text-decoration-color:rgba(244,241,234,.35);text-underline-offset:3px}
.names-list a:hover{color:var(--cream);text-decoration-color:var(--cream)}
@media (max-width:900px){.names-list{grid-template-columns:1fr;gap:12px}}

/* what counts: the size rule, stated once, right under the hero */
.counts{background:var(--iaf-ground);border-bottom:.5px solid var(--iaf-rule);padding:24px 0}
.counts .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.counts-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--iaf-type-muted)}
.counts-copy{max-width:480px}
.counts-text{font-family:var(--font-serif);font-size:19px;line-height:1.4;color:var(--iaf-type-primary);text-wrap:balance}
.counts-rule{display:flex;align-items:stretch;gap:14px}
.counts-box{background:var(--iaf-ground-card);border:.5px solid var(--iaf-rule);padding:10px 18px 12px;min-width:170px}
.counts-box b{display:block;font-family:var(--font-serif);font-weight:400;font-size:30px;line-height:1.15;color:var(--ink-0)}
.counts-box span{display:block;margin-top:4px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--iaf-type-secondary)}
.counts-or{align-self:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--iaf-type-muted)}
@media (max-width:700px){.counts .wrap{gap:10px}.counts-label,.counts-copy{width:100%}.counts-text{font-size:17px}.counts-rule{width:100%;gap:10px}.counts-box{flex:1;min-width:0;padding:8px 12px 10px}.counts-box b{font-size:24px}}

/* ladder */
.states{padding:56px 0 8px}
.states h2,.stakes h2,.tab h2,.rows-head h2{font-family:var(--font-serif);font-weight:400;font-size:28px;line-height:1.2;color:var(--ink-0);font-variation-settings:'opsz' 30}
.states .dek,.tab .dek,.rows-head .dek{max-width:720px;margin:10px 0 26px;color:var(--iaf-type-secondary)}
.ladder{list-style:none;margin:0;padding:0;border-top:.5px solid var(--iaf-rule)}
.lrow{display:grid;grid-template-columns:36px 190px 1fr 300px;gap:18px;align-items:center;padding:10px 0;border-bottom:.5px solid var(--iaf-rule);text-decoration:none;color:var(--iaf-type-primary);transition:opacity .15s,background-color .15s}
.lrow.hot{background:var(--iaf-ground-card);color:var(--iaf-type-primary)}
.ladder.has-hot .lrow:not(.hot){opacity:.45}
.lrow[aria-current="page"] .l-name{color:var(--iaf-identity)}
.l-rank{font-family:var(--font-mono);font-size:12px;color:var(--iaf-type-muted);text-align:right}
.l-name{font-family:var(--font-serif);font-size:19px;line-height:1.2;color:var(--ink-0);font-variation-settings:'opsz' 24}
.l-bar{position:relative;height:12px;display:block}
.l-bar i{position:absolute;top:0;bottom:0;display:block}
.l-bar .made{left:0;background:var(--iaf-identity)}
.l-bar .slip{border:.5px solid var(--iaf-identity);background-image:repeating-linear-gradient(45deg,var(--iaf-identity) 0 1px,transparent 1px 4px)}
.l-figs{font-family:var(--font-mono);font-size:12px;color:var(--iaf-type-secondary);text-align:right}
.ladder-key{display:flex;flex-wrap:wrap;gap:8px 28px;padding:14px 0 0;font-family:var(--font-mono);font-size:11.5px;color:var(--iaf-type-secondary)}
.ladder-key span{display:inline-flex;align-items:center;gap:10px}.ladder-key i{display:inline-block;width:30px;height:10px}
.ladder-key .made{background:var(--iaf-identity)}.ladder-key .slip{border:.5px solid var(--iaf-identity);background-image:repeating-linear-gradient(45deg,var(--iaf-identity) 0 1px,transparent 1px 4px)}
.states .after{margin-top:26px;max-width:760px;color:var(--iaf-type-secondary);font-size:16px}
@media (max-width:900px){.lrow{grid-template-columns:28px 1fr;grid-template-rows:auto auto;gap:6px 12px}.l-bar{grid-column:2}.l-figs{grid-column:2;text-align:left}}

/* board */
.rows-head{padding:52px 0 0}
.controls{margin-top:30px;border-top:.5px solid var(--iaf-rule);border-bottom:.5px solid var(--iaf-rule);padding:16px 0}
.controls form{display:flex;flex-wrap:wrap;gap:20px 28px;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:6px}.field label{font-family:var(--font-sans);font-size:12px;color:var(--iaf-type-secondary)}
.field select,.field input{font-family:var(--font-sans);font-size:14px;color:var(--iaf-type-primary);background:var(--iaf-ground-card);border:.5px solid var(--ink-5);border-radius:0;padding:7px 10px;min-width:170px}
.field input{min-width:220px}
.controls button{font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--iaf-identity);background:none;border:.5px solid var(--iaf-identity);border-radius:0;padding:8px 14px;cursor:pointer;transition:color .2s,background-color .2s}
.controls button:hover{background:var(--iaf-identity);color:var(--cream)}
.count{font-family:var(--font-mono);font-size:12px;color:var(--iaf-type-secondary);margin-left:auto;align-self:center}
.key{display:flex;flex-wrap:wrap;gap:8px 28px;padding:14px 0 0;font-family:var(--font-mono);font-size:11.5px;color:var(--iaf-type-secondary)}
.key.alone{border-top:.5px solid var(--iaf-rule);margin-top:22px}
.key span{display:inline-flex;align-items:center;gap:10px}.key i{display:inline-block;width:30px;height:10px;position:relative}
.key i.plan{height:1px;background:var(--iaf-identity)}.key i.cross{width:auto;height:auto;font-style:normal;color:var(--iaf-identity);font-size:15px;line-height:1}
.board{list-style:none;margin:0 0 8px;padding:0}
.axis,.row{display:grid;grid-template-columns:var(--label-w) 1fr var(--status-w);column-gap:24px}
.axis{position:sticky;top:0;z-index:2;background:var(--iaf-ground-card);border-bottom:.5px solid var(--iaf-rule);padding:12px 0 10px;margin-top:22px}
.axis.still{position:static}
.axis .a-label,.axis .a-status{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--iaf-type-secondary);align-self:end;line-height:1.4}
.axis .a-years{position:relative;height:18px;font-family:var(--font-mono);font-size:11px;color:var(--iaf-type-secondary)}
.axis .a-years span{position:absolute;bottom:0;padding-left:4px;line-height:1;font-size:10.5px}
.axis .a-years .today-label{color:var(--ink-0);font-weight:500;letter-spacing:.06em;text-transform:uppercase;transform:translateX(-50%) translateY(-16px)}
.row{padding:16px 0;border-bottom:.5px solid var(--iaf-rule);align-items:stretch;scroll-margin-top:64px}
.row:target{background:var(--iaf-ground-card)}.row[hidden]{display:none}
.c-label{min-width:0}
.name{font-family:var(--font-serif);font-weight:400;font-size:19px;line-height:1.25;color:var(--ink-0);font-variation-settings:'opsz' 24}
.meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--iaf-type-secondary);margin-top:5px}
.figs{font-family:var(--font-mono);font-size:12px;line-height:1.55;color:var(--iaf-type-primary);margin-top:7px}
.src{font-family:var(--font-mono);font-size:11px;line-height:1.5;color:var(--iaf-type-muted);margin-top:5px}.src a{color:var(--iaf-identity)}.src-gap{color:var(--ink-5)}
.fix{font-family:var(--font-mono);font-size:11px;line-height:1.5;color:var(--iaf-type-muted);margin-top:3px}.fix a{color:var(--iaf-identity)}
.c-track{position:relative}
.track{position:relative;height:100%;min-height:44px;background-image:repeating-linear-gradient(to right,var(--iaf-rule-soft) 0 1px,transparent 1px calc(100%/14))}
.track i{position:absolute;display:block}
.track .today{top:0;bottom:0;width:1px;background:var(--ink-4);margin-left:-.5px}
.track .plan,.key .plan{top:50%;height:1px;background:var(--iaf-identity);margin-top:-.5px}
.track .slip,.key i.slip{top:50%;height:10px;margin-top:-5px;border:.5px solid var(--iaf-identity);background-image:repeating-linear-gradient(45deg,var(--iaf-identity) 0 1px,transparent 1px 4px)}
.track .made,.key i.made{top:50%;height:10px;margin-top:-5px;background:var(--iaf-identity)}
.track .tick{top:50%;height:16px;width:1px;margin-top:-8px;margin-left:-.5px;background:var(--ink-1)}
.track .cross{top:50%;font-family:var(--font-mono);font-style:normal;font-size:17px;line-height:1;color:var(--iaf-identity);transform:translate(-50%,-50%)}
.c-status{align-self:center;display:flex;flex-direction:column;gap:3px}
.c-status .word{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-0)}
.c-status .delta{font-family:var(--font-mono);font-size:12px;color:var(--iaf-type-secondary)}
/* The last section before the recount band leaves room above it, the way the
   cite section does on the country page. */
.rows-section,.board-section{padding-bottom:64px}
@media (max-width:700px){.rows-section,.board-section{padding-bottom:48px}}
.board-note{padding:22px 0 0;max-width:820px;font-size:15px;line-height:1.55;color:var(--iaf-type-secondary)}
@media (max-width:1100px){:root{--label-w:340px;--status-w:180px}}
@media (max-width:900px){.axis,.row{grid-template-columns:1fr;row-gap:10px}.axis .a-status,.axis .a-label{display:none}.axis{padding:26px 0 8px}.track{min-height:32px}.axis .a-years .y-odd{display:none}.c-status{flex-direction:row;gap:14px;align-items:baseline;flex-wrap:wrap}}

/* tabulation, band, footer */
.tab{padding:64px 0 0}
.bar-row{display:grid;grid-template-columns:260px 1fr 80px;gap:18px;align-items:center;padding:8px 0;border-bottom:.5px solid var(--iaf-rule-soft);max-width:900px}
.bar-label{font-family:var(--font-sans);font-size:14px;color:var(--iaf-type-primary)}.bar-n{font-family:var(--font-mono);font-size:11px;color:var(--iaf-type-muted);margin-left:6px}
.bar-track{position:relative;height:10px;background:var(--iaf-ground-card)}.bar-track i{position:absolute;left:0;top:0;bottom:0;background:var(--iaf-identity)}
.bar-val{font-family:var(--font-mono);font-size:12px;color:var(--iaf-type-primary);text-align:right}
.source-line{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--iaf-type-secondary);margin-top:14px}
@media (max-width:700px){.bar-row{grid-template-columns:1fr;gap:6px}.bar-val{text-align:left}}
@media (max-width:700px){
/* Eight site labels on a phone-width state map collide into a smudge. The
   rows below name every promise, so the marks carry the map alone. */
.stmap .m-labels{display:none}}
/* stakes: why a promise that never produces costs someone */
.stakes{padding:56px 0 0}
.stakes-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--iaf-type-muted);margin-bottom:10px}
.stakes-dek{max-width:720px;margin:10px 0 0;color:var(--iaf-type-secondary)}
.stakes-list{list-style:none;margin:26px 0 0;padding:0;max-width:880px;border-top:.5px solid var(--iaf-rule)}
.stakes-list li{display:grid;grid-template-columns:170px 1fr;gap:4px 24px;padding:14px 0;border-bottom:.5px solid var(--iaf-rule)}
.stakes-list b{font-family:var(--font-sans);font-weight:600;font-size:15px;line-height:1.6;color:var(--ink-0)}
.stakes-list span{font-size:17px;line-height:1.5}
@media (max-width:700px){.stakes{padding-top:44px}.stakes-list li{grid-template-columns:1fr}}
/* cite: how to cite the Tracker, a card on the page's ground */
.cite{padding:56px 0 64px}
.cite-card{max-width:880px;background:var(--iaf-ground-card);border:.5px solid var(--iaf-rule);padding:28px 32px 30px}
.cite h2{font-family:var(--font-serif);font-weight:400;font-size:28px;line-height:1.2;color:var(--ink-0);font-variation-settings:'opsz' 30}
.cite-lic{margin-top:8px;font-family:var(--font-sans);font-size:15px;line-height:1.55;color:var(--iaf-type-secondary)}
.cite-lab{margin-top:22px;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--iaf-type-muted)}
.cite-box{display:flex;align-items:flex-start;gap:16px;margin-top:8px;background:var(--cream);border:.5px solid var(--iaf-rule);padding:14px 16px}
.cite-box code{flex:1;min-width:0;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--iaf-type-primary);overflow-wrap:anywhere}
.cite-copy{flex:none;min-height:32px;padding:0 12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--iaf-identity);background:none;border:.5px solid var(--iaf-rule);cursor:pointer}
.cite-copy:hover,.cite-copy:focus-visible{border-color:var(--iaf-identity)}
.cite-src,.cite-fix{margin-top:20px;font-family:var(--font-sans);font-size:14px;line-height:1.55;color:var(--iaf-type-secondary)}
.cite .cite-fix{margin-top:8px}.cite-fix svg{width:14px;height:14px;fill:currentColor;vertical-align:-2px;margin-right:5px}
.cite a{color:var(--iaf-type-primary);text-decoration-color:var(--iaf-rule);text-underline-offset:3px}.cite a:hover{color:var(--iaf-identity);text-decoration-color:currentColor}
@media (max-width:700px){.cite{padding:40px 0 48px}.cite-card{padding:22px 18px 24px}.cite-box{flex-direction:column;gap:10px}}
.others{padding:48px 0 0;font-family:var(--font-sans);font-size:14px;color:var(--iaf-type-secondary)}
.others a{margin-right:18px;white-space:nowrap}
/* recount band: the hero's signup again, at the foot of every Tracker page.
   Teal, because the Beehiiv form is styled to sit on teal. No top margin: the
   body underneath is terracotta. */
.recount-band{background:var(--iaf-teal);color:var(--cream);padding:64px 0}
.recount-inner{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;align-items:start}
.recount-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;opacity:.75;margin-bottom:16px}
.recount-band h2{font-family:var(--font-serif);font-weight:400;font-size:44px;line-height:1.05;letter-spacing:-.01em;color:var(--cream);max-width:520px}
.recount-text{font-family:var(--font-serif);font-size:19px;line-height:1.45;opacity:.88;max-width:440px}
.recount-form{max-width:440px;min-height:47px;margin-top:22px}
.recount-link{display:inline-block;margin-top:18px;font-family:var(--font-sans);font-size:14px;color:var(--cream);text-decoration-color:rgba(244,241,234,.5);text-underline-offset:3px}
.recount-link:hover{color:var(--cream);text-decoration-color:var(--cream)}
@media (max-width:900px){.recount-inner{grid-template-columns:1fr}.recount-band h2{font-size:34px}}
@media (max-width:700px){.recount-band{padding:48px 0}}
@media print{.recount-band{display:none}}
.build-stamp{background:var(--iaf-ground);border-top:.5px solid var(--iaf-rule-soft);padding:18px 0}
.build-stamp .wrap{font-family:var(--font-mono);font-size:11px;line-height:1.6;color:var(--iaf-type-muted)}
.stamp{width:100%;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--iaf-type-muted);margin-top:14px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.axis{position:static}}
