/* RegularsAI data centre tracker: one stylesheet for every page (scripts/build-site.py copies it with a content hash).
   Layout: a marked-up planning dossier. A wide data canvas, a narrow reading column, title-block metadata and a
   highlighter for the figures that matter. Mobile first; light and dark follow the reader's system setting.
   No inline styles anywhere (the CSP forbids them). Fonts are self-hosted (SIL Open Font Licence, see fonts/). */

@font-face{font-family:"Schibsted Grotesk";src:url(fonts/schibsted-grotesk.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url(fonts/schibsted-grotesk-italic.woff2) format("woff2");font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(fonts/source-serif-4-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Martian Mono";src:url(fonts/martian-mono.woff2) format("woff2");font-weight:300 700;font-stretch:75% 112.5%;font-display:swap}

:root{
  /* paper and ink: drafting stock with a faint green-grey cast, ink a blue-black */
  --paper:#f3f4ef;--sheet:#fbfbf8;--panel:#e8eae3;--ink:#0f1a1c;--ink-2:#4b5759;--ink-3:#5d696a;--rule:#cfd4ca;--rule-2:#b7beb3;
  /* the highlighter: the one accent, used on figures and links like a pen on a planning document. Brand amber (1 Nov;
     was a yellow highlighter), the same as regularsai.com.au. --logo: the orange of Hugh's mark, for the mark only */
  --hl:#e8821e;--hl-ink:#0f1a1c;--hl-soft:#fbe2c6;--logo:#ff5819;
  --link:#0f1a1c;--focus:#2457c5;
  --ph-bg:#fff4c7;--ph-line:#a5620a;--ph-ink:#3f2a00;
  /* status in the dossier's own inks: operating in ink, the pipeline in ochre, disputes in red pen, lapsed hollow grey.
     Status is always also in words. */
  --g-operational:#3d6b73;--g-pipeline:#b8650f;--g-contested:#c0362c;--g-inactive:#7d847c;
  /* chart ramp, oldest to newest decision year */
  --y0:#b9c6c4;--y1:#93a7a6;--y2:#5f7b7d;--y3:#33585c;--y4:#0f1a1c;
  --display:"Schibsted Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --text:"Source Serif 4",ui-serif,Georgia,"Times New Roman",serif;
  --mono:"Martian Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --radius:3px;--wide:1200px;--read:41rem;--sea:#d6d3cc;--grid:color-mix(in srgb,var(--rule) 55%,transparent);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0c1315;--sheet:#11191c;--panel:#182326;--ink:#e7ebe3;--ink-2:#a6b1ad;--ink-3:#7f8b88;--rule:#25333a;--rule-2:#34454b;
    --hl:#f0923a;--hl-ink:#0f1a1c;--hl-soft:#3a2812;--link:#e7ebe3;--focus:#8fb4ff;
    --ph-bg:#3a2c05;--ph-line:#f0a53a;--ph-ink:#fde68a;
    --g-operational:#7fb0b0;--g-pipeline:#e39a43;--g-contested:#f0705f;--g-inactive:#8d948c;
    --y0:#34454b;--y1:#4f666b;--y2:#7d9799;--y3:#b2c3c1;--y4:#e7ebe3;--sea:#363636;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0c1315;--sheet:#11191c;--panel:#182326;--ink:#e7ebe3;--ink-2:#a6b1ad;--ink-3:#7f8b88;--rule:#25333a;--rule-2:#34454b;
  --hl:#f0923a;--hl-ink:#0f1a1c;--hl-soft:#3a2812;--link:#e7ebe3;--focus:#8fb4ff;
  --ph-bg:#3a2c05;--ph-line:#f0a53a;--ph-ink:#fde68a;
  --g-operational:#7fb0b0;--g-pipeline:#e39a43;--g-contested:#f0705f;--g-inactive:#8d948c;
  --y0:#34454b;--y1:#4f666b;--y2:#7d9799;--y3:#b2c3c1;--y4:#e7ebe3;--sea:#363636;
  color-scheme:dark;
}

/* base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--text);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--link);text-decoration:underline;text-decoration-color:var(--rule-2);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{background:var(--hl);color:var(--hl-ink);text-decoration-color:var(--hl-ink)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}
[hidden]{display:none!important}
::selection{background:var(--hl);color:var(--hl-ink)}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:1000;background:var(--sheet);color:var(--ink);padding:8px 12px;border:2px solid var(--focus)}
.wrap{max-width:var(--wide);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.prose{max-width:var(--read)}
.wrap.prose{max-width:var(--wide)}
.wrap.prose > *{max-width:var(--read)}
h1,h2,h3,h4{font-family:var(--display);line-height:1.08;margin:0 0 .45em;text-wrap:balance;font-weight:800;letter-spacing:-.02em;word-spacing:.05em}
h1{font-size:clamp(2.1rem,1.4rem + 3vw,3.6rem);letter-spacing:-.035em;overflow-wrap:anywhere}
h2{font-size:clamp(1.45rem,1.15rem + 1.2vw,2.05rem)}
h3{font-size:1.12rem;margin-top:1.6em;letter-spacing:-.01em}
p{margin:0 0 1em}
section p.small,section .small.muted{max-width:var(--read)}
ul,ol{margin:0 0 1em;padding-left:1.2em}
li{margin:.3em 0}
dl{margin:0 0 1em}
b,strong{font-weight:650}
.muted{color:var(--ink-2)}
.small{font-size:.875rem}
.nowrap{white-space:nowrap}
.mono{font-family:var(--mono);font-size:.84em;letter-spacing:-.01em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hl{background:linear-gradient(transparent 8%,var(--hl) 8%,var(--hl) 92%,transparent 92%);color:var(--hl-ink);padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* labels: the register's own vernacular (application numbers, stages, dates) is set in the mono */
.eyebrow,.label{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:0 0 12px;font-stretch:87.5%}
.eyebrow .sep{color:var(--rule-2);margin:0 .5em}
.lede{font-size:clamp(1.12rem,1rem + .45vw,1.32rem);line-height:1.5;max-width:38rem;color:var(--ink)}

/* placeholders and preview */
.preview{background:var(--ph-bg);color:var(--ph-ink);border-bottom:2px dashed var(--ph-line);font:500 .8rem/1.5 var(--display);padding:8px 0}
.ph{background:var(--ph-bg);color:var(--ph-ink);outline:2px dashed var(--ph-line);outline-offset:1px;border-radius:2px;padding:0 4px;font-family:var(--display);font-size:.92em}
.ph-block{background:var(--ph-bg);color:var(--ph-ink);border:2px dashed var(--ph-line);border-radius:var(--radius);padding:12px 14px;margin:0 0 1em;font-family:var(--display);font-size:.92rem}
.ph-block p:last-child{margin-bottom:0}
a.ph-link,form.ph-form{outline:2px dashed var(--ph-line);outline-offset:3px}

/* masthead */
.top{background:var(--paper);border-bottom:1px solid var(--ink);position:relative;z-index:5}
.top .wrap{display:flex;flex-wrap:wrap;gap:4px 28px;align-items:center;justify-content:space-between;padding-block:12px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-height:44px;font-family:var(--display)}
.brand:hover{background:transparent;color:var(--ink)}
.brand svg{width:34px;height:34px;flex:none}
.brand .bm-line{stroke:var(--ink)}
.brand .bm-dot{fill:var(--ink)}
.brand .bm-on{stroke:var(--logo)}
.brand .name{display:flex;flex-direction:column;line-height:1.05}
.brand .name b{font-size:1.06rem;font-weight:800;letter-spacing:-.02em}
.brand .name small{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-stretch:87.5%;margin-top:3px}
.top nav{margin:0 -10px}
.top ul{display:flex;flex-wrap:wrap;gap:0 2px;list-style:none;margin:0;padding:0}
.top li{margin:0}
.top nav a{display:inline-block;padding:10px 10px;font:600 .92rem/1 var(--display);text-decoration:none;color:var(--ink);border-radius:2px}
.top nav a:hover{background:var(--panel);color:var(--ink)}
.top nav a[aria-current="page"]{background:var(--hl);color:var(--hl-ink)}

/* sections */
main{display:block}
section{padding:56px 0;border-bottom:1px solid var(--rule)}
section:last-of-type{border-bottom:0}
.page-head{padding-block:48px 20px}
.page-head .small,.hero .small{max-width:var(--read)}
.page-head + section{padding-top:4px}
.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin-bottom:20px;border-top:2px solid var(--ink);padding-top:12px}
.section-head h2{margin:0}
.section-head .label{margin:0}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--ink);color:var(--paper);font:700 .95rem/1 var(--display);text-decoration:none;padding:14px 20px;border-radius:2px;border:2px solid var(--ink);min-height:48px;cursor:pointer;letter-spacing:-.005em}
.btn:hover{background:var(--hl);color:var(--hl-ink);border-color:var(--ink)}
.btn.alt{background:transparent;color:var(--ink)}
.btn.alt:hover{background:var(--hl);color:var(--hl-ink)}
.btn .arrow{font-family:var(--mono);font-weight:400}
@media (max-width:719px){.actions .btn{flex:1 1 100%}}
.facts{display:flex;flex-wrap:wrap;gap:6px 18px;font:500 .9rem var(--display);color:var(--ink-2);margin:14px 0 0;padding:0;list-style:none}
.crumbs{font:600 .85rem var(--display);margin-bottom:14px;color:var(--ink-2)}
.crumbs a{text-decoration-color:var(--rule-2)}
.more{font:700 .95rem var(--display)}
.more::after{content:"→";font-family:var(--mono);font-weight:400;display:inline-block;margin-left:.4em;text-decoration:none}

