/* ============================================================================
   TriageForge — "Annual Report 1984" design system.
   An homage to Paul Rand-era IBM annual reports: warm printed stock, one violet
   accent, tight grotesque headings over a transitional serif reading face, heavy
   rules, big numerals. Not a reproduction; TriageForge's own striped TF monogram.
   One shared stylesheet so every page reads as one publication. Light + dark.
   ========================================================================== */
:root{
  --ink:#15130f; --paper:#f4f0e7; --paper-2:#ebe6d9;
  --grey:#7c766a; --grey-2:#a9a295; --rule:#15130f;
  --accent:#562a7a; --accent-ink:#3d1c59; --mauve:#a8436e; --slate:#3a4654;
  --ok:#2f5d3a; --warn:#8a5a12; --bad:#7a2230;
  --grot:"Helvetica Neue",Helvetica,"Arial Nova",Arial,sans-serif;
  --serif:Georgia,"Source Serif 4","Times New Roman",serif;
  --mono:"SF Mono","Cascadia Mono",Consolas,"Liberation Mono",monospace;
  --read:720px; --wide:1180px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --ink:#f2efe6; --paper:#17150f; --paper-2:#221f17; --grey:#a59e90; --grey-2:#4a453a;
  --rule:#f2efe6; --accent:#b98ce0; --accent-ink:#cdaef0; --mauve:#d98fb0; color-scheme:dark;
}}
:root[data-theme="dark"]{
  --ink:#f2efe6; --paper:#17150f; --paper-2:#221f17; --grey:#a59e90; --grey-2:#4a453a;
  --rule:#f2efe6; --accent:#b98ce0; --accent-ink:#cdaef0; --mauve:#d98fb0; color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
img{max-width:100%;display:block;height:auto;filter:saturate(.92)}
p{margin:0 0 1em}
a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid transparent}
a:hover{border-bottom-color:currentColor}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 44px}
.read{max-width:var(--read)}

/* ---- type ---- */
h1,h2,h3,h4{font-family:var(--grot);font-weight:800;color:var(--ink);margin:0}
h1{font-size:clamp(34px,6vw,64px);letter-spacing:-.015em;line-height:1.02}
h2{font-size:19px;letter-spacing:-.01em;line-height:1.2}
h3{font-size:12.5px;letter-spacing:.01em;text-transform:none}
.kicker{font-family:var(--grot);font-size:9px;font-weight:700;text-transform:uppercase;
  letter-spacing:.22em;color:var(--accent);margin:0 0 12px}
.label,.meta{font-family:var(--grot);font-size:8px;font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;color:var(--grey)}
.num-big{font-family:var(--grot);font-weight:800;font-size:clamp(76px,12vw,118px);line-height:.8;
  letter-spacing:-.04em;color:var(--accent);display:block}
.serif{font-family:var(--serif)}
.mono{font-family:var(--mono)}
.tnum{font-variant-numeric:tabular-nums}

/* ---- rules ---- */
.rule-ink{border:0;border-top:2px solid var(--rule);margin:0}
.rule-accent{border:0;border-top:3px solid var(--accent);margin:0}
.hair{border:0;border-top:.6px solid var(--grey-2);margin:0}

/* ---- striped TF monogram (the Rand device: "TF" letterforms cut from horizontal
   bars, exactly as on the Annual Report cover). One SVG asset, painted in the theme
   accent via CSS mask so it inverts cleanly in dark mode. ---- */
.tf-badge{display:inline-block;flex:0 0 auto;vertical-align:middle;height:26px;aspect-ratio:120/96;
  background-color:var(--accent);
  -webkit-mask:url(/tf-mono.svg) center/contain no-repeat;
          mask:url(/tf-mono.svg) center/contain no-repeat}
header.run .tf-badge{height:26px}
.tf-word{font-family:var(--grot);font-weight:800;letter-spacing:.04em;text-transform:uppercase}

/* ============================ RUNNING HEAD ============================ */
header.run{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:blur(6px);border-bottom:2px solid var(--rule)}
header.run .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:60px;
  padding-top:10px;padding-bottom:10px}
header.run .brand{display:flex;align-items:center;gap:12px;border:0;color:var(--ink)}
header.run .brand .tf-word{font-size:15px}
header.run nav{display:flex;gap:22px;flex-wrap:wrap}
header.run nav a{border:0;font-family:var(--grot);font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;color:var(--grey)}
header.run nav a:hover{color:var(--accent)}
.toggle{font-family:var(--grot);font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--grey-2);background:transparent;color:var(--grey);padding:7px 11px;cursor:pointer;border-radius:0}
.toggle:hover{border-color:var(--accent);color:var(--accent)}

