:root{--paper:#eaeeec;--surface:#f4f7f5;--rule:#c5cfcd;--rule-2:#9fadab;--text:#121a1e;--text-2:#364247;--muted:#546064;--ink:#21355c;
--c:#087a96;--m:#c2256e;--y:#e9b800;--y-line:#9a7400;--k:#121a1e;--on:#fff;--blend:multiply;--bad:#a8281e;--ok:#17694f;
--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--cond:"IBM Plex Sans Condensed","Arial Narrow","Helvetica Neue",var(--sans);
--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
@media (prefers-color-scheme:dark){:root{--paper:#091420;--surface:#0e1c2b;--rule:#263a4f;--rule-2:#3d5872;--text:#dee9f0;--text-2:#b2c5d4;--muted:#8da2b4;--ink:#7ab2d6;
--c:#3fc3e3;--m:#f2679f;--y:#f0cb45;--y-line:#f0cb45;--k:#dee9f0;--on:#091420;--blend:screen;--bad:#f08a7c;--ok:#5fc9a3}}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
.sheet{max-width:62rem;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem) 4rem}
a{color:var(--ink);text-underline-offset:.18em;text-decoration-thickness:1px}
h1,h2,h3{font-family:var(--cond);font-weight:600;line-height:1.2;margin:0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.label{font:500 .72rem/1.4 var(--mono);color:var(--muted);margin:0}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;padding:1.1rem 0;border-bottom:1px solid var(--rule-2)}
.brand{display:flex;align-items:center;gap:.6rem;font:600 1.05rem/1 var(--cond)}
.brand svg{width:1.5rem;height:1.5rem;color:var(--ink)}
.brand span{font:500 .72rem/1 var(--mono);color:var(--muted);margin-left:.4rem}
.meta{display:flex;gap:2rem;flex-wrap:wrap;margin:0}
.meta dt{font:500 .68rem/1.4 var(--mono);color:var(--muted)}
.meta dd{margin:0;font-size:.9rem;overflow-wrap:anywhere}
.verdict{padding:3rem 0 2.2rem;border-bottom:2px solid var(--text)}
.press{position:relative;display:inline-block;isolation:isolate;font:600 clamp(2.6rem,9vw,5.2rem)/1 var(--cond);letter-spacing:.005em}
.press span{display:block;mix-blend-mode:var(--blend)}
.press .pc,.press .pm,.press .py{position:absolute;inset:0}
.press .pc{color:var(--c)}.press .pm{color:var(--m)}.press .py{color:var(--y)}.press .pk{color:var(--k);position:relative}
.out .press .pc{transform:translate(-.085em,-.05em)}
.out .press .pm{transform:translate(.075em,-.035em)}
.out .press .py{transform:translate(-.03em,.075em)}
.verdict p{max-width:44rem;margin:1.4rem 0 0;color:var(--text-2);font-size:1.08rem}
.verdict b{color:var(--text);font-weight:600}
.plates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--rule-2)}
.plate{padding:1rem 1rem 1.1rem 0;border-right:1px solid var(--rule)}
.plate+.plate{padding-left:1rem}
.plate:last-child{border-right:0}
.plate h3{display:flex;align-items:center;gap:.5rem;font:600 .98rem/1.2 var(--sans)}
.plate .note{margin:.35rem 0 .6rem;color:var(--muted);font-size:.82rem;line-height:1.45}
.plate ul{list-style:none;margin:0;padding:0;font:500 .8rem/1.7 var(--mono)}
.plate.none ul{color:var(--muted)}
.chip{display:inline-grid;place-items:center;width:1.45em;height:1.45em;font:600 .72em/1 var(--mono);color:var(--on);background:var(--k);flex:none}
.chip-c{background:var(--c)}.chip-m{background:var(--m)}.chip-y{background:var(--y);color:#121a1e;box-shadow:inset 0 0 0 1px var(--y-line)}.chip-k{background:var(--k)}
section>h2{font-size:1.3rem;margin:2.8rem 0 .9rem;padding-top:1.1rem;border-top:1px solid var(--rule-2)}
.plates+section>h2{border-top:0;padding-top:0}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;vertical-align:top;padding:.5rem 1rem .5rem 0;border-bottom:1px solid var(--rule)}
th{font:500 .72rem/1.4 var(--mono);color:var(--muted);border-bottom:1.5px solid var(--text)}
td.mark{width:1.8rem;font:600 1rem/1.5 var(--mono)}
td.id{font:500 .84rem/1.7 var(--mono);white-space:nowrap}
td.what{color:var(--text-2)}
td.num,th.num{text-align:right;font-family:var(--mono);width:4.5rem}
td.budget{font:400 .78rem/1.9 var(--mono);color:var(--muted);white-space:nowrap}
.is-fail .mark,.is-fail .num{color:var(--bad)}.is-fail .num{font-weight:600}
.is-flag .mark{color:var(--y-line)}.is-pass .mark{color:var(--ok)}.is-skip{color:var(--muted)}.is-skip td.what{color:var(--muted)}
.group{margin-top:2rem}
.group>h3{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;font:500 .95rem/1.4 var(--mono)}
.group>h3 small{font:400 .88rem/1.4 var(--sans);color:var(--muted)}
.group>p.more{color:var(--muted);font-size:.88rem;margin:.6rem 0 0}
ol.proofs{list-style:none;margin:.7rem 0 0;padding:0;border-top:1px solid var(--rule-2)}
.proof{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--rule)}
.subject{margin:0;font:600 .86rem/1.5 var(--mono);overflow-wrap:anywhere}
.pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.9rem;align-items:start}
.says{padding:.1rem 0 .1rem .8rem;border-left:2px solid var(--rule-2);min-width:0}
.says-expected{border-left-color:var(--k)}
.who{display:flex;align-items:center;gap:.45rem;margin:0;font:500 .76rem/1.4 var(--mono);color:var(--muted)}
.value{margin:.25rem 0 .2rem;font:600 1.12rem/1.3 var(--cond);overflow-wrap:anywhere}
.says-actual .value{color:var(--bad)}
.neq{margin:.9rem 0 0;font:600 1.1rem/1 var(--mono);color:var(--muted)}
.loc{display:block;font:400 .72rem/1.5 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.message{margin:0 0 .25rem;overflow-wrap:anywhere}
.issues li{margin:.3rem 0;overflow-wrap:anywhere}.issues code{font:500 .82rem var(--mono)}
footer{margin-top:3.5rem;padding-top:1rem;border-top:1px solid var(--rule-2);color:var(--muted);font:400 .76rem/1.7 var(--mono)}
@media (max-width:46rem){.plates{grid-template-columns:repeat(2,minmax(0,1fr))}.plate{border-bottom:1px solid var(--rule)}.plate:nth-child(2n){border-right:0}.plate:nth-child(odd){padding-left:0}
.proof{grid-template-columns:minmax(0,1fr);gap:.4rem}.pair{grid-template-columns:minmax(0,1fr)}.neq{margin:0}td.what,th.what{display:none}}
@media print{body{background:#fff}.sheet{max-width:none;padding:0}.proof,.group>h3,tr{break-inside:avoid}a{color:inherit}}