/* text beside a chart */
.split{display:grid;gap:28px;align-items:start}
.split > .prose p{font-size:1.02rem}
.hero-tight{padding-top:40px}
.hero-tight h1{font-size:clamp(2rem,1.3rem + 2.4vw,3.1rem);max-width:16ch}
h1 + .thesis{margin-top:34px}
.thesis + .small{margin-top:14px}

/* home hero: the thesis and the waiting lines */
.hero{overflow:hidden;padding:44px 0 52px;border-bottom:1px solid var(--ink);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:28px 28px;background-position:-1px -1px}
.hero .grid{display:grid;gap:36px;align-items:start}
.hero h1{max-width:13ch;margin-bottom:.35em}
.thesis{margin:22px 0 0;display:grid;gap:4px}
.thesis .figure{font:800 clamp(4rem,2.6rem + 6vw,7.25rem)/.86 var(--display);letter-spacing:-.06em;margin:0}
.thesis .figure .unit{font-size:.36em;letter-spacing:-.02em;font-weight:700;margin-left:.1em}
.thesis .figure .hl{padding:0 .06em}
.thesis p{max-width:32rem;font-size:1.02rem;color:var(--ink-2);margin:14px 0 0}
.thesis p b{color:var(--ink)}
.waits-card{background:var(--sheet);border:1px solid var(--rule-2);padding:18px 18px 12px;position:relative}
.waits-card::before{content:"";position:absolute;inset:6px -6px -6px 6px;border:1px solid var(--rule);z-index:-1}
.waits-card .label{margin-bottom:6px}
.waits-card.page{max-width:820px;margin:8px 0 36px}
.cover-stack{position:relative;justify-self:center;width:min(100%,360px);margin:20px 20px 30px}
.cover-stack::before,.cover-stack::after{content:"";position:absolute;inset:0;border:1.5px solid var(--ink);background:var(--sheet)}
.cover-stack::before{transform:rotate(5deg) translate(26px,8px)}
.cover-stack::after{transform:rotate(2.5deg) translate(13px,4px);background:var(--panel)}
.cover-hero{position:relative;z-index:1;aspect-ratio:1/1.414;max-width:none;display:flex;flex-direction:column;transform:rotate(-1.5deg);box-shadow:none}
.cover-hero h3{font-size:2.05rem}
.cover-hero .ed{margin-top:auto}
.cover-lines{display:block;width:100%;height:auto;margin:14px 0 6px}
.cover-lines .bar{stroke:var(--ink);stroke-width:3.2;stroke-linecap:round}
.cover-lines .open{stroke:var(--g-pipeline);stroke-width:3;stroke-dasharray:5 4}
.cover-lines .median{stroke:var(--hl);stroke-width:3}
.waits-card h2{font-size:1.12rem;letter-spacing:-.01em;margin:0 0 10px}
.waits{display:block;width:100%;height:auto;overflow:visible}
.waits text{font-family:var(--mono);font-size:11px;fill:var(--ink-2);font-stretch:87.5%}
.waits .ax{stroke:var(--ink);stroke-width:1}
.waits .grid-line{stroke:var(--rule);stroke-width:1;stroke-dasharray:2 3}
.waits .yr-rule{stroke:var(--rule);stroke-width:1}
.waits .yr{font-size:12px;font-weight:700;fill:var(--ink)}
.waits .bar{stroke:var(--ink);stroke-width:4.5;stroke-linecap:round;fill:none}
.waits .open{stroke:var(--g-pipeline);stroke-dasharray:7 5;stroke-width:4;stroke-linecap:butt;fill:none}
.waits .end{fill:var(--sheet);stroke:var(--ink);stroke-width:1.6}
.waits .open-end{fill:var(--g-pipeline)}
.waits .median{stroke:var(--ink);stroke-width:1.5}
.waits .median-tag{fill:var(--hl)}
.waits .median-text{fill:var(--hl-ink);font-weight:700;font-size:12px}
.waits .name{font-family:var(--display);font-size:12px;font-weight:500;fill:var(--ink-2);font-stretch:normal}
.waits .callout{font-family:var(--display);font-size:11.5px;font-weight:600;fill:var(--ink);font-stretch:normal}
.waits .tick-other{stroke:var(--ink-3);stroke-width:2;opacity:.55}
.waits .note{font-family:var(--display);font-size:10px;font-weight:700;fill:var(--ink);font-stretch:normal;paint-order:stroke;stroke:var(--sheet);stroke-width:6px;stroke-linejoin:round}
.waits-compact{display:none}
@media (max-width:719px){.waits-full{display:none}.waits-compact{display:block}}
/* one orchestrated moment: the lines draw in once. The resting state is the finished chart, so if the animation
   never runs (reduced motion, print, a thumbnail) nothing is hidden. */
