
:root{
  /* ---- surface: brand's tokens by this deck's short names; render/check-tokens.py pairs them ---- */
  --page:#FFFFFF; --raised:#F7F7F7; --sunken:#EFEFEF;
  --grid:#E0E0E0; --hairline:#C9C9C9; --axis:#8A8A8A;
  --muted:#6B6B6B; --secondary:#2B2B2B; --ink:#0A0A0A; --disabled:#A8A8A8;
  --accent:#1A2FA8; --accent4:#4A62D6; --accent2:#B7BBEE; --accent05:#F6F6FC; --accent8:#1E2A78;
  --claret:#7A1C2B; --claret05:#F6E8EB;
  --g2:#8F8F8F; --g3:#BDBDBD;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;

  /* ---- the recipes and the steps: written by recipe_vars() from the tables above ---- */
  --w-regular:400; --w-bold:600;
  --r-cover-size:72px; --r-cover-weight:300; --r-cover-lh:1.02; --r-cover-ls:-.02em;
  --r-title-size:44px; --r-title-weight:300; --r-title-lh:1.06; --r-title-ls:-.02em;
  --r-stand-size:19px; --r-stand-weight:400; --r-stand-lh:1.5; --r-stand-ls:0;
  --r-beat-size:31px; --r-beat-weight:500; --r-beat-lh:1.2; --r-beat-ls:-.01em;
  --r-head-size:21px; --r-head-weight:500; --r-head-lh:1.3; --r-head-ls:0;
  --r-keyfig-size:36px; --r-keyfig-weight:400; --r-keyfig-lh:1; --r-keyfig-ls:-.01em;
  --r-body-size:15px; --r-body-weight:400; --r-body-lh:1.62; --r-body-ls:0;
  --r-cell-size:12.5px; --r-cell-weight:400; --r-cell-lh:1.45; --r-cell-ls:0;
  --r-label-size:10px; --r-label-weight:600; --r-label-lh:1.5; --r-label-ls:.14em;
  --r-small-size:10px; --r-small-weight:400; --r-small-lh:1.5; --r-small-ls:0;
  --step-tight:12px; --step-close:20px; --step-near:26px; --step-apart:44px; --step-section:52px; --step-chapter:88px;
  --in-hair:4px; --in-cell:8px; --in-box:16px;

  --col:1240px;                        /* the measure a board is drawn on */
  --pad:clamp(20px,3.2vw,44px);        /* the page's own margin */
  --ind:clamp(26px,6.4vw,84px);        /* the indent everything below a beat head hangs on */
  --rail:292px;      /* the outline, at the deliverable shell's own width */
  --drawer:600px;    /* the evidence rail open, sized for a formula of two terms side by side */
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;-webkit-font-smoothing:antialiased;font-optical-sizing:none;text-rendering:optimizeLegibility}
/* The sources moved into the drawer, and the foot they used to sit in was what gave every
   page its bottom margin. Without it a page ends flush against its last block. */
.wrap{max-width:var(--col);margin:0 auto;padding:0 var(--pad) var(--step-chapter)}
.wrap:has(> .cover){padding-bottom:0}   /* the cover carries its own foot, at the window's bottom */
.hidden{display:none}
b,strong{font-weight:var(--w-bold);color:var(--ink)}
.num{font-variant-numeric:tabular-nums}
.num.k{font-weight:var(--w-bold);color:var(--ink)}

/* ---------- the page's own head ---------- */
.head{padding:clamp(var(--step-section),6vw,var(--step-chapter)) 0 0}
.head h1{font-family:var(--serif);font-size:var(--r-title-size);font-weight:var(--r-title-weight);line-height:var(--r-title-lh);letter-spacing:var(--r-title-ls);text-transform:none;margin:0;max-width:22ch;text-wrap:balance}
.head .q{font-family:var(--serif);font-size:var(--r-stand-size);font-weight:var(--r-stand-weight);line-height:var(--r-stand-lh);letter-spacing:var(--r-stand-ls);text-transform:none;font-style:italic;color:var(--secondary);margin:var(--step-close) 0 0;max-width:58ch}
.head .stand{font-family:var(--serif);font-size:var(--r-stand-size);font-weight:var(--r-stand-weight);line-height:var(--r-stand-lh);letter-spacing:var(--r-stand-ls);text-transform:none;color:var(--secondary);max-width:64ch;margin:var(--step-near) 0 0}
.headrule{height:1px;background:var(--ink);margin:var(--step-apart) 0 0}

/* ---------- beats ---------- */
.band{padding:var(--step-chapter) 0 var(--step-near);border-top:1px solid var(--grid)}
.band:first-of-type{border-top:0}
.bandhead{display:flex;gap:var(--step-near);align-items:baseline;margin-bottom:0}
.bandnum{font-family:var(--serif);font-size:var(--r-beat-size);font-weight:var(--r-beat-weight);line-height:var(--r-beat-lh);letter-spacing:var(--r-beat-ls);text-transform:none;font-style:italic;color:var(--accent);flex:0 0 auto;width:54px}
.bandhead h2{font-family:var(--serif);font-size:var(--r-beat-size);font-weight:var(--r-beat-weight);line-height:var(--r-beat-lh);letter-spacing:var(--r-beat-ls);text-transform:none;margin:0;max-width:46ch;text-wrap:balance}
.lede{margin:var(--step-close) 0 0 var(--ind);font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--secondary);max-width:84ch}
.in{margin-left:var(--ind)}
.figwrap{margin:var(--step-apart) 0 0 var(--ind)}

.band.sub{--ind:var(--step-section);margin-left:var(--step-section);border-top:0;border-left:1px solid var(--grid);padding:var(--step-apart) 0 var(--step-close) var(--step-apart);position:relative}
.band.sub::before{content:'';position:absolute;left:-1px;top:0;width:1px;height:26px;background:var(--accent)}
.band.sub .bandhead{gap:var(--step-close);align-items:baseline}
.band.sub .bandnum{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;width:46px}
.band.sub .bandhead h2{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;max-width:52ch}

/* ---------- the commentary block ---------- */
.note{margin:var(--step-section) 0 0 var(--ind);max-width:88ch}
.note > .lab{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:0 0 var(--step-close);padding-bottom:var(--step-tight);border-bottom:1px solid var(--grid)}
.note p{margin:0 0 var(--step-close);font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--secondary);break-inside:avoid}
.note p:last-child{margin-bottom:0}
.note p b{color:var(--ink);font-weight:var(--w-bold)}
.note.split{max-width:none;display:grid;grid-template-columns:1fr 1fr;
  column-gap:clamp(var(--step-near),4vw,var(--step-section));
  row-gap:0;position:relative;align-items:start}
.note .col > .lab{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:0 0 var(--step-close);padding-bottom:var(--step-tight);border-bottom:1px solid var(--grid);position:relative}
.note .col > .lab.acc{color:var(--accent);border-bottom-color:var(--accent2)}
.note.split .ob{grid-column:1}
.note.split .im{grid-column:2}

/* The reading pair, closed. Its two labels keep their rules on the face and open what is
   under them on a click: an exhibit's own marks are the argument, and eight paragraphs
   standing open below every one of them read as the page rather than as the check on it.
   The halves are the fold's mechanics on the pair's own type — no panel, no fill, because
   this is a label with a rule under it and not a strip. */
details.rp{min-width:0}
details.rp > summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  align-items:baseline;gap:16px;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);
  padding-bottom:var(--step-tight);border-bottom:1px solid var(--grid)}
details.rp > summary::-webkit-details-marker{display:none}
details.rp > summary::after{content:'+';font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--accent)}
details.rp[open] > summary::after{content:'\2013'}
details.rp > summary:hover{color:var(--ink)}
details.rp.acc > summary{color:var(--accent);border-bottom-color:var(--accent2)}
details.rp .rpb{margin-top:var(--step-close)}

/* ---------- micro label above an exhibit ---------- */
/* One line, always. A label that wraps reads as two labels, and the second line lands
   under whichever half was longer, which is a different place on every page. So neither
   half breaks: where the right half is too long for the width it has, it is too long, and
   the fix is fewer words. Each half hangs on the same edge as the exhibit it labels — the
   indent here, and flush where a page's own exhibits sit at the page margin. */
/* Name at the left, scope at the right, each on one line; where the two will not share a
   line — the drawer open on a narrow desk — the scope drops to its own line, still at the
   right, rather than running into the name. */
.exlab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin:var(--step-apart) 0 var(--step-tight) var(--ind);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.exlab > span{white-space:nowrap;min-width:0}
.exlab .r{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;text-align:right;max-width:none;white-space:nowrap;margin-left:auto}
.exlab details{display:inline-block;position:relative}
.exlab summary{list-style:none;cursor:pointer;color:var(--muted);
  border-bottom:1px dotted var(--hairline)}
.exlab summary::-webkit-details-marker{display:none}
/* The label runs on one line; what opens under it is a paragraph and wraps like one. */
.exlab .body{position:absolute;right:0;margin-top:8px;width:max-content;max-width:64ch;background:var(--raised);border:1px solid var(--grid);padding:var(--in-box);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);z-index:5;white-space:normal}

/* ---------- folds ---------- */
details.fold{margin:var(--step-section) 0 0 var(--ind);background:var(--raised)}
details.fold + details.fold{margin-top:var(--in-hair)}
details.fold > summary{cursor:pointer;list-style:none;padding:var(--in-box);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:20px}
details.fold > summary:hover{color:var(--ink)}
details.fold > summary::-webkit-details-marker{display:none}
details.fold > summary::after{content:'+';font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--accent)}
details.fold[open] > summary::after{content:'\2013'}
details.fold .fbody{padding:var(--in-box);background:var(--page);border-top:1px solid var(--grid)}
details.fold .fbody p{margin:0 0 var(--step-tight);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);max-width:96ch;break-inside:avoid}
details.fold .fbody p:last-child{margin-bottom:0}
details.fold .fbody .two{column-count:2;column-gap:52px}
/* A column set inside a fold sits under the fold's own rule and inside its padding,
   so it drops the indent and the rule it would otherwise draw for itself. */
details.fold .fbody > .cols{margin:0;border-top:0;padding-top:0}

/* ---------- the closing panel ---------- */
.close{margin:var(--step-chapter) 0 0;background:var(--accent05);padding:var(--step-section) var(--pad);border-top:2px solid var(--accent)}
.wrap > .close{margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad))}
.close > .inner{max-width:calc(var(--col) - 2 * var(--pad));margin:0 auto}
/* The panel is full-bleed, so its gutters are its own: the mark sits at the left edge of
   the measure and the questions line up under it. A fixed slot width and an 84px indent on
   the questions made the left gutter three times the right. */
.closehead{display:flex;gap:var(--in-box);align-items:baseline;margin:0 0 var(--step-near)}
.closehead .slot{flex:0 0 auto;width:auto;display:flex;transform:translateY(4px)}
.closehead .slot svg{width:34px;height:34px;color:var(--accent)}
.closehead h2{font-family:var(--serif);font-size:var(--r-beat-size);font-weight:var(--r-beat-weight);line-height:var(--r-beat-lh);letter-spacing:var(--r-beat-ls);text-transform:none;margin:0;max-width:46ch;text-wrap:balance}
/* Where the deck carries an issue tree, the head opens it in the drawer: the script marks
   the head, and the mark is what the pointer and the keyboard answer. */
.closehead[data-tree]{cursor:pointer}
.closehead[data-tree]:hover h2,.closehead[data-tree]:focus-visible h2{color:var(--accent)}
.closehead[data-tree]:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.qs{display:block}
.qq{display:grid;grid-template-columns:minmax(0,0.42fr) minmax(0,1fr);gap:0 var(--step-apart);
  border-top:1px solid var(--accent2);padding-top:var(--step-close)}
.qq + .qq{margin-top:var(--step-near)}
.qq .askd{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-style:italic;color:var(--accent);margin:0}
.qq .askn{font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--muted);margin:0}
.qq p{margin:0;font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--secondary)}

/* ---------- footnotes and the foot ---------- */

.foot{margin-top:var(--step-section);border-top:1px solid var(--ink);padding:var(--step-close) 0 var(--step-chapter);font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}
.foot .fh{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;display:flex;justify-content:space-between;gap:var(--step-apart);margin-bottom:var(--step-tight);color:var(--muted)}
.foot .src{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;max-width:110ch;color:var(--muted)}
.srcs{column-count:3;column-gap:44px;margin-top:var(--step-close)}
.srcs .grp{break-inside:avoid;margin:0 0 var(--step-close)}
.srcs .grp b{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;display:block;color:var(--muted);margin-bottom:var(--in-cell)}
.srcs ul{list-style:none;margin:0;padding:0}
.srcs li{position:relative;padding-left:var(--step-tight);margin-bottom:var(--in-hair)}
.srcs li::before{content:'';position:absolute;left:0;top:.62em;width:3px;height:3px;background:var(--hairline)}
.tag{display:inline-block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--claret);border:1px solid var(--claret);padding:2px var(--in-cell);margin-left:var(--step-tight);vertical-align:1px}
.tag.q{color:var(--muted);border-color:var(--hairline)}

/* ---------- the mark for anything that waits on fielding ---------- */
.hatch{background:repeating-linear-gradient(45deg,var(--page),var(--page) 4px,var(--grid) 4px,var(--grid) 5px);
  box-shadow:inset 0 0 0 1px var(--grid);display:block}
.pending{color:var(--disabled)}
.waits{display:inline-flex;align-items:center;gap:var(--in-cell);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--disabled)}
.waits::before{content:'';width:14px;height:9px;flex:0 0 auto;
  background:repeating-linear-gradient(45deg,var(--page),var(--page) 3px,var(--grid) 3px,var(--grid) 4px);
  box-shadow:inset 0 0 0 1px var(--grid)}

/* ---------- the exhibit table, the deck's workhorse ---------- */
table.ex{width:calc(100% - var(--ind));border-collapse:collapse;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;margin:0 0 0 var(--ind)}
/* a table that states its own column widths is laid out to them */
table.ex.fixed{table-layout:fixed}
table.ex.fixed td,table.ex.fixed th{overflow-wrap:break-word}
/* a table already inside an indented block takes that block's edges, not a second indent */
.cols table.ex,.note table.ex,details.fold table.ex,.figwrap table.ex{
  width:100%;margin-left:0}
/* a label is one line: a head never wraps, and the words are shortened until it fits */
table.ex th{text-align:left;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:0 var(--in-box) var(--in-cell) 0;vertical-align:bottom;border-bottom:1px solid var(--ink);white-space:nowrap}
table.ex td{padding:var(--in-cell) var(--in-box) var(--in-cell) 0;border-bottom:1px solid var(--grid);vertical-align:top;
  color:var(--secondary)}
table.ex td.k{color:var(--ink);font-weight:var(--w-bold)}
table.ex td.q,table.ex th.q{color:var(--muted);font-weight:var(--w-regular);white-space:nowrap}
table.ex td.r,table.ex th.r{text-align:right;font-variant-numeric:tabular-nums}
table.ex td.n{font-variant-numeric:tabular-nums;font-weight:var(--w-bold);color:var(--ink);white-space:nowrap}
table.ex tr.grp td{background:var(--raised);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:var(--in-cell) var(--in-box) var(--in-cell) 0;border-bottom:1px solid var(--grid)}
table.ex tr.grp td .c{color:var(--disabled);margin-left:var(--in-cell)}
table.ex tbody tr:last-child td{border-bottom:1px solid var(--hairline)}
table.ex tr.on td{background:var(--accent05)}
table.ex td .sub{display:block;color:var(--muted);font-weight:var(--w-regular);margin-top:var(--in-hair)}

/* a thin bar drawn inside a cell, scaled off the largest value in its column */
.cellbar{display:block;height:7px;background:var(--accent);min-width:2px}
.cellbar.g{background:var(--g3)}
td.bar{width:210px;padding-right:0}
td.bar .t{display:block;height:7px;background:var(--sunken);position:relative;margin-top:var(--in-hair)}
td.bar .t i{position:absolute;left:0;top:0;height:7px;background:var(--accent)}
td.bar .t i.g{background:var(--g3)}
td.bar .floor{position:absolute;top:-3px;width:1px;height:13px;background:var(--hairline)}

/* ---------- key figures ---------- */
/* Subgrid so label, number and caption each share one row across all cells: a label that
   wraps to two lines can then never push its own number off the shared baseline. */
.keynums{margin:0 0 0 var(--ind);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:auto auto auto;gap:0;border-top:1px solid var(--ink)}
.keynums > div{display:grid;grid-template-rows:subgrid;grid-row:span 3;
  padding:16px 26px 20px 26px;border-right:1px solid var(--grid)}
