/* KH Labs report pages (report, art50-check) on the KH Labs design system: warm paper body (the system's proof
   ground), dark nav, dark offer band and footer (kh-system.css), Geist + Geist Mono only. Rounded: cards 20px,
   inner panels 14px, chips and buttons pill. Neutral white ground, #0a0a0a / #4d4d4d text. Red only for FAIL, amber only for open, green only for pass.
   Generated pages: runner/report.py. */
:root{
  --pg:var(--paper); --sh:#fff; --wl:transparent;
  --ri:var(--p-ink); --ri2:var(--p-soft); --ri3:var(--p-mute); --rl:var(--p-line); --rl2:rgb(0 0 0 / .3);
  --ra:var(--p-acc); --rf:#c4231a; --rf-bg:rgb(196 35 26 / .12); --rok:#177245;
  --gut:var(--pad); --nav:var(--nav-h);
}
html{background:var(--pg);scroll-behavior:smooth;scroll-padding-top:calc(var(--nav) + 20px)}
body{background:var(--pg);color:var(--ri);font:400 16.5px/1.62 var(--sans)}
main a,.cover a{color:var(--ri);text-decoration:underline;text-decoration-color:var(--rl2);text-decoration-thickness:1px;text-underline-offset:3px}
main a:hover,.cover a:hover{text-decoration-color:var(--ri)}
main a:focus-visible,main button:focus-visible,main summary:focus-visible,main [tabindex]:focus-visible,.cover a:focus-visible,.toc a:focus-visible,.tocm summary:focus-visible{outline:2px solid var(--ri);outline-offset:3px;border-radius:6px}
h1,h2,h3,h4{font-family:var(--sans);margin:0;text-wrap:balance}
p,li{text-wrap:pretty}
code,.mono{font-family:var(--mono);font-size:.86em;font-variant-numeric:tabular-nums}
strong,b{font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.site-ft,.band,.nav{background:var(--bg)}

/* ---------- cover ---------- */
.cover{border-bottom:1px solid var(--rl)}
.cover__in{max-width:calc(var(--wrap) + 2 * var(--pad));margin:0 auto;padding:clamp(40px,6vw,76px) var(--pad) clamp(32px,4vw,52px)}
.cover__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:40px 64px;align-items:end}
.cover h1{font-size:clamp(2.2rem,4vw,3.5rem);line-height:1.03;font-weight:600;letter-spacing:-.04em;max-width:19ch}
.cover__sub{margin:18px 0 0;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.5;color:var(--ri2);max-width:58ch}
.cover__fict{margin:20px 0 0;font:400 13px/17px var(--mono);color:var(--ri3)}
.meta{margin:40px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rl)}
.meta div{padding:14px 18px 14px 0;border-bottom:1px solid var(--rl)}
.meta dt{font:500 13px/17px var(--mono);color:var(--ri3)}
.meta dd{margin:6px 0 0;font-size:14.5px;line-height:1.45;color:var(--ri)}
.meta dd code{font-size:13px}
.score{display:flex;flex-direction:column;gap:6px;padding:16px 0 16px 32px;border-left:1px solid var(--rl)}
.score__row{display:flex;align-items:baseline;gap:14px}
.score__num > span{display:inline-block;line-height:.92}
.score__num{font:600 clamp(3.4rem,5.4vw,4.8rem)/.92 var(--sans);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.score__num small{font:400 .26em/1 var(--mono);letter-spacing:0;color:var(--ri3);margin-left:4px}
.score__num--before{color:var(--rf)}
.score__num--after{color:var(--ri)}
.score__lab{font-size:14px;line-height:1.35;color:var(--ri3);max-width:18ch}
.score__arrow{width:16px;height:30px;color:var(--ri3);margin:2px 0 2px 18px}
.score__note{margin:12px 0 0;font-size:13.5px;line-height:1.5;color:var(--ri2);max-width:44ch}
.score__note + .score__note{margin-top:6px;color:var(--ri3)}

/* ---------- layout ---------- */
.layout{max-width:calc(var(--wrap) + 2 * var(--pad));margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--sp8)}
.layout--one{display:block}
.toc{position:sticky;top:calc(var(--nav) + 24px);align-self:start;max-height:calc(100vh - var(--nav) - 48px);overflow:auto;padding:40px 0 24px;scrollbar-width:thin}
.toc__title{font:500 13px/1 var(--mono);color:var(--ri3);margin:0 0 14px}
.toc ol{list-style:none;margin:0;padding:0}
.toc li a{position:relative;display:flex;gap:10px;padding:6px 0 6px 12px;margin-left:-12px;color:var(--ri2);text-decoration:none;font-size:14px;line-height:1.35;transition:color .2s,border-color .2s}
.toc li a span{font:500 13px/21px var(--mono);color:var(--ri3);min-width:1.6em}
.toc li a:hover{color:var(--ri)}
.toc li a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent;transition:background-color .2s}
.toc li a[aria-current="true"]{color:var(--ri)}
.toc li a[aria-current="true"]::before{background:var(--ri)}
.toc__dl{margin-top:22px;display:grid;gap:8px;font-size:13.5px}
.toc__dl a{display:inline-flex;align-items:center;gap:8px;color:var(--ri2);text-decoration:none}
.toc__dl a:hover{color:var(--ri)}
.toc__dl svg{width:15px;height:15px;flex:none}
.tocm{display:none}
main{min-width:0;padding:8px 0 56px}