@media (prefers-reduced-motion:no-preference){
  .waits .bar{stroke-dasharray:600;animation:draw 1.2s cubic-bezier(.2,.7,.2,1) backwards}
  .waits g:nth-of-type(2n) .bar{animation-delay:.05s}.waits g:nth-of-type(3n) .bar{animation-delay:.1s}.waits g:nth-of-type(5n) .bar{animation-delay:.15s}
  .waits .end,.waits .open-end,.waits .median,.waits .median-tag,.waits .median-text{animation:fade .5s 1s backwards}
}
@keyframes draw{from{stroke-dashoffset:600}to{stroke-dashoffset:0}}
.wait-strip{margin:20px 0 26px;max-width:720px}
.wait-strip .headline{font:600 1.08rem/1.4 var(--display);margin:0 0 10px}
.wait-strip svg{display:block;width:100%;height:auto;overflow:visible}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* readout: the pipeline in numbers, set like an instrument panel */
.readout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 18px;padding:0;list-style:none;border-top:1px solid var(--rule)}
.readout li{margin:0;padding:16px 16px 18px 0;border-bottom:1px solid var(--rule)}
.readout a{text-decoration:none;color:inherit;display:block}
.readout a:hover{background:transparent}
.readout a:hover .k{background:var(--hl);color:var(--hl-ink)}
.readout .k{display:inline-block;font:500 clamp(2rem,1.5rem + 1.6vw,2.9rem)/1 var(--mono);letter-spacing:-.06em;font-stretch:80%;padding:0 .04em}
.readout .t{display:block;font:600 .84rem/1.35 var(--display);color:var(--ink-2);margin-top:8px;max-width:16em}
.readout .dot{width:.62rem;height:.62rem;margin-right:.4em}
.statusbar{display:block;width:100%;height:14px;margin:4px 0 10px}
.statusbar .g-operational{fill:var(--g-operational)}.statusbar .g-pipeline{fill:var(--g-pipeline)}.statusbar .g-contested{fill:var(--g-contested)}
.statusbar .g-inactive{fill:url(#hatch)}.statusbar .hatch{stroke:var(--g-inactive);stroke-width:3}
.status-key{display:none;flex-wrap:wrap;gap:4px 18px;list-style:none;padding:0;margin:0 0 6px;font:600 .82rem var(--display);color:var(--ink-2)}
.status-key li{margin:0}
.status-key b{font-family:var(--mono);font-weight:500;color:var(--ink);margin-left:.3em}

/* legacy stat tiles (report page) */
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:16px 0 20px;padding:0;list-style:none;border-top:1px solid var(--ink)}
.kpi{padding:14px 14px 16px 0;border-bottom:1px solid var(--rule);margin:0}
.kpi b{display:block;font:500 2rem/1 var(--mono);letter-spacing:-.06em;font-stretch:80%}
.kpi span{display:block;font:600 .84rem/1.35 var(--display);color:var(--ink-2);margin-top:6px}
.kpi a{color:inherit;text-decoration:none}

/* status badges and dots: colour plus the status in words, never colour alone */
.dot{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin-right:.4em;vertical-align:baseline;background:var(--g-pipeline);flex:none}
.dot.g-operational{background:var(--g-operational)}
.dot.g-pipeline{background:var(--g-pipeline)}
.dot.g-contested{background:var(--g-contested)}
.dot.g-inactive{background:transparent;box-shadow:inset 0 0 0 2px var(--g-inactive)}
.badge{display:inline-flex;align-items:center;font:600 .84rem/1.2 var(--display);white-space:nowrap;padding:2px 0}
.grade{display:inline-block;font:500 .7rem/1.5 var(--mono);letter-spacing:.06em;border:1px solid var(--ink);padding:0 5px;font-stretch:87.5%}

/* the stage line: the planning process drawn like a single-line diagram */
.stageline{display:flex;align-items:center;list-style:none;margin:0;padding:0;min-width:0}
.stageline li{position:relative;flex:1 1 0;margin:0;height:14px;min-width:10px}
.stageline li::before{content:"";position:absolute;left:0;right:0;top:6px;height:2px;background:var(--ink-3);opacity:.45}
.stageline li::after{content:"";position:absolute;right:0;top:2px;width:10px;height:10px;border-radius:50%;background:var(--paper);border:2px solid var(--ink-3);box-sizing:border-box}
.stageline li:first-child{flex:0 0 10px}
.stageline li.done::before{background:var(--ink);opacity:1}
.stageline li.done::after{background:var(--ink);border-color:var(--ink)}
.stageline li.now::before{background:var(--ink);opacity:1}
.stageline li.now::after{width:14px;height:14px;top:0;right:-2px;background:var(--hl);border-color:var(--ink)}
.stageline li.gap::after{display:none}
.stageline li.was::after{background:var(--paper);border-color:var(--ink);box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--ink-3)}
.stageline.inactive li.done::after,.stageline.inactive li.done::before,.stageline.inactive li.now::before{background:var(--ink-3);border-color:var(--ink-3)}
.stageline.inactive li.now::after{background:var(--panel);border-color:var(--ink-3)}
.stage-cap{display:flex;justify-content:space-between;gap:8px;font:500 .64rem/1.3 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-top:6px;font-stretch:87.5%}
.stage-big .stageline li{height:20px}
.stage-big .stageline li::before{top:9px;height:3px}
.stage-big .stageline li::after{top:3px;width:14px;height:14px}
.stage-big .stageline li.now::after{width:20px;height:20px;top:0;right:-3px}
.stage-big ol.stage-names{display:flex;list-style:none;padding:0;margin:10px 0 0;font:500 .64rem/1.25 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-stretch:87.5%}
.stage-big ol.stage-names li{margin:0;text-align:right;padding-left:4px;flex:1 1 0;min-width:0;overflow-wrap:anywhere}
.stage-big ol.stage-names li:first-child{text-align:left;padding-left:0;flex:0 0 10px;white-space:nowrap;overflow:visible}
.stage-big ol.stage-names li.now{color:var(--ink);font-weight:700}
.stage-names .abbr{display:none}
@media (max-width:719px){.stage-names .full{display:none}.stage-names .abbr{display:inline}}