.keynums > div:first-child{padding-left:0}
.keynums > div:last-child{border-right:0;padding-right:0}
.keynums .k{display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.keynums .v{display:block;font-family:var(--serif);font-size:var(--r-keyfig-size);font-weight:var(--r-keyfig-weight);line-height:var(--r-keyfig-lh);letter-spacing:var(--r-keyfig-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--ink);
  margin:var(--in-box) 0 var(--in-cell);align-self:end}
.keynums .v.acc{color:var(--accent)}
.keynums .v.nil{color:var(--disabled)}
.keynums .c{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.keynums.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.keynums.five{grid-template-columns:repeat(5,minmax(0,1fr))}

/* ---------- graded rows: a list where each row carries a state ---------- */
.graded{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.grow{display:grid;grid-template-columns:1fr clamp(110px,15vw,168px);gap:0 var(--step-close);align-items:start;
  border-bottom:1px solid var(--grid);padding:var(--in-box) 0}
.grow:last-child{border-bottom:1px solid var(--hairline)}
.grow .gl{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.grow .gl b{display:block;color:var(--ink);font-weight:var(--w-bold);margin-bottom:var(--in-hair)}
.grow .gs{justify-self:end;text-align:right}
.state{display:inline-block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;padding:var(--in-hair) var(--in-cell);border:1px solid var(--hairline);color:var(--muted);max-width:100%;overflow-wrap:anywhere}
.state.on{border-color:var(--accent);color:var(--accent);background:var(--accent05)}
.state.no{border-color:var(--claret);color:var(--claret);background:var(--claret05)}
.state.wait{border-style:dashed;border-color:var(--grid);color:var(--disabled)}

/* ---------- dot tracks: a count of organisations along a scale ---------- */
.tracks{margin:0 0 0 var(--ind)}
.trk{display:grid;grid-template-columns:clamp(150px,22vw,250px) 1fr clamp(72px,9vw,96px);gap:0 var(--step-close);align-items:center;
  border-bottom:1px solid var(--grid);padding:12px 0}
.trk:last-of-type{border-bottom:1px solid var(--hairline)}
.trk .tl{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.trk .tl b{color:var(--ink);font-weight:var(--w-bold)}
.trk .td{display:flex;gap:var(--in-hair);align-items:center;flex-wrap:wrap}
.trk .td i{width:10px;height:10px;flex:0 0 auto;background:var(--accent);display:block;border-radius:50%}
.trk .td i.o{background:none;box-shadow:inset 0 0 0 1px var(--hairline)}
.trk .td i.g{background:var(--g3)}
.trk .td.wait{display:block}
.trk .tv{justify-self:end;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.trk .tv em{font-style:normal;font-weight:var(--w-regular);color:var(--muted)}
.trkscale{display:grid;grid-template-columns:clamp(150px,22vw,250px) 1fr clamp(72px,9vw,96px);gap:0 var(--step-close);margin:0 0 0 var(--ind);padding:0 0 var(--in-cell);border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}

/* ---------- paired tracks: two axes on one row ---------- */
.pairs{margin:0 0 0 var(--ind)}
.prow{display:grid;grid-template-columns:clamp(140px,20vw,230px) 1fr 1fr clamp(88px,11vw,118px);gap:0 var(--step-close);align-items:center;
  border-bottom:1px solid var(--grid);padding:var(--step-tight) 0}
.prow:last-of-type{border-bottom:1px solid var(--hairline)}
.prow .pl{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.prow .pt{position:relative;height:9px;background:var(--sunken)}
.prow .pt i{position:absolute;left:0;top:0;height:9px;background:var(--accent)}
.prow .pt.b i{background:var(--g2)}
.prow .pg{justify-self:end;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap}
.prow .pg em{font-style:normal;font-weight:var(--w-regular);color:var(--disabled)}

/* the rule that names a group of rows inside an exhibit */
.bandrow{display:flex;justify-content:space-between;align-items:baseline;gap:var(--step-close);border-bottom:1px solid var(--grid);padding:var(--in-box) 0 var(--in-cell);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.bandrow .bn{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--disabled)}
.pairhead{display:grid;grid-template-columns:clamp(140px,20vw,230px) 1fr 1fr clamp(88px,11vw,118px);gap:0 var(--step-close);padding:0 0 var(--in-cell);margin:0 0 0 var(--ind);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ink)}
.pairhead .r{justify-self:end}
.pairaxis{display:grid;grid-template-columns:clamp(140px,20vw,230px) 1fr 1fr clamp(88px,11vw,118px);gap:0 var(--step-close);
  margin:0 0 0 var(--ind);padding:var(--in-cell) 0;border-bottom:1px solid var(--grid)}
.pairaxis .ax{display:flex;justify-content:space-between;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums}
.pairaxis .ax i{font-style:normal}
.pairaxis .ax:last-child{gap:var(--in-cell)}

/* ---------- bill panels: two tiers, side by side, never summed ---------- */
.panels{margin:0 0 0 var(--ind);display:grid;gap:0 clamp(var(--step-close),3vw,var(--step-apart));
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.panel{border-top:1px solid var(--ink);padding-top:var(--in-box)}
.panel > .ph{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.panel > .pn{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;margin:0 0 16px;color:var(--ink)}
.panel .pr{border-bottom:1px solid var(--grid);padding:12px 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none}
.panel .pr .top{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.panel .pr .l{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.panel .pr .v{font-variant-numeric:tabular-nums;font-weight:var(--w-bold);color:var(--ink);white-space:nowrap}
.panel .pr .v.nil{color:var(--disabled);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase}
.panel .pr .track{display:block;height:14px;margin-top:var(--in-cell);background:var(--sunken);position:relative}
.panel .pr .track i{position:absolute;left:0;top:0;height:14px;background:var(--accent)}
.panel .pr .track.wait{background:repeating-linear-gradient(45deg,var(--page),var(--page) 4px,var(--grid) 4px,
  var(--grid) 5px);box-shadow:inset 0 0 0 1px var(--grid)}
.panel .pr .track.closed{background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid)}
.panel .pr .track.closed::after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;
  background:var(--hairline)}
.panel .pr.tot{border-bottom:1px solid var(--ink);border-top:1px solid var(--hairline);
  margin-top:var(--in-hair);padding-top:var(--in-cell)}
.panel .pr.tot .l{color:var(--ink);font-weight:var(--w-bold)}
.panel .pr.tot .v{color:var(--accent)}
.panel .pf{margin-top:12px;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.panel.empty .pn{color:var(--disabled)}

/* ---------- value strips: one measure, several bases ---------- */
.strips{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.strip{display:grid;grid-template-columns:clamp(140px,19vw,210px) 1fr clamp(104px,13vw,150px);gap:0 var(--step-close);align-items:center;
  border-bottom:1px solid var(--grid);padding:var(--in-box) 0}
.strip:last-of-type{border-bottom:1px solid var(--hairline)}
.strip .sl{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.strip .sl em{display:block;font-style:normal;font-weight:var(--w-regular);color:var(--muted);margin-top:var(--in-hair)}
.strip .st{position:relative;height:18px;background:var(--sunken)}
.strip .st i{position:absolute;left:0;top:0;height:18px;background:var(--accent)}
.strip .st i.g{background:var(--g3)}
.strip .st .rg{position:absolute;top:0;height:18px;background:var(--accent2)}
.strip .sv{justify-self:end;text-align:right;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--ink)}
.strip .sv em{display:block;font-style:normal;font-weight:var(--w-regular);color:var(--muted);margin-top:var(--in-hair)}

/* ---------- the key strip under an exhibit ---------- */
.keyrow{display:flex;flex-wrap:wrap;gap:var(--step-tight) var(--step-near);margin:var(--step-close) 0 0 var(--ind)}
.keyrow > div{display:flex;gap:var(--in-cell);align-items:flex-start;max-width:34ch}
.keyrow i{flex:0 0 auto;width:10px;height:10px;margin-top:4px;background:var(--accent);display:block}
.keyrow i.g{background:var(--g3)} .keyrow i.o{background:none;box-shadow:inset 0 0 0 1px var(--hairline)}
.keyrow i.a2{background:var(--accent2)}
.keyrow i.a4{background:var(--accent4)}
.keyrow i.a8{background:var(--accent8)}
.keyrow i.eh{background:repeating-linear-gradient(45deg,var(--page),var(--page) 3px,var(--g3) 3px,var(--g3) 4px);box-shadow:inset 0 0 0 1.5px var(--accent)}
.keyrow i.g2{background:var(--g2)}
.keyrow i.b{background:var(--accent05);box-shadow:inset 0 0 0 1px var(--accent2)}
.keyrow i.k{width:2px;height:14px;margin-top:2px;background:var(--accent)}
.keyrow i.c{background:var(--claret)}
.keyrow i.cb{background:var(--claret05);box-shadow:inset 0 0 0 1px var(--claret)}
/* the range the evidence allows, hatched over the bar, with the line at the figure used */
.keyrow i.rg{width:26px;background:repeating-linear-gradient(45deg,transparent,transparent 3px,color-mix(in srgb,var(--ink) 45%,transparent) 3px,color-mix(in srgb,var(--ink) 45%,transparent) 4px);position:relative}
.keyrow i.rg::after{content:'';position:absolute;left:12px;top:-2px;bottom:-2px;width:2px;background:var(--ink)}
.keyrow i.ck{width:2px;height:14px;margin-top:2px;background:var(--claret)}
.keyrow i.h{background:repeating-linear-gradient(45deg,var(--page),var(--page) 3px,var(--grid) 3px,var(--grid) 4px);
  box-shadow:inset 0 0 0 1px var(--grid)}
.keyrow .kt{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.keyrow .kt b{display:block;color:var(--ink);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;margin-bottom:2px}

/* ---------- the bridge: a total and its parts, or one figure becoming another ---------- */
/* Totals stand on zero; a part floats from the running total and is drawn leftwards where it
   subtracts; a dotted hairline joins each bar to the next at the value they share, so the
   arithmetic is on the page rather than left to the reader. The chart grammar's F1 states
   the form. Rows are one object, so their padding is the inside scale; the connector is
   drawn tall and clipped by its row, which is what keeps it exactly one row-gap long. A bar
   may be split into parts along its length, each its own click; a band row is a share of
   the row before it, estimated as a range, on that row's own extent; an anchor that
   restates the parts above it closes them with a rule, and the rows after the rule sit the
   near step down. The figures in the value column are the exhibit's figures and take the
   head recipe; a value inside a bar is small. */
.bridge{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.brow{display:grid;grid-template-columns:clamp(140px,19vw,210px) 1fr clamp(104px,13vw,150px);gap:0 var(--step-close);align-items:center;
  border-bottom:1px solid var(--grid);padding:var(--step-tight) 0;overflow:hidden}
.brow:last-of-type{border-bottom:1px solid var(--hairline)}
.brow.rule{border-bottom:1px solid var(--ink)}
.brow.rule + .brow{padding-top:var(--step-near)}
.brow .bl{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.brow .bl em{display:block;font-style:normal;font-weight:var(--w-regular);color:var(--muted);margin-top:var(--in-hair)}
.brow .bt{position:relative;height:18px}
.brow .bt i{position:absolute;top:0;height:18px;display:block}
.brow .bt .bb{background:var(--g2)}
.brow.dim .bt .bb{background:var(--g3)}
.brow.tot .bt .bb,.brow.acc .bt .bb{background:var(--accent)}
.brow .bt .bg{background:var(--accent05);box-shadow:inset 0 0 0 1px var(--accent2)}
.brow .bt .bk{width:1px;top:-3px;height:24px;background:var(--ink)}
.brow .bt .bc{width:0;border-left:2px dotted var(--hairline)}
.brow .bt .bc.up{top:auto;bottom:100%;height:160px}
.brow .bt .bc.down{top:100%;height:160px}
.brow .bv{justify-self:end;text-align:right;font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.brow.tot .bv{color:var(--accent)}
.brow.dim .bv{color:var(--secondary)}
.brow .bv em{display:block;font-style:normal;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-top:var(--in-hair)}
.brow .bv.nil{color:var(--disabled)}
/* the parts of one bar: the subject first, in the accent, then the lighter step, then grey */
.brow .bt .bp{overflow:hidden}
.brow .bt .bp.p1{background:var(--accent)}
.brow .bt .bp.p2{background:var(--accent2)}
.brow .bt .bp.p3{background:var(--g3)}
.brow .bt .bp b{position:absolute;left:var(--in-hair);top:0;height:18px;display:flex;align-items:center;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;font-style:normal;color:var(--page);font-variant-numeric:tabular-nums;white-space:nowrap}
.brow .bt .bp.p2 b{color:var(--accent8)}
.brow .bt .bp.p3 b{color:var(--ink)}
/* a row that is money going out: the counter colour, its parts in that colour's two steps,
   the second outlined so a light part reads as a part and not as the track */
.brow.cost .bt .bb,.brow.cost .bt .bp.p1{background:var(--claret)}
.brow.cost .bt .bp.p2{background:var(--claret05);box-shadow:inset 0 0 0 1px var(--claret)}
.brow.cost .bt .bp.p2 b{color:var(--claret)}
.brow.cost.tot .bv{color:var(--claret)}
.brow .bt .bsp{position:absolute;top:calc(100% + var(--in-hair));font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
/* the band row: solid to the figure used, the range hatched over the bar from the low bound
   to the high, a line at the figure, and what is left of the extent named in words. The
   hatch takes no pointer, so the bar beneath it stays the click into its line. */
.brow.shr{align-items:center}
.brow.shr .bt .bsg{position:absolute;top:0;height:18px;display:block}
.brow.shr .bt .bsg i{top:0;height:18px}
.brow.shr .bt .bs{background:var(--accent)}
.brow.shr .bt .bsl{background:color-mix(in srgb,var(--accent) 22%,var(--page))}
.brow.shr .bt .bsb{background:repeating-linear-gradient(45deg,transparent,transparent 3px,color-mix(in srgb,var(--ink) 45%,transparent) 3px,color-mix(in srgb,var(--ink) 45%,transparent) 4px);pointer-events:none}
.brow.shr .bt .bsg i.bst{width:2px;top:-6px;height:30px;margin-left:-1px;background:var(--ink);pointer-events:none}
.brow.shr .bt .bsr{background:var(--sunken);box-shadow:inset 0 0 0 1px var(--grid);overflow:hidden}
.brow.shr .bt .bsr b,.brow .bt .hatch b{position:absolute;left:var(--in-cell);top:0;height:18px;display:flex;align-items:center;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;font-style:normal;color:var(--muted);white-space:nowrap}
.brow.shr.counter .bt .bs{background:var(--claret)}
.brow.shr.counter .bt .bsl{background:color-mix(in srgb,var(--claret) 22%,var(--page))}
.brow.shr.counter .bv{color:var(--claret)}
.brow.shr .bv .bvp{display:block}
.brow.shr .bv .bvp + .bvp{margin-top:var(--in-cell)}
.brow.shr .bv .bvp em{display:block;font-style:normal;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-top:var(--in-hair)}
.bridgeaxis{display:grid;grid-template-columns:clamp(140px,19vw,210px) 1fr clamp(104px,13vw,150px);gap:0 var(--step-close);margin:0 0 0 var(--ind);padding:var(--in-cell) 0 0}
.bridgeaxis .ax{position:relative;height:18px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums}
.bridgeaxis .ax i{position:absolute;top:0;font-style:normal;transform:translateX(-50%);white-space:nowrap}
.bridgeaxis .ax i:first-child{transform:none}
.bridgeaxis .ax i:last-child{transform:translateX(-100%)}

/* ---------- two axes: one thing against two measures ---------- */
/* A point a row, both axes from zero, every point labelled beside itself, and no fitted
   line. A row that has one measure and not the other is a censoring mark on the axis it
   has; a row that has neither is named under the field. Where nothing is placed yet the
   field itself is the hatch, on the axes the question fixed. */
.axes{margin:0 0 0 var(--ind);display:grid;grid-template-columns:clamp(56px,7vw,88px) 1fr;gap:0 var(--step-tight)}
.axes .axy{grid-column:1 / -1;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:0 0 var(--step-tight)}
.axes .axt{position:relative}
.axes .axt i{position:absolute;right:0;transform:translateY(-50%);font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums;font-style:normal}
.axes .axfield{position:relative;height:clamp(280px,32vw,400px);border-left:1px solid var(--axis);border-bottom:1px solid var(--axis)}
.axes .axfield.wait{background:repeating-linear-gradient(45deg,var(--page),var(--page) 4px,var(--grid) 4px,var(--grid) 5px)}
.axes .axg{position:absolute;left:0;right:0;height:1px;background:var(--grid)}
.axes .axg.v{top:0;bottom:0;right:auto;width:1px;height:auto}
.axes .axp{position:absolute;width:10px;height:10px;transform:translate(-50%,-50%);background:var(--accent);border-radius:50%}
.axes .axp.g{background:var(--g3)}
.axes .axp.o{background:var(--page);box-shadow:inset 0 0 0 1px var(--ink)}
.axes .axp b{position:absolute;left:100%;top:50%;transform:translateY(-50%);padding-left:var(--in-cell);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink);white-space:nowrap;font-weight:var(--w-regular)}
.axes .axp.o b{font-style:italic}
.axes .axc{position:absolute;bottom:0;width:1px;height:10px;background:var(--ink);transform:translateX(-50%)}
.axes .axc b{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);padding-bottom:var(--in-hair);font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);white-space:nowrap;font-weight:var(--w-regular)}
.axes .axc.y{left:0;bottom:auto;width:10px;height:1px;transform:translateY(-50%)}
.axes .axc.y b{bottom:auto;left:100%;top:50%;transform:translateY(-50%);padding:0 0 0 var(--in-cell)}
.axes .axb{grid-column:2;position:relative;height:18px}
.axes .axb i{position:absolute;top:var(--in-hair);transform:translateX(-50%);font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums;font-style:normal;white-space:nowrap}
.axes .axb i:first-child{transform:none}
.axes .axb i:last-child{transform:translateX(-100%)}
.axes .axx{grid-column:2;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:var(--step-tight) 0 0}
.axes .axout{grid-column:1 / -1;margin:var(--step-close) 0 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.axes .axout .waits{margin-right:var(--in-cell)}

/* ---------- chips ---------- */
.chip{display:inline-block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;padding:var(--in-hair) var(--in-cell);border:1px solid var(--hairline);color:var(--secondary)}
.chip.a{border-color:var(--accent2);color:var(--accent);background:var(--accent05)}
.chip.w{border-style:dashed;border-color:var(--grid);color:var(--disabled)}

.defs{margin:var(--step-near) 0 0 var(--ind);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--step-apart);border-top:1px solid var(--grid);padding-top:var(--step-tight)}
.defs > div{padding:0 0 var(--step-tight);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);break-inside:avoid;max-width:56ch}
.defs b{display:block;color:var(--ink);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;margin-bottom:4px}
.defs.three{grid-template-columns:repeat(3,minmax(0,1fr))}


/* ---------- a callout: a paragraph that argues from the exhibit ---------- */
/* Ruled at its left — the accent for the point, the counter colour for the case against —
   with a label that names it. One of the five things that attach to an exhibit. */
.callout{margin:var(--step-apart) 0 0 var(--ind);display:grid;grid-template-columns:clamp(140px,19vw,210px) 1fr;gap:0 var(--step-close);
  border-left:2px solid var(--accent);background:var(--accent05);padding:var(--in-box) var(--step-close)}
.callout .ct{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent)}
.callout p{margin:0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.callout p b{color:var(--ink);font-weight:var(--w-bold)}
.callout.against{border-left-color:var(--claret);background:var(--claret05)}
.callout.against .ct{color:var(--claret)}
/* a way into the exhibit's notes, in words, inside a sentence */
button.fnm.wide{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;vertical-align:baseline;padding:0;border-bottom:1px dotted var(--accent2)}
/* ---------- a note: one line of qualification, in cell and the muted grey ---------- */
.xnote{margin:var(--step-close) 0 0 var(--ind);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);max-width:96ch}
@media (max-width:820px){.callout{grid-template-columns:1fr;row-gap:var(--in-cell);margin-left:0}.xnote{margin-left:0}}

/* a plain measured statement, set apart from the argument around it */
.display{margin:var(--step-apart) 0 0 var(--ind);font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--ink);max-width:44ch;border-left:2px solid var(--accent);padding-left:var(--step-near)}


/* ---------- the issue tree ---------- */
.tree{margin:0 0 0 var(--ind);display:grid;
  grid-template-columns:minmax(200px,.66fr) minmax(0,2.5fr);row-gap:var(--step-apart);align-items:stretch}
.tree .treeq{grid-column:1;grid-row:2;align-self:start;position:relative;padding-right:var(--step-apart)}
/* the question stands behind the tree's own mark, no label over it */
.tree .treeq{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--in-cell);align-items:start}
.tree .treeq .tmark{display:flex;transform:translateY(2px)}
.tree .treeq .tmark svg{width:22px;height:22px;color:var(--accent)}
.tree .treeq p{margin:0;font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--w-bold);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--ink)}
.tree .branch{grid-column:2;position:relative;min-width:0;padding-left:var(--step-apart)}
.tree .tie{position:absolute;top:11px;width:38px;height:1px;background:var(--hairline)}
.tree .treeq .tie{right:0}
.tree .branch .tie{left:0}
.tree .spine{position:absolute;left:0;width:1px;background:var(--hairline)}
.tree .branch.first .spine{top:11px;bottom:calc(-1 * var(--step-apart))}
.tree .branch.mid   .spine{top:0;bottom:calc(-1 * var(--step-apart))}
.tree .branch.last  .spine{top:0;height:11px}
.tree .bhead{display:grid;grid-template-columns:var(--step-close) minmax(0,1fr);gap:var(--in-cell);align-items:baseline}
.tree .bn{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-style:italic;color:var(--accent)}
.tree .bhead p{margin:0;font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--w-bold);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--ink)}
.tree .rows{display:grid;gap:var(--in-cell);margin-top:var(--in-cell);padding-left:calc(var(--step-close) + var(--in-cell))}
.tree .row{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:var(--in-hair) var(--in-box);
  align-items:baseline;border-top:1px solid var(--grid);padding-top:var(--in-cell)}
.tree .row p{margin:0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.tree .chips{display:flex;flex-wrap:wrap;gap:var(--in-hair);justify-content:flex-end}
.tree .chips a{text-decoration:none}

/* ---------- the written page: columns, figures, and what waits ---------- */
.cols{margin:var(--step-apart) 0 0 var(--ind);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 44px;border-top:1px solid var(--ink);padding-top:var(--step-close)}
.cols .c > .lab,.cols .c .sub > .lab{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:0 0 var(--step-tight)}
.cols .c p{margin:0 0 var(--step-close);font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--secondary)}
/* A column carries more than one labelled run where it has more than one thing to say: the
   runs are separated by a rule of their own so the second reads as a subsection of the same
   column rather than as the top of the next one. */
.cols .c .sub + .sub{margin-top:var(--step-near);padding-top:var(--step-close);
  border-top:1px solid var(--grid)}
.cols .c .sub > p:last-child{margin-bottom:0}
.cols.two{grid-template-columns:repeat(2,minmax(0,1fr))}

/* The summary is an article, and its columns open straight under the head rule: there is no
   beat number over them, so there is no beat head to leave room for either. */
.band.open{padding-top:var(--step-section)}
.band.open > .cols:first-child{margin-top:0;border-top:0;padding-top:0}
.waitrow{margin:44px 0 0 var(--ind);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 44px}
.waitrow > div{display:block}
.waitrow .bars{display:grid;gap:var(--in-hair);margin-bottom:var(--step-tight)}
.waitrow .bars span{display:block;height:13px;
  background:repeating-linear-gradient(45deg,var(--page),var(--page) 4px,var(--grid) 4px,var(--grid) 5px);
  box-shadow:inset 0 0 0 1px var(--grid)}
.waitrow p{margin:0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}

/* ---------- breathing room where an exhibit follows the sentence introducing it ---------- */
.band > .lede + *{margin-top:var(--step-apart)}

/* ---------- the cover, on the template's arrangement ---------- */
/* ---------- the cover ----------
   One title, one description, one way in, and the engagement's own art behind them. The
   title takes the cover recipe — this is the one page where the title is the page rather
   than the head of one — and it sits low, on the accent rule, with the mark alone at the
   top of the measure. There is no eyebrow: brand's cover anatomy dropped it, because a
   category label above the title told a reader what kind of document they held before the
   title told them which one. */
.cover{position:relative;overflow:hidden;min-height:calc(100vh - var(--cover-above, 60px));display:grid;   /* the cover fills the window under whatever stands above it: its own top bar alone, the shell's in the deck */
  grid-template-rows:1fr auto;padding:0 0 var(--step-close)}
/* The type holds the left half and the drawing the right, so the measure is a share of the
   page rather than a count of characters: at 54% of a 1240px board that is about 620px, which
   is four or five lines a paragraph instead of seven. */
.cover .coverin{position:relative;z-index:1;align-self:center;padding:var(--step-apart) 0;
  max-width:min(620px,54%)}
.cover .mk{display:block;color:var(--ink);margin:0 0 clamp(var(--step-apart),7vw,var(--step-chapter))}
.cover .mk svg{width:84px;height:84px;display:block}
.cover h1{font-family:var(--serif);font-size:var(--r-cover-size);font-weight:var(--r-cover-weight);line-height:var(--r-cover-lh);letter-spacing:var(--r-cover-ls);text-transform:none;margin:0 0 clamp(var(--step-near),3.2vw,var(--step-apart));max-width:13ch;text-wrap:balance}
.cover .qual{margin:0 0 clamp(var(--step-near),3.8vw,var(--step-section))}
.cover .qual p{font-family:var(--serif);font-size:var(--r-stand-size);font-weight:var(--r-stand-weight);line-height:var(--r-stand-lh);letter-spacing:var(--r-stand-ls);text-transform:none;color:var(--secondary);margin:0 0 var(--step-close)}
.cover .qual p:last-child{margin-bottom:0}
/* The last paragraph is the scope, not the argument: it drops to the reading size and to
   the muted grey, so the two above it stay the sentences a reader is meant to read first. */
.cover .qual p:last-child:not(:only-child){font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--muted)}
/* The way in is a line of type with a rule under it rather than a black block: a cover with
   one button on it reads as a product page, and this is the front of a document. */
.cover .begin{display:inline-flex;align-items:baseline;gap:var(--in-cell);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--ink);
  text-decoration:none;padding-bottom:var(--in-cell);border-bottom:1px solid var(--ink)}
.cover .begin .ar{display:inline-block;transition:transform .16s}
.cover .begin:hover{color:var(--accent);border-bottom-color:var(--accent)}
.cover .begin:hover .ar{transform:translateX(4px)}
.cover .coverfoot{position:relative;z-index:1;display:flex;justify-content:space-between;
  padding-top:var(--in-box);border-top:1px solid var(--hairline);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}

/* The art. A line engraving on white, so it is multiplied into the page rather than laid on
   top of it: its ground disappears and what is left is the drawing, the way it would print.
   It bleeds past the page margin on the right and never takes a click.
   Its width is a share of the page, as the type's is. It used to be viewport units against
   the type's percentage, and two measures that do not share a denominator cannot be made to
   add up: at 54% and 50vw they overlapped by about thirty pixels on a 1300px window, which
   nothing showed while the copy was long enough to sit above the drawing and which put a
   wing through the sentence the moment the copy was cut to one line. 54 and 46 add to the
   page, so the two cannot meet at any width. */
.cover .coverart{position:absolute;z-index:0;right:calc(-1 * var(--pad));
  bottom:clamp(52px,7vw,104px);width:46%;pointer-events:none}
.cover .coverart img{display:block;width:100%;height:auto;mix-blend-mode:multiply;opacity:.9}
@media (max-width:1080px){
  /* Under three columns the type and the drawing stop sharing a line, so the drawing takes
     its own: full measure, under the way in, still bleeding right. */
  .cover{overflow:visible}
  .cover .coverin{max-width:none}
  .cover .coverart{position:static;width:auto;margin:var(--step-apart) calc(-1 * var(--pad)) 0 0}
}
@media print{
  .cover .coverart{position:absolute;width:52%}
}

/* ---------- a bill drawn rather than tabled: its lines in two tiers ---------- */
.bill{margin:0 0 0 var(--ind);display:grid;
  grid-template-columns:minmax(0,1.55fr) 46px minmax(0,1fr);align-items:stretch}
.bill .btier{display:flex;flex-direction:column;gap:var(--in-cell)}
.bill .bh{margin:0 0 var(--in-hair);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding-bottom:var(--in-cell);border-bottom:1px solid var(--ink)}
.bill .bline{border-left:2px solid var(--accent);background:var(--accent05);padding:var(--in-box)}
.bill .btier.lost .bline{border-left-color:var(--claret);background:var(--claret05)}
.bill .bn{display:block;font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--ink);margin-bottom:var(--in-hair)}
.bill .bd{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.bill .brule{position:relative;display:flex;align-items:center;justify-content:center}
.bill .brule::before{content:'';position:absolute;top:34px;bottom:0;width:1px;
  background:var(--hairline)}
.bill .brule span{position:relative;writing-mode:vertical-rl;text-orientation:mixed;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);background:var(--page);padding:var(--in-cell) 0}

/* ---------- what the evidence cannot do, against what we do about it ---------- */
.limits{margin:0 0 0 var(--ind)}
.limits .lhead{display:grid;grid-template-columns:minmax(0,0.5fr) minmax(0,1fr);gap:0 var(--step-apart);padding:0 0 var(--in-cell);border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.limits .lrow{display:grid;grid-template-columns:minmax(0,0.5fr) minmax(0,1fr);gap:0 44px;
  padding:var(--in-box) 0;border-bottom:1px solid var(--grid)}
.limits .lrow:last-child{border-bottom:1px solid var(--hairline)}
.limits .lp,.limits .ld{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.limits .lp b{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink);margin-bottom:8px}
.limits .lp b:only-child{margin-bottom:0}
.limits .ld{border-left:1px solid var(--accent2);padding-left:var(--step-near);color:var(--secondary)}
/* The right column can carry the run of a whole row: what the challenge is, and then what
   was done about it. The first paragraph is the quieter of the two, because it is the one
   the left column has already named. */
.limits .ld p{margin:0}
.limits .ld p + p{margin-top:var(--step-close)}

/* ---------- and the same pair, sorted into kinds ---------- */
/* Five absences in one list read as a market nobody can size. Sorted, they are three
   different problems with three different answers — one we build past, one we count past,
   and one only an operator can close — and the sort is the argument the beat makes. */
.gaps{margin:0 0 0 var(--ind)}
.gaps .gapgrp + .gapgrp{margin-top:var(--step-section)}
.gaps .gapn{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:baseline;
  margin:0 0 var(--step-close);font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--ink)}
.gaps .gapn > span{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-style:italic;color:var(--accent)}
/* The kind's numeral hangs in a column of its own and everything else in the block — the
   kind's name, its scope line, the two column heads and every row under them — starts on
   one left edge inside it. It used to be the other way round: the name sat 34px right of
   the rows it headed, so the heading read as a child of its own children. */
.gaps{--gapn:34px}
.gaps .gaphead,.gaps .limits{margin-left:var(--gapn)}
.gaps .gaphead{display:grid;grid-template-columns:minmax(0,0.5fr) minmax(0,1fr);gap:0 44px;
  margin:var(--step-apart) 0 var(--step-near);padding:0 0 var(--step-tight);
  border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
/* The right head sits over the words in its column, not over the rule that starts it: the
   rows inset that column by their own border and padding, and the head has to match or it
   labels the gutter. */
.gaps .gaphead span:last-child{padding-left:calc(var(--step-near) + 1px)}
.gaps .limits .lrow:first-child{border-top:0}

/* A note under a table in a column, not another paragraph of the argument, so it takes a
   rule of its own and is pushed to the foot of its column: a pair of tables with different
   row counts still lands its two notes on one line. */
.cnote,.cols .c .cnote{margin:var(--step-close) 0 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);
  padding-top:var(--step-tight);border-top:1px solid var(--grid)}
.cols.two > .c{display:flex;flex-direction:column}
.cols.two > .c > .cnote{margin-top:auto}

@media (max-width:820px){
  .bill,.limits,.gaps{margin-left:0}
  .gaps{--gapn:0px}
  .gaps .gaphead span:last-child{padding-left:0}
  .bill{grid-template-columns:1fr;gap:26px}
  .bill .brule{display:none}
  .limits .lhead,.limits .lrow{grid-template-columns:1fr;gap:var(--in-box)}
  .limits .ld{border-left:0;padding-left:0}
}

/* ---------- the segment mark, and the three forms that carry it ---------- */
/* A study whose instrument varies by a cut its exhibits also cut on says so on the row.
   Three values, each carrying its word: the mark never rests on colour alone. */
.seg{display:inline-block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;padding:var(--in-hair) var(--in-cell);
  border:1px solid var(--hairline);color:var(--muted);white-space:nowrap}
.seg.seg-a{border-color:var(--accent);color:var(--accent);background:var(--accent05)}
.seg.seg-b{border-color:var(--grid);color:var(--secondary);background:var(--sunken)}

/* Not asked by design: struck through and labelled, never the hatch. The empty-cell rule
   keeps the two apart because one is a settled outcome and the other is unfinished work. */
.closed{display:inline-block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);text-decoration:line-through;
  text-decoration-color:var(--accent);white-space:nowrap}