/* ---------- sections ---------- */
.sec{padding:56px 0 8px;border-bottom:1px solid var(--rl)}
.sec:last-of-type{border-bottom:0}
.sec>h2{font-size:clamp(1.55rem,2.3vw,2rem);line-height:1.15;font-weight:600;letter-spacing:-.03em;display:flex;gap:14px;align-items:baseline}
.sec>h2 .n{font:500 13px/1 var(--mono);color:var(--ri3);letter-spacing:0;transform:translateY(-3px)}
.sec h3{font-size:1.14rem;line-height:1.3;font-weight:600;letter-spacing:-.015em;margin:34px 0 10px}
.lede{font-size:1.08rem;line-height:1.6;color:var(--ri2);max-width:68ch;margin:14px 0 0}
.prose{max-width:70ch}
.prose p{margin:14px 0 0}
.prose ul,.prose ol{margin:12px 0 0;padding-left:1.25em}
.prose li{margin:6px 0}
.muted{color:var(--ri3)}
.small{font-size:14px;line-height:1.55}

/* the three worst */
.wst{margin-top:var(--sp5);padding:var(--sp6) var(--sp6) var(--sp5);border-radius:var(--r);background:var(--sh);box-shadow:inset 0 0 0 1px var(--rl)}
.wst__n{margin:0;font:500 13px/1 var(--mono);color:var(--ri3)}
.wst__d{margin:12px 0 0 !important;font-size:clamp(1.25rem,1.9vw,1.55rem) !important;line-height:1.25 !important;letter-spacing:-.025em !important;max-width:40ch}
.wst__why{margin:10px 0 0;color:var(--ri2);max-width:70ch}
.wst__q{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;margin-top:20px;border-top:1px solid var(--rl)}
.wst__v{padding:16px 20px 4px 0;min-width:0}
.wst__v + .wst__v{padding:16px 0 4px 20px;border-left:1px solid var(--rl)}
.wst__lab{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;font:400 13px/16px var(--mono);color:var(--ri3)}
.wst__t{margin:0;font-size:15px;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
.wst__gl{margin:8px 0 0;font:400 13px/20px var(--mono);color:var(--ri3)}
.wst__go{display:inline-block;margin-top:16px;font-size:14px;font-weight:500}

/* verdict */
.verdict{margin-top:var(--sp5);padding:var(--sp5);border-radius:var(--r2);background:var(--sh);box-shadow:inset 0 0 0 1px var(--rl);max-width:74ch}
.verdict p{margin:0;font-size:1.04rem;line-height:1.55}
.risks{list-style:none;margin:22px 0 0;padding:0;display:grid;max-width:78ch;border-top:1px solid var(--rl)}
.risks li{display:grid;grid-template-columns:34px 1fr;gap:4px 12px;padding:18px 0;border-bottom:1px solid var(--rl)}
.risks .k{font:500 13px/21px var(--mono);color:var(--ri3)}
.risks b{display:block;font-size:1.04rem;letter-spacing:-.005em}
.risks p{margin:6px 0 0;color:var(--ri2)}
.todo{margin:14px 0 0;padding-left:1.25em;max-width:74ch}
.todo li{margin:8px 0}

/* tables */
.tw{margin-top:var(--sp4);overflow-x:auto;border-radius:var(--r2);box-shadow:inset 0 0 0 1px var(--rl);background:var(--sh)}
table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.45;font-variant-numeric:tabular-nums}
th,td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rl)}
thead th{font:500 13px/17px var(--mono);color:var(--ri3);border-bottom:1px solid var(--rl2);white-space:nowrap}
tbody tr:last-child>*{border-bottom:0}
tbody th{font-weight:600}
td.num,th.num{text-align:right;white-space:nowrap}
.tw--kv th{width:30%;font-weight:500;color:var(--ri2);font-size:14px}
.id{font:500 13px/18px var(--mono);white-space:nowrap}
.nw{white-space:nowrap}
th .note{display:block;margin-top:4px;font-weight:400;font-size:13px;line-height:1.45;color:var(--ri3);max-width:46ch}
.hash{font:400 13px/18px var(--mono);color:var(--ri2);overflow-wrap:anywhere}

