/* php.oct.2026.newsroom.sgit.ai. Colour is in assets/themes/themes.css (five themes) + site-tokens.css; nothing below names a colour. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.55}
a{color:var(--accent)}a:hover{color:var(--accent-dk)}
main{max-width:1080px;margin:0 auto;padding:1.2rem 16px 3rem}
h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.6rem,3.5vw,2.4rem);line-height:1.15;margin:.4rem 0 .8rem;color:var(--head)}
h2{font-size:1.25rem;margin:2.2rem 0 .6rem;color:var(--head);border-top:1px solid var(--line);padding-top:1rem}
h3{font-size:1.02rem;margin:1rem 0 .3rem;color:var(--head)}
p{margin:.5rem 0}
.lead{font-size:1.08rem;color:var(--fg)}
.kicker{font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin:0}
.small,.meta,.note,.refs{font-size:.8rem;color:var(--dim)}
.note{margin-top:.25rem}
code{font-family:var(--mono);font-size:.84em;background:var(--mute-bg);padding:.05rem .3rem;border-radius:4px;overflow-wrap:anywhere}
summary,.meta,.kv,.files li,h3 a,.source .small,.note,td{overflow-wrap:break-word}td code,td a[href^="http"]{overflow-wrap:anywhere}
pre{font-family:var(--mono);font-size:.8rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.8rem;overflow-x:auto}
q{font-style:italic}
section{margin:0}
ul,ol{padding-left:1.3rem}
li{margin:.35rem 0}
.caveat{border-left:3px solid var(--warm);padding:.5rem .8rem;background:var(--panel);border-radius:0 8px 8px 0;font-size:.92rem}
.kv{font-size:.9rem;color:var(--dim)}
/* nav */
nav.site{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
nav.site .row{max-width:1080px;margin:0 auto;padding:.45rem 16px;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
nav.site .brand{font-family:var(--serif);font-weight:700;font-size:1.15rem;color:var(--head);text-decoration:none}
nav.site .brand span{color:var(--dim);font-weight:400}
nav.site .ver{font-family:var(--mono);font-size:.74rem;color:var(--dim);text-decoration:none;border:1px solid var(--line2);border-radius:999px;padding:.05rem .45rem}
nav.site .status{font-size:.72rem;color:var(--dim)}
nav.site sg-meter{margin-left:auto;font-size:.8rem}
.nav-toggle{display:none;border:1px solid var(--line2);background:var(--panel);color:var(--fg);border-radius:6px;padding:.25rem .6rem;font:inherit;font-size:.85rem}
.nav-items{display:flex;gap:.2rem;flex-basis:100%;flex-wrap:wrap}
.ni{position:relative}
.nl{display:inline-block;padding:.3rem .55rem;color:var(--fg);text-decoration:none;font-size:.88rem;border-radius:6px}
.nl.here{background:var(--mute-bg)}
.nl .caret{font-size:.7rem;margin-left:.2rem;color:var(--dim)}
.nl.ext{font-family:var(--mono);font-size:.76rem;color:var(--dim)}
.sub{display:none;position:absolute;left:0;top:100%;min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:.3rem;z-index:30}
.ni:hover .sub,.ni:focus-within .sub,.ni.open .sub{display:block}
.sl{display:block;padding:.3rem .55rem;font-size:.86rem;color:var(--fg);text-decoration:none;border-radius:5px}
.sl:hover,.sl.here{background:var(--mute-bg)}
@media (max-width:900px){
  .nav-toggle{display:inline-block;margin-left:auto}
  nav.site sg-meter{margin-left:0}
  .nav-items{display:none;flex-direction:column}
  .nav-items.open{display:flex}
  .sub{position:static;box-shadow:none;border:0;padding-left:.8rem;display:none}
  .ni.open .sub{display:block}
  .ni:hover .sub{display:none}.ni.open:hover .sub{display:block}
}
/* hero and stats */
.hero{margin-bottom:1rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:1rem 0}
.stat{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;text-decoration:none;color:var(--fg)}
.stat b{display:block;font-size:1.5rem;font-family:var(--serif);color:var(--head)}
.stat span{font-size:.78rem;color:var(--dim)}
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}
.num{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;text-decoration:none;color:var(--fg)}
.num b{display:block;font-size:1.35rem;font-family:var(--serif);color:var(--head)}
.num span{display:block;font-size:.76rem;color:var(--dim);margin-bottom:.3rem;min-height:2.2em}
.known li,.open li{margin:.55rem 0}
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem}
.door{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;text-decoration:none;color:var(--fg)}
.door b{display:block;color:var(--head)}.door span{font-size:.84rem;color:var(--dim)}
.how{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.how h3{margin-top:0}
/* tables */
.tw{overflow-x:auto;margin:.6rem 0;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
table{width:100%;border-collapse:collapse;font-size:.86rem}
th,td{border-bottom:1px solid var(--line);padding:.45rem .55rem;text-align:left;vertical-align:top}
th{color:var(--dim);font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;background:var(--panel);position:sticky;top:0}
tr:last-child td{border-bottom:0}
td .when,.when{white-space:nowrap;font-family:var(--mono);font-size:.76rem}
table.sw{font-size:.78rem}
/* pills */
.st{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.06rem .42rem;border-radius:6px;background:var(--mute-bg);color:var(--mute-ink);white-space:nowrap}
.st-confirmed,.st-stated,.st-captured,.st-fix,.st-yes{background:var(--ok-bg);color:var(--ok-ink)}
.st-reported,.st-isolate,.st-investigation{background:var(--info-bg);color:var(--info-ink)}
.st-disputed,.st-contradicted,.st-inferred,.st-blocked,.st-failed,.st-after,.st-consider,.st-restrict,.st-vulnerable{background:var(--warn-bg);color:var(--warn-ink)}
.st-unverified{background:var(--bad-bg);color:var(--bad-ink)}
/* the fact-check desk's assurance badges: the level code, its name and a six-dot meter, so a grade never rests on colour alone */
.as{display:inline-flex;gap:.3rem;align-items:center;font-size:.7rem;font-weight:600;padding:.06rem .45rem;border-radius:6px;white-space:nowrap;border:1px solid transparent}
.as i{font-style:normal;font-size:.6rem;letter-spacing:.02em;opacity:.85}
.as-0{background:var(--bad-bg);color:var(--bad-ink)}
.as-1{background:var(--bad-bg);color:var(--bad-ink);border:1px dashed var(--bad-ink)}
.as-2{background:var(--warn-bg);color:var(--warn-ink)}
.as-3{background:var(--warn-bg);color:var(--warn-ink);border:1px dashed var(--warn-ink)}
.as-4{background:var(--info-bg);color:var(--info-ink)}
.as-5{background:var(--ok-bg);color:var(--ok-ink)}
.as-6{background:var(--accent);color:var(--on-accent)}
.as-ref{background:var(--bad-ink);color:var(--bg)}
.as-none{background:var(--mute-bg);color:var(--dim)}
.as-k{font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);white-space:nowrap}
.as-t{color:var(--warn-ink)}
.fc-filter{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;margin:.5rem 0 1rem}
.fc-grid tr[hidden]{display:none}
#contradictions,#t-evidence,.fc-grid{overflow-wrap:anywhere}
.legend{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.84rem;color:var(--dim)}
.legend li{margin:.15rem 0}
.src{display:inline-block;font-size:.74rem;background:var(--mute-bg);color:var(--fg);padding:.04rem .4rem;border-radius:5px;text-decoration:none;margin:.1rem .15rem .1rem 0}
.src:hover{background:var(--line2)}
.src-missing{background:var(--bad-bg);color:var(--bad-ink)}
/* cve cards, steps, roles, sources */
.cve,.role,.source,.rel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;margin:.8rem 0}
.cve h3,.role h3,.source h3,.rel h3{margin-top:0}
.verb{font-size:.95rem}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.col{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem}
.col h3{margin-top:0}.col ul{padding-left:1rem;font-size:.88rem}
.steps{list-style:none;padding:0;counter-reset:s}
.steps li{display:flex;gap:.8rem;margin:.9rem 0}
.steps .n{flex:0 0 2.2rem;height:2.2rem;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-weight:700}
.steps h3{margin:.2rem 0 .3rem}
.asks li{margin:.5rem 0}
.designed li{margin:.7rem 0}
.sources .source{font-size:.9rem}
.files{list-style:none;padding-left:.4rem;font-size:.74rem}
.h{font-family:var(--mono);word-break:break-all;color:var(--dim)}
details summary{cursor:pointer;font-size:.84rem;color:var(--accent)}
.memo p{font-size:.92rem}
/* graph */
.graph{margin:1rem 0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.6rem}
.graph svg{display:block;font-family:var(--sans)}
.graph .n{font-size:9px;fill:var(--fg)}.graph .t{font-size:11px;fill:var(--dim);font-weight:700}
.graph .e{fill:none;stroke:var(--line2);stroke-width:.7;opacity:.7}
.graph .e-confirmed{stroke:var(--ok-ink)}.graph .e-disputed,.graph .e-contradicted{stroke:var(--warn-ink)}.graph .e-unverified{stroke:var(--bad-ink)}
.graph .d{fill:var(--panel);stroke:var(--dim);stroke-width:1}
.graph .d-pri{fill:var(--accent);stroke:var(--accent)}
.graph .d-confirmed{fill:var(--ok-ink);stroke:var(--ok-ink)}.graph .d-disputed,.graph .d-contradicted{fill:var(--warn-ink);stroke:var(--warn-ink)}.graph .d-unverified{fill:var(--bad-ink);stroke:var(--bad-ink)}
.graph .d-pri{fill:var(--accent);stroke:var(--accent)}
.graph figcaption{font-size:.8rem;color:var(--dim)}
/* footer */
footer.site{border-top:1px solid var(--line);background:var(--panel);margin-top:2rem}
footer.site .row{max-width:1080px;margin:0 auto;padding:1.2rem 16px;font-size:.84rem;color:var(--dim)}
footer .disc{font-size:.78rem}
sg-meter{display:block}
main > sg-meter{margin:0}

