/* Section 05, part B: Figures 17-24 and the Table 8/9 companions.
   Scoped to .s05b-*; kit tokens (site.css :root) plus the report figures' own
   phase colours, declared once here. */
.s05b-fig,.s05b-companion{
 --s5-layout:#eef1f1;--s5-layout-line:#a5b1b3;
 --s5-coll:#fbe6f0;--s5-coll-line:#d38cae;
 --s5-row:#e1eded;--s5-row-line:#6f9c9f;
 --s5-comp:#e8f1e3;--s5-comp-line:#8db389;
 --s5-disp:#d64c8e;--s5-dispepi:#f3b1d0;--s5-expert:#739a68;--s5-comb:#407579;--s5-combepi:#a9c8c9;--s5-merge:#99a5a7;
 --s5-gold:#b0661a;--s5-gold-deep:#8a4f12;--s5-pinkline:#d64c8e;
 --s5-good:#2f7a4f;--s5-bad:var(--pink-deep);
 container:s05b/inline-size;position:relative;margin:0;color:var(--ink);font-size:14.5px;line-height:1.5}
.report-content .s05b-fig p,.report-content .s05b-companion p{margin:0}
.report-content .s05b-fig :is(ul,ol),.report-content .s05b-companion :is(ul,ol){margin:0;padding:0;list-style:none}
.report-content .s05b-fig li,.report-content .s05b-companion li{margin:0;padding:0}
.report-content .s05b-fig li::marker,.report-content .s05b-companion li::marker{content:none}

/* ---------- head (one title row; the frame badge is the evidence label) ---------- */
.s05b-head{margin:2px 0 16px}
.report-content .s05b-fig .s05b-title{margin:0;font-size:clamp(21px,2.1vw,27px);font-weight:400;line-height:1.2;letter-spacing:-.022em;color:var(--ink-deep);text-wrap:balance}

/* ---------- controls ---------- */
.s05b-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin:0 0 14px}
.s05b-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.s05b-control-label{font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.s05b-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:20px;background:var(--cream-lo);border:1px solid var(--line)}
.s05b-seg button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 13px;border:0;border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:700;line-height:1;cursor:pointer;transition:background-color .2s var(--ease),color .2s,box-shadow .2s}
.s05b-seg button:hover{color:var(--ink)}
.s05b-seg button[aria-pressed="true"]{background:var(--cream-hi);color:var(--ink-deep);box-shadow:inset 0 0 0 1.5px var(--ink-deep),0 1px 3px rgba(10,43,53,.16)}
.s05b-seg button:focus-visible,.s05b-chips button:focus-visible,.s05b-adj-btn:focus-visible{outline:2.5px solid var(--pink);outline-offset:2px}
.s05b-range{display:flex;flex-wrap:nowrap;align-items:center;gap:8px 12px}
.s05b-range input[type=range]{-webkit-appearance:none;appearance:none;width:min(220px,100%);height:28px;margin:0;background:transparent;cursor:pointer}
.s05b-range--wide{margin:12px 0 0}
.s05b-range--wide input[type=range]{flex:1 1 120px;min-width:0;width:auto;max-width:520px}
.s05b-range .s05b-control-label,.s05b-range output{white-space:nowrap}
.s05b-range input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--teal-line),var(--sand))}
.s05b-range input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--teal-line),var(--sand))}
.s05b-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-8px;border-radius:50%;background:var(--teal);border:3px solid var(--cream-hi);box-shadow:0 1px 4px rgba(10,43,53,.3)}
.s05b-range input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--teal);border:3px solid var(--cream-hi);box-shadow:0 1px 4px rgba(10,43,53,.3)}
.s05b-range input[type=range]:focus-visible{outline:2.5px solid var(--pink);outline-offset:2px;border-radius:6px}
.s05b-range output{min-width:5ch;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-deep)}
.s05b-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:12.5px;color:var(--ink-soft)}
.s05b-lkey{display:inline-block;flex:none;width:28px;height:12px;overflow:visible}
.s05b-legend li{display:inline-flex;align-items:center;gap:7px}
.s05b-key{display:inline-block;flex:none;width:14px;height:10px;border-radius:3px;border:1px solid transparent}
.s05b-key--layout{background:var(--s5-layout);border-color:var(--s5-layout-line)}
.s05b-key--collective{background:var(--s5-coll);border-color:var(--s5-coll-line)}
.s05b-key--rowwise{background:var(--s5-row);border-color:var(--s5-row-line)}
.s05b-key--compute{background:var(--s5-comp);border-color:var(--s5-comp-line)}
.s05b-key--disp{width:22px;background:linear-gradient(90deg,var(--s5-disp) 64%,var(--s5-dispepi) 64%)}
.s05b-key--expert{background:var(--s5-expert)}
.s05b-key--comb{width:22px;background:linear-gradient(90deg,var(--s5-comb) 64%,var(--s5-combepi) 64%)}
.s05b-key--merge{background:var(--s5-merge)}
.s05b-key--pen{background:var(--pink-wash);border:1px solid var(--s5-coll-line)}
.s05b-key--solid{width:24px;height:3px;border-radius:2px;background:var(--ink-soft)}
.s05b-key--dashed{width:24px;height:3px;border-radius:0;background:repeating-linear-gradient(90deg,var(--ink-soft) 0 6px,transparent 6px 10px)}
.s05b-key--fwdk{width:10px;height:10px;border-radius:50%;background:var(--s5-disp)}
.s05b-key--bwdk{width:9px;height:9px;border-radius:1px;background:var(--s5-gold);transform:rotate(45deg)}