/* ledger: register changes as dated entries */
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.ledger > li.head{border-bottom:1px solid var(--ink)}
.ledger li{display:grid;grid-template-columns:1fr;gap:6px 24px;padding:16px 0 18px;margin:0;border-bottom:1px solid var(--rule)}
.ledger .when{font:500 .74rem/1.4 var(--mono);color:var(--ink-2);letter-spacing:.02em;font-stretch:87.5%}
.ledger .when b{display:block;font-weight:600;color:var(--ink);font-size:1.05em}
.ledger .what{min-width:0}
.ledger .what a.title{font:700 1.06rem/1.25 var(--display);letter-spacing:-.01em}
.ledger .where{font:500 .82rem var(--display);color:var(--ink-2);margin-top:3px}
.ledger .where a{font-weight:600}
.ledger .move{min-width:0}
.ledger .move .change{font:600 .84rem/1.3 var(--display);margin:0 0 8px;color:var(--ink)}
.ledger .move .change s{text-decoration:none;color:var(--ink-3);font-weight:500}
.ledger .move .change .to{background:var(--hl);color:var(--hl-ink);padding:0 .25em}
.ledger li.head{display:none}
.ledger .move .modcap{display:flex;list-style:none;padding:0;max-width:58%;height:1.3em;font:500 .6rem/1.2 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:5px 0 0;font-stretch:87.5%}
.ledger .move .modcap li{position:relative;flex:1 1 0;margin:0;padding:0;border:0;display:block;height:1.3em;min-width:0}
.ledger .move .modcap li:first-child{flex:0 0 10px}
.ledger .move .modcap li::after{content:attr(data-n);position:absolute;right:5px;top:0;transform:translateX(50%);white-space:nowrap}
.ledger .move .modcap li:first-child::after{right:auto;left:0;transform:none}
.ledger .move .modcap li:last-child::after{right:0;transform:none}
.ledger .tag-new{display:inline-block;font:600 .64rem/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--ink);padding:0 5px;margin-right:6px;vertical-align:1px}