/* ============================ COVER / HERO ============================ */
.cover{border-bottom:2px solid var(--rule)}
.cover .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:56px;align-items:end;
  padding-top:52px;padding-bottom:60px}
.cover .left{padding-bottom:6px;container-type:inline-size}
.cover .stamp{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding-bottom:12px;border-bottom:2px solid var(--rule);margin-bottom:34px}
.cover h1{font-family:var(--grot);font-weight:800;font-size:clamp(38px,15cqw,92px);line-height:.94;
  letter-spacing:-.03em;margin:0}
.cover h1 .dot{color:var(--accent)}
.cover .sub{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.3vw,26px);line-height:1.34;
  color:var(--ink);margin:18px 0 0;max-width:26ch}
.cover .std{font-family:var(--serif);font-size:16.5px;line-height:1.62;color:var(--ink);max-width:48ch;margin:22px 0 0}
.cover .foot{margin-top:28px;display:flex;gap:10px 26px;flex-wrap:wrap;align-items:baseline}
.cover .foot .meta{font-size:9px}
.cover figure{margin:0;position:relative}
.cover figure img{width:100%;filter:contrast(1.03) saturate(1.02);border:1px solid var(--grey-2)}
/* the cover portrait keeps its colour so the violet blazer reads as the accent;
   the garment is a very deep violet, so lift chroma + a touch of brightness to make it read */
.cover-portrait img{filter:saturate(1.85) brightness(1.1) contrast(1.02)}
.cover figure .bond{position:absolute;inset:0 0 auto 0;height:auto;opacity:0;animation:tfBond 24s ease-in-out infinite}
@keyframes tfBond{0%,33%{opacity:0}48%,78%{opacity:1}93%,100%{opacity:0}}
.cover figcaption{margin-top:12px;display:flex;justify-content:space-between;gap:12px}
.cover figcaption .cap{display:inline-grid}
.cover figcaption .cap>span{grid-area:1/1}
.cover figcaption .cap-a{animation:tfCapA 24s ease-in-out infinite}
.cover figcaption .cap-b{opacity:0;animation:tfCapB 24s ease-in-out infinite}
@keyframes tfCapA{0%,38%{opacity:1}42%,88%{opacity:0}92%,100%{opacity:1}}
@keyframes tfCapB{0%,42%{opacity:0}46%,84%{opacity:1}88%,100%{opacity:0}}

/* ============================ SECTIONS ============================ */
.sec{border-top:2px solid var(--rule)}
.sec:first-of-type{border-top:0}
.sec .wrap{display:grid;grid-template-columns:150px minmax(0,1fr);gap:48px;padding:56px 44px 64px}
.sec .side{position:sticky;top:84px;align-self:start}
.sec .side .n{font-family:var(--grot);font-weight:800;font-size:clamp(70px,9vw,104px);line-height:.8;
  letter-spacing:-.04em;color:var(--accent);display:block}
.sec .side .l{font-family:var(--grot);font-size:9px;font-weight:700;text-transform:uppercase;
  letter-spacing:.16em;color:var(--grey);margin-top:12px;display:block}
.sec h2{font-size:clamp(20px,2.4vw,27px);letter-spacing:-.012em;line-height:1.1;margin:0 0 14px;max-width:26ch}
.sec .intro{font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--ink);max-width:62ch;margin:0 0 32px}

/* research / engagement areas */
.areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;border-top:2px solid var(--rule)}
.area{padding:20px 0;border-bottom:.6px solid var(--grey-2);display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px}
.area .i{font-family:var(--grot);font-weight:800;font-size:12px;color:var(--accent);padding-top:3px;font-variant-numeric:tabular-nums}
.area h3{font-family:var(--grot);font-weight:800;font-size:14px;margin:0 0 5px;line-height:1.25}
.area p{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink);margin:0}

/* publications ledger (the data table) */
.pubs{border-top:2px solid var(--rule)}
.pubs article{display:grid;grid-template-columns:62px 92px minmax(0,1fr);gap:20px;padding:16px 0;
  border-bottom:.6px solid var(--grey-2);align-items:start}