/* chips: neutral severity, amber only for fail/open, green for pass/fixed */
.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 12px;border-radius:var(--r-pill);font:500 13px/1 var(--mono);white-space:nowrap;vertical-align:middle}
.chip--critical,.chip--high{color:#fff;background:var(--ri)}
.chip--medium{color:var(--ri);box-shadow:inset 0 0 0 1px var(--ri)}
.chip--low{color:var(--ri2);box-shadow:inset 0 0 0 1px var(--rl2)}
.chip--info{color:var(--ri3);box-shadow:inset 0 0 0 1px var(--rl2)}
.chip--fixed,.chip--pass{color:var(--rok);box-shadow:inset 0 0 0 1px var(--rok)}
.chip--fail{color:var(--rf);box-shadow:inset 0 0 0 1px var(--rf)}
.chip--open{color:var(--ra);box-shadow:inset 0 0 0 1px var(--ra)}
.chip--partial{color:var(--ra);box-shadow:inset 0 0 0 1px var(--ra)}
.chip--na{color:var(--ri3);box-shadow:inset 0 0 0 1px var(--rl2)}

/* severity rubric */
.rubric{margin-top:var(--sp4);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-radius:var(--r2);overflow:hidden;box-shadow:inset 0 0 0 1px var(--rl);background:var(--sh)}
.rubric div{padding:14px 16px}
.rubric div + div{border-left:1px solid var(--rl)}
.rubric p{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ri2)}