/* ---------- gap map: one row a question ---------- */
table.ex.gapmap td{vertical-align:top;padding:var(--in-box) var(--in-cell)}
table.ex.gapmap td.k{color:var(--ink)}
table.ex.gapmap td.desk{color:var(--muted)}
table.ex.gapmap td.moves{color:var(--secondary);border-left:1px solid var(--grid)}
table.ex.gapmap td.who .seg{margin:0 0 var(--in-hair)}
table.ex.gapmap td.who .sub{display:block;color:var(--muted);margin-top:0}
table.ex.gapmap tr.grp td{color:var(--accent);background:var(--accent05);padding:var(--in-cell)}
table.ex.gapmap tr.grp .c{float:right;color:var(--muted)}

/* ---------- segmented grid ---------- */
table.ex.seggrid th{vertical-align:bottom}
table.ex.seggrid th .sub{display:block;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);
  margin-top:var(--in-hair)}
table.ex.seggrid td{vertical-align:top;padding:var(--in-box) var(--in-cell);text-align:center}
table.ex.seggrid td.k{text-align:left}
table.ex.seggrid td.k .sub{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);
  margin:var(--in-hair) 0 var(--in-cell)}
table.ex.seggrid td.sup{background:var(--sunken);color:var(--muted)}
table.ex.seggrid tr.lead td{background:var(--accent05)}
table.ex.seggrid tr.lead td.k b{color:var(--accent)}