.pubs time{font-family:var(--grot);font-size:12px;font-weight:700;color:var(--grey);padding-top:3px;font-variant-numeric:tabular-nums}
.pubs .kind{font-family:var(--grot);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding-top:5px}
.pubs h3{font-family:var(--grot);font-weight:800;font-size:15px;margin:0 0 4px;line-height:1.3}
.pubs h3 a{border-bottom:1px solid var(--grey-2)}
.pubs h3 a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.pubs .cite{font-family:var(--mono);font-size:11px;color:var(--grey);margin:0 0 6px;line-height:1.5}
.pubs p{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink);max-width:66ch;margin:0}

/* principles */
.principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;border-top:2px solid var(--rule);padding-top:24px}
.principles h3{font-family:var(--grot);font-weight:800;font-size:15px;margin:0 0 9px;line-height:1.2}
.principles p{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink);margin:0}

/* prose */
.prose p{font-family:var(--serif);font-size:17px;line-height:1.66;color:var(--ink);max-width:66ch;margin:0 0 1.05em}
.prose p:last-child{margin-bottom:0}
.prose strong{font-weight:700}

/* photo plate */
.people-fig{margin:30px 0 0}
.people-fig img{filter:saturate(1.5) brightness(1.08) contrast(1.02);border:1px solid var(--grey-2)}

/* featured Annual Report block in the Publications section */
.report-feature{border:2px solid var(--rule);border-left:4px solid var(--accent);background:var(--paper-2);
  padding:22px 24px;margin:0 0 34px}
.report-feature .rf-label{font-family:var(--grot);font-size:8.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.16em;color:var(--accent);margin:0 0 10px}
.report-feature .rf-title{font-family:var(--grot);font-weight:800;font-size:clamp(18px,2.2vw,24px);
  letter-spacing:-.01em;line-height:1.15;margin:0 0 10px}
.report-feature .rf-sub{font-family:var(--serif);font-size:15.5px;line-height:1.55;color:var(--ink);margin:0 0 14px;max-width:64ch}
.report-feature .rf-links{margin:0;font-family:var(--grot);font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.report-feature .rf-links a{display:inline-block;color:var(--accent-ink);border-bottom:2px solid var(--accent);
  padding-bottom:1px;margin:0 20px 0 0}
.report-feature .rf-links a:hover{color:var(--accent)}
.people-fig figcaption,.cover figcaption{font-family:var(--grot);font-size:9px;font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;color:var(--grey)}
.people-fig figcaption{margin-top:12px;display:flex;justify-content:space-between;gap:12px}

/* pull quote — left violet border, grotesque */
.quote{border-top:2px solid var(--rule);border-bottom:2px solid var(--rule);background:var(--paper-2)}
.quote .wrap{padding:56px 44px}
.quote blockquote{margin:0;border-left:3px solid var(--accent);padding-left:26px;
  font-family:var(--grot);font-weight:800;font-size:clamp(22px,3.2vw,36px);line-height:1.18;letter-spacing:-.01em;max-width:24ch}
.quote .attr{margin-top:18px;padding-left:29px;font-family:var(--grot);font-size:9px;font-weight:700;
  text-transform:uppercase;letter-spacing:.16em;color:var(--grey)}

/* contact */
.contact .mail{font-family:var(--grot);font-weight:800;font-size:clamp(22px,3vw,34px);border:0;
  display:inline-block;margin:4px 0 14px;word-break:break-all;color:var(--accent-ink)}
.contact .mail:hover{color:var(--accent)}
.addr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;border-top:2px solid var(--rule);padding-top:20px;margin-top:28px}
.addr .h{font-family:var(--grot);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);margin-bottom:7px}
.addr p{font-family:var(--mono);font-size:13px;line-height:1.5;color:var(--ink);margin:0}