/* findings */
.find{margin-top:var(--sp5);border-radius:var(--r);background:var(--sh);box-shadow:inset 0 0 0 1px var(--rl);padding:var(--sp5) var(--sp6) var(--sp3);scroll-margin-top:calc(var(--nav) + 20px)}
.find__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.find__head .id{font-size:13.5px;color:var(--ri2)}
.find h3{margin:10px 0 0;font-size:1.2rem;line-height:1.3;letter-spacing:-.015em;max-width:60ch}
.find__meta{margin:14px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rl);border-bottom:1px solid var(--rl)}
.find__meta div{padding:12px 12px 12px 0}
.find__meta dt{font:500 13px/17px var(--mono);color:var(--ri3)}
.find__meta dd{margin:4px 0 0;font-size:14px;line-height:1.4}
.find__body{display:grid;grid-template-columns:120px minmax(0,1fr);gap:0 18px;margin-top:6px}
.find__body dt{font-weight:600;font-size:14px;padding:12px 0 0}
.find__body dd{margin:0;padding:11px 0 0;color:var(--ri2);max-width:68ch}
.find__body dd p{margin:0}.find__body dd p+p{margin-top:8px}
.retest{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
details.tx{margin:14px 0 0;border-top:1px solid var(--rl)}
details.tx+details.tx{margin-top:0}
details.tx>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 0;font-size:14px;color:var(--ri2);transition:color .15s}
details.tx>summary:active{color:var(--ri)}
details.tx>summary::-webkit-details-marker{display:none}
details.tx>summary:hover{color:var(--ri)}
details.tx>summary .chev{width:14px;height:14px;flex:none;transition:transform .25s cubic-bezier(.2,.75,.25,1)}
details.tx[open]>summary .chev{transform:rotate(90deg)}
details.tx>summary b{color:var(--ri);font-weight:600}
.tx__body{padding:4px 0 var(--sp4);display:grid;gap:var(--sp4)}
.msg{padding:2px 0 2px var(--sp4);font-size:14.5px;line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere}
.msg>span{display:block;font:500 13px/17px var(--mono);color:var(--ri3);margin-bottom:6px;white-space:normal}
.msg{position:relative}
.msg::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--rl2)}
.msg--bot::before{background:var(--ri)}
.msg--hist{opacity:.86}
mark.flag{background:var(--rf-bg);color:var(--ri);box-shadow:inset 0 -2px 0 var(--rf);padding:0 2px;border-radius:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.msg>span.redact,.redact{display:inline-block;margin:0;white-space:nowrap;background:var(--ri);color:var(--pg);font:500 max(13px,.82em)/1.5 var(--mono);padding:2px 12px;border-radius:var(--r-pill);vertical-align:baseline}
.grades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:13.5px;line-height:1.5}
.grades>div{padding:var(--sp3) 0 0;background:linear-gradient(var(--rl),var(--rl)) top/100% 1px no-repeat}
.grades b{display:block;font:500 13px/17px var(--mono);color:var(--ri3);margin-bottom:6px}
.grades ul{margin:0;padding:0;list-style:none}
.grades li+li{margin-top:3px}
.grades .ok{color:var(--rok)}.grades .bad{color:var(--rf)}
.grades code{font-size:13px}
.trace{font:400 13px/21px var(--mono);color:var(--ri2);overflow-wrap:anywhere;margin:0}
.trace i{font-style:normal;color:var(--ri)}

/* chart */
.chart{margin:var(--sp5) 0 0;padding:var(--sp5) var(--sp5) var(--sp4);border-radius:var(--r);background:var(--sh);box-shadow:inset 0 0 0 1px var(--rl)}
.chart__legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--ri2);margin-bottom:12px}
.chart__legend i{display:inline-block;width:12px;height:12px;margin-right:7px;border-radius:3px;vertical-align:-1px}
.lg0{background:var(--ri)}.lg1{background:var(--rf)}
.chart svg.chart__d{display:block;width:100%;height:auto;overflow:visible}
.chart .lab{font:500 15px var(--sans);fill:var(--ri)}
.chart .sub{font:400 13px var(--mono);fill:var(--ri3)}
.chart .val{font:500 13.5px var(--mono);fill:var(--ri2)}
.chart .grid{stroke:var(--rl);stroke-width:1}
.chart .bar{transform-box:fill-box;transform-origin:left center}
.chart .b0{fill:var(--ri)}
.chart .b1{fill:var(--rf)}
.chart .zero{fill:none;stroke:var(--rok);stroke-width:1.5}