/* ---------- measure strips ---------- */
.mstrips .bandrow{display:flex;align-items:baseline;gap:var(--in-cell);flex-wrap:wrap}
.mstrips .bandrow .bn{color:var(--muted)}
.mstrips .strip{align-items:start}
.mstrips .sl b{display:block;color:var(--ink)}
.mstrips .sl .seg{margin-top:var(--in-hair)}
.mstrips .sl em{display:block;color:var(--muted);margin-top:var(--in-hair)}
.mstrips .strip .st.scaled{background:none}
.mstrips .strip .st .hatch{height:18px}
.mstrips .strip .st:has(.closed){height:auto;background:none}
.mstrips .strip .st .closed + .sub{display:block;color:var(--muted);
  margin-top:var(--in-hair)}
.mstrips .st .tk{position:absolute;left:0;right:0;top:100%;display:flex;
  justify-content:space-between;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}
.mstrips .strip.prize{border-left:2px solid var(--accent);padding-left:var(--in-cell);
  margin-left:calc(0px - var(--in-cell) - 2px)}
.mstrips .strip.prize .sl b{color:var(--accent)}

/* The outline, taken from the deliverable's own shell rather than invented beside it: the
   same top bar, the same two-level rail with one section open at a time, the same evidence
   edge and the same Find. Only the token names change, because this deck's stylesheet
   names its colours differently from the one the shell was written against. */
html,body{height:100%}
body.deck{display:grid;grid-template-rows:56px 1fr;overflow:hidden}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;
  height:56px;padding:0 16px;background:var(--page);border-bottom:1px solid var(--grid)}
.topbar .brand{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;
  color:var(--muted);text-decoration:none}
.topbar .brand:hover b{color:var(--accent)}
.topbar .brand svg{flex:0 0 auto}
.topbar .brand b{font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--w-bold);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--ink)}
.topbar .brand .vsep{color:var(--disabled);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none}
.topbar .brand .vtag{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums}
.topbar .brand .crumb{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
button.findbtn{font:inherit;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;display:flex;align-items:baseline;gap:var(--in-cell);padding:var(--in-hair) var(--in-cell);border-radius:0;border:1px solid var(--hairline);background:transparent;color:var(--secondary);cursor:pointer}
button.findbtn:hover{background:var(--raised)}
button.findbtn kbd{font:inherit;color:var(--disabled)}

.shell{display:grid;grid-template-columns:var(--rail) 1fr 48px;min-height:0}
.shell .cover{--cover-above:56px}   /* the shell's top bar stands above a board in place of the board's own */
/* the cover carries nothing behind it: no notes tab, and the stage takes the gutter's width */
body.on-cover .shell{grid-template-columns:var(--rail) 1fr}
body.on-cover .drawer{display:none}

/* ---- the outline ---- */
.rail{background:var(--page);border-right:1px solid var(--grid);overflow:auto;
  padding:var(--in-box) 0 var(--step-near)}
.rail a,.rail button{font:inherit;text-align:left;width:100%;background:none;border:0;cursor:pointer;text-decoration:none;display:block}
/* The cover sits above the numbered sections, because that is where it sits in the deck. */
.rail .front{border-bottom:1px solid var(--grid);padding-bottom:8px;margin-bottom:8px}
.rail .front a{padding:var(--in-cell) var(--in-box);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);border-left:2px solid transparent}
.rail .front a:hover{background:var(--raised)}
.rail .sec > button{padding:var(--in-cell) var(--in-box);display:grid;grid-template-columns:22px 1fr;
  align-items:baseline;gap:8px}
.rail .sec > button:hover{background:var(--raised)}
.rail .sec .n{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;text-align:center;color:var(--accent);font-variant-numeric:tabular-nums}
.rail .sec .nm{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.rail .sec .q{display:block;margin-top:4px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}
.rail .sec[data-open="false"] .q{display:none}
.rail .sec[data-open="false"] .pages{display:none}
.rail .pages{padding:2px 0 8px}
.rail .pages a{padding:var(--in-hair) var(--in-box) var(--in-hair) calc(var(--in-box) + var(--step-near));display:grid;grid-template-columns:38px 1fr;gap:8px;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);border-left:2px solid transparent}
.rail .pages a:hover{background:var(--raised)}
.rail .pages a .ad{font-variant-numeric:tabular-nums;color:var(--muted)}
.rail a[aria-current="page"]{border-left-color:var(--accent);color:var(--ink);font-weight:var(--w-bold);background:var(--raised)}
.rail a[aria-current="page"] .ad{font-weight:var(--w-regular)}

/* ---- the page region ---- */
.stage{min-width:0;background:var(--page);display:grid;min-height:0}
.stage iframe{width:100%;height:100%;border:0;display:block;min-height:0}

/* ---- the evidence edge ---- */
.drawer{background:var(--page);border-left:1px solid var(--grid);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:12px;font:inherit;cursor:pointer;min-height:0}
.drawer:hover{background:var(--raised)}
.drawer .dicon{display:block}
.drawer .dicon svg{display:block}
.drawer .dlabel{writing-mode:vertical-rl;text-orientation:upright;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);overflow:hidden;min-height:0}
.drawer .dchev{margin-top:auto;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}

/* ---- find ---- */
.findov{position:fixed;inset:0;z-index:50;background:rgba(10,10,10,.28);display:flex;
  justify-content:center;align-items:flex-start;padding-top:12vh}
.findov[hidden]{display:none}
.findpanel{width:min(560px,calc(100vw - 48px));background:var(--page);
  border:1px solid var(--grid);box-shadow:0 16px 48px rgba(10,10,10,.2)}
#findq{width:100%;font:inherit;font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;padding:var(--in-box);border:0;border-bottom:1px solid var(--grid);outline:none;background:transparent;color:var(--ink)}
#findq::placeholder{color:var(--disabled)}
#findres{max-height:50vh;overflow:auto;padding:var(--in-hair) 0 var(--in-cell)}
#findres .fgroup{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:12px 16px 4px}
#findres .hit{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:baseline;width:100%;text-align:left;font:inherit;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;padding:var(--in-cell) var(--in-box);background:none;border:0;cursor:pointer;color:var(--secondary)}
#findres .hit:hover,#findres .hit.on{background:var(--raised)}
#findres .hit .ad{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums}
#findres .hit .k{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--disabled)}
#findres .none{padding:var(--in-box);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}

@media (max-width:900px){
  .shell{grid-template-columns:1fr 48px}
  body.on-cover .shell{grid-template-columns:1fr}
  .rail{display:none}
}
@media print{.rail,.topbar,.drawer,.findov{display:none}.shell{grid-template-columns:1fr}}

/* The board is drawn on whatever width it is given, so the indent and the exhibit columns
   above shrink on their own and most of this file's old breakpoints are gone. What is left
   are the two widths where a shape stops working rather than merely getting narrower.

   The reading pair used to collapse at 1180px, which is above every laptop's stage width —
   and it collapsed by setting one column while leaving the halves assigned to columns one
   and two, so the left half was squeezed into whatever the implicit second column left it.
   One word a line, on every board, at the width most people read at. */
@media (max-width:1080px){
  .keynums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .keynums > div:nth-child(2n){border-right:0}
  .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .defs.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .srcs{column-count:2}
}
/* ---------- the executive summary, in reverse ---------- */
/* Section one is set on black. Only the surface tokens change: every rule in this
   stylesheet already draws from them, so the section inverts without a second set of
   rules to keep in step with the first. The accents lift, because cobalt at #1A2FA8 and
   claret at #7A1C2B are chosen against white and neither survives on black. Brand's
   colour section states this scope as the inverted scope; the checker pairs it. */
body.dark{
  --page:#0A0A0A; --raised:#161616; --sunken:#1E1E1E;
  --grid:#2E2E2E; --hairline:#3D3D3D; --axis:#8A8A8A;
  --muted:#9A9A9A; --secondary:#D2D2D2; --ink:#FFFFFF; --disabled:#5C5C5C;
  --accent:#8C9CF2; --accent4:#6E80E6; --accent2:#3A47A0; --accent05:#101226;
  --accent8:#B9C2FA;
  --claret:#E28A98; --claret05:#2C1218;
  --g2:#8F8F8F; --g3:#5E5E5E;
}
body.dark b,body.dark strong{color:var(--ink)}
/* Section one's beat numerals take the page's own ink, not the accent. Every board after it
   numbers its beats in cobalt; the summary is the page that states the answer rather than
   arguing one, and the numeral is the quietest place to say which of the two a reader is on. */
body.dark .bandnum{color:var(--ink)}
/* The head rule and the exhibit frames were hairlines against white. */
body.dark .headrule{background:var(--hairline)}
body.dark table.ex th{border-bottom-color:var(--hairline)}

/* ---------- the appendix, in greys ---------- */
/* It documents the study rather than arguing from it, and the accents are how the deck
   says "this is the point". Only the accent tokens move; the surface stays as it is.
   Brand's colour section states this scope as the grey scope; the checker pairs it. */
body.grey{
  --accent:#3C3C3C; --accent4:#6B6B6B; --accent2:#CFCFCF; --accent05:#F2F2F2;
  --accent8:#2B2B2B; --claret:#4A4A4A; --claret05:#F0F0F0;
}

/* ---------- the notes strip: the one thing every page ends on ---------- */
/* The drawer is the same on every page, so the way into it is too. A reader who wants to
   know where a number came from looks in one place, and finds it in the same place next
   time. */
.endnotes{margin:var(--step-chapter) 0 0 var(--ind)}
.endopen{display:flex;width:100%;align-items:baseline;justify-content:space-between;gap:20px;
  padding:var(--step-close) 0;background:none;border:0;border-top:1px solid var(--axis);
  color:var(--ink);cursor:pointer;text-align:left}
.endopen .el{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--ink)}
.endopen .ec{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:var(--in-cell)}
.endopen .ea{display:inline-block;transition:transform .14s}
.endopen:hover{border-top-color:var(--accent)}
.endopen:hover .el,.endopen:hover .ec{color:var(--accent)}
.endopen:hover .ea{transform:translateX(3px)}
.endopen:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* A page that closes on the lavender panel keeps the strip clear of it. */
.close + .endnotes{margin-top:var(--step-section)}

@media (max-width:820px){
  .lede,.figwrap,.note,.exlab,.in,.keyrow,table.ex,.keynums,.graded,.tracks,.pairs,.panels,
  .strips,details.fold,.trkscale,.pairhead,.pairaxis,.defs,.display,.tree,.cols,.waitrow,.bridge,.axes{margin-left:0;margin:var(--step-apart) 0 0 var(--ind)}
  .bridgeaxis{margin-left:0}
  table.ex{width:100%}
  .bandnum{width:38px}
  .band.sub{margin-left:0;padding-left:var(--step-close)}
  /* Collapsing the pair means putting both halves in the one column that is left — and
     clearing the row each half was pinned to, or they stack on top of one another. */
  .note.split{grid-template-columns:1fr;row-gap:26px}
  .note.split > *{grid-column:1!important;grid-row:auto!important}
  .cols,.defs,.defs.three,.waitrow{grid-template-columns:1fr}
  .qq{grid-template-columns:1fr;gap:var(--step-tight) 0}
  .srcs{column-count:1}
  .keynums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trk,.trkscale{grid-template-columns:150px 1fr 72px}
  .prow,.pairhead,.pairaxis{grid-template-columns:130px 1fr 1fr 72px}
  .strip{grid-template-columns:130px 1fr 96px}
  .tree{grid-template-columns:1fr;row-gap:0}
  .tree .treeq{grid-row:1;padding-right:0;padding-bottom:var(--step-close)}
  .tree .branch{padding-left:var(--step-close);padding-bottom:var(--step-close)}
  .tree .tie,.tree .spine{display:none}
  .tree .branch::before{content:'';position:absolute;left:0;top:6px;bottom:14px;width:1px;
    background:var(--hairline)}
}

/* ---------- a footnote marker on the page ---------- */
button.fnm{font:inherit;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--accent);background:none;border:0;padding:0 0 0 var(--in-hair);cursor:pointer;vertical-align:super}
button.fnm:hover{text-decoration:underline}
/* the scope at the right of an exhibit head is the click into the exhibit's notes */
.exlab .scope{font:inherit;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);background:none;border:0;padding:0;cursor:pointer;border-bottom:1px dotted var(--hairline)}
.exlab .scope:hover{color:var(--accent);border-bottom-color:var(--accent)}
/* the element that has a working behind it: nothing is drawn on it; the cursor and a
   hover say so, and once open it says which figure the drawer is about */
[data-work]{cursor:pointer}
[data-work]:hover{outline:1px solid var(--hairline);outline-offset:3px}
[data-work]:has([data-work]:hover){outline:none}
[data-work].sel{outline:1px solid var(--ink);outline-offset:3px}
[data-work]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- the drawer ---------- */
.notes{position:fixed;top:0;right:0;bottom:0;width:min(var(--drawer),92vw);background:var(--page);
  border-left:1px solid var(--hairline);box-shadow:-18px 0 44px rgba(10,10,10,.09);
  z-index:40;display:flex;flex-direction:column}
.notes[hidden]{display:none}
body.notes-open .wrap{margin-right:calc(min(var(--drawer),92vw) + var(--pad))}
/* the stage the page has decides the drawer's width and whether it pushes or covers: the
   script sets body[data-stage] from the window, or from the pages column in the one-file deck */