/* ---- kit: stat band / panel / tag / button (for inner pages) ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:2px;background:var(--grey-2);border:2px solid var(--rule)}
.stat{background:var(--paper);padding:16px 16px 18px;border-top:3px solid var(--accent)}
.stat .v{font-family:var(--grot);font-weight:800;font-size:34px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat .l{font-family:var(--grot);font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--grey);margin-top:7px}
.panel{background:var(--paper-2);border-left:3px solid var(--accent);padding:14px 16px;margin:18px 0}
.panel.neutral{border-left-color:var(--slate)}
.panel h4{font-family:var(--grot);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 7px}
.panel p{font-family:var(--serif);font-size:15px;line-height:1.55;margin:0}
.tag{display:inline-block;font-family:var(--grot);font-size:8px;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;border:1px solid currentColor;border-radius:999px;padding:3px 9px;color:var(--accent)}
.tag.ok{color:var(--ok)} .tag.warn{color:var(--warn)} .tag.bad{color:var(--bad)}
.btn{display:inline-block;font-family:var(--grot);font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.1em;border:2px solid var(--ink);color:var(--ink);background:transparent;padding:10px 18px;border-radius:0;cursor:pointer}
.btn.accent{border-color:var(--accent);color:#fff;background:var(--accent)}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.accent:hover{color:#fff;background:var(--accent-ink);border-color:var(--accent-ink)}
.data{width:100%;border-collapse:collapse;font-family:var(--grot)}
.data th{font-size:7.6px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;text-align:left;
  color:var(--grey);border-bottom:2px solid var(--rule);padding:8px 10px}
.data td{font-size:13px;border-bottom:.6px solid var(--grey-2);padding:9px 10px;vertical-align:top}
.data td.n,.data th.n{text-align:right;font-variant-numeric:tabular-nums}
.data tr.total td{border-top:2px solid var(--rule);border-bottom:2px solid var(--rule);font-weight:800}

/* ============================ FOOTER ============================ */
footer.rep{border-top:2px solid var(--rule);padding:28px 0 46px}
footer.rep .wrap{display:grid;gap:22px}
footer.rep .top{display:flex;align-items:center;gap:14px}
footer.rep .tf-badge{height:40px}
footer.rep .big{font-family:var(--grot);font-weight:800;font-size:clamp(30px,7vw,64px);letter-spacing:-.02em;line-height:.9;text-transform:uppercase}
footer.rep nav{display:flex;gap:22px;flex-wrap:wrap}
footer.rep nav a{font-family:var(--grot);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--grey);border:0}
footer.rep nav a:hover{color:var(--accent)}
footer.rep .fine{font-family:var(--serif);font-size:12.5px;line-height:1.5;color:var(--grey);max-width:70ch}

.skip{position:absolute;left:-999px}
.skip:focus{left:8px;top:8px;position:fixed;z-index:99;background:var(--ink);color:var(--paper);padding:10px 16px}

/* ============================ ARTICLE PAGES ============================ */
/* case studies, tool references, policies — the "inside pages" of the report */
.site-header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:blur(6px);border-bottom:2px solid var(--rule)}
.site-header-inner{max-width:var(--wide);margin:0 auto;padding:12px 44px;display:flex;
  align-items:center;justify-content:space-between;gap:16px}
.wordmark{display:flex;align-items:center;gap:11px;border:0;color:var(--ink);
  font-family:var(--grot);font-weight:800;font-size:15px;letter-spacing:.04em;text-transform:uppercase}
.wordmark .dot{color:var(--accent)}
.back-link{font-family:var(--grot);font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.12em;color:var(--grey);border:0}
.back-link:hover{color:var(--accent)}
main{max-width:760px;margin:0 auto;padding:60px 44px 90px}
main .kicker{margin-bottom:14px}
main h1{font-family:var(--grot);font-weight:800;font-size:clamp(30px,5vw,50px);letter-spacing:-.02em;
  line-height:1.04;margin:0 0 18px}
.standfirst{font-family:var(--serif);font-size:20px;line-height:1.5;color:var(--ink);margin:0 0 24px}
.article-meta{font-family:var(--mono);font-size:12px;color:var(--grey);padding-bottom:22px;
  border-bottom:2px solid var(--rule);margin-bottom:36px;line-height:1.75}
.article-meta a{color:var(--grey);border-bottom:1px solid var(--grey-2)}
main h2{font-family:var(--grot);font-weight:800;font-size:clamp(18px,2.4vw,23px);letter-spacing:-.01em;
  line-height:1.15;margin:44px 0 12px}
main h3{font-family:var(--grot);font-weight:800;font-size:15px;margin:28px 0 9px;color:var(--ink)}
main p{font-family:var(--serif);font-size:18px;line-height:1.66;color:var(--ink);margin:0 0 18px}
main ul,main ol{margin:0 0 18px 1.3em;font-family:var(--serif)}
main li{font-size:18px;line-height:1.6;color:var(--ink);margin-bottom:7px}
main strong{font-weight:700}main em{font-style:italic}
code{font-family:var(--mono);font-size:.85em;background:var(--paper-2);padding:1px 5px;border:1px solid var(--grey-2)}
pre{font-family:var(--mono);font-size:13px;background:var(--paper-2);border:1px solid var(--grey-2);
  border-left:3px solid var(--accent);padding:16px 20px;margin:22px 0;overflow-x:auto;line-height:1.55;color:var(--ink)}