/* phone version of the retest chart (HTML bars; the SVG would scale below 6px) */
.chart .chart__m{display:none;list-style:none;margin:0;padding:0}
.chart__m li{padding:var(--sp3) 0;border-top:1px solid var(--rl)}
.chart__m li:first-child{border-top:0;padding-top:0}
.cm__h{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp3);margin:0 0 var(--sp2);font-size:15px}
.cm__h b{font-weight:600}
.cm__h span{font:400 13px/17px var(--mono);color:var(--ri3);white-space:nowrap}
.cm__r{display:grid;grid-template-columns:40px minmax(0,1fr) 24px;gap:var(--sp3);align-items:center;margin-top:var(--sp1)}
.cm__k{font:500 13px/17px var(--mono);color:var(--ri3)}
.cm__t{display:block;height:12px}
.cm__t i{display:block;height:12px;border-radius:3px}
.cm__b0{background:var(--ri)}.cm__b1{background:var(--rf)}
.cm__v{font:500 13px/17px var(--mono);color:var(--ri2);text-align:right}
.cm__v--0{color:var(--rok)}
.rv .chart .cm__t i{transform:scaleX(0);transform-origin:left center;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.rv .chart.in .cm__t i{transform:scaleX(1)}

/* questionnaire */
.qa{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--rl);max-width:80ch}
.qa li{padding:18px 0;border-bottom:1px solid var(--rl)}
.qa__q{display:flex;gap:12px;align-items:baseline;font-weight:600;font-size:1.02rem;margin:0}
.qa__q span{font:500 13px/1 var(--mono);color:var(--ri3);min-width:2.2em}
.qa__a{margin:8px 0 0 calc(2.2em + 12px);color:var(--ri2)}
.qa__ev{margin:8px 0 0 calc(2.2em + 12px);font-size:13px;color:var(--ri3);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.copy{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 16px;border:0;border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--rl2);background:#fff;color:var(--ri2);font:500 13px/1 var(--mono);cursor:pointer;transition:color .2s,box-shadow .2s}
.copy:hover{color:var(--ri);box-shadow:inset 0 0 0 1px var(--ri3)}
.copy:active{transform:scale(.97)}
.copy svg{width:13px;height:13px}
.copy[data-done]{color:var(--rok);box-shadow:inset 0 0 0 1px var(--rok)}
.fixlist td:first-child{white-space:nowrap}
.pri{font:600 13px/1 var(--mono);padding:5px 12px;border-radius:var(--r-pill);background:var(--ri);color:var(--pg)}
.pri--p1{background:var(--ri2)}.pri--p2{background:none;color:var(--ri2);box-shadow:inset 0 0 0 1px var(--rl2)}

/* sign-off, how we measured, print CTA */
.sign{margin-top:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ri);max-width:880px}
.sign div{padding:12px 16px 0 0}
.sign dt{font:500 13px/17px var(--mono);color:var(--ri3)}
.sign dd{margin:6px 0 0;font-size:15px}
.meas{list-style:none;padding:0;margin:22px 0 0;border-top:1px solid var(--rl2);max-width:860px;counter-reset:m}
.meas li{display:grid;grid-template-columns:36px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--rl);font-size:15px;color:var(--ri2)}
.meas li::before{counter-increment:m;content:counter(m);font:500 13px/24px var(--mono);color:var(--ri3)}
.meas b{color:var(--ri)}
.meas code{font-size:13px}
.fineprint{margin-top:26px;font-size:13px;color:var(--ri3);max-width:90ch}
.pcta{display:none}
.cite{margin:0;padding-left:var(--sp4);font:400 13px/1.5 var(--mono);color:var(--ri3);max-width:70ch}
.wst__v .cite{margin:8px 0 0;padding-left:0}
.cover__dl{margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13.5px}
.cover .cover__dl a{display:inline-flex;align-items:center;gap:8px;color:var(--ri2);text-decoration:none}
.cover .cover__dl a:hover{color:var(--ri)}
.cover__dl svg{width:15px;height:15px;flex:none}
.lg1--0{background:none!important;border-radius:50%!important;box-shadow:inset 0 0 0 1.5px var(--rok)}
.runs th .note{max-width:none;overflow-wrap:normal;word-break:normal}
@media screen and (max-width:1180px){.runs th .note{overflow-wrap:anywhere}}
.runs td.hash{white-space:nowrap;overflow-wrap:normal;word-break:normal}