body[data-stage="mid"]{--drawer:480px}
body[data-stage="narrow"].notes-open .wrap{margin-right:auto}
.notes .nhead{display:flex;align-items:center;justify-content:space-between;gap:var(--step-close);padding:var(--in-box) var(--step-near);border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.notes .nclose{font:inherit;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;background:none;border:0;color:var(--muted);cursor:pointer;padding:0}
.notes .nclose:hover{color:var(--ink)}
/* one column scrolls, and it holds two parts: the upper is what the reader clicked — the
   exhibit's notes, or one working — and the lower, under an ink rule, is the same on every
   page: footnotes on the page, and sources. The lower part sits at the foot of the column
   while the upper is short, and stands on its own under the head when the strip at the end
   of the page opens it. */
.notes .nscroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}
.notes .nbody{padding:0 var(--step-near) var(--step-section)}
.notes .nbody[hidden]{display:none}
.notes .nfoot{margin-top:auto;border-top:1px solid var(--ink);padding:0 var(--step-near) var(--step-section)}
.notes.foot-only .nfoot{margin-top:0;border-top:0}
.notes .nfoot .nf:first-child{border-top:0}
.notes .nbody p,.notes .nfoot p{margin:0 0 var(--step-tight);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .nbody p:last-child,.notes .nfoot p:last-child{margin-bottom:0}
.notes .nbody p b,.notes .nfoot p b{color:var(--ink);font-weight:var(--w-bold)}

/* the exhibit the notes belong to */
.notes .dx{padding:var(--step-apart) 0 var(--step-near)}
.notes .dx .what{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.notes .dx .dscope{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-top:var(--in-hair)}
/* The issue tree in the drawer: the drawer is one column, so the tree stands as it does on
   a narrow page — the question above the branches, each branch on its own line, its rows
   below it and the chips under the row they answer, all showing. */
.notes .tree{margin:0;grid-template-columns:1fr;row-gap:0}
.notes .tree .treeq{grid-row:1;grid-column:1;padding-right:0;padding-bottom:var(--step-close)}
.notes .tree .treeq p{margin:0;font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--w-bold);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--ink)}
.notes .tree .treeq{padding-top:var(--step-near)}
.notes .tree .branch{grid-column:1;padding-left:var(--step-close);padding-bottom:var(--step-close)}
.notes .tree .branch::before{content:'';position:absolute;left:0;top:6px;bottom:14px;width:1px;background:var(--hairline)}
.notes .tree .tie,.notes .tree .spine{display:none}
.notes .tree .bhead p{margin:0;font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--w-bold);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--ink)}
.notes .tree .row{grid-template-columns:1fr}
.notes .tree .row p{margin:0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .tree .chips{justify-content:flex-start}
.notes .tree .chip.here{background:var(--accent);border-color:var(--accent);color:var(--page)}
/* a row that opens a card says so under the pointer, and stays lit while its card shows */
[data-opens]{cursor:pointer}
[data-opens]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.notes .card{padding-top:var(--step-apart)}
.notes .card .dx:first-child{padding-top:0}     /* the card's own top is the one step */

/* ---------- the fixed folds: closed, counted, one marker ---------- */
.notes .nf{border-top:1px solid var(--grid)}
.notes .nf:last-child{border-bottom:1px solid var(--grid)}
.notes details.nf > summary,.notes .nf.none{list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:var(--step-close);padding:var(--in-box) 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.notes details.nf > summary{cursor:pointer}
.notes details.nf > summary::-webkit-details-marker{display:none}
.notes details.nf > summary:hover,.notes details.nf[open] > summary{color:var(--ink)}
.notes .nf .n{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--hairline);margin-left:auto}
/* the three marks the universal objects carry — notes, sources, and a figure that is ours —
   in the ink of the words beside them, on the face and in the drawer alike */
.ic{display:inline-block;width:12px;height:12px;flex:0 0 auto;vertical-align:-1px;margin-right:var(--in-hair);stroke-width:1}
.notes .ic{margin-right:var(--in-cell)}
.notes .dfig .est,.exlab .est{white-space:nowrap}
.notes .nfl{display:inline-flex;align-items:center}
.notes .glab{display:flex;align-items:center}
.notes details.nf > summary::after{content:'+';font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--accent)}
.notes details.nf[open] > summary::after{content:'–'}
.notes details.nf.lit > summary{color:var(--accent)}
.notes .nf .nfb{padding:0 0 var(--step-near)}
.notes .di{margin:0 0 var(--step-tight);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .di:last-child{margin-bottom:0}
.notes .di b{color:var(--ink);font-weight:var(--w-bold)}
/* a small table inside a fold */
.notes table.dtab{border-collapse:collapse;width:100%;margin:0 0 var(--step-tight)}
.notes table.dtab th{text-align:left;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:0 var(--in-cell) var(--in-cell) 0;border-bottom:1px solid var(--ink)}
.notes table.dtab td{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink);padding:var(--in-cell) var(--in-cell) var(--in-cell) 0;border-bottom:1px solid var(--grid);vertical-align:baseline;font-variant-numeric:tabular-nums}
.notes table.dtab th.r,.notes table.dtab td.r{text-align:right}
.notes table.dtab td:last-child,.notes table.dtab th:last-child{padding-right:0}
.notes table.dtab td.q{color:var(--muted)}
.notes table.dtab td b{color:var(--ink);font-weight:var(--w-bold)}
/* the footnotes, one a line, the marker in the accent */
.notes .nfn{display:grid;grid-template-columns:var(--step-close) 1fr;gap:var(--in-cell);margin:0 0 var(--step-tight);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .nfn .fnn{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent)}
.notes .nfn.lit{background:var(--accent05);margin-left:calc(-1 * var(--in-cell));padding:var(--in-cell);border-left:2px solid var(--accent)}
/* the sources: a page's own list, then the deck's register */
.notes .nsrcs{column-count:1}
.notes .nsrc{margin:0 0 var(--step-close);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .nsrc b{display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin-bottom:var(--in-cell)}
.notes .nsrc ul{list-style:none;margin:0;padding:0}
.notes .nsrc li{position:relative;padding-left:var(--step-tight);margin-bottom:var(--in-hair)}
.notes .nsrc li::before{content:'';position:absolute;left:0;top:.62em;width:3px;height:3px;background:var(--hairline)}

/* ---------- the working behind a figure ---------- */
.notes .dfig{padding:var(--step-apart) 0 var(--step-tight)}
.notes .dfig .what{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.notes .dfig .big{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--accent);margin:var(--in-cell) 0 var(--in-hair)}
.notes .dfig .big:first-child{margin-top:0}
.notes .dfig .dq{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.notes .dg{padding:var(--step-apart) 0 0}
.notes .dg > .glab{display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:0 0 var(--step-close)}
.notes .dg.df{padding-top:var(--step-near)}
.notes .dg.df .nf:first-child{border-top:0}
/* a formula: terms side by side, the sign between them */
.notes .fx{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--step-tight)}
.notes .fx .op,.notes .fx .konst{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--muted);align-self:center;flex:0 0 auto}
.notes .fx .konst{color:var(--secondary)}
.notes .fx > .op:has(+ details.term[open]){display:none}
.notes .term{flex:1 1 220px;min-width:0}
.notes details.term[open]{flex-basis:100%}
.notes details.term > summary{list-style:none;cursor:pointer;display:block;padding:var(--in-box);border:1px solid var(--grid);background:var(--raised)}
.notes details.term > summary::-webkit-details-marker{display:none}
.notes details.term > summary:hover{border-color:var(--hairline);background:var(--page)}
.notes details.term[open] > summary{border-color:var(--ink);background:var(--page)}
.notes .term.leaf .tbox,.notes details.term.asm .tsrcs{margin:0}
.notes .term.leaf .tbox{padding:var(--in-box);border:1px dashed var(--hairline)}
/* a read figure's source: one mark in the corner of its own box, opening inside it */
.notes .tsrcs{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:0 var(--in-cell);margin-left:auto}
.notes .tsrcs:has(> details[open]){flex:1 1 100%}
.notes details.term.asm .tsrcs{margin-top:var(--step-tight)}
.notes .tsrc[open]{flex:1 1 100%}
.notes .tsrc > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--in-hair);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--accent);white-space:nowrap}
.notes .tsrc > summary::-webkit-details-marker{display:none}
.notes .tsrc[open] > summary{display:flex;justify-content:flex-end}
.notes .tsrc > summary:hover{text-decoration:underline}
.notes .tsrc.lit > summary{background:var(--accent05)}
.notes .tsrc .tsb{margin-top:var(--in-cell);padding:0 0 0 var(--in-box);border-left:1px solid var(--accent2);text-align:left}
.notes .tsrc .tsb .sn{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.notes .tsrc .tsb .sd{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-top:var(--in-hair)}
.notes .tsrc .tsb p{margin:var(--in-cell) 0 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .tsrc .tsb .out{display:inline-block;margin-top:var(--in-cell);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--accent);text-decoration:none}
.notes .tsrc .tsb .out:hover{text-decoration:underline}
/* the analysis inputs: the sources' names, each lighting its line under a box */
.notes .di p{margin:0 0 var(--in-cell)}
.notes .di .inp{font:inherit;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink);background:none;border:0;padding:0;cursor:pointer;text-align:left}
.notes .di .inp:hover{color:var(--accent)}

/* ---------- the beat rail ---------- */
/* The scrollbar's place is taken by the board's own beats: a hairline — in the shell, the
   outline's own rule, the navigation column's right border; on a page of its own, at the
   right edge — the part of the board in view marked on it in grey, a dot where each beat
   starts, the current one filled in grey, the beat's numeral and title on hover, a dot a
   click that glides to its beat. Greys, faint ones — the band the hairline, the current dot
   the disabled step — because the rail is chrome and the accent is for what the page says.
   The cover carries no rail, as it carries no notes. The rail shows while the board scrolls and for a moment after, and
   at the pointer's approach; at rest it fades. The native bar is hidden on the board; the
   drawer keeps a quiet one, since a text panel is dragged. */