/* ---------- surfaces, readouts, notes ---------- */
.s05b-surface{position:relative;background:var(--cream-hi);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 16px}
.s05b-fig svg,.s05b-companion svg{display:block;width:100%;height:auto;overflow:visible;font-family:var(--font)}
.s05b-fig svg.s05b-fit,.s05b-companion svg.s05b-fit{margin-inline:auto}
.s05b-fig svg.s05b-lkey{display:inline-block;width:28px;height:12px}
.s05b-fig svg.is-entering,.s05b-companion svg.is-entering{animation:s05b-enter .34s var(--ease)}
/* The shared autoplay pill's icon is not a figure drawing (autoplay.css sizes it). */
.s05b-fig .ap-btn svg,.s05b-companion .ap-btn svg{display:block;width:18px;height:18px;overflow:hidden}
@keyframes s05b-enter{from{opacity:.25}to{opacity:1}}
.s05b-readout{display:grid;gap:12px;margin-top:14px}
.s05b-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.s05b-stat{display:flex;flex-direction:column;gap:2px;padding:10px 14px 11px;border-radius:12px;border:1px solid var(--line);border-left:4px solid var(--ink-soft);background:var(--cream-hi)}
.s05b-stat span{font-size:12.5px;font-weight:700;color:var(--ink-soft)}
.s05b-stat b{font-size:22px;font-weight:400;line-height:1.2;letter-spacing:-.01em;color:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05b-stat b.s05b-stat-list{display:flex;flex-wrap:wrap;gap:0 12px;font-size:15px;line-height:1.5;letter-spacing:0}
.s05b-stat-list span{white-space:nowrap}
.s05b-stat small{font-size:12px;line-height:1.4;color:var(--muted)}
.s05b-stat small a{font-weight:700}
.s05b-stat--teal{border-left-color:var(--teal)}
.s05b-stat--base{border-left-color:#968671}
.s05b-stat--neutral{border-left-color:var(--ink-soft)}
.s05b-stat--ink{border-left-color:var(--ink-deep)}
.s05b-stat--compute{border-left-color:var(--s5-expert)}
.s05b-detail{min-height:44px;padding:10px 14px;border-radius:12px;background:var(--cream-lo)}
.report-content .s05b-fig .s05b-kicker,.report-content .s05b-companion .s05b-kicker{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pink-deep)}
.report-content .s05b-fig .s05b-main{margin:4px 0 3px;font-size:16.5px;line-height:1.4;color:var(--ink-deep)}
.s05b-main b{font-weight:700}
.report-content .s05b-fig .s05b-small,.report-content .s05b-companion .s05b-small{font-size:13px;line-height:1.5;color:var(--ink-soft)}
.s05b-small b{color:var(--ink-deep)}
.report-content .s05b-fig .s05b-hint{font-size:13px;color:var(--muted)}
.report-content .s05b-fig .s05b-note,.report-content .s05b-companion .s05b-note{margin:12px 0 0;max-width:880px;font-size:12.5px;line-height:1.58;color:var(--muted)}
.report-content .s05b-fig .s05b-note a[data-reference-type]{font-weight:700}
.s05b-quote{margin:8px 0 0;padding:6px 0 6px 12px;border-left:3px solid var(--teal-line)}
.report-content .s05b-fig .s05b-quote p{font-size:14px;color:var(--ink-deep)}
.s05b-quote cite{display:block;margin-top:2px;font-size:11.5px;font-style:normal;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.s05b-x{color:var(--pink-deep);font-weight:700}
.s05b-good{color:var(--s5-good);font-weight:700}
.s05b-bad{color:var(--s5-bad);font-weight:700}
.s05b-tip{position:absolute;z-index:5;max-width:280px;padding:9px 12px;border-radius:10px;background:var(--ink-deep);color:var(--cream);font-size:12.5px;line-height:1.45;box-shadow:var(--shadow-pop);pointer-events:none}
.s05b-tip[hidden]{display:none}
.report-content .s05b-fig .s05b-tip p{margin:0}
.s05b-tip p+p{margin-top:2px}
.s05b-tip b{color:#fff}

/* ---------- SVG text ---------- */
.s05b-t{font-size:13px;fill:var(--ink)}
.s05b-t--tick{font-size:12px;fill:var(--muted);font-variant-numeric:tabular-nums}
.s05b-t--tick.is-on{fill:var(--ink-deep);font-weight:700}
.s05b-t--axis{font-size:12.5px;fill:var(--muted)}
.s05b-t--lane{font-size:15px;font-weight:700;fill:var(--ink-deep)}
.s05b-t--lanesub,tspan.s05b-t--lanesub{font-size:12.5px;font-weight:400;fill:var(--muted)}
.s05b-t--lanename{font-size:12.5px;fill:var(--ink-soft)}
.s05b-t--seg{font-size:12.5px;font-weight:700;fill:var(--ink-deep);pointer-events:none}
.s05b-t--segms{font-weight:400}
.s05b-t--olname{font-size:12px;fill:var(--ink-soft)}
.s05b-t--olms{font-size:12px;fill:var(--muted);font-variant-numeric:tabular-nums}
.s05b-t--bridge{font-size:11.5px;font-weight:700;fill:var(--muted);letter-spacing:.02em;pointer-events:none}
.s05b-t--bridge.is-on{fill:var(--pink-deep)}
.s05b-t--diff{font-size:12px;font-weight:700;fill:var(--pink-deep);paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px;stroke-linejoin:round}
.s05b-t--strong{font-size:13.5px;font-weight:700;fill:var(--ink-deep)}
.s05b-t--small{font-size:12px;fill:var(--muted)}
.s05b-t--issue{fill:var(--pink-deep);font-weight:700}
.s05b-t--hot{fill:var(--pink-deep);font-weight:700}
.s05b-t--caps{font-size:12px;font-weight:700;letter-spacing:.1em;fill:var(--teal-deep)}
.s05b-t--buf{font-size:12px;font-style:italic;fill:var(--muted)}
.s05b-t--off{font-size:12px;fill:var(--muted);font-variant-numeric:tabular-nums}
.s05b-t--rowlabel{font-size:12px;font-weight:700;fill:var(--ink-deep);pointer-events:none}
.s05b-t--pill{font-size:12px;font-weight:700;fill:#fff;letter-spacing:.06em}
.s05b-t--verdict{font-size:13.5px;font-weight:700;fill:var(--ink-deep)}
.s05b-t--zone{font-size:12px;fill:var(--muted);font-style:italic}
.s05b-t--zonesym{fill:var(--teal-deep)}
.s05b-t--edge{font-size:12px;fill:var(--ink-soft);paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px;stroke-linejoin:round}
.s05b-t--node{font-size:13px;fill:var(--ink-deep)}
.s05b-t--rail{font-size:12px;fill:var(--muted)}
.s05b-t--chip{font-size:12px;font-weight:700;fill:#fff;pointer-events:none}
.s05b-t--empty{font-size:12px;fill:var(--muted);font-style:italic}
.s05b-t--state{font-size:12px;fill:var(--ink-soft)}
.s05b-t--ev{font-size:12px;font-weight:700;fill:var(--ink-deep);paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px;stroke-linejoin:round}
.s05b-t--muted{fill:var(--muted);font-weight:400}
.s05b-t--mark{font-size:13px;font-weight:700;fill:#fff}
.s05b-t--big{font-size:44px;font-weight:400;fill:var(--ink-deep)}
.s05b-t--bar{font-size:11px;font-weight:700;fill:#fff;pointer-events:none}
.s05b-t--panel{font-size:14.5px;font-weight:700;fill:var(--ink-deep)}
.s05b-t--panelv{font-size:13px;font-weight:700;fill:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05b-t--pen{font-size:11px;font-weight:700;fill:var(--pink-deep)}
.s05b-t--cursor{font-size:11.5px;font-weight:700;fill:var(--ink-deep);paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px}
.s05b-t--best{font-size:12px;font-weight:700;fill:var(--teal-deep);paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px;stroke-linejoin:round}
.s05b-t--fwd{fill:var(--pink-deep)}
.s05b-t--bwd{fill:var(--s5-gold-deep)}
.s05b-t--barv{font-size:11.5px;font-weight:700;fill:var(--ink-deep);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--cream-hi);stroke-width:3px}
.s05b-t--map{font-size:12px;font-weight:700;fill:var(--teal-deep)}
.s05b-t--val{font-size:12.5px;font-weight:700;fill:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05b-t--slow{font-size:12px;font-weight:700;fill:var(--pink-deep)}
tspan.s05b-t--good{fill:var(--s5-good);font-weight:700}
.s05b-t--goodv{font-size:12px;font-weight:700;fill:var(--s5-good)}
.s05b-t--inbar{font-size:11.5px;font-weight:700;fill:var(--ink-soft);pointer-events:none}
.s05b-if-pair--ov .s05b-t--inbar{fill:#fff}
.s05b-sub{font-size:max(.75em,10px)}
.s05b-it{font-style:italic}
.s05b-grid{stroke:var(--line);stroke-width:1}
.s05b-grid--zero{stroke:var(--line-strong);stroke-width:1.4}
.s05b-axis,.s05b-tickmark{stroke:var(--line-strong);stroke-width:1}
.s05b-hit{fill:transparent;cursor:crosshair}
.s05b-ah{fill:var(--ink-soft)}

/* ---------- Figure 17 · path anatomy ---------- */
.s05b-aseg{cursor:pointer;outline:none;transition:opacity .25s var(--ease)}
.s05b-aseg rect{stroke-width:1.2;transition:stroke .2s,stroke-width .2s,fill .2s}
.s05b-aseg--layout rect{fill:var(--s5-layout);stroke:var(--s5-layout-line)}
.s05b-aseg--collective rect{fill:var(--s5-coll);stroke:var(--s5-coll-line)}
.s05b-aseg--rowwise rect{fill:var(--s5-row);stroke:var(--s5-row-line)}
.s05b-aseg--compute rect{fill:var(--s5-comp);stroke:var(--s5-comp-line)}
.s05b-aseg.is-dim{opacity:.38}
.s05b-aseg.is-related rect{stroke:var(--teal-deep);stroke-width:2.2}
.s05b-aseg.is-focus rect,.s05b-aseg:focus-visible rect{stroke:var(--pink);stroke-width:2.8}
.s05b-bridge{fill:rgba(64,117,121,.06);stroke:none;transition:fill .25s var(--ease)}
.s05b-bridge--compute{fill:rgba(115,154,104,.08)}
.s05b-bridge.is-on{fill:rgba(240,82,156,.13)}
.s05b-olabel line{stroke:var(--line-strong);stroke-width:1}
.s05b-olabel{transition:opacity .25s}
.s05b-olabel.is-dim{opacity:.4}
.s05b-olabel.is-on .s05b-t{fill:var(--pink-deep);font-weight:700}
.s05b-endline{stroke:var(--ink-deep);stroke-width:1;stroke-dasharray:3 3;opacity:.55}
.s05b-diff path{fill:none;stroke:var(--pink-deep);stroke-width:1.5}
.s05b-diff-ah{fill:var(--pink-deep)}

/* ---------- Figure 18 · symmetric memory ---------- */
.s05b-sm-kernel{fill:var(--cream);stroke:var(--line-strong);stroke-width:1.2}
.s05b-sm-col.is-issuer .s05b-sm-kernel{fill:var(--pink-wash);stroke:var(--pink);stroke-width:1.8}
.s05b-sm-col.is-peer .s05b-sm-kernel{stroke:var(--teal);stroke-width:1.8}
.s05b-sm-heap{fill:rgba(64,117,121,.07);stroke:var(--teal-line);stroke-width:1.2}
.s05b-sm-row{cursor:pointer}
.s05b-sm-row rect{fill:var(--cream-hi);stroke:var(--line-strong);stroke-width:1;transition:fill .2s,stroke .2s}
.s05b-sm-row:hover rect{stroke:var(--teal)}
.s05b-sm-row.is-match rect{fill:#d7e7e7;stroke:var(--teal);stroke-dasharray:4 3}
.s05b-sm-row.is-local rect{fill:#d7e7e7;stroke:var(--teal);stroke-dasharray:none}
.s05b-sm-row.is-target rect{fill:var(--pink-wash);stroke:var(--pink);stroke-width:2;stroke-dasharray:none}
.s05b-sm-reg{cursor:pointer}
.s05b-sm-reg rect{fill:#e9eef6;stroke:#9fb2cf;stroke-width:1.1}
.s05b-sm-reg.is-blocked rect{stroke:var(--pink-deep);stroke-width:1.8;stroke-dasharray:5 3}
.s05b-sm-line{fill:none;stroke:var(--pink-deep);stroke-width:2.2;stroke-linejoin:round}
.s05b-sm-path--get .s05b-sm-line{stroke:var(--teal-deep)}
.s05b-sm-ah{fill:var(--pink-deep)}
.s05b-sm-path--get .s05b-sm-ah{fill:var(--teal-deep)}
.s05b-sm-path.is-blocked .s05b-sm-line{stroke:var(--muted);stroke-dasharray:5 4}
.s05b-sm-flow{fill:none;stroke:var(--pink);stroke-width:5;stroke-linecap:round;stroke-dasharray:0 2000;opacity:0}
.s05b-sm-path.is-pulse .s05b-sm-flow{animation:s05b-pulse .9s var(--ease) 1}
@keyframes s05b-pulse{0%{opacity:.9;stroke-dasharray:14 2000;stroke-dashoffset:0}100%{opacity:.9;stroke-dasharray:14 2000;stroke-dashoffset:-700}}
.s05b-sm-pill rect{fill:var(--pink-deep)}
.s05b-sm-path--get+.s05b-sm-pill rect{fill:var(--teal-deep)}
.s05b-sm-pill.is-blocked rect{fill:var(--muted)}
.s05b-sm-cross circle{fill:var(--cream-hi);stroke:var(--pink-deep);stroke-width:1.6}
.s05b-sm-cross path{stroke:var(--pink-deep);stroke-width:2;stroke-linecap:round}
.s05b-inspector{margin-top:12px;padding:12px 16px;border-radius:12px;background:var(--cream-lo);min-height:86px}

/* ---------- Figure 19 · PUT/GET fan-out ---------- */
.s05b-pg-box{fill:var(--cream);stroke:var(--line-strong);stroke-width:1.2;transition:fill .25s,stroke .25s}
.s05b-pg-box.is-issuer{fill:var(--pink-wash);stroke:var(--pink);stroke-width:1.8}
.s05b-pg-row{fill:#e2eedf;stroke:#9cbf96;stroke-width:1}
.s05b-pg-row.is-token{fill:#f6c9d6;stroke:#c8607f;stroke-width:1.6}
.s05b-pg-slot{fill:#e9eef6;stroke:#9fb2cf;stroke-width:1}
.s05b-pg-slot.is-slot{fill:#f6c9d6;stroke:#c8607f;stroke-width:1.6}
/* One colour encoding on the page: PUT pink-deep, GET teal-deep (Figure 18, Table 8 companion). */
.s05b-pg-line{fill:none;stroke:var(--pink-deep);stroke-width:1.8}
.s05b-pg-ah{fill:var(--pink-deep)}
.s05b-pg-arrow--get .s05b-pg-line{stroke:var(--teal-deep)}
.s05b-pg-arrow--get .s05b-pg-ah{fill:var(--teal-deep)}
.s05b-pg-flow{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:1 17;opacity:0;transition:opacity .3s}
.s05b-pg.is-live .s05b-pg-flow{opacity:.95;animation:s05b-flow 1.1s linear 2}
@keyframes s05b-flow{to{stroke-dashoffset:-18}}
/* Flow dashes run one autoplay cycle (two dash loops, 2.2 s) per .is-live
   restart (s05-b.js autoplayFlow); off screen the cycle pauses in place. */
.s05b-pg[data-autoplay="suspended"] .s05b-pg-flow,.s05b-companion[data-autoplay="suspended"] .s05b-adj-flow{animation-play-state:paused}
.s05b-pg-pill rect{fill:var(--cream-hi);stroke:var(--pink-deep)}
.s05b-pg-pill .s05b-t--pill{fill:var(--pink-deep)}
.s05b-pg-pill--get rect{stroke:var(--teal-deep)}
.s05b-pg-pill--get .s05b-t--pill{fill:var(--teal-deep)}
.s05b-pg-meter circle{fill:var(--teal-wash);stroke:var(--teal-line);stroke-width:1}
.s05b-pg-meter.is-hot circle{fill:var(--pink);stroke:var(--pink-deep)}
.s05b-pg-verdict--put .s05b-t--verdict{fill:var(--s5-good)}
.s05b-pg-verdict--get .s05b-t--verdict{fill:var(--pink-deep)}

/* ---------- Figure 20 · regular/symmetric boundary ---------- */
.s05b-bd-zone--symm{fill:rgba(64,117,121,.07);stroke:none}
.s05b-bd-line{stroke:var(--line-strong);stroke-width:1.2;stroke-dasharray:6 5}
.s05b-bd-node{transition:opacity .35s var(--ease)}
.s05b-bd-node rect{fill:var(--cream-hi);stroke:rgba(10,43,53,.6);stroke-width:1.1;transition:stroke .2s,stroke-width .2s}
.s05b-bd-node--kernel rect{fill:var(--cream-lo)}
.s05b-bd-node--symm rect{fill:#d9e9e9}
.s05b-bd-node.is-off{opacity:0}
.s05b-bd-node.is-hl rect{stroke:var(--pink);stroke-width:2.6}
.s05b-bd-edge{transition:opacity .35s var(--ease)}
.s05b-bd-edge path:first-child{fill:none;stroke:var(--ink-deep);stroke-width:1.4;stroke-linejoin:round}
.s05b-bd-ah{fill:var(--ink-deep)}
.s05b-bd-edge--copy path:first-child{stroke:var(--pink-deep);stroke-width:2.2}
.s05b-bd-edge--copy .s05b-bd-ah{fill:var(--pink-deep)}
.s05b-bd-edge--copy .s05b-t--edge{fill:var(--pink-deep);font-weight:700}
.s05b-bd-edge--xfer path:first-child{stroke:var(--teal);stroke-width:3}
.s05b-bd-edge--xfer .s05b-bd-ah{fill:var(--teal)}
.s05b-bd-edge--direct path:first-child{stroke:var(--teal-deep);stroke-width:2}
.s05b-bd-edge--direct .s05b-bd-ah{fill:var(--teal-deep)}
.s05b-bd-edge--direct .s05b-t--edge{fill:var(--teal-deep);font-weight:700}
.s05b-bd-edge.is-off{opacity:0}
.s05b-bd-edge.is-dim :is(path){opacity:.3}
.s05b-bd-edge.is-dim .s05b-t--edge{fill:var(--muted)}
.s05b-bd-edge.is-hl path:first-child{stroke:var(--pink);stroke-width:3.2}
.s05b-bd-edge.is-hl .s05b-bd-ah{fill:var(--pink)}
.s05b-count{display:inline-flex;align-items:baseline;gap:7px;padding:5px 13px;border-radius:999px;background:var(--cream-lo);font-size:13px;color:var(--ink-soft)}
.s05b-count b{font-size:19px;color:var(--pink-deep)}
.s05b-where{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px}
.s05b-where[hidden]{display:none}
.s05b-chips{display:flex;flex-wrap:wrap;gap:6px}
.s05b-chips button{min-height:32px;padding:4px 12px;border-radius:999px;border:1px solid var(--teal-line);background:var(--cream-hi);color:var(--teal-deep);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;text-align:left;transition:background-color .2s,color .2s,border-color .2s}
.s05b-chips button:hover{border-color:var(--teal)}
.s05b-chips button[aria-pressed="true"]{background:var(--pink-wash);border-color:var(--pink);color:var(--pink-deep)}

/* ---------- Figures 21-22 · step tracks ---------- */
.s05b-timeline{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px 18px;align-items:start;margin-top:14px}
.s05b-steps{position:relative;display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--cream-lo);border:1px solid var(--line);cursor:pointer;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.s05b-steps:focus-visible{outline:2.5px solid var(--pink);outline-offset:3px}
.s05b-step{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:7px 2px 6px;border-radius:10px;color:var(--muted);transition:background-color .25s var(--ease),color .25s}
.s05b-step b{font-size:13.5px;font-weight:700;line-height:1.2;white-space:nowrap}
.s05b-step small{font-size:11px;line-height:1.2;white-space:nowrap}
.s05b-step.is-past{color:var(--ink-soft)}
.s05b-step.is-on{background:var(--cream-hi);color:var(--ink-deep);box-shadow:inset 0 0 0 1.5px var(--ink-deep),0 1px 3px rgba(10,43,53,.16)}
.s05b-steps-col{display:grid;gap:6px;min-width:0}
.s05b-step.is-ok small{color:var(--s5-good);font-weight:700}
.s05b-step.is-bad small{color:var(--pink-deep);font-weight:700}
.s05b-status{display:grid;gap:8px;min-height:64px;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}
.report-content .s05b-fig .s05b-status p{color:var(--ink-deep)}
.s05b-verdict{justify-self:start;padding:5px 12px;border-radius:12px;font-size:12.5px;line-height:1.45;color:var(--ink-soft);background:var(--cream-lo)}
.s05b-verdict b{margin-right:2px}
.s05b-verdict.is-ok b{color:var(--s5-good)}
.s05b-verdict.is-bad{background:var(--pink-wash)}
.s05b-verdict.is-bad b{color:var(--pink-deep)}
.s05b-pool{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.s05b-pool ul{display:flex;flex-wrap:wrap;gap:6px}
.report-content .s05b-fig .s05b-pool li,.s05b-pool li{flex:none;display:inline-flex;align-items:baseline;gap:2px;padding:3px 12px 3px 10px;white-space:nowrap;border-radius:999px;border:1px dashed var(--line-strong);font-size:12.5px;color:var(--muted)}
.s05b-pool li b{color:var(--ink-deep)}
.report-content .s05b-fig .s05b-pool li.is-held{border-style:solid;border-color:var(--pink);background:var(--pink-wash);color:var(--pink-deep)}
.report-content .s05b-fig .s05b-pool li.is-bad{border-style:solid;border-color:var(--pink-deep);background:var(--pink-wash);color:var(--pink-deep)}

/* Figure 21 */
.s05b-ru-rail path{fill:none;stroke:var(--line-strong);stroke-width:1.3;stroke-dasharray:5 4;transition:stroke .25s}
.s05b-ru-rail.is-link path{stroke-dasharray:none}
.s05b-ru-ah{fill:var(--line-strong)}
.s05b-ru-rail.is-on path{stroke:var(--teal);stroke-width:1.8}
.s05b-ru-rail.is-on .s05b-ru-ah{fill:var(--teal)}
.s05b-ru-rail.is-on .s05b-t--rail{fill:var(--teal-deep);font-weight:700}
.s05b-ru-block rect{fill:var(--cream-lo);stroke:rgba(10,43,53,.55);stroke-width:1.1;transition:fill .25s,stroke .25s}
.s05b-ru-block.is-on rect{fill:var(--cream-hi);stroke:var(--teal);stroke-width:2.4}
.s05b-ru-block.is-on.is-B rect{stroke:var(--pink)}
.s05b-ru-buf>rect{fill:#d9e9e9;stroke:var(--teal-line);stroke-width:1.2}
.s05b-ru-buf.is-on>rect{stroke:var(--teal);stroke-width:2}
.s05b-ru-chip rect{stroke:none}
.s05b-ru-chip--b1 rect{fill:var(--teal-deep)}
.s05b-ru-chip--b2 rect{fill:#7a6a55}
.s05b-ru-chip--b3 rect{fill:var(--s5-gold-deep)}
.s05b-ru-chip.is-faded rect{opacity:.4}
.s05b-ru-chip.is-faded .s05b-t--chip{fill:var(--ink-deep)}
.s05b-ru-ev path:first-child{fill:none;stroke:var(--teal-deep);stroke-width:2;stroke-linejoin:round}
.s05b-ru-evah{fill:var(--teal-deep)}
.s05b-ru-ev--read path:first-child{stroke:var(--s5-good)}
.s05b-ru-ev--read .s05b-ru-evah{fill:var(--s5-good)}
.s05b-ru-ev--read.is-bad path:first-child{stroke:var(--pink-deep)}
.s05b-ru-ev--read.is-bad .s05b-ru-evah{fill:var(--pink-deep)}
.s05b-ru-mark circle{stroke:none}
.s05b-ru-mark.is-ok circle{fill:var(--s5-good)}
.s05b-ru-mark.is-bad circle{fill:var(--pink-deep)}
.s05b-ru-meter rect{fill:#d9e9e9;stroke:var(--teal)}

/* Figure 22 */
.s05b-ls-axis{fill:none;stroke:var(--line-strong);stroke-width:1.2}
.s05b-ls-axah{fill:var(--line-strong)}
.s05b-ls-ev rect{fill:var(--cream-hi);stroke:var(--line-strong);stroke-dasharray:4 3;transition:fill .25s,stroke .25s}
.s05b-ls-ev:not(.is-on) .s05b-t{fill:var(--muted)}
.s05b-ls-ev.is-on rect{fill:var(--cream-lo);stroke:rgba(10,43,53,.55);stroke-dasharray:none}
.s05b-ls-ev.is-cur rect{stroke:var(--teal);stroke-width:2.2;fill:var(--cream-hi)}
.s05b-ls-ev.is-cur.is-bwd rect{stroke:var(--pink)}
.s05b-ls-lane{fill:none;stroke:var(--line);stroke-dasharray:3 4}
.s05b-ls-bar rect{stroke-width:1.2}
.s05b-ls-bar.is-leaseA rect{fill:rgba(240,82,156,.2);stroke:var(--pink-deep)}
.s05b-ls-bar.is-leaseB rect{fill:rgba(64,117,121,.16);stroke:var(--teal)}
.s05b-ls-bar.is-plain rect{fill:var(--cream-lo);stroke:var(--line-strong)}
.s05b-ls-bar.is-over rect{fill:rgba(185,44,108,.12);stroke:var(--pink-deep);stroke-dasharray:5 3}
.s05b-ls-bar .s05b-t--bar{fill:var(--ink-deep);font-size:12px}
.s05b-ls-arrow path:first-child{fill:none;stroke:var(--teal-deep);stroke-width:2}
.s05b-ls-ah{fill:var(--teal-deep)}
.s05b-ls-arrow.is-read path:first-child{stroke:var(--s5-good)}
.s05b-ls-arrow.is-read .s05b-ls-ah{fill:var(--s5-good)}
.s05b-ls-arrow.is-bad path:first-child{stroke:var(--pink-deep)}
.s05b-ls-arrow.is-bad .s05b-ls-ah{fill:var(--pink-deep)}
.s05b-ls-block path:first-child{fill:none;stroke:var(--muted);stroke-width:1.4;stroke-dasharray:4 3}
.s05b-ls-block circle{fill:var(--cream-hi);stroke:var(--muted);stroke-width:1.4}
.s05b-ls-block path+circle+path{stroke:var(--ink-soft);stroke-width:1.8;stroke-linecap:round}

/* ---------- Figure 23 · measured wave timeline ---------- */
.s05b-chart--wave{touch-action:pan-y}
.s05b-wv-panel{fill:rgba(243,232,218,.45);stroke:none}
.s05b-wbar{cursor:pointer;outline:none;transition:opacity .25s var(--ease)}
.s05b-wbar rect{stroke:var(--cream-hi);stroke-width:.8}
.s05b-wbar--disp rect{fill:var(--s5-disp)}
.s05b-wbar--dispepi rect{fill:var(--s5-dispepi)}
.s05b-wbar--expert rect{fill:var(--s5-expert)}
.s05b-wbar--comb rect{fill:var(--s5-comb)}
.s05b-wbar--combepi rect{fill:var(--s5-combepi)}
.s05b-wbar--merge rect{fill:var(--s5-merge)}
.s05b-wbar--dispepi .s05b-t--bar,.s05b-wbar--combepi .s05b-t--bar,.s05b-wbar--expert .s05b-t--bar,.s05b-wbar--merge .s05b-t--bar{fill:var(--ink-deep)}
.s05b-wbar--disp .s05b-t--bar{paint-order:stroke;stroke:var(--pink-deep);stroke-width:2.5px;stroke-linejoin:round}
.s05b-wbar.is-dim{opacity:.22}
.s05b-wbar.is-fade{opacity:.6}
.s05b-wbar.is-focus rect{stroke:var(--ink-deep);stroke-width:2.4}
.s05b-wbar:focus-visible rect{stroke:var(--pink);stroke-width:2.6}
.s05b-wv-pen rect{fill:rgba(240,82,156,.1);stroke:var(--s5-coll-line);stroke-width:1}
.s05b-wv-end{stroke:var(--ink-deep);stroke-width:1.3}
.s05b-cursor line{stroke:var(--ink-deep);stroke-width:1.2;stroke-dasharray:3 3}
.s05b-now{display:grid;gap:6px;margin-top:4px}
.s05b-now li{display:grid;grid-template-columns:7.5em 1fr 1fr;gap:4px 14px;font-size:13px;line-height:1.45;color:var(--ink-soft)}
.s05b-now li b{color:var(--ink-deep)}
.s05b-now small{font-size:12px;color:var(--muted)}

/* ---------- Figure 24 · operating points ---------- */
.s05b-sw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.s05b-sw-panel{display:flex;flex-direction:column;min-width:0}
.report-content .s05b-fig .s05b-sw-title,.report-content .s05b-companion .s05b-sw-title{font-size:15.5px;font-weight:700;line-height:1.3;color:var(--ink-deep)}
.report-content .s05b-fig .s05b-sw-sub,.report-content .s05b-companion .s05b-sw-sub{font-size:12.5px;line-height:1.45;color:var(--muted)}
.report-content .s05b-fig .s05b-sw-claim{margin:2px 0 6px;font-size:12.5px;font-weight:700;color:var(--teal-deep)}
.report-content .s05b-fig .s05b-sw-legend{min-height:22px;margin:0 0 8px;gap:4px 14px;font-size:12px}
.s05b-sw.is-pct .s05b-sw-key--lines{display:none}
.s05b-sw[data-s05b-pass-shown="forward"] [data-s05b-panel="b"] li:nth-child(4),.s05b-sw[data-s05b-pass-shown="backward"] [data-s05b-panel="b"] li:nth-child(3){opacity:.4}
.s05b-chart--sweep{margin-top:0;background:var(--cream-hi);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:10px 12px 6px}
.s05b-chart--sweep:focus-visible{outline:2.5px solid var(--pink);outline-offset:3px}
.s05b-sw-readout{min-height:48px;margin-top:8px;padding:8px 12px;border-radius:10px;background:var(--cream-lo);font-size:13px;line-height:1.5;color:var(--ink-soft)}
.report-content .s05b-fig .s05b-sw-readout p{margin:0}
.s05b-sw-readout b{color:var(--ink-deep)}
.report-content .s05b-fig .s05b-axis-note{margin:10px 0 0;text-align:center;font-size:12.5px;color:var(--muted)}
.s05b-sw-best{fill:rgba(64,117,121,.08)}
.s05b-sw-col{fill:rgba(240,82,156,.1)}
.s05b-sw-frame{fill:none;stroke:var(--line);stroke-width:1}
.s05b-sw-line{fill:none;stroke-width:2.6;stroke-linejoin:round}
.s05b-sw-line.is-dash{stroke-dasharray:9 6;stroke-width:2.3}
.s05b-sw-line.s05b-sw--teal{stroke:var(--teal)}
.s05b-sw-line.s05b-sw--pink,.s05b-sw-line.s05b-sw--fwd{stroke:var(--s5-pinkline)}
.s05b-sw-line.s05b-sw--bwd{stroke:var(--s5-gold)}
.s05b-sw-line.s05b-sw--ink{stroke:var(--ink-soft)}
.s05b-sw-mk.s05b-sw--ink{fill:var(--ink-soft)}
.s05b-sw-mk.is-hollow.s05b-sw--ink{stroke:var(--ink-soft)}
.s05b-sw-mk{stroke:var(--cream-hi);stroke-width:1.3}
.s05b-sw-mk.s05b-sw--teal{fill:var(--teal)}
.s05b-sw-mk.s05b-sw--pink,.s05b-sw-mk.s05b-sw--fwd{fill:var(--s5-pinkline)}
.s05b-sw-mk.s05b-sw--bwd{fill:var(--s5-gold)}
.s05b-sw-mk.is-hollow{fill:var(--cream-hi);stroke-width:1.8}
.s05b-sw-mk.is-hollow.s05b-sw--pink,.s05b-sw-mk.is-hollow.s05b-sw--fwd{stroke:var(--s5-pinkline)}
.s05b-sw-mk.is-hollow.s05b-sw--bwd{stroke:var(--s5-gold)}
.s05b-sw-bar{fill:var(--s5-pinkline)}
.s05b-sw-bar.s05b-sw--ink{fill:var(--ink-soft)}
.s05b-sw-bar.s05b-sw--bwd{fill:var(--s5-gold)}
.s05b-sw-bar.is-neg{opacity:.85}

/* ---------- Table companions ---------- */
/* Companion head as in Sections 1-4: ink top rule, "Companion to …" kicker, one chip. */
.s05b-companion{margin:.4em 0 3em;padding:16px 0 0;border-top:1px solid var(--ink)}
.s05b-comp-head{margin:0 0 14px}
.s05b-comp-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px;font-size:12px;line-height:1.4}
.s05b-comp-label{font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.s05b-comp-badge{display:inline-flex;align-items:center;gap:7px;padding:4px 10px 4px 8px;border-radius:999px;font-weight:700}
.s05b-comp-badge::before{content:'';flex:none;width:8px;height:8px;border-radius:50%;box-sizing:border-box}
.s05b-comp-badge--conceptual{background:var(--teal-wash);color:var(--teal-deep)}
.s05b-comp-badge--conceptual::before{border:1.5px dashed var(--teal)}
.s05b-comp-badge--measured{background:var(--pink-wash);color:var(--pink-deep)}
.s05b-comp-badge--measured::before{background:var(--pink)}
.report-content .s05b-companion .s05b-comp-title{margin:0;font-size:clamp(19px,1.9vw,23px);font-weight:400;line-height:1.25;letter-spacing:-.018em;color:var(--ink-deep);text-wrap:balance}
.s05b-adj{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);gap:16px 20px;align-items:start}
.s05b-adj-side{display:grid;gap:14px}
.s05b-adj-grid{display:grid;grid-template-columns:auto 1fr 1fr;gap:6px;align-items:stretch}
.s05b-adj-colh{align-self:end;padding:0 4px 2px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.s05b-adj-rowh{align-self:center;padding-right:6px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);writing-mode:horizontal-tb}
.s05b-adj-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:58px;padding:8px 11px;border-radius:11px;border:1px solid var(--line);background:var(--cream-hi);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s}
.s05b-adj-btn:hover{border-color:var(--teal-line)}
.s05b-adj-name{font-size:13px;font-weight:700;line-height:1.25;color:var(--ink-deep)}
.s05b-adj-btn code{font-size:11.5px;padding:1px 7px;border-radius:6px;background:var(--cream-lo);color:var(--ink-soft)}
.s05b-adj-btn--put code{background:rgba(185,44,108,.1);color:var(--pink-deep)}
.s05b-adj-btn--get code{background:var(--teal-wash);color:var(--teal-deep)}
.s05b-adj-btn[aria-pressed="true"]{border-color:var(--ink-deep);box-shadow:0 1px 4px rgba(10,43,53,.18),inset 0 0 0 1.5px var(--ink-deep)}
.s05b-adj-btn.is-pair{border-style:dashed;border-color:var(--teal)}
.s05b-adj-text{display:grid;gap:4px;padding:11px 14px;border-radius:12px;background:var(--cream-lo);min-height:96px}
.report-content .s05b-companion .s05b-adj-move{font-size:15px;line-height:1.5;color:var(--ink-deep)}
.s05b-adj-box{fill:var(--cream);stroke:var(--line-strong);stroke-width:1.2}
.s05b-adj-box.is-src{fill:var(--pink-wash);stroke:var(--pink);stroke-width:1.6}
.s05b-adj-row{fill:#e9eef6;stroke:#9fb2cf}
.s05b-adj-row.is-src{fill:#f6c9d6;stroke:#c8607f}
.s05b-adj-map rect{fill:var(--teal-wash);stroke:var(--teal-line)}
.s05b-adj-line{fill:none;stroke:var(--pink-deep);stroke-width:2}
.s05b-adj-arrow--get .s05b-adj-line{stroke:var(--teal-deep)}
.s05b-adj-ah{fill:var(--pink-deep)}
.s05b-adj-arrow--get .s05b-adj-ah{fill:var(--teal-deep)}
.s05b-adj-flow{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1 15;opacity:0}
.s05b-adj-flow{transition:opacity .3s}
.s05b-companion.is-live .s05b-adj-flow{opacity:.95;animation:s05b-flow 1.1s linear 2}
.s05b-adj-pill--put rect{fill:var(--pink-deep)}
.s05b-adj-pill--get rect{fill:var(--teal-deep)}
.report-content .table-frame tr.s05b-row-pick{cursor:pointer}
.report-content .table-frame tr.s05b-row-on>td{background:rgba(240,82,156,.08)}
.report-content .table-frame tr.s05b-row-on>td:first-child{box-shadow:inset 3px 0 0 var(--pink)}
.report-content .table-frame tr.s05b-row-pair>td:first-child{box-shadow:inset 3px 0 0 var(--teal)}
.s05b-if-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.s05b-if-panel{display:flex;flex-direction:column;gap:2px;min-width:0}
.s05b-if-chart{margin-top:8px;padding:10px 12px 6px}
.s05b-if-row{cursor:pointer;transition:opacity .2s}
.s05b-if-row.is-dim{opacity:.4}
.s05b-if-track{fill:var(--cream-lo)}
.s05b-if-range{fill:#968671;stroke:var(--cream-hi);stroke-width:1.5}
.s05b-if-row.is-alone .s05b-if-range{fill:var(--teal)}
.s05b-if-row.is-on .s05b-if-range{stroke:var(--ink-deep);stroke-width:2}
.s05b-if-base{stroke:var(--teal);stroke-width:1.2;stroke-dasharray:3 3}
.s05b-if-pair rect{fill:var(--sand)}
.s05b-if-pair--ov rect{fill:var(--teal)}
.s05b-if-pair.is-on rect{stroke:var(--ink-deep);stroke-width:2}
/* Table 9 companion, timeline view: Figure 23's lanes and phase colours
   (pink dispatch, teal combine, green expert GEMM); all text 13px or larger. */
.s05b-if-views{margin:0 0 16px}
.s05b-companion .s05b-if-views .s05b-control-label,.s05b-tl .s05b-control-label{font-size:13px;letter-spacing:.06em}
.s05b-tl-controls{align-items:flex-start;gap:14px 28px;margin-bottom:10px}
.s05b-tl-width{flex:1 1 380px;flex-direction:column;align-items:stretch;gap:6px;max-width:620px}
.s05b-tl .s05b-step b{font-size:13.5px}
.s05b-tl .s05b-step small{font-size:13px}
.s05b-tl .s05b-step.is-ok small{color:var(--teal-deep)}
.s05b-tl-scales{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;padding:0 4px}
.s05b-tl-scales span{padding-top:4px;border-top:2px solid var(--line-strong);font-size:13px;line-height:1.3;text-align:center;white-space:nowrap;color:var(--muted)}
.s05b-tl-scales span:nth-child(1){grid-column:1/3}
.s05b-tl-scales span:nth-child(2){grid-column:3/5}
.s05b-tl-scales span:nth-child(3){grid-column:5/9}
.s05b-tl-scales span.is-on{border-top-color:var(--ink-deep);color:var(--ink-deep);font-weight:700}
.s05b-tl .s05b-legend{margin:0 0 12px;font-size:13px}
.s05b-key--tldisp{background:var(--s5-disp)}
.s05b-key--tlcomb{background:var(--s5-comb)}
.s05b-key--tlgemm{background:var(--s5-expert)}
.s05b-key--tlghost{width:16px;background:rgba(10,43,53,.04);border:1.3px dashed var(--ink-soft)}
.s05b-key--tlstretch{width:22px;background:linear-gradient(90deg,var(--s5-expert) 50%,rgba(115,154,104,.45) 50%)}
.s05b-key--tlsave{background:rgba(61,114,118,.16);border-color:var(--teal)}
.s05b-key--tlloss{background:rgba(216,65,138,.14);border-color:var(--pink)}
.s05b-tl-chart{padding:12px 14px 6px}
.s05b-tlbar{stroke:var(--cream-hi);stroke-width:.8;transition:opacity .2s}
.s05b-tlbar--disp{fill:var(--s5-disp)}
.s05b-tlbar--comb{fill:var(--s5-comb)}
.s05b-tlbar--gemm{fill:var(--s5-expert)}
.s05b-tlbar.is-stretch{opacity:.45}
.s05b-tlghost{fill:rgba(10,43,53,.035);stroke:var(--ink-soft);stroke-width:1.3;stroke-dasharray:4 3}
.s05b-tlband--save{fill:rgba(61,114,118,.16);stroke:var(--teal);stroke-width:1}
.s05b-tlband--loss{fill:rgba(216,65,138,.14);stroke:var(--pink);stroke-width:1}
.s05b-tlseqref{stroke:var(--ink-soft);stroke-width:1.4;stroke-dasharray:5 4}
.s05b-tlend{stroke:var(--ink-deep);stroke-width:1.8}
.s05b-t--tlpanel{font-size:14.5px;font-weight:700;fill:var(--ink-deep)}
.s05b-t--tlpanelv{font-size:13.5px;font-weight:700;fill:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05b-t--tllane{font-size:13px;fill:var(--ink-soft)}
.s05b-t--tlin{font-size:13px;font-weight:700;fill:#fff;font-variant-numeric:tabular-nums;pointer-events:none}
.s05b-t--tlin.is-dark{fill:var(--ink-deep)}
.s05b-t--tlout{font-size:13px;font-weight:700;fill:var(--ink-deep);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.s05b-t--tlstretch{fill:var(--pink-deep)}
.s05b-t--tlsave,.s05b-t--tlloss{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px;stroke-linejoin:round}
.s05b-t--tlsave{fill:var(--teal-deep)}
.s05b-t--tlloss{fill:var(--pink-deep)}
.s05b-t--tltick{font-size:13px;fill:var(--muted);font-variant-numeric:tabular-nums}
.s05b-t--tlaxis{font-size:13px;fill:var(--muted)}
.s05b-t--tlscale{font-size:13px;font-weight:700;fill:var(--ink-soft)}
.s05b-tl .s05b-stat span{font-size:13px}
.s05b-tl .s05b-stat small{font-size:13px}
.s05b-stat--disp{border-left-color:var(--s5-disp)}
.s05b-stat--comb{border-left-color:var(--s5-comb)}
.s05b-stat--loss{border-left-color:var(--pink)}
.s05b-tl-lines{display:grid;gap:8px}
.report-content .s05b-companion .s05b-tl-lines li{padding:2px 0 2px 12px;border-left:3px solid var(--line-strong);font-size:14px;line-height:1.5;color:var(--ink-soft)}
.s05b-tl-lines b{color:var(--ink-deep)}
.report-content .s05b-companion .s05b-tl .s05b-note{font-size:13px}

/* ---------- responsive ---------- */
@container s05b (max-width:760px){
 .s05b-stats{grid-template-columns:1fr}
 .s05b-stat{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
 .s05b-stat b{font-size:19px}
 .s05b-stat small{flex-basis:100%}
 .s05b-timeline{grid-template-columns:1fr}
 .s05b-sw-grid,.s05b-if-grid{grid-template-columns:1fr}
 .s05b-adj{grid-template-columns:1fr}
 .s05b-now li{grid-template-columns:1fr}
}
@media (max-width:700px){
 .s05b-surface{padding:10px 8px}
 .s05b-controls{gap:10px 14px}
 .s05b-seg button{padding:0 11px;font-size:12.5px}
 .s05b-companion{padding:14px 0 0}
 .s05b-step b{font-size:12.5px}
 .s05b-step small{font-size:10.5px}
}
@media (prefers-reduced-motion:reduce){
 .s05b-fig *,.s05b-companion *{transition:none!important;animation:none!important}
 .s05b-pg-flow,.s05b-adj-flow,.s05b-sm-flow{opacity:0!important}
 /* "Play animation" (reader-requested, one cycle) still shows the dashes. */
 .s05b-pg[data-autoplay="running"].is-live .s05b-pg-flow,.s05b-companion[data-autoplay="running"].is-live .s05b-adj-flow{opacity:.95!important;animation:s05b-flow 1.1s linear 2!important}
}
@media (forced-colors:active){
 .s05b-seg button[aria-pressed="true"],.s05b-chips button[aria-pressed="true"],.s05b-adj-btn[aria-pressed="true"],.s05b-step.is-on{outline:2px solid Highlight;outline-offset:-2px}
 .s05b-key,.s05b-lkey{forced-color-adjust:none}
 .s05b-surface,.s05b-detail,.s05b-inspector,.s05b-stat,.s05b-companion{border:1px solid CanvasText}
}

/* Tables 8 and 9 as labelled cards on phones (values and order untouched). */
@media (max-width:700px){
 .report-content .table-scroll table.s05b-ptable{min-width:0}
 .report-content table.s05b-ptable,.report-content table.s05b-ptable tbody,.report-content table.s05b-ptable tr,.report-content table.s05b-ptable td{display:block;width:auto}
 .report-content table.s05b-ptable colgroup{display:none}
 .report-content table.s05b-ptable thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .report-content table.s05b-ptable tbody tr{padding:12px 14px 13px;border-bottom:1px solid var(--line)}
 .report-content table.s05b-ptable tbody tr:last-child{border-bottom:0}
 .report-content table.s05b-ptable tbody td{padding:0;border:0;font-size:15px;line-height:1.55;text-align:left!important}
 .report-content table.s05b-ptable tbody td:first-child{font-size:16px;font-weight:700;color:var(--ink-deep);margin-bottom:2px}
 .report-content table.s05b-ptable td.s05b-pempty{display:none}
 .report-content table.s05b-ptable td[data-label]:not(:first-child)::before{content:attr(data-label);content:attr(data-label) / "";display:block;margin:8px 0 1px;font-size:10.5px;line-height:1.4;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
 .report-content table.s05b-ptable tr.s05b-psub{padding:14px 14px 8px;background:var(--cream-lo)}
 .report-content table.s05b-ptable tr.s05b-psub td:not(:first-child){display:none}
 .report-content .table-frame table.s05b-ptable tr.s05b-row-on{background:rgba(240,82,156,.08);box-shadow:inset 3px 0 0 var(--pink)}
 .report-content .table-frame table.s05b-ptable tr.s05b-row-pair{box-shadow:inset 3px 0 0 var(--teal)}
 .report-content .table-frame table.s05b-ptable tr:is(.s05b-row-on,.s05b-row-pair)>td,.report-content .table-frame table.s05b-ptable tr:is(.s05b-row-on,.s05b-row-pair)>td:first-child{background:transparent;box-shadow:none}
 .table-sticky:has(table.s05b-ptable){display:none!important}
}
.s05b-companion .s05b-if-views .s05b-seg button,.s05b-tl .s05b-seg button{font-size:13px}