/* state tabs */
.tabs{position:sticky;top:0;z-index:4;background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--ink)}
.tabs ul{display:flex;flex-wrap:wrap;gap:0 4px;list-style:none;margin:0;padding:8px 0}
.tabs li{margin:0}
.tabs a{display:inline-flex;align-items:baseline;gap:6px;padding:8px 10px;font:700 .9rem/1 var(--display);text-decoration:none;color:var(--ink)}
.tabs a b{font:500 .72rem var(--mono);color:var(--ink-2)}
.tabs a:hover b{color:var(--hl-ink)}
.state-list .section-head{margin-top:40px;scroll-margin-top:70px}

/* tables */
.table-wrap{overflow-x:auto;margin:10px 0 8px;border-top:1px solid var(--ink)}
table{width:100%;border-collapse:collapse;font:500 .88rem/1.4 var(--display)}
caption{text-align:left;font:700 .95rem var(--display);padding:12px 0 8px}
th,td{text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top}
thead th{font:500 .66rem/1.3 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);border-bottom:1px solid var(--ink);white-space:nowrap;font-stretch:87.5%;padding-top:12px}
tbody tr:hover{background:color-mix(in srgb,var(--hl) 14%,transparent)}
td.n,th.n{text-align:right;font-family:var(--mono);font-size:.82rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
thead th.n{font-size:.66rem}
tbody th{font-weight:700}
@media (max-width:719px){
  .table-wrap.cards{overflow:visible;border-top:1px solid var(--ink)}
  .cards table,.cards tbody{display:block;width:100%}
  .cards thead{display:none}
  .cards tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:12px 0;border-bottom:1px solid var(--rule)}
  .cards th,.cards td{display:block;padding:0;border:0;width:auto}
  .cards tbody th{flex:1 1 100%;font-size:1rem;line-height:1.3}
  .cards td:nth-of-type(2),.cards td:nth-of-type(4){display:none}
  .cards td:nth-of-type(1){font-size:.84rem}
  .cards td:nth-of-type(3){font-size:.84rem;color:var(--ink-2)}
  .cards td:nth-of-type(5){font:600 .84rem var(--mono)}
  .cards td:nth-of-type(5)::after{content:" MW";font-weight:400;color:var(--ink-2)}
  .cards td:nth-of-type(6),.cards td:nth-of-type(7){font-size:.7rem}
  .cards td.n{text-align:left}
}
.excerpt{background:var(--sheet);border:1px solid var(--rule-2);padding:18px;margin:0 0 18px}
.excerpt-label{font:500 .7rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:0 0 6px}

/* the title block: a project page set like a drawing sheet's title block */
.titleblock{display:grid;grid-template-columns:1fr;border:1.5px solid var(--ink);background:var(--sheet);margin:8px 0 28px}
.titleblock > div{padding:12px 14px 14px;border-bottom:1px solid var(--rule-2);min-width:0}
.titleblock dt{font:500 .64rem/1.3 var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);margin:0 0 6px;font-stretch:87.5%}
.titleblock dd{margin:0;font:600 1rem/1.4 var(--display);overflow-wrap:anywhere}
.titleblock dd .muted,.titleblock dd .small{font-weight:500}
.titleblock .cap .figure{display:block;font:500 1.9rem/1.05 var(--mono);letter-spacing:-.05em;font-stretch:82%;margin-bottom:4px}
.titleblock .wide{grid-column:1 / -1}
.facts-list{display:grid;grid-template-columns:1fr;gap:2px 16px;margin:16px 0 20px}
.facts-list dt{font:500 .66rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-top:12px}
.facts-list dd{margin:0;font:500 .98rem/1.45 var(--display)}

/* milestones */
.timeline{list-style:none;margin:10px 0 18px;padding:0 0 0 22px;position:relative}
.timeline::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--ink)}
.timeline li{position:relative;margin:0 0 14px;display:grid;gap:2px}
.timeline li::before{content:"";position:absolute;left:-22px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--ink)}
.timeline li.key::before{background:var(--hl)}
.timeline li.future::before{background:var(--paper);border-color:var(--ink-3)}
.timeline li.future .e{color:var(--ink-2)}
.timeline .d{font:500 .74rem var(--mono);color:var(--ink-2);font-stretch:87.5%}
.timeline .e{font:700 .98rem/1.3 var(--display)}
.timeline .s{font:500 .8rem var(--display);color:var(--ink-3)}
.spans{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:14px 0}
.spans li{margin:0;border:1px solid var(--rule-2);background:var(--sheet);padding:10px 14px;min-width:12rem}
.spans b{display:block;font:500 1.5rem/1 var(--mono);letter-spacing:-.05em;font-stretch:85%}
.spans span{display:block;font:600 .8rem/1.35 var(--display);color:var(--ink-2);margin-top:6px}

/* charts */
figure{margin:0 0 1em}
.chart{border:1px solid var(--rule-2);background:var(--sheet);padding:16px 16px 10px}
.chart svg{display:block;width:100%;height:auto}
figcaption{font:500 .82rem/1.5 var(--display);color:var(--ink-2);margin-top:10px;max-width:var(--read)}
.years-card{max-width:760px;margin:0 0 1em}
.years text{font-family:var(--mono);font-size:11px;fill:var(--ink-2);font-stretch:87.5%}
.years .bar-new{fill:var(--ink)}
.years .bar-mod{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-dasharray:3 2}
.years .ax{stroke:var(--ink);stroke-width:1.5}
.years .v{fill:var(--ink);font-weight:600;font-size:14px}
.years .v.mod{fill:var(--ink-2);font-weight:500}
.years .yr{fill:var(--ink);font-family:var(--display);font-weight:700;font-size:15px;font-stretch:normal}
.years .wait{fill:var(--ink);font-size:12.5px;font-weight:600}
.years .wait-hl{fill:var(--hl)}
.years .wait-hl + .wait{fill:var(--hl-ink)}
.years .mw{fill:var(--ink-2);font-size:11px}
.chart .years-compact{display:none}
@media (max-width:719px){.chart .years-full{display:none}.chart .years-compact{display:block}}
.legend-inline{display:flex;flex-wrap:wrap;gap:4px 18px;list-style:none;padding:0;margin:0 0 10px;font:600 .78rem var(--display);color:var(--ink-2)}
.legend-inline li{margin:0;display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:14px;height:10px;background:var(--ink)}
.sw.mod{background:transparent;border:1.5px dashed var(--ink)}