/* v0.2 */
.wt{font-family:var(--mono);font-size:.74rem;white-space:nowrap}
.graph .d-src{fill:var(--panel);stroke:var(--accent)}.graph .d-actor{fill:var(--warm);stroke:var(--warm)}.graph .d-event{fill:var(--dim);stroke:var(--dim)}.graph .e-event,.graph .e-src{stroke:var(--line2)}
.graph .t{font-weight:700}
.mech li,.reading li{margin:.6rem 0}
.notes h4{margin:.8rem 0 .2rem;font-size:.9rem}
.notes ul{font-size:.9rem}
table.ctx td:nth-child(6),table.ctx td:nth-child(7){min-width:14rem}

.crumbs{font-size:.74rem;color:var(--dim)}.crumbs a{color:var(--dim)}
/* the review navigator */
.review-ui{min-height:30rem}
.rgraph{margin:.6rem 0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.4rem}
.rgraph svg{display:block;font-family:var(--sans)}
.rgraph .e{fill:none;stroke:var(--line2);stroke-width:1}
.rgraph .nd text{font-size:9px;fill:var(--dim)}
.rgraph .nd circle{fill:var(--panel);stroke:var(--dim);stroke-width:1.5;cursor:pointer}
.rgraph .nd.l-vulnerability circle{stroke:var(--red,var(--warm))}.rgraph .nd.l-remediation circle{stroke:var(--accent);fill:var(--accent)}.rgraph .nd.l-code circle{stroke:var(--dim)}
.rgraph .nd.l-stakeholder circle{stroke:var(--accent);fill:var(--accent)}.rgraph .nd.l-risk circle,.rgraph .nd.l-flaw circle{stroke:var(--red,var(--warm))}.rgraph .nd.l-arc circle{stroke:var(--warm)}.rgraph .nd.l-fix circle{stroke:var(--accent);fill:var(--accent)}.rgraph .nd.l-function circle,.rgraph .nd.l-line circle{stroke:var(--dim);fill:var(--dim)}
.rgraph .nd.here circle{fill:var(--accent);stroke:var(--accent)}.rgraph .nd.here text{fill:var(--head);font-weight:700}
.rgraph .nd:focus{outline:none}.rgraph .nd:focus circle{stroke:var(--accent);stroke-width:2.5}
.rnode{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;margin:.6rem 0}
.rnode .files,ul.rel{list-style:none;padding-left:0}
ul.rel li{margin:.3rem 0}.rl{font-family:var(--mono);font-size:.74rem;color:var(--dim)}.ly{font-size:.72rem;color:var(--dim)}
.crumb .ly{display:inline-block;padding:.05rem .4rem;border-radius:6px;background:var(--mute-bg)}.crumb .ly.on{background:var(--accent);color:var(--on-accent)}
table.ex td:nth-child(1){width:7rem}table.ex td:nth-child(2){width:13%}table.ex td:nth-child(3){width:40%}table.ex td:nth-child(4){width:7rem}table.ex td:nth-child(5){width:11rem}
/* the pipeline page (/status/) and the bar's note that a newer release is live */
nav.site .ver.newer{color:var(--accent-dk);border-color:currentColor;margin-left:.3rem}
.pl-site .pl-sum{font-size:.95rem}
.pl-badge{vertical-align:middle}
.pl-runs td{white-space:nowrap}
#pl-refresh{font:inherit;font-size:.85rem;padding:.2rem .7rem;border:1px solid var(--line2);border-radius:6px;background:var(--panel);color:inherit;cursor:pointer}
/* published vaults (/vaults/): the note box, the open button, the embedded official UI, the hero shot */
.vnote{border:1px solid var(--line2);border-left:3px solid var(--accent-dk);background:var(--panel);border-radius:0 8px 8px 0;padding:.6rem .8rem;margin:1rem 0;font-size:.9rem;overflow-wrap:anywhere}
.openrow{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.btn-open{display:inline-block;padding:.35rem .9rem;border-radius:8px;border:1px solid var(--accent-dk);color:var(--accent-dk);text-decoration:none;font-weight:600}
.sgv-uiembed-label{font-family:var(--mono);font-size:.85rem;font-weight:600;color:var(--accent-dk);margin:1.2rem 0 0}
.sgv-embed-frame{width:100%;border:1px solid var(--line2);border-radius:10px;background:var(--panel)}
.sgv-embed-frame.sgv-embed-ui{height:clamp(560px,78vh,1050px)}
.sgv-breakout{width:min(94vw,1400px);position:relative;left:50%;transform:translateX(-50%)}
figure.shot{margin:1.2rem 0}
figure.shot img{display:block;width:100%;height:auto;border:1px solid var(--line2);border-radius:10px}
figure.shot figcaption{font-size:.84rem;color:var(--dim);margin-top:.4rem}
.wt-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
@media (max-width:900px){.wt-row{grid-template-columns:1fr}}
.vcard{border-top:1px solid var(--line);padding-top:.4rem}
.vcard h2 .st{vertical-align:middle;margin-left:.4rem}
.crumb{font-size:.84rem;color:var(--dim);margin:0 0 .3rem}

/* v0.3: readers. Personas, the reader bar, plain-English boxes, glossary hover cards, the front page. */
:root{
  --g-understand:#2f7d6b; --g-decide:#6a4bb0; --g-communicate:#b4461c; --g-act:#1f5e9b; --g-study:#5b6472;
  --shadow:0 1px 2px rgba(0,0,0,.05),0 6px 18px rgba(0,0,0,.06);
}
@media (prefers-color-scheme: dark){:root{
  --g-understand:#6cc7b0; --g-decide:#b7a0f0; --g-communicate:#f09a72; --g-act:#7fb3e6; --g-study:#aab3c2;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.25);
}}
.av{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:50%;font-weight:700;font-family:var(--serif);color:var(--panel);background:var(--g-act)}
.av-understand{background:var(--g-understand)}.av-decide{background:var(--g-decide)}.av-communicate{background:var(--g-communicate)}.av-act{background:var(--g-act)}.av-study{background:var(--g-study)}
.depth{display:inline-flex;align-items:center;gap:2px;font-size:.72rem;color:var(--dim);white-space:nowrap}
.depth i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--line2)}
.depth i:last-of-type{margin-right:4px}
.depth-1 i:nth-child(1),.depth-2 i:nth-child(-n+2),.depth-3 i{background:var(--accent)}
/* hero */
.hero2{padding:1.2rem 0 .4rem}
.hero2 h1{font-size:clamp(1.8rem,4.6vw,3rem);max-width:22ch;letter-spacing:-.01em}
.deck{font-size:clamp(1.02rem,2vw,1.2rem);max-width:60ch;color:var(--fg);margin:.2rem 0 1rem}
.live{display:inline-flex;align-items:center;gap:.35rem;color:var(--bad-ink);font-weight:700}
.live::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--bad-ink);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
@media (prefers-reduced-motion: reduce){.live::before{animation:none}}
.ctas{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .4rem}
.cta{display:inline-block;padding:.5rem .9rem;border-radius:999px;border:1px solid var(--line2);background:var(--panel);color:var(--fg);text-decoration:none;font-size:.92rem;font-weight:600}
.cta:hover{border-color:var(--accent);color:var(--accent)}
.cta-pri{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.cta-pri:hover{background:var(--accent-dk);color:var(--panel)}
/* status tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}
.tile{display:flex;flex-direction:column;gap:.15rem;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--line2);border-radius:10px;padding:.65rem .75rem;text-decoration:none;color:var(--fg);box-shadow:var(--shadow)}
.tile:hover{border-color:var(--line2)}
.tile .tl{font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}
.tile b{font-family:var(--serif);font-size:1.35rem;line-height:1.15;color:var(--head)}
.tile .tn{font-size:.78rem;color:var(--dim)}
.tile-ok{border-top-color:var(--ok-ink)}.tile-ok b{color:var(--ok-ink)}
.tile-warn{border-top-color:var(--warn-ink)}.tile-warn b{color:var(--warn-ink)}
.tile-bad{border-top-color:var(--bad-ink)}.tile-bad b{color:var(--bad-ink)}
.tile-info{border-top-color:var(--info-ink)}.tile-info b{color:var(--info-ink)}
/* persona doors */
.dgroups{display:grid;gap:1.1rem}
.dgroup h3{margin:.2rem 0 0;font-size:1rem}
.dgroup > .small{margin:.1rem 0 .5rem}
.dgroups .doors{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.door{display:flex;flex-direction:column;gap:.45rem;border-left:4px solid var(--g-act);box-shadow:var(--shadow);transition:transform .12s ease}
.door:hover{transform:translateY(-1px);border-color:var(--line2)}
.door-understand{border-left-color:var(--g-understand)}.door-decide{border-left-color:var(--g-decide)}.door-communicate{border-left-color:var(--g-communicate)}.door-act{border-left-color:var(--g-act)}.door-study{border-left-color:var(--g-study)}
.door.mine{outline:2px solid var(--accent);outline-offset:2px}
.door .dh{display:flex;gap:.6rem;align-items:center}
.door .dh b{display:block}
.door .dh small{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;color:var(--dim);font-size:.76rem}
.door .dq{font-size:.88rem;color:var(--fg)}
.door .dm{display:flex;justify-content:space-between;align-items:center;font-size:.76rem;color:var(--dim);margin-top:auto;border-top:1px solid var(--line);padding-top:.4rem}
.door .go{color:var(--accent);font-weight:700}
/* the five questions */
.qas{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.7rem}
.qa{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.8rem .9rem;display:flex;flex-direction:column}
.qa h3{margin:0 0 .3rem;font-family:var(--serif);font-size:1.12rem}
.qa p{font-size:.92rem}
.qa .qa-f{margin-top:auto;font-size:.82rem}
/* five moments */
.moments{list-style:none;padding:0;margin:.8rem 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;position:relative}
.moments::before{content:"";position:absolute;left:0;right:0;top:.55rem;height:2px;background:var(--line2)}
.moments .m{position:relative;padding:1.5rem .6rem 0 0;margin:0}
.moments .m::before{content:"";position:absolute;top:0;left:0;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--panel);border:3px solid var(--dim)}
.moments .m a{display:block;text-decoration:none;color:var(--fg)}
.moments .mw{display:block;font-weight:700;font-family:var(--serif);font-size:1.05rem;color:var(--head)}
.moments .mt{display:block;font-size:.86rem;margin:.15rem 0 .3rem}
.m-ok::before{border-color:var(--ok-ink)!important}.m-warn::before{border-color:var(--warn-ink)!important}.m-bad::before{border-color:var(--bad-ink)!important;background:var(--bad-ink)!important}.m-info::before{border-color:var(--info-ink)!important}
@media (max-width:760px){
  .moments{grid-template-columns:1fr;padding-left:1.6rem}
  .moments::before{left:.5rem;right:auto;top:0;bottom:0;width:2px;height:auto}
  .moments .m{padding:0 0 .9rem 0}
  .moments .m::before{left:-1.6rem;top:.2rem}
}
/* plain-English box on every technical page */
.plainbox{display:block;background:var(--info-bg);color:var(--info-ink);border-radius:10px;padding:.6rem .85rem;margin:.3rem 0 .9rem;font-size:.95rem}
.plainbox b{display:inline-block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;margin-right:.4rem}
/* the thirty-second answer */
.answer{display:flex;gap:.8rem;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:.8rem 1rem;margin:.6rem 0 1rem;box-shadow:var(--shadow)}
.answer p{margin:.25rem 0}
.answer > div > p:nth-child(2){font-size:1.05rem}
.answer-s{box-shadow:none;margin:.6rem 0}
.cols2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.cols2 h3,.cols2 h4{margin:.4rem 0 .2rem}
.rpath{counter-reset:r;list-style:none;padding:0;margin:.4rem 0}
.rpath li{counter-increment:r;display:flex;gap:.5rem;align-items:baseline;margin:.3rem 0}
.rpath li::before{content:counter(r);flex:0 0 1.5rem;height:1.5rem;border-radius:50%;background:var(--mute-bg);color:var(--fg);font-size:.78rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.chips{display:flex;flex-wrap:wrap;gap:.35rem}
.chip{display:inline-block;font-size:.8rem;padding:.12rem .55rem;border:1px solid var(--line2);border-radius:999px;color:var(--fg);text-decoration:none;background:var(--panel)}
.chip:hover{border-color:var(--accent);color:var(--accent)}
details.evidence{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem}
details.evidence summary{font-size:.92rem;font-weight:600}
/* glossary links and hover cards */
a.term,a.cve-link{color:inherit;text-decoration:none;border-bottom:1px dotted var(--dim);cursor:help}
a.cve-link{font-family:var(--mono);font-size:.92em;color:var(--accent);border-bottom-color:var(--accent)}
a.term:hover,a.term:focus{color:var(--accent);border-bottom-color:var(--accent)}
.tip{position:fixed;z-index:60;display:none;background:var(--head);color:var(--bg);padding:.55rem .7rem;border-radius:8px;font-size:.84rem;line-height:1.4;box-shadow:0 8px 24px rgba(0,0,0,.25);pointer-events:none}
.tip small{display:block;margin-top:.3rem;opacity:.7;font-size:.74rem}
/* the reader bar */
.pbar{background:var(--mute-bg);border-bottom:1px solid var(--line);font-size:.84rem}
.pbar[hidden]{display:none}
.pbar .row{max-width:1080px;margin:0 auto;padding:.35rem 16px;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem}
.pbar .av{width:1.6rem;height:1.6rem;font-size:.85rem}
.pbar .who a{color:var(--fg)}
.pbar .nx{color:var(--dim)}
.pbar .chg{margin-left:auto;color:var(--dim)}
.pbar .x{border:0;background:none;color:var(--dim);font-size:1.1rem;line-height:1;cursor:pointer;padding:.1rem .3rem}
.pbar-new .who{color:var(--dim)}
.pbar-new .x{margin-left:auto}
.steps-mini{list-style:none;display:flex;gap:.25rem;padding:0;margin:0}
.steps-mini li{margin:0}
.steps-mini a{display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border-radius:50%;border:1px solid var(--line2);background:var(--panel);color:var(--dim);font-size:.72rem;font-weight:700;text-decoration:none}
.steps-mini .seen a{background:var(--ok-bg);border-color:var(--ok-ink);color:var(--ok-ink)}
.steps-mini .here a{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* the readers map */
.pmap{display:grid;gap:.4rem;margin:.8rem 0}
.pmap .mr{display:grid;grid-template-columns:minmax(150px,1.1fr) repeat(3,minmax(0,1fr));gap:.4rem}
.pmap .ml,.pmap .mc,.pmap .mh{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.5rem .55rem}
.pmap .mhead .ml{background:none;border:0}
.pmap .mh{background:none;border:0;display:flex;flex-direction:column;gap:.1rem}
.pmap .mh small,.pmap .ml small{display:block;font-size:.74rem;color:var(--dim)}
.pmap .mc{display:flex;flex-direction:column;gap:.35rem;min-height:2.6rem}
.pchip{display:flex;gap:.45rem;align-items:center;text-decoration:none;color:var(--fg);font-size:.86rem}
.pchip .av{width:1.7rem;height:1.7rem;font-size:.85rem}
.pchip small{display:block;color:var(--dim);font-size:.74rem}
.pchip .pd{display:none}
@media (max-width:700px){
  .pmap .mhead{display:none}
  .pmap .mr{grid-template-columns:1fr}
  .pmap .mc:empty{display:none}
  .pmap .mc{border:0;background:none;padding:.1rem .2rem}
  .pchip .pd{display:inline-flex;margin-left:auto}
}
.pcards{display:grid;gap:.9rem}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;scroll-margin-top:5rem}
.pcard header{display:flex;gap:.7rem;align-items:center}
.pcard h3{margin:0}.pcard h4{margin:.8rem 0 .2rem;font-size:.92rem}
.howlist li{margin:.6rem 0}
/* the explainer */
.toc{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0 1rem}
.toc a{font-size:.84rem;padding:.2rem .6rem;border-radius:999px;background:var(--mute-bg);color:var(--fg);text-decoration:none}
.toc a:hover{background:var(--line2)}
.toc.jump a{font-family:var(--mono);min-width:2rem;text-align:center}
section[id]{scroll-margin-top:4.5rem}
.flow{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.8rem;margin:1rem 0}
.lane{display:flex;flex-direction:column;gap:.4rem}
.lane-l{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-weight:700}
.lane-bad .lane-l{color:var(--bad-ink)}
.fsteps{display:flex;align-items:stretch;gap:.4rem;flex-wrap:wrap}
.fstep{flex:1 1 140px;background:var(--bg);border:1px solid var(--line2);border-radius:8px;padding:.5rem .6rem;font-weight:600;font-size:.9rem}
.fstep small{display:block;font-weight:400;color:var(--dim);font-size:.78rem}
.fstep.bad{border-color:var(--bad-ink);background:var(--bad-bg);color:var(--bad-ink)}
.fstep.bad small{color:var(--bad-ink);opacity:.85}
.farr{align-self:center;color:var(--dim);font-size:1.2rem}
@media (max-width:640px){.fsteps{flex-direction:column}.farr{transform:rotate(90deg);align-self:flex-start;margin-left:1rem}}
.reach{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem;margin-top:.7rem;font-size:.88rem}
.reach > div{border-top:1px dashed var(--line2);padding-top:.4rem}
/* the glossary */
.gletter h2{font-family:var(--mono)}
.gterm{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;margin:.6rem 0;scroll-margin-top:5rem}
.gterm:target{outline:2px solid var(--accent)}
.gterm h3{margin:0 0 .2rem;font-family:var(--serif);font-size:1.15rem}
.gshort{font-weight:600}
/* v0.3: compact doors, one column per kind of reader, so the whole choice fits on a screen */
.av,.door .av,.pbar .av,.pchip .av{color:var(--bg)}
.tiles{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}
.hero2 h1{max-width:24ch}
.dgroups{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;align-items:start}
.dgroup h3{font-size:.95rem;border-bottom:2px solid var(--line2);padding-bottom:.25rem}
.dgroup-understand h3{border-color:var(--g-understand)}.dgroup-decide h3{border-color:var(--g-decide)}.dgroup-communicate h3{border-color:var(--g-communicate)}.dgroup-act h3{border-color:var(--g-act)}.dgroup-study h3{border-color:var(--g-study)}
.dgroup > .small{display:none}
.dgroups .doors{grid-template-columns:1fr;gap:.45rem}
.dgroups .door{padding:.5rem .6rem;gap:.25rem}
.dgroups .door .av{width:1.7rem;height:1.7rem;font-size:.85rem}
.dgroups .door .dh b{font-size:.88rem;line-height:1.2}
.dgroups .door .dq{font-size:.78rem;color:var(--dim);line-height:1.35}
.dgroups .door .dm{font-size:.72rem;padding-top:.25rem}
.dgroups .door .go{display:none}
.door .dh small{font-size:.72rem}
.door .depth,.pchip .depth{font-size:.68rem}
.dgroups .door .dh small{flex-wrap:nowrap;gap:.3rem}
.tile b{overflow-wrap:normal}
/* v0.3.1: the front page is the current situation, in plain words, with the evidence attached */
.aka{font-size:.82rem;color:var(--dim);margin:.6rem 0 0}
.nowlist{list-style:none;padding:0;margin:.4rem 0;display:grid;gap:.5rem}
.nowlist li{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--bad-ink);border-radius:8px;padding:.6rem .8rem;margin:0;font-size:1.02rem}
.facts{list-style:none;padding:0;margin:.6rem 0;display:grid;gap:.5rem}
.facts li{display:flex;gap:.8rem;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.65rem .85rem;margin:0}
.facts .fs{flex:0 0 6.6rem;padding-top:.2rem}
.facts p{margin:0}
.facts .ff{font-size:.8rem;margin-top:.3rem}
@media (max-width:560px){.facts li{flex-direction:column;gap:.3rem}.facts .fs{flex:none}}
.unknown li{margin:.45rem 0}
.latest{list-style:none;padding:0;margin:.4rem 0}
.latest li{display:grid;grid-template-columns:9.5rem 1fr;gap:.6rem;margin:.45rem 0;padding-bottom:.45rem;border-bottom:1px solid var(--line)}
@media (max-width:560px){.latest li{grid-template-columns:1fr;gap:.1rem}}
/* v0.3.2: versions, diffs, fact timelines, the pipeline, the interview */
.vbadge{font-size:.76rem;color:var(--dim);margin:.2rem 0 .6rem;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.vbadge .vb-v{font-family:var(--mono);font-size:.72rem;background:var(--mute-bg);color:var(--fg);border-radius:999px;padding:.05rem .5rem}
.vbadge a{color:var(--dim)}
section > .vbadge{margin-top:.6rem}
.flink{font-size:.72rem;white-space:nowrap;color:var(--dim)}
.diff{font-family:var(--mono);font-size:.76rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.4rem 0;margin:.5rem 0;overflow-x:auto}
.dl{padding:.08rem .7rem;white-space:pre-wrap;overflow-wrap:anywhere}
.dl-ctx{color:var(--dim)}
.dl-skip{color:var(--dim);font-style:italic;text-align:center;background:var(--mute-bg)}
.dl-del{background:var(--bad-bg);color:var(--bad-ink);text-decoration:line-through}
.dl-ins{background:var(--ok-bg);color:var(--ok-ink)}
.dl-chg del{background:var(--bad-bg);color:var(--bad-ink)}
.dl-chg ins{background:var(--ok-bg);color:var(--ok-ink);text-decoration:none}
.vtext{white-space:pre-wrap;max-height:28rem;overflow:auto}
details > summary{padding:.3rem 0}
.rail{list-style:none;padding:0 0 0 1.2rem;margin:.6rem 0;border-left:2px solid var(--line2)}
.rail .tk{position:relative;display:grid;grid-template-columns:10.5rem 1fr;gap:.6rem;margin:.55rem 0}
.rail .tk::before{content:"";position:absolute;left:-1.62rem;top:.3rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--panel);border:2px solid var(--dim)}
.rail .tk-pub::before{border-color:var(--accent)}
.rail .tk-cap::before{border-color:var(--ok-ink);background:var(--ok-bg)}
.rail .tk-site::before{border-color:var(--warm);background:var(--warm)}
@media (max-width:560px){.rail .tk{grid-template-columns:1fr;gap:.05rem}}
.pchips{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:.4rem 0}
.vt{max-height:none}
.vmatrix th.rv{font-family:var(--mono);text-align:center;white-space:nowrap}
.vmatrix td{text-align:center;vertical-align:middle;padding:.3rem}
.vmatrix .vn{font-weight:400;text-transform:none;letter-spacing:0;font-size:.82rem;color:var(--fg);white-space:normal;min-width:14rem;position:static}
.vmatrix .vn .av{width:1.3rem;height:1.3rem;font-size:.7rem;vertical-align:middle}
.vmatrix .vg th{background:var(--mute-bg);color:var(--fg);position:static}
.vc{display:inline-block;min-width:1.9rem;height:1.25rem;border-radius:5px;font-family:var(--mono);font-size:.68rem;line-height:1.25rem;text-decoration:none}
.vc-new{background:var(--accent);color:var(--panel)}
.vc-same{background:var(--mute-bg)}
.fc{font-size:.72rem}.fc b{color:var(--ok-ink)}.fc span{color:var(--warn-ink)}
.wn .newmark{display:none;margin-left:.6rem;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;background:var(--bad-bg);color:var(--bad-ink);border-radius:999px;padding:.08rem .5rem;vertical-align:middle;font-family:var(--sans)}
.wn.unseen{border-color:var(--accent)}.wn.unseen .newmark{display:inline-block}
.wn h2{border:0;margin:0 0 .3rem;padding:0;font-size:1.1rem}
.cmp li{margin:.2rem 0;font-size:.9rem}
.funnel{display:grid;gap:.45rem;margin:1rem 0}
.fn{display:grid;grid-template-columns:5.5rem 1fr 3.2rem;grid-template-areas:"l b n" ". t t";gap:.1rem .6rem;align-items:center;text-decoration:none;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.45rem .7rem}
.fn .fl{grid-area:l;font-weight:700}.fn .fb{grid-area:b;height:.8rem;background:var(--mute-bg);border-radius:999px;overflow:hidden}
.fn .fb i{display:block;height:100%;background:var(--accent);border-radius:999px}
.fn b{grid-area:n;text-align:right;font-family:var(--serif);font-size:1.15rem}
.fn .ft{grid-area:t;font-size:.78rem;color:var(--dim)}
.sbars{display:grid;gap:.35rem;margin:.8rem 0}
.sbr{display:grid;grid-template-columns:4rem 1fr 2.5rem;gap:.6rem;align-items:center;font-size:.8rem}
.sbl{font-family:var(--mono)}
.sbb{display:flex;height:1.1rem;border-radius:5px;overflow:hidden;background:var(--mute-bg)}
.sb-confirmed{background:var(--ok-ink)}.sb-reported{background:var(--info-ink)}.sb-disputed,.sb-contradicted{background:var(--warn-ink)}.sb-unverified{background:var(--bad-ink)}
.iq{margin:1.3rem 0}
.iq h3{font-family:var(--serif);font-size:1.2rem;margin-bottom:.3rem}
.iq blockquote{margin:0;border-left:4px solid var(--g-decide);background:var(--panel);border-radius:0 10px 10px 0;padding:.6rem 1rem}
.iq blockquote p{font-size:1.02rem;margin:0}
.iq blockquote footer{font-size:.76rem;color:var(--dim);margin-top:.4rem}
/* research and stories: the zones in the bar, and the origin strip at the top of every page (v0.4.1) */
.zone{align-self:center;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:0 .15rem 0 .55rem;border-left:1px solid var(--line2);margin-left:.3rem}
.zone:first-child{border-left:0;margin-left:0;padding-left:0}
.origin{margin:0 0 1rem;padding:.35rem .7rem;border-radius:6px;font-size:.8rem;border:1px solid var(--line);background:var(--panel);display:flex;gap:.55rem;flex-wrap:wrap;align-items:baseline}
.origin b{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase}
.origin span{color:var(--dim);flex:1 1 16rem}
.origin a{font-size:.74rem}
.o-research{border-left:4px solid var(--accent)}
.o-external{border-left:4px solid var(--warm);border-style:dashed solid dashed solid}
.o-story{border-left:4px solid var(--head);background:var(--bg)}
.o-site{border-left:4px solid var(--line2)}
ul.inv{list-style:none;padding:0;margin:0}ul.inv li{margin:.15rem 0;font-size:.82rem}
.okw{color:var(--ok-ink,#1a7f37)}.badw{color:var(--bad-ink,#b42318)}
@media (max-width:900px){.zone{border-left:0;margin:.6rem 0 .1rem;padding:0}}
/* charts: the inventory over time and the signal cells (v0.4.2); marks in data colours, text in text tokens */
svg.chart{width:100%;height:auto;display:block;max-width:820px}
svg .grid{stroke:var(--line);stroke-width:1}
svg .ax{fill:var(--dim);font-size:11px;font-family:var(--sans)}
svg .band{stroke:var(--panel);stroke-width:2;stroke-linejoin:round}
svg .mark{stroke:var(--dim);stroke-width:1;stroke-dasharray:3 3}
svg .dl text{fill:var(--text);font-size:12px;font-family:var(--sans)}
svg .hit{fill:transparent}svg .hit:hover{fill:var(--text);fill-opacity:.08}
.legend .sw{display:inline-block;width:.8em;height:.8em;border-radius:2px;margin-right:.35em;vertical-align:-.05em}
svg.tlc{display:block;max-width:100%}
svg .avail{stroke:var(--accent);stroke-width:2}svg .avail-d{fill:var(--accent);stroke:var(--panel);stroke-width:2}
svg .day{fill:var(--accent);fill-opacity:.35}
svg .lb{fill:var(--accent)}svg .unk{fill:none;stroke:var(--dim);stroke-dasharray:3 3}svg .zero{stroke:var(--bad-ink);stroke-width:3}
svg.tlc.bar,table svg.tlc{max-width:none;flex:none}td:has(> svg.tlc){min-width:9rem}
/* v0.4.2: what you have read (assets/reader-state.js), your desk, the feed viewer */
.it{display:none}
.rs-strip{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--panel);border-radius:0 10px 10px 0;padding:.45rem .8rem;margin:.6rem 0 1rem;font-size:.86rem}
.rs-strip p{margin:.15rem 0}
.rs-acts{display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:center}
.rs-b,.rs-v{font:inherit;font-size:.8rem;padding:.12rem .55rem;border:1px solid var(--line2);border-radius:999px;background:var(--bg);color:var(--fg);cursor:pointer}
.rs-b:hover,.rs-v:hover{border-color:var(--accent);color:var(--accent)}
.rs-view{display:inline-flex;gap:.2rem;align-items:center;font-size:.8rem;color:var(--dim)}
.rs-v.on{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.rs-desk{font-size:.8rem;margin-left:auto}
.rs-done{color:var(--ok-ink);font-weight:600}
.rs-file{display:inline-block}
.it-ctl{display:inline-flex;gap:.25rem;align-items:center;margin:0 .35rem 0 0;vertical-align:middle}
.it-b{font:inherit;line-height:1;width:1.35rem;height:1.35rem;padding:0;border:1px solid var(--line2);border-radius:50%;background:var(--bg);color:var(--dim);cursor:pointer;font-size:.8rem}
.it-b:hover{border-color:var(--accent);color:var(--accent)}
.it-tick.on{background:var(--ok-bg);border-color:var(--ok-ink);color:var(--ok-ink)}
.it-tag{font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.02rem .45rem;background:var(--warn-bg);color:var(--warn-ink);white-space:nowrap;text-decoration:none}
.it-tag-new{background:var(--info-bg);color:var(--info-ink)}
.it-tag-d{background:var(--mute-bg);color:var(--fg)}
.it-notes{margin:.3rem 0 .1rem}
.it-note{font-size:.84rem;background:var(--mute-bg);border-radius:6px;padding:.2rem .5rem;margin:.2rem 0;white-space:pre-wrap}
.it-x{width:1.1rem;height:1.1rem;font-size:.7rem;margin-left:.4rem;vertical-align:middle}
.it-menu{position:absolute;z-index:70;background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:.6rem;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.it-menu-h{font-weight:600;font-size:.84rem;margin:0 0 .4rem}
.it-menu-row{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}
.it-chip{font:inherit;font-size:.76rem;padding:.12rem .5rem;border:1px solid var(--line2);border-radius:999px;background:var(--bg);color:var(--fg);cursor:pointer}
.it-chip.on{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.it-ta{width:100%;font:inherit;font-size:.85rem;border:1px solid var(--line2);border-radius:6px;padding:.3rem;background:var(--bg);color:var(--fg);margin-bottom:.35rem}
html[data-read-view="fade"] .it-read{opacity:.42;transition:opacity .15s}
html[data-read-view="fade"] .it-read:hover,html[data-read-view="fade"] .it-read:focus-within{opacity:1}
.it-gone{display:none!important}
.it-run-b{font:inherit;font-size:.78rem;color:var(--dim);background:none;border:1px dashed var(--line2);border-radius:8px;padding:.15rem .6rem;cursor:pointer;margin:.2rem 0}
.it-changed{box-shadow:inset 3px 0 0 var(--warn-ink)}
.desk-list{list-style:none;padding:0;margin:.4rem 0}
.desk-list li{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline;padding:.3rem 0;border-bottom:1px solid var(--line)}
.desk-k{font-size:.7rem;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;min-width:4.5rem}
.fv{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:1rem;align-items:start;margin:1rem 0}
@media (max-width:760px){.fv{grid-template-columns:1fr}}
.fv-side h3{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin:.8rem 0 .2rem}
.fv-side ul{list-style:none;padding:0;margin:0}
.fv-side li{display:flex;justify-content:space-between;gap:.4rem;padding:.18rem .3rem;border-radius:6px;font-size:.88rem}
.fv-side li.on{background:var(--mute-bg)}
.fv-side li a{text-decoration:none;color:var(--fg)}
.fv-n{font-size:.72rem;font-family:var(--mono);background:var(--accent);color:var(--bg);border-radius:999px;padding:0 .4rem;align-self:center}
.fv-n.fv-zero{background:var(--mute-bg);color:var(--dim)}
.fv-n.fv-closed{background:none;color:var(--dim);font-family:var(--sans)}
.fv-add input{width:100%;font:inherit;font-size:.84rem;margin:.2rem 0;padding:.25rem .4rem;border:1px solid var(--line2);border-radius:6px;background:var(--bg);color:var(--fg)}
.fv-pane{min-width:0}
.fv-head h2{margin-top:0}
.fv-src{overflow-wrap:anywhere}
.fv-list{list-style:none;padding:0;margin:.4rem 0}
.fv-list li{padding:.45rem 0;border-bottom:1px solid var(--line)}
.fv-t{font-weight:600}
.fv-s{font-size:.86rem;color:var(--dim);margin:.2rem 0 0;overflow-wrap:anywhere}
.feedrow h3 code{font-size:.78rem;margin-left:.3rem}
/* v0.4.3: subscribe */
.subform{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;max-width:42rem}
.subform input[type=email],.subform textarea{width:100%;font:inherit;padding:.35rem .5rem;border:1px solid var(--line2);border-radius:6px;background:var(--bg);color:var(--fg)}
.subform fieldset{border:1px solid var(--line);border-radius:8px;margin:.6rem 0;padding:.4rem .7rem}
.subform legend{font-size:.8rem;color:var(--dim);padding:0 .3rem}
.sub-c{display:block;margin:.2rem 0;font-size:.92rem}
.sub-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sub-ok{color:var(--ok-ink);font-weight:600}.sub-err{color:var(--bad-ink);font-weight:600}
.subform button.cta{cursor:pointer;font:inherit}
/* v0.5.4: Ask, the pane on the right (assets/ask/ask.js) */
.ask-open{font:inherit;font-size:.8rem;padding:.12rem .7rem;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:var(--bg);cursor:pointer}
.ask-pane{display:none;position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:80;background:var(--panel);border-left:1px solid var(--line2);box-shadow:-8px 0 24px rgba(0,0,0,.12);flex-direction:column}
html.ask-on .ask-pane{display:flex}
@media (min-width:1100px){html.ask-on body{margin-right:440px}}
.ask-head{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border-bottom:1px solid var(--line)}
.ask-head .it-b{margin-left:auto}
.ask-v{font-size:.72rem;font-family:var(--mono);color:var(--dim);border:1px solid var(--line2);border-radius:999px;padding:0 .45rem}
.ask-v.on{color:var(--ok-ink);border-color:var(--ok-ink)}
.ask-tabs{display:flex;gap:.2rem;padding:.4rem .8rem 0}
.ask-tabs button{font:inherit;font-size:.82rem;background:none;border:0;border-bottom:2px solid transparent;padding:.3rem .5rem;color:var(--dim);cursor:pointer}
.ask-tabs button.on{color:var(--fg);border-bottom-color:var(--accent)}
.ask-body{flex:1;overflow:auto;padding:.7rem .8rem;display:flex;flex-direction:column;gap:.5rem;font-size:.9rem}
.ask-log{flex:1;overflow:auto;display:flex;flex-direction:column;gap:.45rem;min-height:12rem}
.ask-u{align-self:flex-end;background:var(--accent);color:var(--bg);border-radius:10px 10px 2px 10px;padding:.4rem .6rem;max-width:85%;margin:0;white-space:pre-wrap}
.ask-a{background:var(--bg);border:1px solid var(--line);border-radius:10px 10px 10px 2px;padding:.2rem .7rem}
.ask-a p{margin:.4rem 0}
.ask-tool{font-size:.74rem;color:var(--dim);margin:0;overflow-wrap:anywhere}
.ask-meta{font-size:.7rem;color:var(--dim);margin:0}
.ask-cite{font-family:var(--mono);font-size:.74rem;background:var(--mute-bg);border-radius:4px;padding:0 .25rem;text-decoration:none}
.ask-unknown{color:var(--bad-ink)}
.ask-allow{border:1px solid var(--warn-ink);background:var(--warn-bg);border-radius:8px;padding:.3rem .6rem}
.ask-q{display:flex;gap:.4rem;align-items:flex-end}
.ask-q textarea,.ask-key input[type=password]{flex:1;width:100%;font:inherit;font-size:.88rem;border:1px solid var(--line2);border-radius:8px;padding:.35rem .5rem;background:var(--bg);color:var(--fg)}
.ask-key{display:flex;flex-direction:column;gap:.35rem;border:1px solid var(--line);border-radius:10px;padding:.6rem}
.ask-key label{display:flex;flex-direction:column;gap:.2rem;font-size:.84rem}
.ask-tools li{margin:.35rem 0;font-size:.86rem}
/* GRC: fractal risk registers (grc@php.newsroom). The band is always written out, so a rating never rests on colour alone. */
.gr{display:inline-block;border-radius:6px;padding:0 .4rem;font-size:.78rem;white-space:nowrap}
.gr b{margin-right:.2rem}
/* --warn-* and --info-* resolve to themselves in site-tokens.css (a cycle, so they are invalid); the GRC bands use theme tokens directly. */
.gr-critical,.hm-critical{background:var(--danger-bg);color:var(--danger-ink)}
.gr-high,.hm-high{background:var(--warn-line);color:var(--text)}
.gr-medium,.hm-medium{background:color-mix(in srgb,var(--warn-line) 40%,var(--panel));color:var(--text)}
.gr-low,.hm-low{background:var(--tint-solid);color:var(--accent-dk)}
.heat td.hm{min-width:5.5rem;vertical-align:top;font-size:.8rem}
.heat td.hm a{font-weight:700;color:inherit;margin-right:.2rem}
.heat .hs{display:block;font-size:.7rem;opacity:.7}
.gt{display:inline-block;border-radius:6px;padding:0 .4rem;font-size:.78rem}
.gt-in-place{background:var(--tint-solid);color:var(--accent-dk)}.gt-partial{background:var(--warn-line);color:var(--text)}.gt-missing{background:var(--danger-bg);color:var(--danger-ink)}
.mxt td.mx{text-align:center;font-variant-numeric:tabular-nums}
.mxt th[scope=col]{font-size:.72rem;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
.grc-tree td:first-child{min-width:18rem}
.graph .g-st,.graph .g-ro{fill:var(--accent);stroke:var(--accent)}.graph .g-risk{fill:var(--bad-ink);stroke:var(--bad-ink)}
.graph .g-wk{fill:var(--text);stroke:var(--text)}.graph .g-vu{fill:var(--bad-ink);stroke:var(--bad-ink)}
.graph .g-fx,.graph .g-cd{fill:var(--ok-ink);stroke:var(--ok-ink)}.graph .g-sy,.graph .g-tm{fill:var(--warm);stroke:var(--warm)}
.graph .gap{fill:var(--dim);font-style:italic}.graph .rl{font-size:8.5px}
.graph .e-w{stroke:var(--accent);stroke-width:1;opacity:.45}.graph .e-v{stroke:var(--bad-ink);stroke-width:1}.graph .rl{font-family:var(--sans)}
.gpath svg{min-width:900px}.gpath{overflow-x:auto}
.gpath .n{font-size:11px}.gpath .t{font-size:11.5px}
.gpath .e{stroke:var(--dim);stroke-width:1;opacity:.5}


/* the collaborators' forms and messages (/collaborators/), conductor@php.newsroom */
.subform input[type=text],.subform select{width:100%;font:inherit;padding:.35rem .5rem;border:1px solid var(--line2);border-radius:6px;background:var(--bg);color:var(--fg)}
pre.msg{white-space:pre-wrap;word-break:break-word;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;font-size:.85rem}

/* v0.8.1: your stack, the blast radius (/stack/, assets/stack.js) */
.sk-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.6rem 0}
.sk-bar select,.sk-c select,.sk-c input[type=text],.sk-c input[type=search]{font:inherit;font-size:.86rem;padding:.25rem .45rem;border:1px solid var(--line2);border-radius:8px;background:var(--bg);color:var(--fg);max-width:100%}
.sk-pill{display:inline-block;font-size:.72rem;font-weight:600;border-radius:999px;padding:.05rem .5rem;vertical-align:1px;white-space:nowrap}
.sk-critical{background:var(--bad-bg);color:var(--bad-ink)}.sk-high{background:var(--warn-bg);color:var(--warn-ink)}
.sk-unknown{background:var(--info-bg);color:var(--info-ink)}.sk-low,.sk-ok{background:var(--ok-bg);color:var(--ok-ink)}
.sk-gwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:.4rem}
.sk-graph{display:block;width:100%;min-width:720px;height:auto}
.sk-graph .sk-col{font-size:12px;fill:var(--dim);font-weight:600}
.sk-graph .sk-e{fill:none;stroke:var(--line2);stroke-width:1.5}
.sk-graph .sk-e-hot{stroke-width:2.5}.sk-graph .sk-e-critical{stroke:var(--bad-ink)}.sk-graph .sk-e-high{stroke:var(--warn-ink)}
.sk-graph .sk-n{cursor:pointer}.sk-graph .sk-n rect{fill:var(--bg);stroke:var(--line2);stroke-width:1.5}
.sk-graph .sk-n:focus rect,.sk-graph .sk-n:hover rect{stroke:var(--accent);stroke-width:2.5}
.sk-graph .sk-n:focus{outline:none}
.sk-graph .sk-nt{font-size:13px;font-weight:600;fill:var(--fg)}.sk-graph .sk-ns{font-size:11px;fill:var(--dim)}
.sk-graph .sk-s-critical rect,.sk-graph .sk-r-hit.sk-l-critical rect{fill:var(--bad-bg);stroke:var(--bad-ink)}
.sk-graph .sk-s-high rect,.sk-graph .sk-r-hit.sk-l-high rect{fill:var(--warn-bg);stroke:var(--warn-ink)}
.sk-graph .sk-r-radius rect{fill:var(--warn-bg);stroke:var(--warn-ink);stroke-dasharray:5 3}
.sk-graph .sk-r-further rect{stroke:var(--warn-ink);stroke-dasharray:2 3}
.sk-graph .sk-s-ok rect,.sk-graph .sk-s-low rect{fill:var(--ok-bg);stroke:var(--ok-ink)}
.sk-graph .sk-s-unknown rect{fill:var(--info-bg);stroke:var(--info-ink)}
.sk-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.8rem;color:var(--dim);margin:.4rem .3rem 0}
.sk-sw{display:inline-block;width:.9rem;height:.9rem;border-radius:3px;margin-right:.35rem;vertical-align:-2px;border:1.5px solid var(--line2)}
.sk-sw-critical{background:var(--bad-bg);border-color:var(--bad-ink)}.sk-sw-high{background:var(--warn-bg);border-color:var(--warn-ink)}
.sk-sw-radius{background:var(--warn-bg);border:1.5px dashed var(--warn-ink)}.sk-sw-further{border:1.5px dotted var(--warn-ink)}
.sk-sw-ok{background:var(--ok-bg);border-color:var(--ok-ink)}.sk-sw-unknown{background:var(--info-bg);border-color:var(--info-ink)}
.sk-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.2rem;align-items:start}
@media (max-width:900px){.sk-grid{grid-template-columns:1fr}}
.sk-add{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.sk-c{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:.45rem .7rem;margin:.45rem 0}
.sk-c summary{cursor:pointer}.sk-c[open] summary{margin-bottom:.4rem}
.sk-f{display:block;margin:.35rem 0}.sk-f>span{display:block;font-size:.8rem;color:var(--dim)}.sk-f input,.sk-f select{width:100%}
.sk-f small{display:block;font-size:.75rem;color:var(--dim)}
.sk-ctl{border:1px solid var(--line);border-radius:8px;margin:.45rem 0;padding:.3rem .6rem}.sk-ctl legend{font-size:.8rem;color:var(--dim)}
.sk-ctl label{display:block;font-size:.85rem;margin:.15rem 0}
.sk-inv{border-left:3px solid var(--line2);padding-left:.6rem;margin:.3rem 0}
.sk-v{border:1px solid var(--line);border-left-width:4px;border-radius:10px;background:var(--panel);padding:.5rem .8rem;margin:.5rem 0}
.sk-vl-critical{border-left-color:var(--bad-ink)}.sk-vl-high{border-left-color:var(--warn-ink)}.sk-vl-unknown{border-left-color:var(--info-ink)}.sk-vl-ok,.sk-vl-low{border-left-color:var(--ok-ink)}
.sk-v h3{margin:.2rem 0 .3rem;font-size:1rem}.sk-vu{border-top:1px solid var(--line);padding-top:.3rem;margin-top:.3rem}
.sk-why{margin:.2rem 0 .3rem 1.1rem;padding:0;font-size:.86rem}
.sk-acts li{margin:.3rem 0}.sk-note{background:var(--info-bg);color:var(--info-ink);border-radius:8px;padding:.5rem .8rem}

/* v0.8.3: eight tiles at a glance, two rows of four on wide screens */
@media (min-width:900px){#state .tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* v0.8.4: who reads this site, by group (admin/telemetry/). One validated categorical set: readers blue, us orange,
   machines in two greys so readers stand out; dark themes take the dark steps. */
:root{--tg1:#2a78d6;--tg2:#eb6834;--tg3:#8f8d86;--tg4:#c9c7bf}
:root[data-theme="night"],:root[data-theme="ember"]{--tg1:#3987e5;--tg2:#d95926;--tg3:#7d7c75;--tg4:#4a4945}
.tg1{fill:var(--tg1);background:var(--tg1)}.tg2{fill:var(--tg2);background:var(--tg2)}.tg3{fill:var(--tg3);background:var(--tg3)}.tg4{fill:var(--tg4);background:var(--tg4)}
.tm0{fill:var(--line)}
.tfig{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:.5rem;overflow-x:auto}
.tchart{display:block;width:100%;min-width:600px;height:auto}.tchart text{fill:var(--dim);font-size:11px}.tchart .tgrid{stroke:var(--line)}.tchart .taxis{stroke:var(--line2)}
.tmap{display:block;width:100%;height:auto}.tmap path{stroke:var(--panel);stroke-width:.5}
.tlegend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.84rem;color:var(--dim)}.tlegend i,.tsw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem;vertical-align:-1px}
.tramp{font-size:.8rem;color:var(--dim);margin:.3rem .2rem 0}.tramp i{display:inline-block;width:22px;height:10px;vertical-align:-1px}
.twho{border:1px solid var(--line);border-radius:10px;padding:.5rem .8rem;margin:1rem 0}.twho-b{display:flex;flex-wrap:wrap;gap:.35rem}.twho .rs-b.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}

/* v0.10.13: explore the risk graph (/grc/explore/, assets/grc-explore.js) and its gaps */
:root{--gf1:#2a78d6;--gf2:#eb6834;--gf3:#1baf7a;--gf4:#eda100;--gf5:#e87ba4;--gf6:#8f8d86}
:root[data-theme="night"],:root[data-theme="ember"]{--gf1:#3987e5;--gf2:#d95926;--gf3:#199e70;--gf4:#c98500;--gf5:#d55181;--gf6:#7d7c75}
.gx-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.6rem 0}
.gx-bar input[type=search]{font:inherit;font-size:.9rem;padding:.3rem .6rem;border:1px solid var(--line2);border-radius:8px;background:var(--bg);color:var(--fg);min-width:min(100%,26rem);flex:1}
.gx-bar .rs-b.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.gx-sw{font-size:.85rem;color:var(--dim)}
.gx-starts{margin:.2rem 0 .8rem}
.gx-crumb{font:inherit;font-size:inherit;background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;text-align:left}
.gx-pic{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:.4rem .6rem;margin:.4rem 0 1rem}
.gx-scroll{overflow-x:auto}.gx-svg{display:block;max-width:none;height:auto}
.gx-svg text{font-size:12px;fill:var(--fg)}.gx-n{cursor:pointer}.gx-n-ghost{opacity:.55}.gx-n-start text{font-weight:700}
.gx-svg .gx-e{fill:none;stroke:var(--line2);stroke-width:1.5}.gx-svg .gx-e-inf{stroke-dasharray:4 3}.gx-svg .gx-e-ghost{opacity:.5}
.gx-svg circle{stroke:var(--panel);stroke-width:1.5}
.gx-f1{fill:var(--gf1);--gx:var(--gf1)}.gx-f2{fill:var(--gf2);--gx:var(--gf2)}.gx-f3{fill:var(--gf3);--gx:var(--gf3)}.gx-f4{fill:var(--gf4);--gx:var(--gf4)}.gx-f5{fill:var(--gf5);--gx:var(--gf5)}.gx-f6{fill:var(--gf6);--gx:var(--gf6)}
.gx-legend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.8rem;color:var(--dim);margin:.3rem 0 0}
.gx-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem;vertical-align:-1px;background:var(--gx)}
.gx-dash{display:inline-block;width:22px;border-top:2px dashed var(--dim);margin-right:.35rem;vertical-align:3px}
.gx-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:.6rem .9rem;margin:.6rem 0;scroll-margin-top:5rem}
.gx-start{border-left:4px solid var(--accent)}
.gx-card h3{margin:.2rem 0 .3rem;font-size:1.02rem}.gx-acts{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.85rem;margin:.2rem 0 .5rem}
.gx-k{display:inline-block;font-size:.7rem;font-weight:600;border-radius:999px;padding:.02rem .5rem;color:#fff;background:var(--gx);vertical-align:2px}
.gx-path{font-size:.8rem;color:var(--dim);margin:0 0 .2rem}.gx-verb{font-style:italic}.gx-verb.gx-inf{text-decoration:underline dashed}
.gx-group{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:.6rem;border-top:1px solid var(--line);padding:.35rem 0}
@media (max-width:700px){.gx-group{grid-template-columns:1fr;gap:.2rem}}
.gx-gv{font-size:.8rem;color:var(--dim);font-style:italic}
.gx-chips{display:flex;flex-wrap:wrap;gap:.3rem}
.gx-cw{display:inline-flex;flex-direction:column;max-width:100%}
.gx-chip{font:inherit;font-size:.8rem;text-align:left;border:1.5px solid var(--gx);border-left-width:5px;border-radius:6px;background:var(--bg);color:var(--fg);padding:.1rem .45rem;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gx-chip.gx-inf{border-style:dashed;border-left-style:solid}.gx-chip.gx-open{background:var(--panel);font-weight:600}
.gx-chip:hover,.gx-chip:focus{outline:2px solid var(--accent);outline-offset:1px}
.gx-why{display:none;font-size:.72rem;color:var(--dim);padding:.1rem .2rem}.gx-cw:hover .gx-why,.gx-cw:focus-within .gx-why{display:block}
.gx-more{font:inherit;font-size:.78rem;background:none;border:1px dashed var(--line2);border-radius:6px;color:var(--dim);cursor:pointer;padding:.1rem .45rem}
.gx-reach{margin:.2rem 0;padding-left:1.1rem}.gx-reach li{margin:.35rem 0}
.gx-tag{font-size:.7rem;border:1px dashed var(--dim);border-radius:999px;padding:0 .4rem;margin-left:.4rem;color:var(--dim)}
.cols-list{columns:2 18rem;font-size:.88rem}

/* v0.10.14: before and after in articles (render_article: !split, !slider, ```diff; assets/compare.js) */
.ba-wide{width:min(94vw,1240px);position:relative;left:50%;transform:translateX(-50%);margin:1.4rem 0}
.ba-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
@media (max-width:820px){.ba-split{grid-template-columns:1fr}}
.ba-side{margin:0}.ba-side img,.ba-stage img{display:block;width:100%;height:auto;border:1px solid var(--line2);border-radius:10px;background:var(--panel)}
.ba-side figcaption,.ba-note{font-size:.86rem;color:var(--dim);margin-top:.4rem}
.ba-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.05rem .6rem;margin-bottom:.35rem}
.ba-before{background:var(--line);color:var(--fg)}.ba-after{background:var(--accent);color:var(--bg)}
.ba-slider{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1fr);gap:1.2rem;align-items:start}
@media (max-width:900px){.ba-slider{grid-template-columns:1fr}}
.ba-stage{display:grid;gap:.6rem}
.ba-stage.ba-live{position:relative;display:block}
.ba-stage.ba-live img.ba-new{position:absolute;inset:0;transition:opacity .08s linear}
.ba-stage.ba-live .ba-cap{display:none}
.ba-cap{font-size:.8rem;color:var(--dim)}
.ba-ctl{display:none;align-items:center;gap:.6rem;margin-top:.6rem;flex-wrap:wrap}
.ba-ctl.ba-live{display:flex}
.ba-ctl input[type=range]{flex:1;min-width:10rem;accent-color:var(--accent)}
.ba-ctl button{font:inherit;font-size:.8rem;padding:.15rem .6rem;border:1px solid var(--line2);border-radius:999px;background:var(--bg);color:var(--fg);cursor:pointer}
.ba-ctl button[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ba-line{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--accent);box-shadow:0 0 0 1px var(--bg);pointer-events:none;display:none}
.ba-stage.ba-wipe .ba-line{display:block}.ba-stage.ba-wipe{cursor:ew-resize;touch-action:pan-y}
@media (max-width:600px){.ba-ctl input[type=range]{order:-1;flex-basis:100%}}
.ba-note{font-size:.95rem;color:var(--fg);border-left:3px solid var(--accent);padding:.2rem 0 .2rem .9rem;margin:0}
.ba-note p{margin:.2rem 0 .6rem}
pre.diff{font:12.5px/1.55 var(--mono);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;overflow-x:auto;white-space:pre}
pre.diff .d-add{display:block;background:var(--ok-bg);color:var(--ok-ink)}pre.diff .d-del{display:block;background:var(--bad-bg);color:var(--bad-ink)}pre.diff .d-ctx{display:block;color:var(--dim)}
/* Elsewhere: the separate Pulse section (pulse/), kept apart from the PHP pages */
.o-elsewhere{border-left:4px solid var(--dim);border-style:dotted solid dotted solid}
table.pulse td.pr{text-align:center;font-size:.78rem;white-space:nowrap}
table.pulse td.pr-yes{background:color-mix(in srgb,var(--accent,#0f6e5a) 18%,transparent);font-weight:600}
table.pulse th{text-align:center}
blockquote.tp{margin:.35rem 0;padding:.3rem .7rem;border-left:3px dashed var(--line);color:var(--ink,inherit)}
ul.pev{padding-left:1.1rem}
ul.pev li{margin:.5rem 0}
/* The journalist's desk (/views/desk/): the cycle and the pass as numbered cards */
.dk-fig{margin:1rem 0}
.dk-fig figcaption{font-size:.8rem;color:var(--dim);margin-top:.5rem}
.dk-cycle,.dk-seq{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;counter-reset:dk}
.dk-cycle{grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr))}
.dk-step{counter-increment:dk;position:relative;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:.6rem .75rem .65rem 2.3rem;display:flex;flex-direction:column;gap:.2rem;font-size:.86rem}
.dk-step::before{content:counter(dk);position:absolute;left:.6rem;top:.55rem;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--accent,#0f6e5a);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.dk-step:last-child{border-style:dashed}
.dk-who{overflow-wrap:anywhere}
.dk-who,.dk-st{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.dk-pass{display:grid;grid-template-columns:2rem 1fr;column-gap:.6rem;row-gap:.15rem;border-left:4px solid var(--line);padding:.45rem .7rem;background:var(--panel);border-radius:0 8px 8px 0;font-size:.88rem}
.dk-pass>*:not(.dk-n){grid-column:2}
.dk-n{grid-row:1/span 3;font-size:1.3rem;font-weight:700;color:var(--dim)}
.dk-done{border-left-color:var(--accent,#0f6e5a)}
.dk-in-progress{border-left-color:var(--warm,#c77d1a)}
.dk-in-progress .dk-st{color:var(--warm,#c77d1a);font-weight:700}
.dk-done .dk-st{color:var(--accent,#0f6e5a);font-weight:700}
.rp a{white-space:normal}.rp-new{font-size:.7rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:var(--bg);vertical-align:1px}
.rp{margin:.4rem 0}.rp-more{display:inline}.rp-more summary{display:inline;cursor:pointer;color:var(--accent)}.rp-more[open] summary{margin-right:.3rem}.rp-more p{margin:.3rem 0 0}
.rp-gone{color:var(--dim)}
/* The header on a phone (CI-003.3, board 260): one line stays at the top, the site's name, the version and Menu;
   the status, the breadcrumbs and the tools (Ask, Feedback, who you are, the view, the meter) open with the menu,
   and an open menu scrolls inside the screen instead of past it. */
@media (max-width:700px){
  nav.site{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  nav.site .row{padding-top:.35rem;padding-bottom:.35rem;row-gap:.5rem}
  nav.site:not(:has(.nav-items.open)) .row>.status,nav.site:not(:has(.nav-items.open)) .row>.crumbs,nav.site:not(:has(.nav-items.open)) .row>.tools{display:none}
  nav.site .nav-toggle{order:2}
  nav.site .row>.status,nav.site .row>.crumbs{order:3;flex-basis:100%}
  nav.site .row>.tools{order:4}
  nav.site .nav-items{order:5}
  nav.site:has(.nav-items.open){max-height:100vh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain}
}
/* What changed in the risk graph (/grc/changes/) */
.gc-pick{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin:.6rem 0 1rem;font-size:.9rem}
.gc-pick select{font:inherit;padding:.2rem .4rem;border:1px solid var(--line2);border-radius:6px;background:var(--panel);color:var(--fg)}
.gc-up{color:var(--ok-ink);font-weight:600}.gc-down{color:var(--bad-ink);font-weight:600}
.gc-list{columns:2 22rem;column-gap:1.5rem;padding-left:1.1rem;font-size:.88rem}.gc-list li{break-inside:avoid;margin:.15rem 0}
.gx-basis{font-size:.7rem;padding:0 .35rem;border-radius:999px;border:1px solid var(--line2);color:var(--dim)}
.gx-b-inferred{border-style:dashed}.gx-b-confirmed{color:var(--ok-ink);border-color:currentColor}
table.pulse td.pr-nc{color:var(--dim)}

/* Wikipedia, as a graph (/wikipedia/), ontologist@php.newsroom. Every colour is a token; a class is written out, never
   colour alone. Long references and edit summaries wrap anywhere, so the history page fits a phone. */
.wstatements{list-style:none;margin:0;padding:0;counter-reset:wst}
.wstatements li.wst{position:relative;margin:.5rem 0;padding:.5rem .6rem .5rem 2.4rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow-wrap:anywhere}
.wstatements li.wst::before{counter-increment:wst;content:counter(wst);position:absolute;left:.6rem;top:.55rem;font-family:var(--mono);font-size:.75rem;color:var(--dim)}
.wst .st{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;margin-right:.3rem;vertical-align:middle}
.wst .pill-ok{background:var(--ok-bg);color:var(--ok-ink)}.wst .pill-info{background:var(--info-bg);color:var(--info-ink)}
.wst .pill-warn{background:var(--warn-bg);color:var(--warn-ink)}.wst .pill-mute{background:var(--bg);color:var(--dim);border:1px solid var(--line2)}
.wst .wtext{font-size:1rem}
.wst .wrefs a{font-family:var(--mono);font-size:.75rem;color:var(--accent);text-decoration:none;margin-left:.15rem}
.wst .wev{font-size:.82rem;color:var(--dim);margin-top:.3rem}.wst .wev a.cap{color:var(--ok-ink);font-weight:600}
.wst-hedged{border-left:3px solid var(--warn-ink)}.wst-attributed,.wst-quote{border-left:3px solid var(--info-ink)}.wst-record{border-left:3px solid var(--ok-ink)}
.whistory{padding-left:1.2rem}.whistory>li{margin:.6rem 0;padding:.4rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.whistory .wcomment{font-size:.88rem}.whistory details{margin:.3rem 0}.whistory summary{cursor:pointer;font-size:.85rem;color:var(--accent)}
.wdelta{list-style:none;margin:.3rem 0;padding:0}.wdelta li{margin:.2rem 0;padding:.2rem .4rem;border-radius:4px;font-size:.88rem;overflow-wrap:anywhere}
.wdelta li.dl-ins{text-decoration:none}.wdelta li.dl-chg del{margin-right:.3rem}
.graph .bars rect{fill:var(--accent);opacity:.75}
/* /views/loops/ (admin/build/loops.py) */
.lp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.8rem;margin:1rem 0}
.lp-card{border-left:4px solid var(--line)}.lp-done{border-left-color:var(--g-decide)}.lp-open{border-left-color:var(--g-communicate)}.lp-next{border-left-color:var(--g-act)}
.lp-dl{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .7rem;margin:.4rem 0 0;font-size:.86rem}.lp-dl dt{color:var(--dim)}.lp-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
.lp-fig{margin:1rem 0}.lp-fig figcaption{font-size:.8rem;color:var(--dim);margin-top:.4rem}.lp-scroll{overflow-x:auto}
.lp-t td{vertical-align:top;font-size:.86rem}
.wevo .life{fill:var(--dim);opacity:.85}.wevo .life.dead{opacity:.35}.wevo .life.c-record{fill:var(--ok-ink)}.wevo .life.c-attributed,.wevo .life.c-quote{fill:var(--info-ink)}.wevo .life.c-hedged{fill:var(--warn-ink)}.wevo .life.c-stated{fill:var(--accent)}
.wevo .grid{stroke:var(--line);stroke-width:1}.wevo .rev{fill:var(--dim)}.wevo .rev.rv{fill:var(--bad-ink)}.wevo a:focus rect,.wevo rect:hover{stroke:var(--fg);stroke-width:1}
.wcounts .ser{fill:none;stroke-width:1.5}.wcounts .s-bytes{stroke:var(--dim)}.wcounts .s-references{stroke:var(--info-ink)}.wcounts .s-statements{stroke:var(--accent)}
.wthread{list-style:none;margin:0;padding:0}.wthread li{margin:.4rem 0;padding:.4rem .6rem;border-left:3px solid var(--line2);background:var(--panel);border-radius:0 6px 6px 0;overflow-wrap:anywhere}
.wthread li.d1{margin-left:1.2rem}.wthread li.d2{margin-left:2.4rem}.wthread li.d3{margin-left:3.6rem}.wthread li.d4{margin-left:4.8rem}.wthread li.d5,.wthread li.d6{margin-left:6rem}
@media (max-width:600px){.wthread li.d2,.wthread li.d3,.wthread li.d4,.wthread li.d5,.wthread li.d6{margin-left:2rem}}

/* Wikipedia section: the reviewer's reading (ontologist) */
.wfindings{list-style:none;padding:0;margin:0}
.wfindings>li{border-top:1px solid var(--line, #ddd);padding:.8rem 0}
.wfinding blockquote{margin:.4rem 0 .6rem;padding:.3rem .8rem;border-left:3px solid var(--line, #ccc);font-style:normal}
.wchange{background:var(--panel, rgba(127,127,127,.08));padding:.5rem .7rem;border-radius:.3rem}