/* reveal motion: always on (founder rule); content stays visible without JS */
.rv .sec{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.rv .sec.in{opacity:1;transform:none}
.rv .chart .bar{transform:scaleX(0);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.rv .chart.in .bar{transform:scaleX(1)}
.rv .chart .val{opacity:0;transition:opacity .4s .7s}
.rv .chart.in .val{opacity:1}

/* ---------- responsive ---------- */
@media (max-width:1100px){.meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.cover__grid{grid-template-columns:minmax(0,1fr)}.score{border-left:0;padding:22px 0 0;border-top:1px solid var(--rl);flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 18px}.score__arrow{transform:rotate(-90deg);margin:0}.score__note{flex-basis:100%;max-width:60ch}}
@media (max-width:1023px){
  .layout{grid-template-columns:minmax(0,1fr);gap:0}
  .toc{display:none}
  .tocm{display:block;position:sticky;top:var(--nav);z-index:30;background:#fff;border-bottom:1px solid var(--rl)}
  .tocm summary{list-style:none;max-width:calc(var(--wrap) + 2 * var(--pad));margin:0 auto;padding:12px var(--gut);display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:14.5px;font-weight:500}
  .tocm summary::-webkit-details-marker{display:none}
  .tocm summary span{font:500 13px/1 var(--mono);color:var(--ri3);margin-left:auto;margin-right:10px}
  .tocm summary svg{width:14px;height:14px;transition:transform .25s}
  .tocm[open] summary svg{transform:rotate(180deg)}
  .tocm ol{list-style:none;margin:0 auto;padding:0 var(--gut) 14px;max-width:calc(var(--wrap) + 2 * var(--pad));columns:2;column-gap:28px}
  .tocm li a{display:flex;gap:10px;padding:7px 0;color:var(--ri2);text-decoration:none;font-size:14.5px;break-inside:avoid}
  .tocm li a span{font:500 13px/1.7 var(--mono);color:var(--ri3);min-width:1.6em}
}
@media screen and (max-width:767px){
  body{font-size:16px}
  .chart svg.chart__d{display:none}
  .chart .chart__m{display:block}
  .meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .rubric{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .rubric div:nth-child(3){border-left:0}
  .rubric div:nth-child(-n+2){border-bottom:1px solid var(--rl)}
  .find{padding:18px 16px 12px}
  .find__meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .find__body{grid-template-columns:minmax(0,1fr)}
  .find__body dt{padding-top:14px}
  .find__body dd{padding-top:4px}
  .grades{grid-template-columns:minmax(0,1fr)}
  .sign{grid-template-columns:minmax(0,1fr)}
  .tocm ol{columns:1}
  th,td{padding:12px}
  .qa__a,.qa__ev{margin-left:0}
  .wst{padding:20px 16px 18px}
  .wst__q{grid-template-columns:minmax(0,1fr)}
  .wst__v{padding:14px 0 4px}
  .wst__v + .wst__v{padding:14px 0 4px;border-left:0;border-top:1px solid var(--rl)}
  .meas li{grid-template-columns:26px 1fr}
  .tw--stack table,.tw--stack tbody,.tw--stack tr,.tw--stack td,.tw--stack th{display:block;width:100%}
  .tw--stack thead{display:none}
  .tw--stack tr{padding:12px 0;border-bottom:1px solid var(--rl)}
  .tw--stack tbody tr:last-child{border-bottom:0}
  .tw--stack td,.tw--stack tbody th{border:0;padding:3px 12px;text-align:left}
  .tw--stack td[data-l]::before,.tw--stack th[data-l]::before{content:attr(data-l);display:block;font:500 13px/18px var(--mono);color:var(--ri3)}
}
@media screen and (max-width:767px){
  .cover__fict,.meta dt,.meta dd code,.toc__title,.tocm summary span,.tocm li a span,.wst__n,.wst__lab,.wst__gl,.chip,.pri,.copy,thead th,.find__meta dt,.msg>span,.grades b,.grades code,.trace,.hash,.sign dt,.qa__q span,.score__num small,.chart .sub,.id,.small code,.small .mono,td code,th code,.tw--stack td[data-l]::before,.tw--stack th[data-l]::before,.redact,.mono,.sign dd code{font-size:13px}
  .meta dt{font-size:13px}
}
@media (max-width:560px){.score{flex-direction:column;align-items:flex-start}.score__arrow{transform:none;margin:0 0 0 16px;height:22px}}
@media (max-width:420px){.cover h1{font-size:2rem}.meta dd{font-size:14px}.score__num > span{display:inline-block;line-height:.92}
.score__num{font-size:3rem}}

/* ---------- print ---------- */
@page{size:A4;margin:16mm 14mm 18mm}
@page cover{margin:0}
@media print{
  .chart svg.chart__d{display:block}
  .chart .chart__m{display:none}
  html,body{background:#fff;font-size:10.5pt}
  .nav,.sheet,.site-ft,.band,.skip,.toc,.tocm,.copy,.noprint{display:none!important}
  .layout{display:block;max-width:none;padding:0}
  .cover{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:var(--pg);break-after:page;height:297mm;overflow:hidden;display:flex;page:cover;border:0}
  .cover__in{padding:30mm 18mm 18mm;display:flex;flex-direction:column;width:100%;max-width:none}
  .cover__grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .cover h1{font-size:30pt;max-width:18ch}
  .cover__sub{font-size:12.5pt}
  .score{border:0;border-top:1px solid var(--rl);padding:16px 0 0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 18px}
  .score__num > span{display:inline-block;line-height:.92}
.score__num{font-size:44pt}
  .score__arrow{transform:rotate(-90deg);margin:0}
  .score__note{flex-basis:100%;max-width:none}
  .meta{margin-top:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
  .meta dd{font-size:10pt}
  .cover--short{height:auto;break-after:auto;page:auto}
  .cover--short .cover__in{padding:16mm 14mm 12mm}
  .cover--short .meta{margin-top:18px;grid-template-columns:repeat(4,minmax(0,1fr))}
  body[data-page="art50"] .sec{padding-top:10px}
  body[data-page="art50"] details.tx,body[data-page="art50"] .sec h3{display:none}
  body[data-page="art50"] table{font-size:9pt}
  body[data-page="art50"] th,body[data-page="art50"] td{padding:6px 8px}
  .sec{padding:18px 0 6px;border:0;opacity:1!important;transform:none!important}
  .sec--break{break-before:page}
  .chart,.verdict,.rubric,.qa li,.risks li,tr,.find__head,.find h3,.find__meta,.wst,.wst__v,.meas li,.sign,.retest,.cite{break-inside:avoid}
  .find h3,.sec h3,.sec>h2,.find__head,.find__body dt,details.tx>summary{break-after:avoid}
  .find__body dd{break-before:avoid}
  .cover__dl{display:none}
  details.tx,.msg{break-inside:auto}
  .chip,.redact,mark.flag,.pri,.chart,.msg--user,.tw thead th,.wst{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  a{color:var(--ri);text-decoration:none}
  .tw{overflow:visible}
  .pcta{display:block;margin-top:18px;padding:14px 16px;box-shadow:inset 0 0 0 1px var(--ri);break-inside:avoid;font-size:10pt}
  .pcta p{margin:4px 0}
}

/* reading measure: about 75 characters a line (detector line-length) */
.verdict p,.risks li p,.todo li,.qa li,.lede,.prose p,.prose li,.find__body dd p,.small.muted,.score__note,.wst__why,.fineprint{max-width:56ch}
@media (min-width:768px){.tw--kv td{padding-right:140px}}

/* print density: full line length on A4 and tighter boxes (the screen keeps its reading measure) */
@media print{
  html,body{font-size:9.6pt}
  .verdict p,.risks li p,.todo li,.qa li,.lede,.prose p,.prose li,.find__body dd,.find__body dd p,.small.muted,.score__note,.wst__why,.fineprint,.msg,.wst__t,.cite{max-width:none}
  .msg,.wst__t{font-size:9pt;line-height:1.45}
  .msg>span{margin-bottom:3px}
  .find{padding:12px 18px 2px;margin-top:12px}
  .wst{padding:16px 18px 10px;margin-top:14px}
  .find__meta div{padding:8px 10px 8px 0}
  .find__body dt{padding-top:8px}.find__body dd{padding-top:7px}
  table{font-size:9pt}
  th,td{padding:7px 9px}
  .tx__body{gap:8px;padding-bottom:10px}
  details.tx>summary{padding:8px 0}
  .sec{padding:12px 0 4px}
  .sec h2{margin-top:8px}
  #appx-a{break-before:auto}
  #next{break-inside:avoid}
  .qa li{padding:10px 0}
  .qa{max-width:none}
  .chip{height:20px;padding:0 9px}
}