/* stage times: median, middle half and range for each stage, in process order */
.stagetimes-card{margin:6px 0 18px}
.stagetimes .sum-rule{stroke:var(--ink);stroke-width:1}
.stagetimes{display:block;width:100%;height:auto}
.chart .st-compact{display:none}
@media (max-width:719px){.chart .st-full{display:none}.chart .st-compact{display:block}}
.st-compact .lab{font-size:12.5px}
.stagetimes text{font-family:var(--mono);font-size:11px;fill:var(--ink-2);font-stretch:87.5%}
.stagetimes .grid-line{stroke:var(--rule);stroke-width:1;stroke-dasharray:2 3}
.stagetimes .grp{font-family:var(--display);font-size:12px;font-weight:800;fill:var(--ink);font-stretch:normal;text-transform:uppercase;letter-spacing:.06em}
.stagetimes .lab{font-family:var(--display);font-size:13px;font-weight:600;fill:var(--ink);font-stretch:normal}
.stagetimes .lab.whole{font-weight:800}
.stagetimes .n{font-size:10px;fill:var(--ink-3)}
.stagetimes .range{stroke:var(--ink-3);stroke-width:1.5}
.stagetimes .cap{stroke:var(--ink-3);stroke-width:1.5}
.stagetimes .iqr{fill:var(--panel);stroke:var(--ink);stroke-width:1.2}
.stagetimes .iqr.whole{fill:var(--hl-soft)}
.stagetimes .med{fill:var(--ink)}
.stagetimes .med.whole{fill:var(--hl);stroke:var(--ink);stroke-width:2}
.stagetimes .v{font-size:12px;font-weight:600;fill:var(--ink)}
.sw.dotk{width:10px;height:10px;border-radius:50%}
.sw.iqrk{background:var(--panel);border:1.2px solid var(--ink)}
.sw.rangek{height:2px;background:var(--ink-3)}

/* stage spread: where the applications sit on the stage line */
.spread-card{margin:22px 0 18px;max-width:900px}
.spread text{font-family:var(--mono);fill:var(--ink-2);font-stretch:87.5%}
.spread .n{font-size:15px;font-weight:600;fill:var(--ink)}
.spread .s{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
.spread .col{fill:var(--g-pipeline)}
.spread .col.done{fill:var(--ink)}
.spread .ln{stroke:var(--ink);stroke-width:2}
.spread .node{fill:var(--sheet);stroke:var(--ink);stroke-width:2}
.spread .node.done{fill:var(--hl)}

/* map */
.map-shell{position:relative;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:18px 0 0;background:var(--panel)}
.map{height:min(72vh,720px);min-height:360px;background:var(--sea)}
@media (max-width:719px){.map{height:auto;aspect-ratio:1/.95;min-height:0}}
.in-view{background:var(--sheet);border-top:1px solid var(--ink);padding:16px max(20px,env(safe-area-inset-left,0px));font-family:var(--display)}
.in-view .label{margin:0 0 8px}
.iv-counts{display:flex;flex-wrap:wrap;gap:4px 14px;list-style:none;margin:0 0 14px;padding:0;font:600 .86rem var(--display)}
.iv-counts li{margin:0;display:inline-flex;align-items:center}
.iv-counts b{font-family:var(--mono);font-weight:500;margin-left:.35em}
.iv-top{list-style:none;margin:0;padding:0;counter-reset:iv}
.iv-top li{margin:0;padding:7px 0;border-top:1px solid var(--rule);display:grid;gap:1px}
.iv-top a{font:700 .9rem/1.25 var(--display)}
.iv-meta{font:500 .7rem var(--mono);color:var(--ink-2);font-stretch:87.5%}
@media (min-width:1000px){
  .map-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px}
  .in-view{border-top:0;border-left:1px solid var(--ink);padding:18px 20px;overflow:auto;max-height:min(72vh,720px)}
}
.map-fallback{padding:16px;margin:0;font-family:var(--display)}
.legend{display:flex;flex-wrap:wrap;gap:6px 8px;list-style:none;padding:0;margin:14px 0 0;font:600 .84rem var(--display)}
.legend li{margin:0;display:inline-flex;align-items:center;border:1px solid var(--rule-2);background:var(--sheet);padding:6px 10px}
.legend li b{font-family:var(--mono);font-weight:500;margin-left:.5em;color:var(--ink-2)}
.legend .size{color:var(--ink-2)}
/* Leaflet 1.9 blends tiles with plus-lighter; under the grey filter, where two zoom levels overlap that draws a bright
   seam, so tiles blend normally here. The map's own background is the filtered sea colour, so any hairline gap vanishes. */