html,#pages{scrollbar-width:none}
html::-webkit-scrollbar,#pages::-webkit-scrollbar{display:none}
.notes .nscroll{scrollbar-width:thin;scrollbar-color:var(--hairline) transparent}
.notes .nscroll::-webkit-scrollbar{width:8px}
.notes .nscroll::-webkit-scrollbar-track{background:transparent}
.notes .nscroll::-webkit-scrollbar-thumb{background:var(--hairline);border-radius:4px}
.brail{position:fixed;top:var(--step-near);bottom:var(--step-near);right:18px;width:1px;background:var(--hairline);z-index:30;opacity:0;transition:opacity .3s}
.brail.live{opacity:1}
.brail.onrule{background:transparent}     /* the shell's own rule is the line */
.brail[hidden],body.notes-open .brail{display:none}
.brail .bthumb{position:absolute;left:0;width:2px;background:var(--hairline)}   /* the part in view: a faint band on the rule, not a line */
.brail .bmark{position:absolute;left:50%;width:16px;height:16px;transform:translate(-50%,-50%);background:none;border:0;padding:0;cursor:pointer}
.brail .bmark::after{content:'';position:absolute;left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);border-radius:50%;background:var(--page);border:1px solid var(--hairline)}
.brail .bmark.on::after{background:var(--disabled);border-color:var(--disabled)}
.brail .bmark:hover::after{border-color:var(--ink)}
@media print{.brail{display:none}}
.notes .term .tn{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.notes .term .opin{display:none;font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--muted);margin-right:var(--in-cell)}
.notes details.term[open] > summary .opin{display:inline}
.notes .term .tv{display:block;font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--ink);margin-top:var(--in-hair)}
.notes .term .tq{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.notes .term .tb{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--step-tight);margin-top:var(--in-cell)}
.notes .term .basis{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center}
.notes .term .basis.est{color:var(--ink)}
.notes details.term > summary .more::after{content:'+';font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--accent)}
.notes details.term[open] > summary .more::after{content:'–'}
.notes .term .way{font:inherit;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap}
.notes .term .way:hover{text-decoration:underline}
.notes details.term .sub{margin:var(--step-tight) 0 0;padding:var(--in-box) 0 var(--in-cell) var(--in-box);border-left:1px solid var(--accent2)}
/* what we assumed, under the figure that assumes it */
.notes details.term .sub.asm{border-left-color:var(--g3)}
/* a bracketed part of a formula is one item, so it and its sign wrap together */
.notes .fx .grp{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--step-tight);flex:1 1 auto;min-width:0}
.notes .fx .grp:has(details.term[open]){flex-basis:100%}
.notes .fx .grp > .op:first-child,.notes .fx .grp > .par{align-self:center}
/* a sum of many terms stands in a column, each sign on the line of its term */
.notes .fx.stack{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--step-tight) var(--in-cell)}
.notes .fx.stack > .op:has(+ details.term[open]){display:block}
.notes .fx.stack details.term[open] > summary .opin{display:none}
/* the key comments, under the formula and nowhere between its terms */
.notes .dn p{margin:0 0 var(--step-tight);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .dn p:last-child{margin-bottom:0}
/* the sources reached, each with why it is the one, and what was assumed */
.notes .src{padding:var(--step-close) 0}
.notes .src + .src{border-top:1px solid var(--grid)}
.notes .src.lit{margin:0 calc(-1 * var(--in-box));padding-left:calc(var(--in-box) - 2px);padding-right:var(--in-box);border-left:2px solid var(--accent);background:var(--accent05)}
.notes .src .sn{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.notes .src .sd{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-top:var(--in-hair)}
.notes .src p{margin:var(--in-cell) 0 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .src .out{display:inline-block;margin-top:var(--step-tight);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--accent);text-decoration:none}
.notes .src .out:hover{text-decoration:underline}

@media print{
  .topbar,.pager,.outline,.find{display:none!important}
  .band{padding-top:var(--step-near);break-inside:avoid}
  .head{padding-top:0}
  h1,h2,.exlab,.bandhead{break-after:avoid}
  table.ex tr,.grow,.trk,.prow,.strip,.panel,.keynums > div,.qq,.note p{break-inside:avoid}
  details.fold{background:none}
  details.fold > summary::after,details.rp > summary::after{content:''}
  details.fold .fbody{display:block!important}
  details.rp .rpb{display:block!important}
  .close{margin:var(--step-apart) 0 0;background:none;border-top:1px solid var(--ink);padding:var(--step-near) 0}
}
/* The figure vocabulary of the five drafted pages: the reference board's flow figure, week strip
   and three columns, and the three numerical boards' comparison, map, walk, waterfall,
   year, narrowing bar and player cards. Once read out of the two mocks at build time; now the
   build's own, in recipes. Text is set only by naming a recipe — see design.py. */
/* One edge. Every exhibit here hangs on the same indent the engine's exhibits hang on, and
   so does the label above it. Five of them used to sit at the page margin instead — the
   map, the waterfall, the year table, the narrowing bar and the call-out — which left each
   of those labels indented an inch to the right of the exhibit it was naming. */
/* ---------- segment icons ---------- */
.ico{width:14px;height:14px;flex:0 0 auto;vertical-align:-2px;color:var(--accent)}
.ico.big{width:18px;height:18px;vertical-align:-3px}

/* ---------- flow figure ---------- */
svg.fig{display:block;width:100%;height:auto;overflow:visible}
.nlabel{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;fill:var(--ink);paint-order:stroke fill;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.nsub{font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;fill:var(--muted);paint-order:stroke fill;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.elab{font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;fill:var(--accent);paint-order:stroke fill;stroke:#fff;stroke-width:4.5px;stroke-linejoin:round}
/* A segment name inside the figure is the same name the three-column grid sets below it, so
   it is set the same way: the serif head, not the sans cell the descriptors take. */
.nname{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;fill:var(--ink)}
/* The segment icons, drawn straight into the figure. The sprite's symbols paint in
   currentColor, so colour is the only thing this has to set. */
svg.fig .fico{color:var(--accent)}
.colhead{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;fill:var(--muted)}

/* ---------- week strip ---------- */
.week{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.wrow{display:grid;grid-template-columns:150px repeat(7,1fr);border-bottom:1px solid var(--grid);min-height:46px}
.wrow.days{border-bottom:1px solid var(--hairline);min-height:0}
.rl{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);display:flex;align-items:center;padding:var(--step-tight) var(--in-box) var(--step-tight) 0}
.wcell{border-left:1px solid var(--grid);padding:var(--step-tight) var(--in-cell);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;display:flex;align-items:center}
.wrow.days .wcell{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.wcell.own{background:var(--accent);color:#fff;font-weight:var(--w-bold)}
.wcell.chr{background:var(--accent2);color:var(--accent8);font-weight:var(--w-bold)}
.wcell.emp{background:repeating-linear-gradient(45deg,#fff,#fff 4px,var(--grid) 4px,var(--grid) 5px);color:var(--muted)}
.wcell.idle{background:var(--raised);color:var(--muted)}
.wcell.dim{color:var(--muted)}
.wrow.kind .wcell{font-weight:var(--w-bold)}
.kpriv{color:var(--accent)} .kcomm{color:var(--accent8)}

.wrow.segband{border-bottom:0;min-height:0}
.wrow.segband .rl{color:var(--accent8)}
.wcell.blank{border-left:0;background:none}
.segs{display:flex;align-items:center;gap:var(--in-cell);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;padding:var(--in-cell);margin:0 0 var(--in-hair);border-bottom:2px solid var(--accent)}
.segs.mg{background:var(--accent05);color:var(--accent)}
.segs.ch{background:var(--accent05);color:var(--accent);border-bottom-color:var(--accent2)}

/* ---------- three columns ---------- */
.grid3{margin:0 0 0 var(--ind);display:grid;grid-template-columns:186px repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.g3h{padding:var(--in-box) var(--step-close);border-left:1px solid var(--grid);border-bottom:1px solid var(--ink);
  display:flex;align-items:center;gap:var(--in-box)}
.g3h:first-child{border-left:0}
.g3h .nm{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none}
.g3r{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:20px 16px 20px 0;border-bottom:1px solid var(--grid);display:flex;align-items:flex-start}
.g3r.sub{padding-left:20px;color:var(--accent8)}
.g3r.sub::before{content:'';position:absolute;margin-left:calc(-1 * var(--in-box));margin-top:.35em;width:6px;height:6px;
  border-left:1px solid var(--accent2);border-bottom:1px solid var(--accent2)}
.g3c{padding:20px 20px;border-left:1px solid var(--grid);border-bottom:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.g3c b{font-weight:var(--w-bold);color:var(--ink)}
.g3c .fig{font-variant-numeric:tabular-nums;font-weight:var(--w-bold);color:var(--ink)}
.g3c .say{color:var(--ink);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none}
.g3last .g3r,.g3last .g3c{border-bottom:1px solid var(--ink)}
.g3c.year{padding-bottom:8px}

/* year bar + the bracket that points at the empty part */
.yb{display:flex;height:18px}
.yb i{display:block;height:100%}
.yb .own{background:var(--accent)} .yb .chr{background:var(--accent2)}
.yb .emp{background:repeating-linear-gradient(45deg,#fff,#fff 3px,var(--g3) 3px,var(--g3) 4px);
  box-shadow:inset 0 0 0 1.5px var(--accent)}
.yb .idl{background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid)}
.brk{position:relative;height:24px}
.brk .bar{position:absolute;top:3px;height:6px;border:1px solid var(--accent);border-top:0}
.brk .drop{position:absolute;top:9px;width:0;height:9px;border-left:1px solid var(--accent)}
.brk .drop::after{content:'';position:absolute;left:-3.5px;bottom:-5px;width:0;height:0;
  border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--accent)}
.brk .txt{position:absolute;top:11px;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent);white-space:nowrap}

.g3c.util .utr{display:block;height:14px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid);margin-bottom:var(--in-cell)}
.g3c.util .ubar{display:block;height:14px;background:var(--accent)}
.g3c.util .ubar.g{background:var(--g3)}
.g3c.util .uv{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.g3c.util .uv b{color:var(--ink);font-variant-numeric:tabular-nums}
.g3c.year .say{margin-top:8px;display:block}
.g3c.year .brk{height:16px}

table.mini{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;margin-top:20px}
table.mini th{text-align:left;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:0 16px 8px 0;border-bottom:1px solid var(--ink)}
table.mini th.r,table.mini td.r{text-align:right;font-variant-numeric:tabular-nums}
table.mini td{padding:var(--in-cell) var(--in-box) var(--in-cell) 0;border-bottom:1px solid var(--grid);color:var(--secondary)}
table.mini tr.grp td{background:var(--raised);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--ink)}
details.fold .fbody table.mini + p{margin-top:var(--step-near)}   /* the fold's own rule sets a paragraph's top to zero */

/* ---------- beat 4 chart ---------- */
.gchart{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.gseg{border-bottom:1px solid var(--grid);padding:var(--step-close) 0;display:grid;grid-template-columns:186px 1fr}
.gchart > .gseg:nth-of-type(2){border-bottom:0}
.gseg:last-of-type{border-bottom:1px solid var(--ink)}
.gseg .nm{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;padding-right:var(--step-close);display:flex;align-items:center;gap:var(--in-box)}
.gbars{display:flex;flex-direction:column;gap:var(--in-cell)}
.gb{display:grid;grid-template-columns:76px 1fr 128px;align-items:center;gap:16px}
.gb .lb{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);text-align:right}
.gb .tr{display:block;height:22px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid);position:relative}
.gb .fl{display:block;height:22px;background:var(--g2);position:relative}
.gb .fl.a{background:var(--accent)}
.gb .pc{position:absolute;top:0;height:22px;display:flex;align-items:center;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;font-variant-numeric:tabular-nums}
.gb .pc.inside{right:9px;color:#fff}
.gb .pc.inside.dark{color:var(--ink)}
.gb .pc.outside{left:calc(100% + 8px);color:var(--accent)}
.gb .vv{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--secondary)}
.gb .vv em{font-style:normal;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.gaxis{display:grid;grid-template-columns:186px 1fr;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.gaxis .s{display:grid;grid-template-columns:76px 1fr 128px;gap:16px;padding-top:8px}
.gaxis .s .t{display:flex;justify-content:space-between}

.scopelab{display:grid;grid-template-columns:186px 1fr;gap:0 var(--step-close);padding:var(--in-cell) 0;border-bottom:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase}
.scopelab .k{font-weight:var(--w-bold);color:var(--accent)}
.scopelab .w{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.scopelab.out{margin-top:0;border-top:1px solid var(--ink)}
.scopelab.out .k{color:var(--claret)}

.gseg.out .nm{color:var(--claret)} .gseg.out .nm .ico{color:var(--claret)}
.gseg.out .gb .fl{background:var(--g2)} .gseg.out .gb .fl.a{background:var(--claret)}
.gseg.out .gb .pc.outside{color:var(--claret)}



/* ============ ADDED FOR THE TWO NUMERICAL BOARDS ============ */

/* ---- hatch, the "not yet" mark ---- */
.hatch{background:repeating-linear-gradient(45deg,#fff,#fff 3px,var(--g3) 3px,var(--g3) 4px)}

/* ---- two-industry comparison ---- */
.cmp{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.cmph{display:grid;grid-template-columns:186px 1fr 1fr 132px;border-bottom:1px solid var(--ink)}
.cmph .corner{padding:var(--in-box) var(--in-box) var(--in-cell) 0;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);display:flex;align-items:flex-end}
.cmph .ch{padding:var(--in-box) var(--in-box) var(--in-cell);border-left:1px solid var(--grid);display:flex;align-items:center;gap:var(--in-cell)}
.cmph .ch .nm{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none}
.cmph .ch.g .nm{color:var(--secondary)}
.cmph .gr{padding:var(--in-box) 0 var(--in-cell) var(--in-box);border-left:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);display:flex;align-items:flex-end}
.cmpr{display:grid;grid-template-columns:186px 1fr 1fr 132px;border-bottom:1px solid var(--grid)}
.cmpr:last-of-type{border-bottom:1px solid var(--ink)}
.cmpr .rl2{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:var(--in-box) var(--in-box) var(--in-box) 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
/* The annotation beside a value used to sit in a 64px second column, which is narrower
   than most of the sentences it holds: the airline note came out one word a line and the
   unit gloss came out vertical. A note under the value reads; a note in a 64px gutter does
   not, however marginal it was meant to look. */
.cmpc{border-left:1px solid var(--grid);padding:var(--in-box);display:grid;
  grid-template-columns:minmax(0,1fr);row-gap:var(--in-cell);align-content:center}
.cmpc > .v,.cmpc > .tr,.cmpc > .gr2,.cmpc > .nodata{grid-column:1}
.cmpc .v{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-variant-numeric:tabular-nums}
.cmpc .v small{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-left:var(--in-hair)}
/* Two segments in one bar sit end to end, so the track is a row rather than a block. */
.cmpc .tr{display:flex;height:10px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid)}
.cmpc .fl{display:block;height:10px;background:var(--g2)}
.cmpc .fl.a{background:var(--accent)}
.cmpc .fl.new{background:var(--g3)}
.cmpc .fl.a.new{background:var(--accent2)}
.cmpc .fl.new{position:relative;overflow:visible}
.cmpc .fl.new .dlv{position:absolute;right:0;top:-1px;height:12px;display:flex;align-items:center;padding-right:var(--in-hair);font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap}
/* the row that splits the flying into the part somebody buys */
.cmpr.split .cmpc .tr,.cmpr.split .cmpc .fl{height:22px}
.cmpr.split .cmpc .fl.com{background:var(--accent);position:relative}
.cmpr.split .cmpc .fl.own{background:#fff;box-shadow:inset 0 0 0 1px var(--accent2);position:relative}
.cmpr.split .cmpc .fl span{position:absolute;left:9px;top:0;height:22px;display:flex;align-items:center;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:#fff;white-space:nowrap}
.cmpr.split .cmpc .fl.own span{color:var(--accent8)}
.cmpr .rl2 em{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;display:block;margin-top:var(--in-hair);color:var(--disabled)}
.cmpc.none{color:var(--muted);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;display:block}
.cmpc.none b{display:block;color:var(--ink);font-weight:var(--w-bold);margin-bottom:4px}
.cmpg{border-left:1px solid var(--grid);padding:var(--in-box) 0 var(--in-box) var(--in-box);display:flex;align-items:center;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums}
.cmpg.up{color:var(--accent)} .cmpg.flat{color:var(--secondary)} .cmpg.na{color:var(--muted);font-weight:var(--w-regular)}
.cmpg{flex-direction:column;align-items:flex-start;gap:4px}
.cmpg .rt2{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--ink)}
.cmpg .rw{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.cmpg .rt2{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none}

/* ---- geography: selector map + ranked bars ---- */
/* The beat takes the whole measure rather than hanging on the beat indent, the map gets
   half again the width it had, and the table drops to the foot of the beat under both. */
.geo{margin:0 0 0 var(--ind);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--step-near) var(--step-apart);border-top:1px solid var(--ink);padding-top:var(--step-close);align-items:start}
.geo > .rbars{grid-column:1 / -1}
.map{position:relative}
.map svg{display:block;width:100%;height:auto}
.map{padding-top:var(--in-hair);position:relative}
.mlab{position:absolute;transform:translate(-50%,-50%);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);white-space:nowrap;pointer-events:none;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.mlab.sel{color:var(--accent)}
.mlab{cursor:pointer;pointer-events:auto}
.mlab .mv{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.mlab.sel .mv{color:#fff;background:var(--accent);padding:2px var(--in-hair)}
.rcardcol{min-width:0}
/* One tone a region, and no country borders: the paths are compound, so a stroke would
   outline every country inside a region rather than the region itself. */
/* The regions carry an outline, so the boundary between two of them is a line a reader can
   see rather than a change of grey they have to infer — the North America / Latin America
   boundary most of all, which is where this page's largest two shares meet. */
.map .land{stroke:var(--muted);stroke-width:.4;stroke-linejoin:round;cursor:pointer;
  transition:fill .12s}
.map .land.r-na{fill:#DEDEDE} .map .land.r-eu{fill:#E6E6E6} .map .land.r-as{fill:#ECECEC}
.map .land.r-la{fill:#E2E2E2} .map .land.r-me{fill:#E9E9E9} .map .land.r-af{fill:#EFEFEF}
.map .land.xx{fill:#F4F4F4;stroke:#E2E2E2;stroke-width:.35;cursor:default}
.map .land.sel{fill:var(--accent)}
.map .land:not(.xx):hover{fill:var(--accent2)}
.map .land.sel:hover{fill:var(--accent)}
.map .land.xx{fill:#F4F4F4;stroke:#E2E2E2;stroke-width:.35;cursor:default}
.map .land.sel{fill:var(--accent)}
.map .land.zero{fill:var(--sunken)}
.map .land{transition:fill .12s}
.rbars{}
.sm{display:grid;grid-template-columns:132px repeat(5,1fr);border-top:1px solid var(--ink)}
.smh{border-bottom:1px solid var(--ink)}
.sm .hc{padding:var(--step-tight) var(--in-cell) var(--in-cell);border-left:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);align-self:end}
.sm .hc:first-child{border-left:0;padding-left:0}
.sm .rn2{padding:var(--step-tight) var(--in-box) var(--step-tight) 0;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--grid);display:flex;align-items:center}
.sm .cc{padding:var(--step-tight) var(--in-box);border-left:1px solid var(--grid);border-bottom:1px solid var(--grid);
  display:grid;grid-template-columns:1fr 52px;gap:var(--in-cell);align-items:center}
.sm .cc .tr{display:block;height:13px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid)}
.sm .cc .fl{display:block;height:13px;background:var(--g2)}
.sm .cc .fl.a{background:var(--accent)}
.sm .cc .fl.ops{background:var(--accent8)}
.sm .cc .fl.dl{background:var(--g3)}
.sm .cc .fl.ppl{background:var(--accent2)}
/* one figure for two regions: the cell stands across both rows */
.sm .cc.span2{grid-row:span 2;border-bottom:1px solid var(--ink)}
.sm .cc .fl.inf{background:none;box-shadow:inset 0 0 0 1px var(--g2);
  background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--g3) 3px,var(--g3) 4px)}
.sm .cc .fl.none{background:none;
  background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--grid) 6px,var(--grid) 7px)}
.sm .cc .cv{white-space:nowrap;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;text-align:right}
.sm .cc .cv.dim{color:var(--muted);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase}
.sm .srow.sel .rn2{color:var(--accent)}
.sm .srow.sel .rn2,.sm .srow.sel .cc{background:var(--accent05)}
.sm .lastrow .rn2,.sm .lastrow .cc{border-bottom:1px solid var(--ink)}
.deflegend{margin:var(--step-close) 0 0 var(--ind);display:grid;grid-template-columns:repeat(3,1fr);gap:0 44px;border-top:1px solid var(--grid);padding-top:12px}
.deflegend .dl{display:grid;grid-template-columns:22px 1fr;gap:0 8px;align-items:start}
.deflegend i{display:block;width:18px;height:11px;margin-top:2px}
.deflegend i.a{background:var(--accent)} .deflegend i.f{background:var(--g2)}
.deflegend i.inf{box-shadow:inset 0 0 0 1px var(--g2);
  background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--g3) 3px,var(--g3) 4px)}
.deflegend i.nn{box-shadow:inset 0 0 0 1px var(--grid);
  background-image:repeating-linear-gradient(45deg,transparent,transparent 5px,var(--grid) 5px,var(--grid) 6px)}
.deflegend b{display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--ink);margin-bottom:4px}
.deflegend p{margin:0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}

/* ---- the hours walk: nested bands ---- */
.walk{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.wkr{display:grid;grid-template-columns:250px 1fr 116px 96px;border-bottom:1px solid var(--grid);align-items:center}
.wkr:last-of-type{border-bottom:1px solid var(--ink)}
.wkr .wl{padding:var(--in-box) var(--in-box) var(--in-box) 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none}
.wkr .wl .ri{display:inline-flex;align-items:center;gap:8px}
.wkr .wl .ri.acc{color:var(--accent)}
.wkr .wl .nm{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--ink);display:block}
.wkr .wl em{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);display:block;margin-top:var(--in-hair)}
.wkr.d1 .wl{padding-left:var(--step-close);position:relative}
.wkr.d2 .wl{padding-left:var(--step-apart);position:relative}
.wkr.d1 .wl::before,.wkr.d2 .wl::before{content:'';position:absolute;left:6px;top:0;bottom:0;
  width:1px;background:var(--grid)}
.wkr.d2 .wl::before{left:28px}
.wkr.d2 .wl .nm{color:var(--accent)}
.wkr .wt{padding:var(--in-box);border-left:1px solid var(--grid)}
.wkr .tr{display:block;height:20px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid);position:relative}
.wkr .fl{display:block;height:20px;background:var(--g2);position:relative}
.wkr .fl.a{background:var(--accent)}
.wkr .fl.tot{background:var(--muted)}
.wkr .pc{position:absolute;top:0;height:20px;display:flex;align-items:center;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums}
.wkr .pc.inside{right:9px;color:#fff}
.wkr .pc.outside{left:calc(100% + 9px);color:var(--muted)}
.wkr .wv{padding:var(--in-box) 0 var(--in-box) var(--in-box);border-left:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums}
.wkr .wv em{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);display:block;margin-top:var(--in-hair)}
.wkr .wg{padding:var(--in-box) 0 var(--in-box) var(--in-box);border-left:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--accent)}
.wkr .wg em{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);display:block;margin-top:var(--in-hair)}
.wkr.hl{background:var(--accent05)}
.walkhead{display:grid;grid-template-columns:250px 1fr 116px 96px;border-bottom:1px solid var(--ink)}
.walkhead div{padding:var(--in-cell) var(--in-box);border-left:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.walkhead div:first-child{border-left:0;padding-left:0}

/* ---- a simple two-measure fragmentation strip ---- */
.frag{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.fgr{display:grid;grid-template-columns:250px 1fr 128px;border-bottom:1px solid var(--grid);align-items:center}
.fgr:last-of-type{border-bottom:1px solid var(--ink)}
.fgr .fl2{padding:var(--in-box) var(--in-box) var(--in-box) 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.fgr .fl2 b{color:var(--ink);font-weight:var(--w-bold)}
.fgr .ft{padding:var(--in-cell) var(--in-box);border-left:1px solid var(--grid)}
.fgr .tr{display:block;height:16px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--grid)}
.fgr .fl{display:block;height:16px;background:var(--g2)}
.fgr .fl.a{background:var(--accent)}
.fgr .fv{padding:var(--in-box) 0 var(--in-box) var(--in-box);border-left:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums}
.fgr .fv em{font-style:normal;font-weight:var(--w-regular);color:var(--muted)}
.fgr.pk{background:var(--accent05)}
.fgr.pk .fl2 b{color:var(--accent)}

@media (max-width:960px){
  .cmp,.geo,.walk,.rng,.frag{margin-left:0}
  .geo{grid-template-columns:1fr}
}

/* ---- the card a region click opens ---- */
.rcard{margin-top:var(--in-box);border-top:1px solid var(--ink);padding-top:var(--in-box)}
.rcard .rh{display:flex;align-items:baseline;justify-content:space-between;gap:var(--in-box);margin-bottom:var(--in-hair)}
.rcard .rh .nm{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none}
.rcard .rh .pin{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent)}
.rcard .sub{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.rcard dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0}
.rcard dl > div{padding:var(--in-cell) 0;border-top:1px solid var(--grid)}
.rcard dl > div:nth-child(even){padding-left:var(--in-box);border-left:1px solid var(--grid)}
.rcard dt{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin-bottom:var(--in-hair)}
.rcard dd{margin:0;font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-variant-numeric:tabular-nums}
.rcard dd small{display:block;margin:var(--in-hair) 0 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.rcard dd.acc{color:var(--accent)}
.rcard .read{margin:var(--in-box) 0 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);border-top:1px solid var(--grid);padding-top:var(--in-box)}
.rcard .read b{color:var(--ink);font-weight:var(--w-bold)}

/* ---- a value paired with its growth, inside a comparison cell ---- */
.cmpr .rl2 em{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-top:var(--in-hair)}
/* Three figures where the airline cell has one, side by side so the row keeps the height of
   a row: values on one baseline, and the one figure that is an absence hangs its reason
   under the baseline rather than pushing its value up. */
.cmpc .cfigs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--in-box);align-items:end;
  grid-column:1;margin:0}
.cmpc .cfigs .cfig.wide{grid-column:1 / span 2}
.cmpc .cfigs .cfig{display:flex;flex-direction:column;gap:var(--in-hair);margin:0;padding:0;min-width:0}
.cmpc .lb2{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.cmpc .cfigs .cfig .vv2{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-variant-numeric:tabular-nums}
.cmpc .cfigs .cfig .vv2.acc{color:var(--accent)}

/* the row that is the study's scope */
/* One outline, on the row. It used to be a border on each of the row's four cells, and the
   cells are centred inside the row and each is only as tall as its own content — so one row
   was drawn as four disconnected segments at four different heights, and the two on the
   right hung below the two on the left. The row's own box is the only box that is the row. */
.wkr.scope{background:var(--accent05);position:relative;margin-top:-1px;
  border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);
  box-shadow:inset 2px 0 0 0 var(--accent),inset -1px 0 0 0 var(--accent)}
.wkr.scope .wl .nm{color:var(--accent)}
.wkr.scope .wg em{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent)}
.wkr .wl .sc{display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent);margin-top:var(--in-hair)}

@media (max-width:960px){ .geo{grid-template-columns:1fr} .scope2{grid-template-columns:1fr} }

.cmpr.tall .cmpc{align-content:start}
.cmpr.tall .cmpc > .tr{margin-top:2px}
.mlab.sel{color:#fff;text-shadow:none}

/* ============ ADDED FOR BOARD TWO — THE COMMERCIAL MARKET ============ */


/* ---- the appendix band ---- */
.appx{margin-top:var(--step-chapter);border-top:1px solid var(--axis);padding-top:var(--step-near)}
.appx > .ah{display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  margin:0 0 8px var(--ind)}
.appx > .ah h2{font-family:var(--serif);font-size:var(--r-beat-size);font-weight:var(--r-beat-weight);line-height:var(--r-beat-lh);letter-spacing:var(--r-beat-ls);text-transform:none;font-style:italic;margin:0}
.appx > .ah .apin{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent);white-space:nowrap}
.appx > .alede{margin:0 0 var(--step-near) var(--ind);font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--secondary);max-width:74ch}
/* the appendix's folds carry no fill, and the first stands clear of the head (7 September 2026) */
.appx details.fold{margin-top:0;background:none}
.appx > .ah + details.fold{margin-top:var(--step-near)}
table.mini2{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums}
table.mini2 th{text-align:left;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding:var(--in-cell) var(--in-box) var(--in-cell) 0;border-bottom:1px solid var(--ink);vertical-align:bottom}
table.mini2 td{padding:var(--in-cell) var(--in-box) var(--in-cell) 0;border-bottom:1px solid var(--grid)}
table.mini2 th.r,table.mini2 td.r{text-align:right;padding-right:16px}
table.mini2 th.r:last-child,table.mini2 td.r:last-child{padding-right:0}
table.mini2 tr.grp td{font-weight:var(--w-bold);background:var(--raised)}
table.mini2 tr.acc td{color:var(--accent);font-weight:var(--w-bold)}
table.mini2 td.nm{font-weight:var(--w-bold)}
table.mini2 caption{caption-side:top;text-align:left;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);padding-bottom:var(--in-cell)}