pre code{background:none;border:0;padding:0}
.callout{background:var(--paper-2);border-left:3px solid var(--accent);padding:15px 20px;margin:24px 0;
  font-family:var(--serif);font-size:16px;line-height:1.6;color:var(--ink)}
.callout strong{font-weight:700}
.stages{width:100%;border-collapse:collapse;margin:20px 0 26px;font-family:var(--grot)}
.stages th{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--grey);
  border-bottom:2px solid var(--rule);padding:9px 12px;text-align:left}
.stages td{font-size:13.5px;border-bottom:.6px solid var(--grey-2);padding:11px 12px;vertical-align:top;color:var(--ink)}
.stages .code-col{font-family:var(--mono);font-weight:700;color:var(--accent);white-space:nowrap}
.post-footer{margin-top:56px;padding-top:26px;border-top:2px solid var(--rule);color:var(--grey)}
.post-footer h3{font-family:var(--grot);font-size:9px;font-weight:800;text-transform:uppercase;
  letter-spacing:.12em;color:var(--ink);margin:20px 0 8px}
.post-footer p{font-family:var(--serif);font-size:14.5px;color:var(--grey);margin-bottom:10px;line-height:1.6}
.post-footer a{border-bottom:1px solid var(--grey-2)}
footer.site{padding:30px 0 40px;border-top:2px solid var(--rule);text-align:center;
  font-family:var(--grot);font-size:11px;letter-spacing:.04em;color:var(--grey)}
footer.site a{color:var(--grey);border:0}
footer.site a:hover{color:var(--accent)}

/* policy pages (privacy, security-policy) */
.doc-label{font-family:var(--grot);font-size:9px;font-weight:700;text-transform:uppercase;
  letter-spacing:.22em;color:var(--accent);margin:0 0 14px}
.doc-sub{font-family:var(--serif);font-size:20px;line-height:1.5;color:var(--ink);margin:0 0 20px}
.doc-intro{font-family:var(--serif);font-size:18px;line-height:1.66;color:var(--ink);
  padding-bottom:22px;border-bottom:2px solid var(--rule);margin:0 0 32px}
.data-table{width:100%;border-collapse:collapse;margin:16px 0 26px;font-family:var(--grot)}
.data-table th{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--grey);
  border-bottom:2px solid var(--rule);padding:9px 12px;text-align:left}
.data-table td{font-size:13.5px;border-bottom:.6px solid var(--grey-2);padding:11px 12px;vertical-align:top;color:var(--ink)}
.data-table td:first-child{font-weight:700}
.last-updated{margin-top:44px;padding-top:22px;border-top:2px solid var(--rule);
  font-family:var(--mono);font-size:12px;color:var(--grey);line-height:1.7}
.site-footer{padding:30px 0 40px;border-top:2px solid var(--rule);text-align:center;
  font-family:var(--grot);font-size:11px;letter-spacing:.04em;color:var(--grey)}
.site-footer a{color:var(--grey);border:0}
.site-footer a:hover{color:var(--accent)}
.site-footer p{margin:0 0 6px}

/* ============================ RESPONSIVE ============================ */
@media (prefers-reduced-motion:reduce){ *{animation:none!important} .cover figure .bond,.cover figcaption .cap-b{opacity:0} }
@media (max-width:980px){
  .cover .wrap{grid-template-columns:1fr;gap:34px;padding-top:40px;padding-bottom:46px}
  .cover figure{max-width:420px}
  .sec .wrap{grid-template-columns:1fr;gap:18px;padding:48px 44px 52px}
  .sec .side{position:static;display:flex;align-items:baseline;gap:16px}
  .sec .side .n{font-size:56px}.sec .side .l{margin-top:0}
  .areas,.principles{grid-template-columns:1fr;gap:0}.principles{gap:24px}
}
@media (max-width:640px){
  .wrap{padding:0 22px}
  .sec .wrap{padding:40px 22px 46px}.quote .wrap{padding:44px 22px}
  .pubs article{grid-template-columns:1fr;gap:3px}.pubs .kind{padding-top:0}
  .addr{grid-template-columns:1fr;gap:18px}.cover figure{max-width:none}
  header.run nav{gap:12px 16px}
  .site-header-inner{padding:10px 22px}
  main{padding:44px 22px 64px}
  .standfirst{font-size:18px}
  .stages{font-size:12px}.stages td{padding:9px 9px}
  .stages{display:block;overflow-x:auto}
}