.leaflet-container img.leaflet-tile{mix-blend-mode:normal!important}
.leaflet-container{font:500 14px/1.4 var(--display);background:var(--sea)}
.leaflet-tile-pane{filter:grayscale(1) contrast(.88) brightness(1.06) sepia(.12)}
:root:not([data-theme="light"]) .leaflet-tile-pane{filter:grayscale(1) contrast(.88) brightness(1.06) sepia(.12)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .leaflet-tile-pane{filter:grayscale(1) brightness(.34) contrast(1.25)}}
:root[data-theme="dark"] .leaflet-tile-pane{filter:grayscale(1) brightness(.34) contrast(1.25)}
.leaflet-container a{color:var(--ink)}
.leaflet-popup-content-wrapper{border-radius:2px;background:var(--sheet);color:var(--ink);box-shadow:0 0 0 1.5px var(--ink),6px 6px 0 rgba(15,26,28,.12)}
.leaflet-popup-tip{background:var(--sheet);box-shadow:0 0 0 1.5px var(--ink)}
.leaflet-popup-content{margin:14px 16px;min-width:200px}
.leaflet-popup-content p{margin:0 0 4px}
.leaflet-popup-content .pop-name{font:800 1.02rem/1.2 var(--display);margin-bottom:8px}
.leaflet-popup-content .pop-meta{font:500 .7rem var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}
.leaflet-popup-content .pop-cap{font:500 .9rem/1.3 var(--mono);letter-spacing:-.03em;margin:8px 0 6px}
.leaflet-container .leaflet-bar a,.leaflet-container .leaflet-bar a:hover{background:var(--sheet);color:var(--ink);border-color:var(--rule-2)}
.leaflet-control-attribution{background:color-mix(in srgb,var(--sheet) 88%,transparent)!important;color:var(--ink-2)}
.map-shell .leaflet-control-attribution{color:var(--ink-2)!important}
.map-shell .leaflet-control-attribution a,.map-shell .leaflet-popup-content a,.map-shell .leaflet-container a{color:var(--ink)!important}
.views{display:flex;flex-wrap:nowrap;gap:6px;list-style:none;margin:12px 0 0;padding:0 0 4px;overflow-x:auto;scrollbar-width:thin}
.views button{white-space:nowrap}
.views li{margin:0}
.views button{font:600 .84rem var(--display);padding:7px 12px;border:1.5px solid var(--ink);background:var(--sheet);color:var(--ink);border-radius:2px;cursor:pointer;min-height:36px}
.views button[aria-pressed="true"],.views button:hover{background:var(--hl);color:var(--hl-ink)}
.leaflet-tooltip{font:600 .8rem var(--display);border-radius:2px;border:1px solid var(--ink);box-shadow:none}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;padding:14px 0;border-bottom:1px solid var(--rule)}
.filters > div:first-child,.filters .count{grid-column:1 / -1}
.filters label{display:block;font:500 .66rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:6px}
.filters input,.filters select{width:100%;font:500 1rem var(--display);padding:10px 12px;border:1.5px solid var(--ink);border-radius:2px;background:var(--sheet);color:var(--ink);min-height:46px}
.filters input:focus,.filters select:focus{outline:3px solid var(--hl);outline-offset:0}
.filters .count{margin:0;align-self:end;font:500 .8rem var(--mono);color:var(--ink-2)}

/* sign-up: a report cover */
.signup{background:var(--sheet);border:1.5px solid var(--ink);padding:22px;position:relative}
.signup label{display:block;font:500 .66rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:8px}
.signup input[type=email]{width:100%;font:500 1.05rem var(--display);padding:12px 14px;border:1.5px solid var(--ink);border-radius:2px;background:var(--paper);color:var(--ink);min-height:50px}
.signup .row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.signup .row > div{flex:1 1 240px}
.signup .consent{margin:12px 0 0;font-family:var(--display)}
.sample{display:grid;gap:28px;align-items:start}
.cover{border:1.5px solid var(--ink);background:var(--sheet);padding:22px 22px 26px;position:relative;max-width:22rem;box-shadow:8px 8px 0 var(--panel)}
.cover .label{margin-bottom:28px}
.cover h3{font-size:1.6rem;line-height:1.02;margin:0 0 14px;letter-spacing:-.03em}
.cover .ed{font:500 .74rem var(--mono);color:var(--ink-2);border-top:1px solid var(--ink);padding-top:10px;margin-top:40px;display:flex;justify-content:space-between}
.cover .stamp{position:absolute;right:16px;top:16px;font:700 .62rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--hl-ink);background:var(--hl);padding:6px 8px;transform:rotate(3deg)}
.cta{border:1.5px solid var(--ink);background:var(--sheet);padding:16px 18px;margin:24px 0;font-family:var(--display)}
.cta p:last-child{margin-bottom:0}

/* method strip */
.principles{display:grid;gap:0;list-style:none;padding:0;margin:0 0 18px;border-top:1px solid var(--ink)}
.principles li{margin:0;padding:16px 0;border-bottom:1px solid var(--rule)}
.principles b{display:block;font:800 1.02rem/1.25 var(--display);margin-bottom:4px;letter-spacing:-.01em;word-spacing:.05em}
.principles span{color:var(--ink-2);font-size:.98rem}