/* ---- ranked concentration steps ---- */
.fgr.rule{border-bottom:1px solid var(--ink)}
.fgr .fl2 em{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);display:block;margin-top:var(--in-hair)}

@media (max-width:960px){
  .scopenote,.appx > .ah,.appx > .alede{margin-left:0}
}


table.mini2 th.rk,table.mini2 td.rk{text-align:right;padding-right:16px;width:34px;color:var(--muted)}
table.mini2 tr.acc td.rk{color:var(--accent)}


/* ---- G39: on an export every fold opens ---- */
@media print{
  /* Chromium hides a shut fold through content-visibility on ::details-content, not through
     display, so overriding display alone changes nothing — the first version of this rule set
     display and did nothing at all, and passed unnoticed until a probe measured a shut fold in
     print media rather than assuming it. Both properties are set. */
  details::details-content{content-visibility:visible !important;display:block !important}
  details > *:not(summary){display:block !important}
  details > summary::after{content:'' !important}
  .scope > .panes > .pane{display:block !important}
  .scope > .panes > .pane.us::before{content:'North America';display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent);padding:12px 0 8px}
  .scope > .panes > .pane.world::before{content:'World';display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent);padding:12px 0 8px}
  .scopebar{display:none}
}
.head .qual{margin:16px 0 20px;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}

.cmpc .v.none{color:var(--muted);font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none}

/* ---- a narrowing step, stacked by segment ---- */
.stk .sg{position:absolute;top:0;height:22px}
.stk .sg-f{background:var(--accent)}
.stk .sg-c{background:var(--accent4)}
.stk .sg .sglab{position:absolute;top:0;height:22px;display:flex;align-items:center;left:8px;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.rngr.hl{background:var(--accent05)}

/* ---- the buyer table, in the built board's own shape ---- */
.buyer-table-wrap{margin:0 0 0 var(--ind)}
.buyer-table{width:100%;border-collapse:collapse;table-layout:fixed}
.buyer-table thead th{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);text-align:left;padding:0 var(--in-cell) var(--in-cell) 0;border-bottom:1px solid var(--ink)}
.buyer-table td{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);padding:var(--in-hair) var(--in-cell) var(--in-hair) 0;border-bottom:1px solid var(--grid);vertical-align:baseline;white-space:nowrap}
.buyer-table td.bt-org{white-space:normal;color:var(--ink);font-weight:var(--w-bold)}
/* the widths stand on cols: a fixed layout reads its first row, and the first row is the
   grouped head, whose spans carry none */
.buyer-table col.bt-org{width:22%}
.buyer-table col.bt-seg{width:9%}
.buyer-table col.bt-reg{width:10%}
.buyer-table col.bt-num{width:8%}
.buyer-table col.bt-hrs{width:9%}
.buyer-table col.bt-hbar{width:10%}
.buyer-table col.bt-gro{width:7%}
.buyer-table col.bt-ppl{width:8%}
.buyer-table col.bt-pbar{width:9%}
.buyer-table .bt-org{width:22%}
.buyer-table .bt-seg{width:9%}
.buyer-table .bt-reg{width:10%}
.buyer-table thead th.bt-num{width:8%;text-align:right}
.buyer-table thead th.bt-bar{width:11%}
.buyer-table td.bt-num{width:8%;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;font-weight:var(--w-bold)}
.buyer-table td.bt-bar{width:11%;padding-right:var(--in-box)}
.buyer-table td.bt-bar i{display:block;height:5px;background:var(--accent);min-width:1px}
.buyer-table .bt-floor{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-right:var(--in-hair)}
/* Hours flown in the year. The tracker covers the thirty largest by North American
   activity and nobody else, so a firm off that ranking says it is not tracked. */
.buyer-table .bt-hrs{width:9%;text-align:right;font-variant-numeric:tabular-nums;
  color:var(--ink);font-weight:var(--w-bold);white-space:nowrap}
.buyer-table .bt-hbar{width:10%;padding-right:var(--in-box)}
.buyer-table .bt-gro{width:7%;text-align:right;font-variant-numeric:tabular-nums}
.buyer-table td.bt-hbar i{display:block;height:5px;background:var(--accent4);min-width:1px}
/* People on LinkedIn: a length beside the fleet's length, drawn in grey because it is a
   softer measure — profiles that name an employer, not a headcount. How many of a
   company's people keep one varies with what else that company does, which is what the
   drawer says and what the grey is for. A row whose page could not be identified says so
   rather than printing a number that may belong to a different company. */
.buyer-table .bt-ppl{width:8%;text-align:right;font-variant-numeric:tabular-nums;
  color:var(--secondary)}
.buyer-table .bt-pbar{width:9%;padding-right:var(--in-box)}
/* the two plane counts under one word */
.buyer-table thead tr.grp th{border-bottom:0;padding-bottom:0}
.buyer-table thead th.bt-grp{text-align:right;color:var(--ink);border-bottom:1px solid var(--grid);padding-bottom:var(--in-hair)}
.buyer-table td.bt-pbar i{display:block;height:5px;background:var(--g2);min-width:1px}
.buyer-table .bt-none{font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--disabled);font-variant-numeric:normal}
.buyer-table tr.bt-band th{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--ink);text-align:left;background:var(--sunken);padding:var(--in-hair) var(--in-cell);border-bottom:0}
.buyer-table tr.bt-band .bt-band-n{font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}
.buyer-table tr.bt-row:hover td{background:var(--raised)}
.buyer-table tr.bt-row.sel td{background:var(--accent05)}
/* a head sorts its column and says which way */
.buyer-table thead th[data-sort]{cursor:pointer}
.buyer-table thead th[aria-sort]{color:var(--ink)}
.buyer-table thead th[aria-sort="ascending"]::after{content:" \2191"}
.buyer-table thead th[aria-sort="descending"]::after{content:" \2193"}
/* the operator's card, in the drawer */
.notes .opc dl.cd{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 var(--step-close)}
body[data-stage="mid"] .notes .opc dl.cd{grid-template-columns:1fr}   /* the narrower drawer, one column */
.notes .opc dl.cd > div{padding:var(--in-cell) 0;border-top:1px solid var(--grid);min-width:0}
.notes .opc dt{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin-bottom:var(--in-hair)}
.notes .opc dd{margin:0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.notes .opc dd [data-work]{cursor:pointer;color:var(--accent)}
.notes .opc .clab{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);margin:var(--step-near) 0 var(--in-cell)}
.notes .opc .cf{display:flex;justify-content:space-between;gap:var(--in-box);padding:var(--in-hair) 0;border-top:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary)}
.notes .opc .cf .cv{font-weight:var(--w-bold);color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.notes .opc .cf .cv[data-work]{cursor:pointer;color:var(--accent)}
.notes .opc .cn{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);margin:0 0 var(--in-cell)}
@media (max-width:960px){
  .buyer-table-wrap{margin-left:0}
  .buyer-table .bt-hbar,.buyer-table .bt-pbar{display:none}
}
.rngr .rb em{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-top:4px}

/* ---- the row header carries what all three cells were repeating ---- */
.g3r:has(em),.g3r:has(details){flex-direction:column;align-items:flex-start}
.g3r em{font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;display:block;margin-top:4px;color:var(--disabled)}
/* ---- a row head that opens what is behind its figures, on a click: the exhibit label's own
        fold, moved into the three-column grid. It is a plain <details> and not a
        details.fold, because the build lifts every fold on this page out of the exhibit and
        into the drawer, and this one belongs on the row it qualifies. ---- */
.g3r details{position:relative;display:inline-block;min-width:0;margin-top:8px}
.g3r summary{list-style:none;cursor:pointer;color:var(--muted);
  border-bottom:1px dotted var(--hairline)}
.g3r summary::-webkit-details-marker{display:none}
.g3r summary:hover{color:var(--ink)}
.g3r .body{position:absolute;left:0;margin-top:8px;width:max-content;max-width:56ch;
  background:var(--raised);border:1px solid var(--grid);padding:12px 16px;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;
  color:var(--secondary);z-index:5;white-space:normal}
/* ---- a cell with nothing to report, said rather than left blank ---- */
.g3c.none{color:var(--muted)}
/* ---- the utilisation figure sits in its own bar ---- */
.g3c.util .yrr{position:relative}
.g3c.util .ubar{position:relative;display:flex;align-items:center;justify-content:flex-end}
.g3c.util .ubar .ub{padding-right:8px;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:#fff;font-variant-numeric:tabular-nums}
.g3c.util .ubar.g .ub{color:var(--ink)}

/* ---- an aircraft's year, three columns, three sections ---- */
.yrt{margin:0 0 0 var(--ind);border-top:1px solid var(--ink)}
.yrh,.yrr,.yraxis{display:grid;grid-template-columns:clamp(160px,19vw,230px) repeat(3,minmax(0,1fr));
  gap:0 var(--step-close)}
.yrh{padding:0 0 var(--in-cell);border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.yrh span:not(:first-child){color:var(--ink)}
.yrband{display:flex;align-items:baseline;gap:var(--in-box);padding:var(--in-box) 0 var(--in-cell);border-bottom:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent)}
.yrband .w{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.yrr{padding:var(--in-box) 0;border-bottom:1px solid var(--grid);align-items:start}
.yrr.last{border-bottom:1px solid var(--ink)}
.yrl{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink)}
.yrl em{font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;display:block;margin-top:4px;color:var(--muted)}
.yrc .yrv{display:block;font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-variant-numeric:tabular-nums;color:var(--ink)}
.yrc .yrbar{display:block;height:8px;background:var(--sunken);margin:var(--in-cell) 0 var(--in-hair)}
.yrc .yrbar i{display:block;height:8px;background:var(--accent)}
/* A cell whose figure would repeat the one directly above it says why instead. */
.yrc.same .yrsame{display:block;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.yrc.money .yrbar i{background:var(--accent4)}
.yrc .yrn{display:block;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}
.yraxis{padding-top:8px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}
@media (max-width:820px){
  .yrh,.yrr,.yraxis{grid-template-columns:1fr 1fr;gap:var(--step-tight) var(--in-box)}
  .yrh span:first-child,.yraxis span{display:none}
  .yrl{grid-column:1 / -1}
}

/* ---- one bar, three parts, and the firms under each ---- */
.one{margin:0 0 0 var(--ind)}
.onebar{display:flex;height:44px;border-top:1px solid var(--ink)}
.onebar .oseg{display:flex;align-items:center;padding-left:var(--step-tight);position:relative}
.onebar .oseg b{font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;font-variant-numeric:tabular-nums}
.onebar .oseg.f{background:var(--accent)} .onebar .oseg.f b{color:#fff}
.onebar .oseg.c{background:var(--accent4)} .onebar .oseg.c b{color:#fff}
.onebar .oseg.r{background:var(--sunken);box-shadow:inset 0 0 0 1px var(--grid)}
.onebar .oseg.r b{color:var(--muted)}
.onefoot{display:flex;border-top:1px solid var(--grid)}
.onefoot .ofoot{padding:var(--step-tight) var(--step-tight) 0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);border-left:1px solid var(--grid)}
.onefoot .ofoot:first-child{border-left:0;padding-left:var(--step-tight)}
.onefoot .ofoot b{display:block;font-family:var(--serif);font-size:var(--r-head-size);font-weight:var(--r-head-weight);line-height:var(--r-head-lh);letter-spacing:var(--r-head-ls);text-transform:none;color:var(--ink);margin-bottom:var(--in-hair)}
.onefoot .ofoot.rest b{color:var(--muted)}

/* ---- the concentration bands, each its own share ---- */
.foldlede{margin:0 0 var(--step-close);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);max-width:84ch}
.conc{border-top:1px solid var(--ink)}
@media (max-width:820px){
  .one,.conc{margin-left:0}
  .onefoot{flex-direction:column}
  .onefoot .ofoot{width:100%!important;border-left:0;border-top:1px solid var(--grid)}
}

/* the region cards: one showing at a time */
.rcard.off{display:none}
.srow.sel .rn2{color:var(--accent);font-weight:var(--w-bold)}

/* the segment a customer flies on, beside them in the flow figure */
.segtag{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;fill:var(--accent)}

/* ---- the concentration, as one bar like the one above it ---- */
.concbar{display:flex;height:38px;border-top:1px solid var(--ink)}
.concbar .cseg{display:flex;align-items:center;padding-left:var(--in-cell);position:relative;overflow:hidden}
.concbar .cseg b{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap}
.concbar .cseg.c0{background:var(--accent)}
.concbar .cseg.c1{background:var(--accent4)}
.concbar .cseg.c2{background:#7A8AE3}
.concbar .cseg.c3{background:var(--accent2)}
.concbar .cseg.c3 b,.concbar .cseg.crest b{color:var(--accent8)}
.concbar .cseg.crest{background:var(--sunken);box-shadow:inset 0 0 0 1px var(--grid)}
.concbar .cseg.crest b{color:var(--muted)}
.concfoot{display:flex;border-top:1px solid var(--grid);min-height:88px}
.concfoot .cfoot{padding:var(--in-cell) var(--in-hair) 0;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);min-width:0;position:relative}
/* Each band's foot begins with a tick rather than a full rule, so a rule never runs through
   a label sitting below it. */
.concfoot .cfoot::before{content:'';position:absolute;left:0;top:0;width:1px;height:22px;
  background:var(--grid)}
.concfoot .cfoot:first-child::before{display:none}
/* A band too narrow to hold its own label keeps the label on one line and drops it clear,
   its tick running down to meet it. The drops are staggered from the right, so no tick has
   to reach past a label to its left. */
.concfoot .cfoot.narrow{overflow:visible;padding-right:0}
.concfoot .cfoot.narrow::before{background:var(--hairline)}
.concfoot .cfoot.narrow .cdrop{position:absolute;left:7px;white-space:nowrap;color:var(--ink)}
.concfoot .cfoot.narrow.d1 .cdrop{top:30px}
.concfoot .cfoot.narrow.d1::before{height:40px}
.concfoot .cfoot.narrow.d2 .cdrop{top:54px}
.concfoot .cfoot.narrow.d2::before{height:64px}
/* A band is a rank; the firm inside it is a name. Where the band is wide enough the name
   sits under it, and where it is not the names are the line below the bar. */
.concfoot .cfoot em{display:block;margin-top:var(--in-hair);font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--ink);font-style:normal}

/* a gloss beside a figure, inside the comparison: cell, not a smaller figure */
/* Where the third row of a figure block has no figure, it says so in the value's own slot
   and in a quieter ink, and the reason sits under it as its own line. Trailing the reason
   off the end of the value in a second size broke across two lines and read as neither. */
.cmpc .cfigs .cfig .vv2.nil{color:var(--muted)}
/* The absence is a sentence, not a figure: it takes the text's own type, and its reason
   runs on in the same line. */
.cmpc .cfigs .cfig.wide .vv2.nil{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--w-bold);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted)}
.cmpc .cfigs .cfig .vsub{font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--muted);margin-left:var(--in-hair)}

/* ---------- the bill and prize pages: a range band inside the panel track ---------- */
/* The engine's bill form draws a point bar, a hatch or a struck track. An estimate is a band
   with a best-estimate tick, so the two drafted pages draw that inside the same track. */
.panel .pr .track i.rg{left:auto;background:var(--accent2)}
.panel .pr .track u.rgt{position:absolute;top:-5px;height:24px;width:2px;background:var(--accent);text-decoration:none}
/* the prize page draws a range the deck's way: solid to the estimate, the hatch over the
   range, the line at the estimate past the bar; the bound marks are the hatch's edges */
