/* Section 05 (part A) native figures and table views. Scoped to s05a-*; kit tokens only
   (plus the drawings' own operator, token and expert hues inside the diagrams). */
.s05a-fig{container:s05a/inline-size;position:relative;margin:0;color:var(--ink);font-size:14.5px;line-height:1.5}
.report-content .s05a-fig p{margin:0}
.report-content .s05a-fig :is(ul,ol){margin:0;padding:0;list-style:none}
.report-content .s05a-fig li{margin:0;padding:0}
.report-content .s05a-fig li::marker{content:none}
/* Group types keep one colour each in Figures 11 and 13: EP-MP pink-deep (the
   drawings' red routing labels), EP-DP teal, dense DP ink. */
.s05a-fig{--s05a-mp:var(--pink-deep);--s05a-dp:var(--teal);--s05a-all:var(--ink-soft)}

/* Head: one title row (the frame badge carries the evidence label) */
.s05a-fig-head{margin:2px 0 16px}
.report-content .s05a-fig .s05a-fig-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}
.s05a-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.11em;text-transform:uppercase;background:var(--cream-lo);color:var(--ink-soft)}
.s05a-tag--web::before{content:'';width:8px;height:8px;background:var(--teal);border-radius:2px}

/* Controls */
.s05a-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin:0 0 14px}
.s05a-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.s05a-control-label{font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.s05a-dim{font-size:12.5px;color:var(--muted)}
.s05a-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:20px;background:var(--cream-lo);border:1px solid var(--line)}
.s05a-seg button{display:inline-flex;align-items:center;gap:6px;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}
.s05a-seg button sub{font-size:.72em;line-height:0}
.s05a-seg button small{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep)}
.s05a-seg button:hover{color:var(--ink)}
.s05a-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)}
.s05a-fig :is(button,[tabindex]):focus-visible{outline:2.5px solid var(--pink);outline-offset:2px}
.s05a-range input[type=range]{-webkit-appearance:none;appearance:none;width:min(240px,100%);height:28px;margin:0;background:transparent;cursor:pointer}
.s05a-range input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--teal-line),var(--sand))}
.s05a-range input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--teal-line),var(--sand))}
.s05a-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)}
.s05a-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)}
.s05a-range output{min-width:2ch;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-deep)}
.s05a-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:12.5px;color:var(--ink)}
.s05a-legend li{display:inline-flex;align-items:center;gap:7px}
.s05a-sw{display:inline-block;flex:none;width:14px;height:10px;border-radius:3px}
.s05a-sw--fb{background:#f9edcb;border:1px solid #c9ad5f}
.s05a-sw--extra{background:repeating-linear-gradient(135deg,#fff2cc 0 3px,#c9ad5f 3px 4.5px);border:1px solid #9a7a1f}
.s05a-sw--step{background:#f5d3d6;border:1px solid #c47b82}
.s05a-sw--lay{background:#dcebd9;border:1px solid #7fa877}
.s05a-sw--xch{background:#f7d6dc;border:1px solid #c47b82}
.s05a-sw--mlp{background:#dde8f4;border:1px solid #7f9cc0}
.s05a-sw--added{width:9px;height:9px;border-radius:50%;background:var(--pink)}

/* Surfaces and shared text */
.s05a-surface{background:var(--cream-hi);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}
.s05a-fig svg{display:block;max-width:none;height:auto;overflow:visible;font-family:var(--font)}
.s05a-t{font-size:13px;fill:var(--ink)}
.s05a-t--note{font-size:11.5px;fill:var(--muted)}
.s05a-fig-note{margin:12px 0 0;max-width:880px;font-size:12.5px;line-height:1.58;color:var(--muted)}
.report-content .s05a-fig .s05a-fig-note a[data-reference-type]{font-weight:700}
.report-content .s05a-fig .s05a-k{font-size:11px;font-weight:700;line-height:1.35;letter-spacing:.12em;text-transform:uppercase;color:var(--pink-deep)}
.report-content .s05a-fig .s05a-read-main{margin:6px 0 8px;font-size:17px;line-height:1.38;color:var(--ink-deep)}
.report-content .s05a-fig .s05a-read-small{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.report-content .s05a-fig .s05a-hint{font-size:13.5px;line-height:1.55;color:var(--muted)}
.report-content .s05a-fig blockquote.s05a-quote{margin:10px 0 0;padding:0 0 0 12px;border-left:2px solid var(--pink);font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.report-content .s05a-fig blockquote.s05a-quote--small{font-size:13px;border-left-color:var(--teal-line)}
.s05a-quote cite{display:block;margin-top:4px;font-size:11px;font-style:normal;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.s05a-quote sub,.s05a-stat sub,.s05a-explore sub{font-size:.72em;line-height:0}
.s05a-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.report-content .s05a-fig .s05a-ledger li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:9px;background:var(--cream-lo);min-width:0}
.s05a-ledger b{font-size:18px;line-height:1.2;font-weight:700;color:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05a-ledger b small{font-size:12px;font-weight:400;color:var(--muted)}
.s05a-ledger span{font-size:11.5px;line-height:1.3;color:var(--muted)}

/* ---------- Figure 11: topology ---------- */
.s05a-topo-stage{padding:16px 18px 18px}
.report-content .s05a-fig .s05a-layer-note{margin:0 0 6px;font-size:12.5px;color:var(--muted)}
.s05a-topo-strip{position:relative;height:50px;margin:8px 0 4px}
.s05a-c-mp{color:var(--s05a-mp)}
.s05a-c-dp{color:var(--s05a-dp)}
.s05a-c-all{color:var(--s05a-all)}
/* contiguous group: a bracket whose label interrupts its top edge */
.s05a-bk{position:absolute;top:24px;height:14px;border:1.6px solid currentColor;border-bottom:0;border-radius:8px 8px 0 0}
.s05a-bk.is-alt{border-style:dashed}
.s05a-bk>span{position:absolute;z-index:2;left:50%;top:-1px;transform:translate(-50%,-50%);white-space:nowrap;padding:0 7px;background:var(--cream-hi);font-size:11.5px;font-weight:700;letter-spacing:.04em;line-height:1.3;color:currentColor}
/* non-contiguous group: a connector line on its own level with short ticks */
.s05a-bk--link{top:calc(var(--lv,0) * 20px + 14px);height:0;border-width:1.6px 0 0;border-radius:0}
.s05a-bk--link>i{position:absolute;top:-1.6px;width:1.6px;height:10px;margin-left:-.8px;background:currentColor}
.s05a-bk--link>span{left:8px;transform:translateY(-50%);font-size:11px;padding:0 5px}
.s05a-bk--one{top:28px;width:0;height:0;border:0}
.s05a-bk--one>span{top:0;font-weight:400}
.s05a-gpus{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:12px;row-gap:0}
/* Cards share their parent's rows (subgrid), so a wrapped label never pushes one card's boxes out of line.
   (No container query on the card: layout containment would disable the subgrid.) */
.s05a-gpu{position:relative;display:grid;grid-row:span 8;grid-template-rows:subgrid;row-gap:6px;align-content:start;margin-bottom:12px;padding:10px 10px 9px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--cream);transition:border-color .25s,box-shadow .25s}
.s05a-gpu.s05a-c-mp,.s05a-gpu.s05a-c-dp,.s05a-gpu.s05a-c-all{border-color:currentColor;box-shadow:inset 0 3px 0 currentColor}
.s05a-gpu.is-alt{border-top:3px dashed currentColor;padding-top:8.5px;box-shadow:none}
.s05a-gpu>*{color:var(--ink);min-width:0}
.s05a-gpu-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.s05a-gpu-name{font-size:14.5px;font-weight:700;color:var(--ink-deep)}
.s05a-gpu-coord{font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-soft);font-weight:700}
.report-content .s05a-fig .s05a-gpu-tag{font-size:11.5px;line-height:1.35;color:var(--muted)}
.s05a-gpu-box{align-self:start;padding:5px 8px;border-radius:7px;font-size:12px;font-weight:700;text-align:center;line-height:1.3}
.s05a-gpu-box span{font-weight:400;color:var(--muted)}
.s05a-gpu-box--route{background:#e3efe1;color:#365b31;border:1px solid rgba(80,130,72,.35)}
.s05a-gpu-box--attn{background:#f8e5cf;color:#7a4b12;border:1px solid rgba(175,115,40,.35)}
.s05a-gpu-experts{display:flex;flex-direction:column;justify-content:flex-start;gap:5px;padding:6px 7px 7px;border-radius:8px;background:#e6eef8;border:1px solid rgba(80,115,165,.35)}
.report-content .s05a-fig .s05a-gpu-exlabel{display:flex;flex-wrap:wrap;gap:0 6px;justify-content:space-between;margin:0;font-size:11.5px;line-height:1.35;color:#2c4a73}
.s05a-gpu-exlabel span{color:var(--muted);font-weight:400}
/* Expert squares are display only: stored = solid blue; not stored = faint dashed outline, faint number. */
.s05a-ex-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}
/* cards narrower than ~200px (two columns below 440px, four columns up to 880px) use a 4-wide expert grid */
@container s05a (max-width:440px){.s05a-ex-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.s05a-ex{font-size:11.5px}}
@container s05a (min-width:761px) and (max-width:880px){.s05a-ex-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.s05a-ex{font-size:11.5px}}
.s05a-ex{display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-width:0;border:1px dashed rgba(44,74,115,.28);border-radius:4px;background:transparent;color:var(--faint);font-size:11px;font-weight:700;line-height:1;opacity:.55;transition:background-color .2s,color .2s}
.s05a-ex.is-held{border:1px solid #6c8ebf;background:#a9c4ea;color:#14304f;opacity:1}
.s05a-ex.is-run{background:var(--pink);border:2px solid var(--pink-deep);color:#fff;font-weight:800;box-shadow:0 0 0 3px var(--pink-wash)}
.report-content .s05a-fig .s05a-gpu-run{align-self:flex-start;padding:2px 8px;border-radius:999px;background:var(--pink);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.04em;line-height:1.4}
.s05a-gpu-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.s05a-gpu-foot>span:first-child{padding:2px 7px;border-radius:5px;background:var(--cream-lo);border:1px solid var(--line)}
/* Token bars: 16 per GPU; bar e = a token on this GPU routed to expert e. */
.s05a-tok{padding-top:6px;border-top:1px dashed var(--line-strong)}
.report-content .s05a-fig .s05a-tok-k{margin:0 0 2px;font-size:11px;color:var(--muted)}
.s05a-bars{display:grid;grid-template-columns:repeat(16,minmax(0,1fr))}
@container s05a (max-width:440px){.s05a-bars{grid-template-columns:repeat(8,minmax(0,1fr));row-gap:2px}}
@container s05a (min-width:761px) and (max-width:880px){.s05a-bars{grid-template-columns:repeat(8,minmax(0,1fr));row-gap:2px}}
.s05a-bar{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:3px 0 0;border:0;border-radius:3px;background:none;color:var(--muted);font:inherit;cursor:pointer}
.s05a-bar>i{display:block;width:4px;height:22px;border-radius:2px;background:var(--sand);box-shadow:inset 0 0 0 1px rgba(10,43,53,.12);transition:background-color .15s,width .15s}
.s05a-bar>span{font-size:9.5px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
/* 16 per row: label the even IDs (and the active bar); 8 per row: label every bar. */
.s05a-bar:nth-child(even):not(:hover,.is-on,.is-pin,:focus-visible)>span{visibility:hidden}
/* an odd active label hides its two even neighbours so two-digit labels never touch */
.s05a-bar:has(+ :is(:hover,.is-on,.is-pin,:focus-visible):nth-child(even))>span,:is(:hover,.is-on,.is-pin,:focus-visible):nth-child(even)+.s05a-bar>span{visibility:hidden}
@container s05a (max-width:440px){.s05a-bar>span{visibility:visible!important}}
@container s05a (min-width:761px) and (max-width:880px){.s05a-bar>span{visibility:visible!important}}
.s05a-bar:hover>i{background:var(--pink);width:6px}
.s05a-bar:hover{color:var(--pink-deep)}
.s05a-bar.is-on>i{background:var(--pink);width:6px}
.s05a-bar.is-on{color:var(--pink-deep)}
.s05a-bar.is-pin>i{background:var(--pink-deep);width:7px;box-shadow:0 0 0 2px var(--pink-wash)}
.s05a-bar.is-pin{color:var(--pink-deep)}
.s05a-bar.is-pin>span{font-weight:800}
.s05a-fig .s05a-bar:focus-visible{outline:2px solid var(--pink);outline-offset:0}
.report-content .s05a-fig .s05a-bars-note{margin:2px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}
/* Route arrows (wide screens): inner solid dispatch, outer dashed combine; heads point up into the receiving card. */
.s05a-topo-rstrip{position:relative;height:54px;margin-top:-6px}
.s05a-rar{position:absolute;top:2px;border:2px solid var(--pink);border-top:0}
.s05a-rar--dispatch{height:12px;border-radius:0 0 8px 8px}
.s05a-rar--combine{height:24px;border-style:dashed;border-top:0;border-radius:0 0 12px 12px}
.s05a-rar::after{content:'';position:absolute;top:-6px;width:0;height:0;border:5px solid transparent;border-bottom:7px solid var(--pink)}
.s05a-rar.is-head-r::after{right:-7px}
.s05a-rar.is-head-l::after{left:-7px}
.s05a-rlabel{position:absolute;top:32px;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:700;color:var(--pink-deep)}
.s05a-rlabel--local{top:6px;font-weight:400;color:var(--muted)}
.s05a-rlabel--local::before{content:'';display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--pink);vertical-align:1px}
.s05a-rlabel.is-start{transform:translateX(-24px)}
.s05a-rlabel.is-end{transform:translateX(calc(-100% + 24px))}
.s05a-rsw{display:inline-block;width:16px;height:0;margin-right:5px;border-top:2px solid var(--pink);vertical-align:3px}
.s05a-rsw--back{border-top-style:dashed}
.report-content .s05a-fig .s05a-route-line{display:none;margin:0 0 8px;font-size:13px;font-weight:700;line-height:1.4;color:var(--pink-deep)}
.s05a-topo-read{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.s05a-stat{padding:10px 12px 11px;border-radius:10px;background:var(--cream-lo)}
.report-content .s05a-fig .s05a-stat-k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.report-content .s05a-fig .s05a-stat-k a{text-transform:none;letter-spacing:0}
.report-content .s05a-fig .s05a-stat-v{margin-top:3px;font-size:18px;line-height:1.3;color:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05a-stat-v span{font-size:14px;color:var(--muted)}
.report-content .s05a-fig .s05a-stat-s{margin-top:2px;font-size:12px;color:var(--muted)}
.s05a-topo-notes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.report-content .s05a-fig .s05a-route-text{margin-top:6px;font-size:15px;line-height:1.5;color:var(--ink-deep)}
.report-content .s05a-fig .s05a-explore{margin-top:10px;padding:8px 10px;border-radius:8px;background:var(--cream-lo);font-size:13px;line-height:1.5;color:var(--ink-soft)}
.report-content .s05a-fig .s05a-explore blockquote.s05a-quote{margin-top:8px}
@container s05a (max-width:760px){
 .s05a-gpus{grid-template-columns:repeat(2,minmax(0,1fr))}
 .s05a-topo-strip,.s05a-topo-rstrip{display:none}
 .report-content .s05a-fig .s05a-route-line{display:block}
 .s05a-topo-read{grid-template-columns:1fr}
 .s05a-topo-notes{grid-template-columns:1fr}
 .s05a-topo-stage{padding:12px}
 .report-content .s05a-fig .s05a-layer-note{margin-bottom:12px}
}

/* ---------- Figure 12: step boundary ---------- */
/* The frame breaks out of the wide column to the main column's edges, as
   Figure 57 does (12 px gutters; never under the docked contents panel, which
   pads the page grid), up to 1280 px. */
@media(min-width:1024px){
 .report-content>#fig-ep-reduce-traffic:not(:fullscreen){grid-column:full;--plate-pad:14px;margin-left:max(calc(12px - var(--pad)),calc((100% - 1280px) / 2));margin-right:max(calc(12px - var(--pad)),calc((100% - 1280px) / 2))}
}
.s05a-step-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start;padding:16px 18px 14px}
.s05a-chart{position:relative;min-width:0}
/* Figure 12 keeps one time scale; below its minimum width the timeline scrolls inside this box. */
.s05a-chart[data-s05a-chart="step"]{overflow-x:auto;overscroll-behavior-x:contain}
.report-content .s05a-step-svg{display:block;max-width:none}
/* The readout sits below the timeline at every width, so the timeline has the full figure width. */
.s05a-step-side{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start;padding-top:14px;border-top:1px solid var(--line)}
.report-content .s05a-fig .s05a-step-side blockquote.s05a-quote{margin:0}
.s05a-axis{stroke:var(--ink-soft);stroke-width:1.3}
.s05a-axis-head{fill:var(--ink-soft)}
.s05a-t--lane{font-size:14px;font-weight:700;fill:var(--ink-deep)}
.s05a-box rect{stroke-width:1.2}
.s05a-box--fb rect{fill:#f9edcb;stroke:#c9ad5f}
.s05a-box--fb rect.s05a-box-extra{fill:url(#s05a-hatch);stroke:#9a7a1f;stroke-dasharray:3 2;stroke-width:1}
.s05a-box--step rect{fill:#f5d3d6;stroke:#c47b82}
.s05a-t--box{font-size:13px;fill:var(--ink)}
.s05a-t--rot{font-size:13px}
.s05a-t--boxs{font-size:13px;font-weight:700;fill:var(--ink-deep);paint-order:stroke;stroke:#f9edcb;stroke-width:3px;stroke-linejoin:round}
.s05a-end{stroke:var(--ink-soft);stroke-width:1.2;stroke-dasharray:3 3}
.s05a-end--ep{stroke:var(--teal-deep)}
.s05a-diff line,.s05a-diff path{stroke-width:2;fill:none}
.s05a-diff.is-save line,.s05a-diff.is-save path{stroke:var(--teal)}
.s05a-diff.is-cost line,.s05a-diff.is-cost path{stroke:var(--pink)}
.s05a-t--diff{font-size:12px;font-weight:700;fill:var(--teal-deep);paint-order:stroke;stroke:var(--cream-hi);stroke-width:4px;stroke-linejoin:round}
.s05a-t--diff.s05a-t--cost{fill:var(--pink-deep)}
.s05a-t--diff.s05a-t--tie{fill:var(--ink-deep)}
/* the lanes tie: one neutral line through both lane ends */
.s05a-tie line{stroke:var(--ink-deep);stroke-width:2}
.s05a-tie circle{fill:var(--ink-deep)}
/* the readout keeps the height of its longest text (hidden copies underneath) */
.s05a-step-readwrap{display:grid}
.s05a-step-readwrap>*{grid-area:1/1;min-width:0}
.s05a-step-sizer{visibility:hidden}
.report-content .s05a-fig .s05a-step-margin.is-earlier{color:var(--teal-deep)}
.report-content .s05a-fig .s05a-step-margin.is-later{color:var(--pink-deep)}
.report-content .s05a-fig .s05a-step-margin.is-tie{color:var(--ink-deep)}
.report-content .s05a-fig .s05a-step-margin{font-weight:700}
.s05a-brace{fill:none;stroke:var(--ink-soft);stroke-width:1.4}
.s05a-t--ann{font-size:12.5px;fill:var(--ink-soft)}
.s05a-ann--cost .s05a-t--ann{fill:var(--pink-deep)}
.s05a-ann--save .s05a-t--ann{fill:var(--teal-deep)}
@container s05a (max-width:820px){
 .s05a-step-grid{padding:12px}
 .s05a-step-side{grid-template-columns:minmax(0,1fr);gap:14px;padding-top:12px}
}
@container s05a (max-width:600px){
 .s05a-t--lane{font-size:12.5px}
 .s05a-t--ann{font-size:11.5px}
 /* Figure 12 box labels stay at 13 px (the scale is chosen so they fit). */
}

/* ---------- Figure 13: group grid ---------- */
.s05a-groups-stage{padding:16px 18px 14px}
.s05a-groups-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
.s05a-ggrid-host{min-width:0}
.s05a-ggrid{position:relative;display:grid;grid-template-columns:108px minmax(0,1fr) 80px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 56px minmax(0,1fr);grid-template-areas:". h0 . h1" "v0 c0 l01 c1" ". l02 . l13" "v1 c2 l23 c3";padding:6px 6px 8px}
.report-content .s05a-fig .s05a-gaxis{align-self:end;display:flex;flex-direction:column;gap:1px;padding:0 0 7px;text-align:center;font-size:11.5px;line-height:1.3;color:var(--muted)}
.s05a-gaxis b{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.s05a-gaxis span{font-variant-numeric:tabular-nums;white-space:nowrap}
.report-content .s05a-fig .s05a-gaxis--r{align-self:center;padding:0 10px 0 0;text-align:right}
.s05a-ggrid[data-mode="mp"] .s05a-gaxis--r b{color:var(--s05a-mp)}
.s05a-ggrid[data-mode="dp"] .s05a-gaxis--c b{color:var(--teal-deep)}
.s05a-gcell{position:relative;z-index:1;padding:12px 8px 11px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--cream);text-align:center;transition:border-color .25s,background-color .25s}
.report-content .s05a-fig .s05a-gcell-gpu{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.report-content .s05a-fig .s05a-gcell-ex{margin:6px 0;padding:8px 4px;border-radius:8px;background:#e6eef8;border:1px solid rgba(80,115,165,.4);font-size:13px;color:#2c4a73}
.s05a-gcell-ex b{color:inherit}
.report-content .s05a-fig .s05a-gcell-dense{font-size:11.5px;color:var(--muted)}
.s05a-glink{position:relative;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s}
.s05a-glink-line{position:absolute;background:currentColor;border-radius:2px}
.s05a-glink--h .s05a-glink-line{left:-2px;right:-2px;top:50%;height:2.5px;margin-top:-1.25px}
.s05a-glink--v .s05a-glink-line{top:-2px;bottom:-2px;left:50%;width:2.5px;margin-left:-1.25px}
.s05a-glink-label{position:relative;z-index:1;padding:1px 6px;border-radius:999px;background:var(--cream-hi);font-size:11px;font-weight:700;color:currentColor;white-space:nowrap}
.s05a-gring{display:none}
.s05a-ggrid[data-mode="mp"] .s05a-glink--h{opacity:1;color:var(--s05a-mp)}
.s05a-ggrid[data-mode="mp"] .s05a-gcell{border-color:var(--s05a-mp)}
.s05a-ggrid[data-mode="dp"] .s05a-glink--v{opacity:1;color:var(--s05a-dp)}
.s05a-ggrid[data-mode="dp"] .s05a-gcell{border-color:var(--s05a-dp)}
.s05a-ggrid[data-mode="dense"] .s05a-glink{opacity:1;color:var(--s05a-all)}
.s05a-ggrid[data-mode="dense"] .s05a-gcell{border-color:var(--s05a-all);background:var(--cream-lo)}
.s05a-ggrid[data-mode="dense"] .s05a-glink-label{display:none}
.s05a-ggrid[data-mode="dense"] .s05a-gcell-dense{color:var(--ink-deep);font-weight:700}
/* dense view: the expert box steps back, its text stays readable */
.report-content .s05a-fig .s05a-ggrid[data-mode="dense"] .s05a-gcell-ex{background:var(--cream-hi);border-color:var(--line);color:var(--muted)}
.s05a-ggrid[data-mode="wrong"] .s05a-glink{opacity:1;color:var(--pink-deep)}
.s05a-ggrid[data-mode="wrong"] .s05a-glink-line{background:repeating-linear-gradient(90deg,currentColor 0 6px,transparent 6px 10px)}
.s05a-ggrid[data-mode="wrong"] .s05a-glink--v .s05a-glink-line{background:repeating-linear-gradient(180deg,currentColor 0 6px,transparent 6px 10px)}
.s05a-ggrid[data-mode="wrong"] .s05a-glink-label{border:1.5px solid currentColor;font-size:10.5px;padding:1px 5px}
.s05a-ggrid[data-mode="wrong"] .s05a-gcell{border-style:dashed}
.s05a-ggrid[data-mode="dense"] .s05a-gring--all{display:block;position:absolute;inset:50px 0 0 110px;border:1.6px dashed var(--s05a-all);border-radius:16px;pointer-events:none}
/* Dots: the rest frame shows both ends of each exchange (always, including
   reduced motion). is-live is one autoplay cycle (s05.js restarts it): the
   dots travel once and end on the rest frame. Suspended (off screen) freezes
   them; a reader stop removes is-live. */
.s05a-glink-dot{position:absolute;width:9px;height:9px;border-radius:50%;background:currentColor;opacity:0}
.s05a-glink--h .s05a-glink-dot{top:calc(50% - 4.5px);left:calc(94% - 9px)}
.s05a-glink--h .s05a-glink-dot--b{left:6%}
.s05a-glink--v .s05a-glink-dot{left:calc(50% - 4.5px);top:calc(94% - 9px)}
.s05a-glink--v .s05a-glink-dot--b{top:6%}
.s05a-ggrid[data-mode="mp"] .s05a-glink--h .s05a-glink-dot,.s05a-ggrid[data-mode="dp"] .s05a-glink--v .s05a-glink-dot,.s05a-ggrid[data-mode="dense"] .s05a-glink-dot{opacity:1}
@keyframes s05a-h{0%{left:6%;opacity:0}14%{opacity:1}100%{left:calc(94% - 9px);opacity:1}}
@keyframes s05a-h2{0%{left:calc(94% - 9px);opacity:0}14%{opacity:1}100%{left:6%;opacity:1}}
@keyframes s05a-v{0%{top:6%;opacity:0}14%{opacity:1}100%{top:calc(94% - 9px);opacity:1}}
@keyframes s05a-v2{0%{top:calc(94% - 9px);opacity:0}14%{opacity:1}100%{top:6%;opacity:1}}
.s05a-groups.is-live .s05a-ggrid[data-mode="mp"] .s05a-glink--h .s05a-glink-dot{animation:s05a-h 1.6s var(--ease) 1 both}
.s05a-groups.is-live .s05a-ggrid[data-mode="mp"] .s05a-glink--h .s05a-glink-dot--b{animation-name:s05a-h2;animation-delay:.8s}
.s05a-groups.is-live .s05a-ggrid:is([data-mode="dp"],[data-mode="dense"]) .s05a-glink--v .s05a-glink-dot{animation:s05a-v 2.2s var(--ease) 1 both}
.s05a-groups.is-live .s05a-ggrid:is([data-mode="dp"],[data-mode="dense"]) .s05a-glink--v .s05a-glink-dot--b{animation-name:s05a-v2}
.s05a-groups.is-live .s05a-ggrid[data-mode="dense"] .s05a-glink--h .s05a-glink-dot{animation:s05a-h 2.2s var(--ease) 1 both}
.s05a-groups.is-live .s05a-ggrid[data-mode="dense"] .s05a-glink--h .s05a-glink-dot--b{animation-name:s05a-h2}
.s05a-groups[data-autoplay="suspended"] .s05a-glink-dot{animation-play-state:paused}
/* Shared autoplay pill (autoplay.js): last item of the controls row, pushed right. */
.s05a-groups .s05a-controls>.ap-slot{margin-left:auto}
.s05a-groups-side{padding-left:18px;border-left:1px solid var(--line);min-width:0}
.s05a-clock{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.report-content .s05a-fig .s05a-clock-k{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.s05a-clock-row{display:flex;gap:6px;margin:8px 0 6px}
.s05a-clock-mb,.s05a-clock-step{position:relative;display:flex;align-items:center;gap:5px;flex:1;min-width:0;padding:6px 8px;border-radius:8px;background:var(--cream-lo);font-size:11.5px;color:var(--muted)}
.s05a-clock-step{flex:.7;background:#f1e3d6}
.s05a-clock-mb b,.s05a-clock-step b{font-weight:700;margin-right:auto}
.s05a-clock-mb i,.s05a-clock-step i{width:7px;height:14px;border-radius:2px;background:var(--line)}
.s05a-clock-mb.is-on i{background:var(--s05a-mp)}
.s05a-clock-step.is-on i{width:18px;background:var(--s05a-dp)}
.report-content .s05a-fig .s05a-clock-s{font-size:12px;color:var(--muted)}
@container s05a (max-width:760px){
 .s05a-groups-grid{grid-template-columns:1fr}
 .s05a-groups-side{padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}
 .s05a-groups-stage{padding:12px 10px}
 .s05a-ggrid{grid-template-columns:40px minmax(0,1fr) 46px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 50px minmax(0,1fr)}
 .report-content .s05a-fig .s05a-gaxis--r{writing-mode:vertical-rl;transform:rotate(180deg);flex-direction:column;text-align:center;padding:0 0 0 6px}
 .s05a-gaxis span{font-size:11px}
 .s05a-glink-label{font-size:10.5px;padding:1px 4px}
 .s05a-glink--h .s05a-glink-label{transform:translateY(-17px)}
 .s05a-ggrid[data-mode="wrong"] .s05a-glink--h .s05a-glink-label{transform:translateY(-19px)}
 .s05a-gcell{padding:9px 7px}
 .report-content .s05a-fig .s05a-gcell-ex{font-size:12px;padding:6px 4px}
 .s05a-ggrid[data-mode="dense"] .s05a-gring--all{inset:58px 0 0 38px}
 .s05a-clock-mb i{display:none}
 .s05a-clock-mb.is-on::after{content:'';width:7px;height:14px;border-radius:2px;background:var(--s05a-mp)}
}

/* ---------- Figure 14: operator paths ---------- */
.s05a-paths-grid{position:relative;padding:10px 10px 14px}
.s05a-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.s05a-paths-host{min-width:0}
.report-content .s05a-fig .s05a-scroll-cue{display:none;margin:6px 4px 0;font-size:12px;font-weight:700;color:var(--teal-deep)}
.s05a-paths-grid.can-scroll .s05a-scroll-cue{display:block}
.s05a-lane-bg{fill:transparent;transition:fill .25s}
.s05a-lane.is-sel .s05a-lane-bg{fill:rgba(240,82,156,.06);stroke:rgba(185,44,108,.28);stroke-width:1.2}
.s05a-lane:not(.is-sel) .s05a-op{opacity:.8}
.s05a-t--lanename{font-size:14px;font-weight:700;fill:var(--ink-deep)}
.s05a-t--lanesub{font-size:12.5px;fill:var(--muted);font-weight:700}
.s05a-paths-svg.is-top .s05a-t--lanename{font-size:13px}
.s05a-paths-svg.is-top .s05a-t--lanesub{font-size:12px}
.s05a-op{cursor:pointer;outline:none;transition:opacity .25s}
.s05a-op rect{stroke-width:1.2;transition:stroke .2s,stroke-width .2s}
.s05a-op--att rect{fill:#ece3f0;stroke:#a183b0}
.s05a-op--mlp rect{fill:#dde8f4;stroke:#7f9cc0}
.s05a-op--lay rect{fill:#dcebd9;stroke:#7fa877}
.s05a-op--xch rect{fill:#f7d6dc;stroke:#c47b82}
.s05a-op--rte rect{fill:#f6e7bf;stroke:#c9ad5f}
.s05a-t--op{font-size:var(--s05a-op-fs,12.5px);fill:var(--ink);pointer-events:none}
.s05a-leader{fill:none;stroke:var(--muted);stroke-width:1}
.s05a-t--rte{font-size:11.5px;fill:var(--muted)}
.s05a-op-dot{fill:var(--pink);stroke:var(--cream-hi);stroke-width:1.5}
.s05a-lane.is-sel .s05a-op.is-added rect{stroke:var(--pink-deep);stroke-width:2}
.s05a-paths-svg .s05a-lane .s05a-op:hover rect,.s05a-paths-svg .s05a-lane .s05a-op.is-focus rect{stroke:var(--ink-deep);stroke-width:2.4}
.s05a-op.is-focus{opacity:1!important}
.s05a-paths-svg .s05a-op:focus-visible rect{stroke:var(--pink);stroke-width:3}
.s05a-bracket{fill:none;stroke:var(--ink-soft);stroke-width:1.5}
.s05a-t--bracket{font-size:12.5px;font-weight:700;fill:var(--ink-soft)}
.s05a-paths-side{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;margin:12px 8px 0;padding-top:14px;border-top:1px solid var(--line)}
.s05a-ledger--paths{grid-template-columns:repeat(4,minmax(0,1fr));margin:10px 0 4px}
.s05a-op-note{padding-left:20px;border-left:1px solid var(--line);min-height:120px}
.report-content .s05a-fig .s05a-op-name{margin-top:6px;font-size:15px;font-weight:700;color:var(--ink-deep)}
@container s05a (max-width:760px){
 /* the operator description sits right under the chart on phones */
 .s05a-paths-side{display:flex;flex-direction:column-reverse;gap:14px;margin:12px 2px 0}
 .s05a-op-note{padding:0 0 12px;border-left:0;border-bottom:1px solid var(--line);min-height:0}
 .s05a-ledger--paths{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- Figures 15-16: row tracer ---------- */
.s05a-stages{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 12px}
.s05a-phase{display:flex;flex-direction:column;gap:4px;min-width:0}
.s05a-phase-name{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-left:4px}
.s05a-phase-chips{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:14px;background:var(--cream-lo);border:1px solid var(--line)}
.s05a-phase-chips button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:0;border-radius:11px;background:none;color:var(--muted);font:inherit;font-size:12.5px;font-weight:700;line-height:1.1;cursor:pointer;transition:background-color .2s var(--ease),color .2s,box-shadow .2s}
.s05a-phase-chips button:hover{color:var(--ink)}
.s05a-phase-chips 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)}
.s05a-trace-stage{padding:12px 12px 16px}
.s05a-trace-host{position:relative;min-width:0}
.s05a-trace-svg{width:100%}
.s05a-tp-bg{fill:var(--cream);stroke:var(--line)}
.s05a-t--rank{font-size:15px;font-weight:700;fill:var(--ink-deep)}
.s05a-t--colhead{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;fill:var(--muted)}
.s05a-slot{fill:none;stroke:var(--line);stroke-dasharray:3 3}
.s05a-t--idx{font-size:12.5px;font-weight:700;fill:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05a-t--wt{font-size:12px;fill:var(--muted);font-variant-numeric:tabular-nums}
.s05a-t--group{font-size:12.5px;font-weight:700;fill:var(--ink-deep)}
.s05a-trace-svg :is(.s05a-t--group,.s05a-t--note,.s05a-t--cap,.s05a-t--colhead){paint-order:stroke;stroke:var(--cream);stroke-width:4px;stroke-linejoin:round}
.s05a-t--cap{font-size:11px;font-weight:700;fill:var(--pink-deep)}
.s05a-sep{stroke:var(--ink-soft);stroke-width:1.4;stroke-dasharray:5 3}
.s05a-gbr{fill:none;stroke:var(--ink-soft);stroke-width:1.2}
.s05a-cap{stroke:var(--pink-deep);stroke-width:1.6}
.s05a-tray rect{fill:none;stroke:var(--pink-deep);stroke-width:1;stroke-dasharray:3 3;opacity:.6}
/* rows crossing ranks: arrows flash during the move, the selected token's stay */
.s05a-arc{fill:none;stroke:var(--teal);stroke-width:1.4;opacity:.75}
.s05a-arc.is-flash{animation:s05a-arc-fade .9s .75s var(--ease) forwards}
@keyframes s05a-arc-fade{to{opacity:0;visibility:hidden}}
.s05a-arc.is-focus{stroke:var(--pink-deep);stroke-width:2;opacity:.95}
.s05a-ah path{fill:var(--teal)}
.s05a-ah--focus path{fill:var(--pink-deep)}
.s05a-ghost rect{fill:var(--cream-hi);stroke:var(--pink-deep);stroke-width:1.2;stroke-dasharray:3 2}
.s05a-t--ghost{font-size:11.5px;font-weight:700;fill:var(--ink-deep);opacity:.55}
.s05a-origin{fill:var(--pink-deep)}
.s05a-tok{cursor:pointer;outline:none}
.s05a-tok rect{stroke:rgba(28,43,51,.35);stroke-width:1}
.s05a-tok.is-focus rect{stroke:var(--pink-deep);stroke-width:2.4}
.s05a-tok.is-dim{opacity:.35}
.s05a-tok.is-out rect{stroke:var(--teal-deep);stroke-width:2}
.s05a-tok:focus-visible rect{stroke:var(--pink);stroke-width:3}
.s05a-t--tok{font-size:13.5px;font-weight:700;fill:var(--ink-deep);pointer-events:none}
.s05a-rt{cursor:pointer;transition:transform .62s var(--ease),opacity .4s var(--ease)}
.s05a-rt rect{stroke:rgba(28,43,51,.35);stroke-width:1;transition:fill .3s,stroke .3s}
.s05a-rt-bg{fill:var(--cream-hi)}
.s05a-rt text{pointer-events:none}
.s05a-t--rtl{font-size:13px;font-weight:700;fill:var(--ink-deep)}
.s05a-t--rte{font-size:12px;font-weight:700;fill:var(--ink-deep)}
.s05a-t--map{font-size:11.5px;font-weight:700;fill:var(--teal-deep);font-variant-numeric:tabular-nums}
.s05a-rt-x{fill:none;stroke:var(--pink-deep);stroke-width:2.2;stroke-linecap:round;opacity:0}
.s05a-rt.is-hidden{opacity:0!important;pointer-events:none}
.s05a-rt.is-out .s05a-rt-l{stroke:var(--teal-deep);stroke-width:2}
.s05a-rt.is-zero rect{fill:var(--cream-hi);stroke:var(--pink-deep);stroke-dasharray:3 2}
.s05a-rt.is-zero text{fill:var(--pink-deep)}
.s05a-rt.is-drop{opacity:.6}
.s05a-rt.is-drop .s05a-rt-x{opacity:1}
.s05a-rt.is-drop .s05a-t--map{fill:var(--pink-deep)}
.s05a-rt.is-dim{opacity:.18}
.s05a-rt.is-drop.is-dim{opacity:.14}
.s05a-rt.is-focus rect.s05a-rt-l,.s05a-rt.is-focus rect.s05a-rt-e{stroke:var(--pink-deep);stroke-width:2.2}
.s05a-rt.is-k .s05a-rt-bg{stroke:rgba(28,43,51,.25)}
/* drawing hues: tokens A-E / F-J, experts 0-3 */
.s05a-tk-a :is(.s05a-rt-l),.s05a-tok.s05a-tk-a rect,.s05a-chip.s05a-tk-a b{fill:#dae8fc;background:#dae8fc}
.s05a-tk-b :is(.s05a-rt-l),.s05a-tok.s05a-tk-b rect,.s05a-chip.s05a-tk-b b{fill:#fff2cc;background:#fff2cc}
.s05a-tk-c :is(.s05a-rt-l),.s05a-tok.s05a-tk-c rect,.s05a-chip.s05a-tk-c b{fill:#ffe6cc;background:#ffe6cc}
.s05a-tk-d :is(.s05a-rt-l),.s05a-tok.s05a-tk-d rect,.s05a-chip.s05a-tk-d b{fill:#f8cecc;background:#f8cecc}
.s05a-tk-e :is(.s05a-rt-l),.s05a-tok.s05a-tk-e rect,.s05a-chip.s05a-tk-e b{fill:#e1d5e7;background:#e1d5e7}
.s05a-ex-0 .s05a-rt-e,.s05a-chip.s05a-ex-0 i{fill:#efa9a6;background:#efa9a6}
.s05a-ex-1 .s05a-rt-e,.s05a-chip.s05a-ex-1 i{fill:#9dbce6;background:#9dbce6}
.s05a-ex-2 .s05a-rt-e,.s05a-chip.s05a-ex-2 i{fill:#a9d3a3;background:#a9d3a3}
.s05a-ex-3 .s05a-rt-e,.s05a-chip.s05a-ex-3 i{fill:#f3d47c;background:#f3d47c}
.s05a-rt.is-zero .s05a-rt-l,.s05a-rt.is-zero .s05a-rt-e{fill:var(--cream-hi)}
/* Expert weight blocks (Figures 15 and 16): coloured by expert, never moving.
   Header chips are muted outside the grouped GEMM; full boxes sit beside the
   expert row intervals at that stage. */
.s05a-w rect{stroke:var(--ink-soft);stroke-width:1.1}
.s05a-w.s05a-ex-0 rect{fill:#efa9a6}.s05a-w.s05a-ex-1 rect{fill:#9dbce6}.s05a-w.s05a-ex-2 rect{fill:#a9d3a3}.s05a-w.s05a-ex-3 rect{fill:#f3d47c}
.s05a-w{cursor:help;transition:opacity .25s var(--ease)}
.s05a-w.is-muted{opacity:.5}
.s05a-w:is(:hover,:focus-visible,.is-on){opacity:1}
.s05a-w:is(:hover,:focus-visible,.is-on) rect{stroke:var(--pink-deep);stroke-width:2.2}
.s05a-w:focus{outline:none}
.s05a-t--w{font-size:12px;font-weight:700;fill:var(--ink-deep)}
.s05a-t--wbig{font-size:15px;font-weight:800;fill:var(--ink-deep)}
.s05a-w-arrow{fill:none;stroke:var(--teal);stroke-width:1.6}
.s05a-w-times circle{fill:var(--cream-hi);stroke:var(--teal);stroke-width:1.3}
.s05a-t--times{font-size:13px;font-weight:700;fill:var(--teal-deep)}
.s05a-trace-svg.is-narrow .s05a-t--wbig{font-size:12.5px}
.s05a-trace-svg.is-narrow .s05a-t--w{font-size:11px}
.s05a-trace-svg.is-narrow .s05a-t--times{font-size:11px}
.s05a-map-wrap.is-muted{opacity:.45}
.s05a-stages>.ap-slot{margin-left:auto}
.s05a-trace-svg.is-mid .s05a-t--rtl,.s05a-trace-svg.is-mid .s05a-t--tok{font-size:12.5px}
.s05a-trace-svg.is-narrow .s05a-t--rtl,.s05a-trace-svg.is-narrow .s05a-t--tok{font-size:11.5px}
.s05a-trace-svg.is-narrow :is(.s05a-t--rte,.s05a-t--group,.s05a-t--idx,.s05a-t--map,.s05a-t--wt,.s05a-t--note,.s05a-t--ghost){font-size:11px}
.s05a-trace-svg.is-narrow .s05a-t--colhead{font-size:10.5px;letter-spacing:.04em}
.s05a-trace-svg.is-narrow .s05a-t--rank{font-size:13.5px}
.s05a-trace-svg.is-mid .s05a-t--group{font-size:12px}
.s05a-trace-info{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;margin:12px 6px 0;padding-top:14px;border-top:1px solid var(--line)}
.report-content .s05a-fig .s05a-stage-title{margin:6px 0 2px;font-size:18px;line-height:1.35;color:var(--ink-deep)}
.report-content .s05a-fig .s05a-moved{margin-top:8px;padding:7px 10px;border-radius:8px;background:var(--teal-wash);font-size:13px;line-height:1.5;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.s05a-moved span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep)}
.s05a-trace-side{display:flex;flex-direction:column;gap:12px;padding-left:20px;border-left:1px solid var(--line);min-width:0}
.report-content .s05a-fig .s05a-cap-note{margin-top:10px;padding:7px 10px;border-radius:8px;background:var(--cream-lo);font-size:12.5px;line-height:1.45;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.s05a-cap-note span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.s05a-token-note{padding-top:10px;border-top:1px solid var(--line)}
.s05a-routes{display:grid;gap:6px;margin:6px 0 0}
.report-content .s05a-fig .s05a-routes li{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.4;color:var(--ink)}
.s05a-routes li.is-drop{color:var(--pink-deep)}
.s05a-routes small{font-size:12px;color:var(--muted)}
.s05a-chip{display:inline-flex;flex:none;border-radius:5px;overflow:hidden;border:1px solid rgba(28,43,51,.3);font-size:12px;font-weight:700;line-height:20px}
.s05a-chip b,.s05a-chip i{display:inline-block;min-width:18px;text-align:center;font-style:normal;color:var(--ink-deep)}
.report-content .s05a-fig .s05a-formula{margin-top:8px;font-size:14.5px;font-weight:700;color:var(--ink-deep);font-variant-numeric:tabular-nums}
.s05a-formula sub{font-size:.7em;font-weight:400}
/* rowwise route map: a full-width row under the chart on the route-map stage */
.s05a-map-wrap{margin:12px 6px 0;padding-top:12px;border-top:1px solid var(--line)}
.s05a-map-wrap[hidden]{display:none}
.s05a-maps{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}
.s05a-map{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;font-size:12.5px;font-variant-numeric:tabular-nums;min-width:0}
.report-content .s05a-fig .s05a-map-cap{grid-column:1/-1;margin:0 0 4px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.s05a-map-row{display:contents}
.s05a-map-row>span{min-width:3.4em;padding:3px 14px 3px 8px;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.45;white-space:nowrap}
.s05a-map-head>span{font-size:11px;font-weight:700;color:var(--muted)}
.s05a-map-row>span:first-child{font-weight:700;color:var(--ink-deep)}
.s05a-map-row.is-focus>span{background:var(--pink-wash)}
@container s05a (max-width:760px){
 .s05a-trace-info{grid-template-columns:1fr;margin:10px 2px 0}
 .s05a-trace-side{padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}
 .s05a-trace-stage{padding:8px 6px 12px}
 .s05a-stages{gap:6px 8px}
 .s05a-phase-chips button{min-height:30px;padding:0 9px;font-size:12px}
 .s05a-map-wrap{margin:10px 2px 0}
}
@container s05a (max-width:440px){.s05a-maps{grid-template-columns:1fr}}

/* ---------- Table 6 companion ---------- */
.s05a-tview{margin:10px 0 2px;padding:12px 14px 12px;border:1px solid var(--line);border-radius:12px;background:var(--cream-hi)}
.s05a-tview p{margin:0}
.s05a-tview-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 10px!important;font-size:12.5px;color:var(--muted)}
.s05a-tview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr);gap:12px 26px;align-items:start}
.s05a-tview .s05a-k{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pink-deep);margin:0 0 6px!important}
/* metric name above its bar, so the track gets the full width */
.s05a-tbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name name" "track val";align-items:center;gap:2px 10px;padding:4px 6px;border-radius:7px;transition:background-color .2s;outline:none}
.s05a-tbar:focus-visible{outline:2.5px solid var(--pink);outline-offset:1px}
.s05a-tbar.is-lit{background:var(--teal-wash)}
.s05a-tbar-name{grid-area:name;font-size:12.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s05a-tbar-track{grid-area:track;height:14px;border-radius:4px;background:var(--cream-lo);overflow:hidden}
.s05a-tbar-track i{display:block;height:100%;border-radius:4px;background:#77828a}
.s05a-tbar.is-ep .s05a-tbar-track i{background:var(--teal)}
.s05a-tbar b{grid-area:val;font-size:13px;font-weight:700;color:var(--ink-deep);font-variant-numeric:tabular-nums;white-space:nowrap}
.s05a-tview-delta{margin-top:6px!important;font-size:12.5px;font-weight:700;color:var(--ink-soft)}
.s05a-tview-delta.is-save{color:var(--teal-deep)}
.s05a-tview-delta span{font-weight:400;color:var(--muted)}
.s05a-tview-run{display:flex;flex-wrap:wrap;gap:5px;margin:0!important;padding:0!important;list-style:none}
.s05a-tview-run li{margin:0!important;padding:3px 8px!important;border-radius:999px;background:var(--cream-lo);font-size:11.5px;color:var(--ink-soft)}
.s05a-tview-run li::marker{content:none}
.report-content table tr.s05a-row-lit>*{background:var(--teal-wash)}
@media (max-width:860px){.s05a-tview-grid{grid-template-columns:1fr}}

/* ---------- Table 7 ---------- */
.s05a-profile table tr.s05a-th>*{background:var(--cream-lo);font-weight:700;color:var(--ink-deep)}
.s05a-profile table tr.s05a-th--sub>*{font-size:13px;font-weight:400;color:var(--ink-soft)}
.report-content .s05a-profile table td.s05a-pc{font-weight:700;color:var(--ink-deep)}
.report-content .s05a-profile table td.s05a-ms{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}
.report-content .s05a-profile table td.s05a-ms--row{padding-left:22px}
.report-content .s05a-profile table td.s05a-rop{text-align:right!important}
.s05a-profile table tr.s05a-total>*{background:var(--cream-lo)}
.s05a-profile table tr.s05a-phase-lit>*{background:var(--pink-wash)!important}
.s05a-profile table td[tabindex]{cursor:default}
.s05a-profile table td[tabindex]:focus-visible{outline:2.5px solid var(--pink);outline-offset:-3px}
.s05a-pread{margin:10px 0 4px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:var(--cream-hi)}
.s05a-pread-body{min-height:128px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.s05a-pread p{margin:0}
.s05a-pread .s05a-hint{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;color:var(--muted)}
.s05a-pread .s05a-k{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pink-deep)}
.s05a-pread-main{margin-top:4px!important;font-size:14.5px;color:var(--ink-deep)}
.s05a-pread-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:6px}
.s05a-pread-path{font-size:12px!important;font-weight:700;color:var(--muted)}
.s05a-pread ul{margin:4px 0 0;padding:0;list-style:none}
.s05a-pread li{display:flex;justify-content:space-between;gap:10px;margin:0;padding:2px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.s05a-pread li::marker{content:none}
.s05a-pread li b{font-variant-numeric:tabular-nums}
.s05a-pread-sum{margin-top:4px!important;font-size:12.5px;color:var(--muted);text-align:right}
.s05a-pread-sum b{color:var(--ink-deep)}
.s05a-tool-seg{display:inline-flex;padding:2px;border-radius:999px;background:var(--cream-lo);border:1px solid var(--line)}
.s05a-tool-seg[hidden]{display:none}
.s05a-tool{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border:0;border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.s05a-tool[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,.14)}
.report-content ol.s05a-pcards{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.s05a-pcards[hidden]{display:none!important}
.report-content .s05a-pcards>li{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--cream-hi)}
.report-content .s05a-pcards>li::marker{content:none}
.report-content .s05a-pcards p{margin:0}
.s05a-pcard-title{margin:0 0 8px!important;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pink-deep)}
.s05a-pcard-path+.s05a-pcard-path{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.s05a-pcard-k{font-size:12.5px!important;font-weight:700;color:var(--ink-deep)}
.report-content .s05a-pcards ul{margin:4px 0 0;padding:0;list-style:none}
.report-content .s05a-pcards ul li{display:flex;justify-content:space-between;gap:10px;margin:0;padding:3px 0;font-size:14px;border-bottom:1px dashed var(--line)}
.report-content .s05a-pcards ul li::marker{content:none}
.report-content .s05a-pcards ul li b{font-variant-numeric:tabular-nums;white-space:nowrap}
.s05a-pcards .s05a-unit{font-weight:400;color:var(--muted)}
.s05a-pcards .s05a-unit strong{font-weight:400}
.s05a-pcard--total{background:var(--cream-lo)!important}
.table-frame.s05a-cards-on>.table-viewport{display:none!important}

/* Motion, print, forced colours */
@media (prefers-reduced-motion:reduce){
 .s05a-fig *,.s05a-tview *,.s05a-pread *{transition:none!important}
 /* Only a cycle the reader asked for ("Play animation", Figure 13) may animate. */
 .s05a-fig:not([data-autoplay="running"]) *,.s05a-tview *,.s05a-pread *{animation:none!important}
}
@media print{
 .s05a-controls,.s05a-stages,.s05a-tool-seg,.s05a-pcards,.s05a-pread,.s05a-tview{display:none!important}
 .table-frame.s05a-cards-on>.table-viewport{display:block!important}
}
@media (forced-colors:active){
 .s05a-seg button[aria-pressed="true"],.s05a-phase-chips button[aria-pressed="true"],.s05a-tool[aria-pressed="true"]{outline:2px solid Highlight;outline-offset:-2px}
 .s05a-ex.is-run,.s05a-gpu-run,.s05a-bar>i{forced-color-adjust:none}
}