/* report page */
.contents{list-style:none;padding:0;margin:0 0 1em;border-top:1px solid var(--ink);max-width:var(--read)}
.inside-grid{display:grid;gap:28px;align-items:start}
.inside-grid /* the report page's free-or-paid table: the report column carries the weight */
.compare{margin-top:18px;table-layout:fixed}
.compare th[scope="row"]{width:22%;font-weight:700}
.compare td:last-child{font-weight:600}
.compare tbody td:nth-child(2){color:var(--ink-2)}
@media (max-width:600px){.compare th[scope="row"]{width:28%}.compare th,.compare td{padding-right:8px;font-size:.82rem}}
/* a report-only chart shown as a preview: the shape, not the figures (business/FREE-VS-PAID.md) */
.thumb.locked .thumb-in > :not(.label):not(h4){filter:blur(2.5px)}
.thumbs{position:sticky;top:20px}
.thumbs{position:relative;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.thumbs .thumb:first-child{grid-column:1 / -1;aspect-ratio:2.1/1}
.thumbs .thumb:first-child .thumb-in{width:200%;transform:scale(.5)}
.thumb{aspect-ratio:4/3.3;overflow:hidden;border:1.5px solid var(--ink);background:var(--sheet);box-shadow:5px 5px 0 var(--panel);position:relative}
.thumb-in{width:300%;transform:scale(.3333);transform-origin:top left;padding:28px;pointer-events:none}
.thumb-in h4{font-size:2rem;margin:0 0 14px}
.thumb-in .table-wrap{overflow:visible}
.thumb-in .ledger li.head{display:none}
.contents li{border-bottom:1px solid var(--rule);padding:12px 0;margin:0}
.contents strong{display:block;font-family:var(--display)}
.cols{display:grid;gap:8px 32px}
.plans{display:grid;gap:14px;margin:18px 0}
.plan{border:1.5px solid var(--ink);padding:20px;display:flex;flex-direction:column;background:var(--sheet);font-family:var(--display)}
.plan h3{margin:0 0 4px}
.price{font:500 2.2rem/1 var(--mono);letter-spacing:-.06em;margin:10px 0 4px;font-stretch:85%}
.price small{font:600 .85rem var(--display);letter-spacing:0;color:var(--ink-2)}
.plan ul{padding-left:1.1em;margin:12px 0 16px;flex:1}
.plan .btn{text-align:center}
.plan.brief{background:var(--panel)}
.plan.rec{position:relative;box-shadow:0 0 0 1.5px var(--ink)}
.plan .stamp{position:absolute;right:14px;top:-12px;font:700 .64rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--hl);color:var(--hl-ink);padding:6px 8px;transform:rotate(2deg)}
.terms li{margin:.45em 0}
details{border-bottom:1px solid var(--rule);padding:14px 0}
details:first-of-type{border-top:1px solid var(--ink)}
summary{cursor:pointer;font:700 1rem var(--display);padding-right:8px}
details[open] summary{margin-bottom:8px}
details p:last-child{margin-bottom:0}

/* footer */
footer{border-top:1px solid var(--ink);padding:36px 0 56px;font:500 .82rem/1.55 var(--display);color:var(--ink-2);margin-top:0;background:var(--panel)}
footer .foot-grid{display:grid;gap:18px}
footer p{margin-bottom:.6em;max-width:48rem}
footer nav ul{display:flex;flex-wrap:wrap;gap:4px 16px;list-style:none;padding:0;margin:0 0 .8em}
footer nav li{margin:0}
footer nav a{display:inline-block;padding:6px 0;font-weight:700;color:var(--ink)}
footer .colophon{font:500 .66rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-stretch:87.5%}

@media (min-width:720px){
  .readout{grid-template-columns:repeat(3,minmax(0,1fr))}
  .readout li{padding-right:20px}
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .plans{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters{grid-template-columns:1fr 1fr;align-items:end}
  .facts-list{grid-template-columns:minmax(150px,auto) 1fr}
  .facts-list dt{margin-top:0;padding:8px 0;border-bottom:1px solid var(--rule)}
  .facts-list dd{padding:8px 0;border-bottom:1px solid var(--rule)}
  .ledger li{grid-template-columns:9rem minmax(0,1.3fr) minmax(0,1fr);align-items:start}

  .titleblock{grid-template-columns:repeat(2,minmax(0,1fr))}
  .titleblock > div:nth-child(odd):not(.wide){border-right:1px solid var(--rule-2)}
  .principles{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
  .sample{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
  footer .foot-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
}
@media (min-width:1000px){
  .ledger li.head{display:grid;padding:10px 0 8px;font:500 .62rem/1.2 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-stretch:87.5%;align-items:end}
  .ledger li.head ol.nodes{display:flex;list-style:none;margin:0;padding:0;height:1.2em}
  .ledger li.head ol.nodes li{flex:1 1 0;margin:0;display:block;padding:0;border:0;min-width:0;position:relative;height:1.2em}
  .ledger li.head ol.nodes li:first-child{flex:0 0 10px}
  .ledger li.head ol.nodes li::after{content:attr(data-n);position:absolute;right:5px;bottom:0;transform:translateX(50%);white-space:nowrap}
  .ledger li.head ol.nodes li:first-child::after{right:auto;left:0;transform:none}
  .ledger li.head ol.nodes li:last-child::after{right:0;transform:none}
  .ledger .move .modcap{max-width:none}
  .split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px}
  .inside-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:40px}
  .hero{padding:64px 0 72px}
  .hero .grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px}
  .readout{grid-template-columns:repeat(6,minmax(0,1fr))}
  .kpis.six{grid-template-columns:repeat(6,minmax(0,1fr))}
  .plans{grid-template-columns:repeat(3,minmax(0,1fr))}
  .plan.brief{grid-column:1 / -1}
  .plan.quick + .plan.brief{grid-column:span 2}
  .filters{grid-template-columns:2fr 1fr 1fr auto}
  .filters > div:first-child,.filters .count{grid-column:auto}
  .titleblock{grid-template-columns:repeat(4,minmax(0,1fr))}
  .titleblock > div{border-right:1px solid var(--rule-2)}
  .titleblock > div:nth-child(4n){border-right:0}
  .titleblock > div.wide{border-right:0}
  .principles{grid-template-columns:repeat(4,minmax(0,1fr))}
  .principles li{border-bottom:0;padding-right:8px}
}
@media (forced-colors:active){
  .dot,.statusbar span,.stageline li::after{forced-color-adjust:none}
}
@media print{
  .preview,.skip,.actions,.signup form,.top nav,.map-shell,.filters{display:none}
  body{background:#fff}
  a{color:inherit;text-decoration:none}
}