.panels .pr.ind{margin-left:var(--step-near)}
.panels .pr.ind .top .l{color:var(--muted)}
.panels.ranged .pr .track i.na{background:var(--accent)}
.panels.ranged .pr .track i.rg{background:repeating-linear-gradient(45deg,transparent,transparent 3px,color-mix(in srgb,var(--ink) 45%,transparent) 3px,color-mix(in srgb,var(--ink) 45%,transparent) 4px)}
.panels.ranged .pr .track u.rgt{background:var(--ink)}
.panels.ranged .pr .track u.bnd{display:none}
.panel .pr .bl{display:flex;justify-content:space-between;gap:12px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px}

/* A build-up column prints the scale it shares with its neighbours, because three columns
   read against one scale only if a reader can see that they do. A column with nothing
   counted in it carries the reason above the hatching, where the figures would have been. */
.panel .pax{display:flex;justify-content:space-between;margin-top:12px;padding-top:8px;
  border-top:1px solid var(--grid);font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);
  font-variant-numeric:tabular-nums}
.panel .pw{margin:0 0 12px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}

/* What separates the two tiers: a fact about the money, set apart from both. */
.tierrule{margin:var(--step-apart) 0 0 var(--ind);border-top:1px solid var(--grid);
  padding-top:12px;display:flex;gap:12px;align-items:flex-start;max-width:78ch}
.tierrule .x{flex:0 0 auto;width:26px;height:26px;border:1px solid var(--hairline);
  display:flex;align-items:center;justify-content:center;color:var(--claret)}
.tierrule p{margin:0;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted)}
.tierrule p b{color:var(--ink)}

/* ---- where an organisation's own people work: two shares, one dot a firm ---- */
/* A plot rather than a ranked bar, because the reading is a position on two axes at once
   and neither axis alone separates a flight operation from a services group. Drawn in the
   study's own vocabulary: the engine has no two-axis form, and the exhibit has no row in
   the library to ask for one. Both axis names are set as lines above and below rather than
   rotated up the side, which is what put one on top of its own ticks. */
.wsplot{display:grid;grid-template-columns:44px 1fr;gap:0;margin:var(--step-close) 0 0
  var(--ind);max-width:900px}
.wsyl,.wsxl{grid-column:2;margin:0;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.wsyl{padding-bottom:4px}
.wsxl{padding-top:2px}
.wsarea{position:relative;height:330px;border-left:1px solid var(--ink);
  border-bottom:1px solid var(--ink);background:var(--sunken)}
.wsarea.flat{height:24px;background:none;border-bottom:0}
.wspad{grid-column:1}
.wsg{position:absolute;background:var(--grid)}
.wsg.v{top:0;bottom:0;width:1px}
.wsg.h{left:0;right:0;height:1px}
.wsd{position:absolute;width:9px;height:9px;margin:0 0 -4px -4px;border-radius:50%;
  background:var(--accent)}
.wsd[data-seg="management"]{background:var(--accent4)}
.wsd[data-seg="charter"]{background:var(--accent2)}
.wsd[data-seg="mixed"]{background:var(--claret)}
.wsd.cap{background:none;box-shadow:inset 0 0 0 1.5px var(--axis);width:8px;height:8px}
.wsl{position:absolute;left:13px;top:-6px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--secondary);
  white-space:nowrap}
.wsy{position:relative}
.wsy span{position:absolute;right:9px;margin-bottom:-8px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);
  font-variant-numeric:tabular-nums}
.wsx{position:relative;height:20px;grid-column:2}
.wsx span{position:absolute;top:5px;margin-left:-12px;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);
  font-variant-numeric:tabular-nums}
/* The last tick sits at the end of the axis, so centring it would hang it off the plot and
   push the page wider than the board. It ends where the axis does instead. */
.wsx span:last-child{margin-left:-26px}
.wscap{display:grid;grid-template-columns:44px 1fr;gap:0;margin:var(--step-near) 0 0
  var(--ind);max-width:900px}
.wscl{grid-column:2;margin:0 0 8px;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted)}
.wscap .wsarea{grid-column:2}
@media (max-width:820px){
  .wsplot,.wscap{grid-template-columns:34px 1fr;margin-left:0}
}

/* ---- the executive summary: one article, and the descent as its spine ---- */
/* Two things the engine has no form for. The ARTICLE: prose in two columns with no labels
   above it, because a reader is meant to meet one argument rather than six blocks to choose
   among — the engine's columns block puts a label over every run, which is the shape this
   page replaced. And the DESCENT: a stack of the study's own panel rows, which is not a new
   mark at all — the row, the track, the band and the tick are the bill and prize pages'
   vocabulary, reused so that a band with a tick means the same thing here as there. */
/* ---------- the article ---------- */
/* Two columns, because six hundred words in one column at this measure is a page and a half
   and the piece has to be read in one sitting. Nothing sits above a column, so there is
   nothing to choose between: a reader who starts at the top of the left column and ends at
   the bottom of the right has read the argument in its order. */
.art{margin:var(--step-apart) 0 0 var(--ind);columns:2;column-gap:clamp(26px,4.4vw,52px);
  border-top:1px solid var(--ink);padding-top:var(--step-near)}
.art p{margin:0 0 var(--step-close);font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--secondary);
  break-inside:avoid;orphans:2;widows:2}
.art p:last-child{margin-bottom:0}
.art p b{color:var(--ink)}
/* The turn at the end: the three things that would make the argument wrong. It is the one
   run of the piece a reader is meant to find again, so it carries a rule and the page's own
   ink rather than a label over it. */
.art p.turn{border-top:1px solid var(--grid);padding-top:var(--step-close);color:var(--ink)}

/* First on the page, the article takes the head's own rule rather than drawing a second one
   under it — the treatment the engine already gives the summary's first block. */
.band.open > .art:first-child{margin-top:0;border-top:0;padding-top:0}

@media (max-width:820px){ .art{columns:1;margin-left:0} }

/* ---------- the descent ---------- */
/* One vertical run, in three groups, each with its own scale and its own basis stated above
   it. The groups exist because the measurement changes: hours are counted, dollars are built,
   and the last group is one operator rather than the whole market. A rule and a fresh scale
   at each change is what stops a reader adding two numbers that are not addable. */
.dsc{margin:var(--step-close) 0 0 var(--ind);max-width:940px}
.dsc .panel + .panel{margin-top:var(--step-apart)}
.dsc .panel > .ph .u{color:var(--muted)}
.dsc .pr .l{max-width:46ch;display:inline-flex;align-items:flex-start;gap:var(--in-cell)}
/* the deck's small mark ahead of a row's label: the bar's own colour, the label's own line */
.dsc .pr .l .ico{width:13px;height:13px;flex:0 0 auto;transform:translateY(3px);color:var(--accent)}
.dsc .panel.cost .pr .l .ico{color:var(--claret)}
/* What the two marks mean, said once, above the first of them. */
.dkey{margin:var(--step-close) 0 0 var(--ind);display:flex;flex-wrap:wrap;
  gap:8px clamp(20px,3vw,44px);font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);max-width:940px}
.dkey span{display:flex;align-items:center;gap:8px}
.dkey i{flex:0 0 auto;width:38px;height:12px;background:var(--sunken);position:relative}
.dkey i.solid::after{content:'';position:absolute;left:0;top:0;bottom:0;width:24px;
  background:var(--accent)}
.dkey i.est::after{content:'';position:absolute;left:8px;top:0;bottom:0;width:20px;
  background:var(--accent2)}
.dkey i.est::before{content:'';position:absolute;left:19px;top:-2px;bottom:-2px;width:2px;
  background:var(--accent);z-index:1}
/* The closing group is one operator, not the market, and the note under it says what the two
   placeholder shares are. It hangs where a panel's own foot hangs. */
.dsc .panel.one{border-top-width:2px}
/* Since 7 September 2026 every bar is two parts — North America, counted, in the accent, and
   the rest of the world, the study's own estimate, in the accent's second step — and the
   range the evidence allows is hatched over the bar from its low end to its high, with the
   best-estimate tick inside it and its label under the tick. The hatch and the tick take no
   pointer, so the part of the bar beneath them stays the click into its own line. */
.dsc .pr .track i.na{background:var(--accent)}
.dsc .pr .track i.row{background:var(--accent2)}
.dsc .pr .track i.rg{background:repeating-linear-gradient(45deg,transparent,transparent 3px,
  color-mix(in srgb,var(--ink) 45%,transparent) 3px,color-mix(in srgb,var(--ink) 45%,transparent) 4px);
  pointer-events:none}
.dsc .pr .track u.rgt{pointer-events:none}
.dsc .pr .bl{display:block;position:relative;height:20px;margin-top:4px}
.dsc .pr .bl .be{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.dsc .pr .bl .be.at-r{transform:translateX(-100%)}
.dsc .pr .bl .be.at-l{transform:none}
.dsc .pr.ind{margin-left:var(--step-near)}
/* the title over the three panels, and a key inside each panel under its head */
.dsct{font-family:var(--serif);font-size:var(--r-beat-size);font-weight:var(--r-beat-weight);line-height:var(--r-beat-lh);letter-spacing:var(--r-beat-ls);text-transform:none;color:var(--ink);margin:var(--step-apart) 0 0 var(--ind);max-width:30ch}
.dsc .panel .dkey{margin:var(--in-cell) 0 var(--step-tight) 0}
/* the cost panel is money spent, and takes the deck's colours for money: claret, and the
   pale claret with its outline for the part that is ours */
.dsc .panel.cost .pr .track i.na{background:var(--claret)}
.dsc .panel.cost .pr .track i.row{background:var(--claret05);box-shadow:inset 0 0 0 1px var(--claret)}
.dsc .panel.cost .pr .track u.rgt{background:var(--claret)}
.dkey i.cna::after{content:'';position:absolute;left:0;top:0;bottom:0;width:38px;background:var(--claret)}
.dkey i.crow::after{content:'';position:absolute;left:0;top:0;bottom:0;width:38px;background:var(--claret05);box-shadow:inset 0 0 0 1px var(--claret)}
.dkey i.na::after{content:'';position:absolute;left:0;top:0;bottom:0;width:38px;background:var(--accent)}
.dkey i.row::after{content:'';position:absolute;left:0;top:0;bottom:0;width:38px;background:var(--accent2)}
.dkey i.est::after{background:repeating-linear-gradient(45deg,transparent,transparent 3px,
  color-mix(in srgb,var(--ink) 45%,transparent) 3px,color-mix(in srgb,var(--ink) 45%,transparent) 4px);
  left:0;width:38px}

/* ---------- the descent and the one-contract bridge ---------- */
/* Drafted in work/new-pages-mock as the five pages of the re-cut, and read out of that
   folder's _extra.css when the first two of them were wired into the deck. */
/* ---------- 1 · a range inside a walk row ---------- */
/* The band is the range the evidence allows; the ticks are its two bounds; the bar is the
   best estimate, drawn from zero like every other step so that lengths down the panel can be
   read against each other. A step with no band was counted, and the absent band is what says
   so — not a colour, because direction and judgement never rest on colour alone. */
.walkhead.th,.wkr.th{grid-template-columns:250px 1fr 150px}
.wkr .tr{height:22px}
.wkr .rgb{position:absolute;left:0;top:0;height:22px;background:var(--accent2)}
.wkr .fl.est,.wkr.th .fl{position:absolute;left:0;top:5px;height:12px;background:var(--accent)}
.wkr .bound{position:absolute;top:-3px;height:28px;width:1px;background:var(--ink)}
.wkr .ends{position:absolute;left:0;right:0;top:30px;display:flex;justify-content:space-between;
  font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums}
.wkr.banded .wt{padding-bottom:calc(var(--in-box) + var(--step-close))}

/* ---------- 2 · the threshold a narrowing cleared ---------- */
/* Between the step above and the step below, because that is where the narrowing happened.
   The name of the threshold, then whose it is, then the sentence that says what it means. */
.thr{border-top:1px solid var(--ink);padding:12px 0 16px;display:grid;
  grid-template-columns:250px 1fr;gap:0 20px;align-items:start}
.thr .tl2{font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--accent);padding-right:20px}
.thr .tl2 em{display:block;font-style:normal;color:var(--muted);margin-top:4px}
.thr p{margin:0;font-family:var(--sans);font-size:var(--r-cell-size);font-weight:var(--r-cell-weight);line-height:var(--r-cell-lh);letter-spacing:var(--r-cell-ls);text-transform:none;color:var(--secondary);max-width:96ch}
.thr p b{color:var(--ink);font-weight:var(--w-bold)}
/* The basis changes partway down the descent, and the two panels are never one scale. The
   rule between them is the bill page's own tier rule, which already says that of two kinds
   of money; this says it of two kinds of quantity. */
.dbasis{margin:var(--step-apart) 0 var(--step-apart) var(--ind)}
.walk + .walk{margin-top:0}

/* ---------- 3 · a bridge that multiplies ---------- */
.panel .px{display:flex;align-items:center;gap:12px;padding:12px 0 4px;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;
  color:var(--muted)}
.panel .px i{flex:0 0 auto;width:20px;height:20px;border:1px solid var(--hairline);
  display:flex;align-items:center;justify-content:center;color:var(--claret);font-style:normal}
/* A share on a scale of its own: the track runs to a stated ceiling printed beneath it, so a
   band from a twentieth to about a seventh is seen as the narrow thing it is instead of
   filling the width the money rows use. */
.panel .pr.share .track{background:var(--page);box-shadow:inset 0 0 0 1px var(--grid)}
.panel .pr .pcax{display:flex;justify-content:space-between;font-family:var(--sans);font-size:var(--r-small-size);font-weight:var(--r-small-weight);line-height:var(--r-small-lh);letter-spacing:var(--r-small-ls);text-transform:none;color:var(--muted);
  font-variant-numeric:tabular-nums;margin-top:4px}
/* Both bounds of a band carry an ink tick here too, for the same reason they do on the
   descent. */
.panel .pr .track u.bnd{position:absolute;top:-3px;height:20px;width:1px;background:var(--ink);
  text-decoration:none}
/* A figure the interviews replace says so in words beside the mark it already carries. */
.panel .pr .ph2{display:block;font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--claret);margin-top:4px}

/* A beat folded shut for now, the analyst's call of 5 September 2026: its head and lede stay
   on the page and everything under them opens on demand. The body keeps its own styling, so
   this is a wrapper and not a .fold. */
details.beatfold > summary{cursor:pointer;list-style:none;margin-left:var(--ind);padding:var(--in-box);
  font-family:var(--sans);font-size:var(--r-label-size);font-weight:var(--r-label-weight);line-height:var(--r-label-lh);letter-spacing:var(--r-label-ls);text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;align-items:center;
  gap:var(--step-close);background:var(--raised);border-top:1px solid var(--grid);border-bottom:1px solid var(--grid)}
details.beatfold > summary::-webkit-details-marker{display:none}
details.beatfold > summary::after{content:'+';font-family:var(--sans);font-size:var(--r-body-size);font-weight:var(--r-body-weight);line-height:var(--r-body-lh);letter-spacing:var(--r-body-ls);text-transform:none;color:var(--accent)}
details.beatfold[open] > summary::after{content:'\2013'}
details.beatfold > summary:hover{color:var(--ink)}

/* a note under an exhibit that sits inside a fold takes the fold's own edge */
.xnote.in0{margin-left:0}

/* ---------- 2.2, the class table ---------- */
/* The engine's table with two marks of its own: a share bar in the accent, and a split bar for
   the total cost of an hour and its parts. A figure in grey is ours; a figure in ink is the
   regulator's for the class or an operator's own filing. */
table.ex.cls td{vertical-align:middle}
table.ex.cls th{white-space:nowrap}
table.ex.cls thead tr.grp th{border-bottom:0;padding-bottom:0}
table.ex.cls thead th.over{text-align:right;color:var(--ink);border-bottom:1px solid var(--grid);padding-bottom:var(--in-hair)}
table.ex.cls tr.sgrow td{border-top:1px solid var(--ink)}
table.ex.cls tr.sgrow.last td{border-bottom:1px solid var(--ink)}
table.ex.cls tr:not(.sgrow) td:first-child{padding-left:var(--step-close);color:var(--secondary)}
table.ex.cls td.ours,table.ex.cls .ours{color:var(--muted)}
table.ex.cls td.ink,table.ex.cls .ink{color:var(--ink)}
table.ex.cls .sh{display:flex;align-items:center;gap:var(--in-cell)}
table.ex.cls .sh i{display:block;height:12px;background:var(--accent)}
table.ex.cls .sh span{font-variant-numeric:tabular-nums}
table.ex.cls .sp{display:flex;align-items:center;gap:var(--in-cell)}
table.ex.cls .sp .sb{position:relative;display:block;flex:0 0 104px;height:12px;background:var(--sunken)}
table.ex.cls .sp .sb i{position:absolute;top:0;height:12px}
table.ex.cls .sp .sb i.fixed{background:var(--g3)}
table.ex.cls .sp .sb i.crew{background:var(--accent4)}
table.ex.cls .sp .sb i.rest{background:var(--accent2)}
table.ex.cls .sp .ink{font-variant-numeric:tabular-nums}
.ex.cls tr.ceil td{color:var(--muted)}
