/* Report hierarchy: results lead; charts explain; case stories illustrate; methods support.
   Spacing follows a 4px scale. Colors and fonts inherit the Richpanel theme. */
html { scroll-behavior:smooth; scroll-padding-top:96px; }
body { margin:0; }
.bench { max-width:1200px; margin:auto; padding:0 40px; color:var(--text-heading); }
.bench * { box-sizing:border-box; }
.bench section,.bench-section-title>div,.bench-comparison>div,.bench-methodology>div { min-width:0; }
.bench p { margin:8px 0 0; font-size:16px; color:var(--text-subdued); line-height:1.65; }
.bench h1,.bench h2,.bench h3,.bench h4 { margin:0; color:var(--text-heading); }
.bench h1 { font-size:clamp(36px,4.2vw,56px); letter-spacing:-.035em; line-height:1.08; }
.bench h2 { font-size:var(--text-h2-sm); letter-spacing:-.03em; line-height:1.15; }
.bench h3 { font-size:var(--text-h3); letter-spacing:-.02em; line-height:1.3; }
.bench button,.bench select { font:inherit; cursor:pointer; }
.bench button { color:inherit; }
.bench button:focus-visible,.bench a:focus-visible,.bench select:focus-visible,.bench summary:focus-visible,.bench-table-scroll:focus-visible { outline:2px solid var(--action-brand); outline-offset:4px; }
.bench a { color:inherit; text-underline-offset:4px; }
.bench-hero { padding:64px 0 32px; }
.bench .bench-lead { font-size:22px; margin-top:20px; max-width:700px; line-height:1.5; }
.bench-meta { display:flex; gap:24px; align-items:center; flex-wrap:wrap; font-size:14px; margin-top:32px; color:var(--text-subdued); }
.bench-pilot { font-weight:650; color:var(--text-heading); }
.bench-nav { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); font-size:14px; gap:20px; }
.bench-nav>div { display:flex; gap:32px; }
.bench-nav a { padding:20px 0; text-decoration:none; white-space:nowrap; }
.bench-nav a:hover { color:var(--action-brand); text-decoration:underline; }
.bench-nav .active { border-bottom:2px solid var(--text-heading); font-weight:600; }
.bench-section-title { display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.bench-section-title>div>p { margin-top:12px; }
.bench-section-title>span,.bench-small { font-size:14px; color:var(--text-subdued); white-space:nowrap; }
.bench .bench-caption { font-size:13px; line-height:1.6; color:var(--text-subdued); margin-top:16px; max-width:95ch; }
.bench .bench-caption strong { font-weight:600; color:var(--text-heading); }
.bench-results { padding:56px 0 48px; }
.bench .bench-finding { font-size:19px; line-height:1.6; max-width:76ch; margin:28px 0; color:var(--text-heading); }
.bench-finding strong { font-weight:650; }
.bench-price-basis { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 16px; font-size:14px; padding:16px 0; border-top:1px solid var(--border); color:var(--text-subdued); }
.bench-price-basis strong { color:var(--text-heading); font-weight:600; }
.bench-price-basis a { margin-left:auto; font-size:13px; }
.bench-table-tools { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; font-size:14px; margin-top:20px; }
.bench-table-tools label { display:flex; gap:8px; align-items:center; color:var(--text-subdued); min-width:0; }
.bench-table-tools .bench-sort-control { display:none; }
#download-csv { margin-left:auto; white-space:nowrap; }
.bench select { background:var(--surface-card); border:1px solid var(--border); border-radius:6px; min-height:44px; padding:8px 28px 8px 12px; color:var(--text-heading); max-width:100%; min-width:0; font-size:14px; }
.bench-text-button { border:0; background:transparent; min-height:44px; padding:8px 0; font-size:14px; }
.bench-text-button:hover,.bench-text-link:hover { text-decoration:underline; }
.bench-table-scroll { width:100%; margin-top:8px; }
.bench table { width:100%; border-collapse:collapse; font-size:14px; font-variant-numeric:tabular-nums; text-align:right; table-layout:fixed; }
.bench th { font-size:13px; color:var(--text-subdued); font-weight:500; padding:8px 8px; border-block:1px solid var(--border); background:var(--surface-page-alt); }
.bench th button { min-height:44px; padding:0; background:none; border:0; font-size:13px; line-height:1.4; text-align:inherit; }
.bench th[aria-sort] { color:var(--text-heading); font-weight:650; }
/* Align the first text baseline, so sublabels never push a main value upward. */
.bench td { padding:20px 8px; border-bottom:1px solid var(--border); vertical-align:baseline; }
.bench th:first-child { width:23%; }
.bench-cell-label { display:none; }
.bench-cell-value { display:block; white-space:nowrap; }
.bench td:first-child,.bench th:first-child { text-align:left; padding-left:12px; }
.bench td:last-child,.bench th:last-child { padding-right:12px; }
.bench tbody tr:hover { background:var(--surface-page-alt); }
.bench-model-name { font-weight:650; font-size:15px; }
.bench-model-name small,.bench-cost small { display:block; font-size:12px; color:var(--text-subdued); font-weight:450; margin:4px 0 0; }
.bench-score,.bench-cost { font-size:20px; font-weight:650; }
.bench-fatal-number { font-size:20px; font-weight:650; }
.bench-fatal-number small { display:block; font-weight:450; font-size:12px; margin-top:4px; color:var(--text-subdued); }
.bench-secondary-number,.bench td:last-child { color:var(--text-subdued); }
.bench-usage { font-size:14px; margin-top:16px; }
.bench summary { cursor:pointer; padding:20px 0; font-weight:600; }
.bench-usage-list { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:8px; }
.bench-usage-list article { border-top:1px solid var(--border); padding-top:16px; }
.bench-usage-list h3 { font-size:18px; }
.bench code { font-size:12px; overflow-wrap:anywhere; }
.bench-usage-list dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:12px 0; }
.bench-usage-list dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.bench-usage-list p { font-size:13px; }
.bench-comparison { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; padding:48px 0 56px; border-top:1px solid var(--border); }
.bench-comparison h3 { font-size:22px; }
.bench-comparison .bench-section-title { min-height:60px; align-items:flex-start; }
.bench-comparison p { font-size:14px; }
.bench-fatal-chart .bench-caption { max-width:52ch; margin-top:24px; }
.bench-bars { margin-top:28px; }
.bench-bar-row { display:grid; grid-template-columns:156px 1fr 56px; gap:12px; align-items:center; margin:24px 0; font-size:14px; }
.bench-bar-row strong { font-variant-numeric:tabular-nums; text-align:right; font-size:16px; }
.bench-bar-track { height:8px; background:var(--surface-page-alt); border-radius:2px; overflow:hidden; }
.bench-bar-fill { height:100%; background:var(--text-heading); border-radius:2px; }
.bench-bar-zero { width:3px; height:8px; background:var(--action-brand); }
.bench-bar-name small { display:block; color:var(--text-subdued); font-size:12px; margin-top:4px; }
.bench-switch { display:flex; padding:4px; background:var(--surface-page-alt); border-radius:6px; gap:4px; }
.bench-switch button { border:0; border-radius:4px; min-height:44px; padding:8px 12px; background:transparent; font-size:13px; }
.bench-switch button[aria-pressed=true] { background:var(--surface-card); font-weight:600; }
.bench-switch button:hover { background:var(--surface-card-hover); }
#scatter { margin-top:16px; max-width:580px; }
#scatter svg { width:100%; height:auto; display:block; }
.bench-grid { stroke:var(--border); stroke-width:1; stroke-dasharray:3 5; }
.bench-axis { fill:var(--text-subdued); font-size:11px; font-family:var(--font-body); }
.bench-point { cursor:pointer; outline:none; }
.bench-point .bench-mark { fill:var(--surface-page); stroke:var(--text-heading); stroke-width:2; }
.bench-point:hover .bench-mark,.bench-point:focus-visible .bench-mark { r:7; fill:var(--text-heading); }
.bench-point:focus-visible text { text-decoration:underline; font-weight:700; }
.bench-point .bench-hit { fill:transparent; stroke:none; }
.bench-point text { pointer-events:none; }
.bench-point text { fill:var(--text-heading); font:12px var(--font-body); font-weight:550; }
.bench-direction { font-size:11px; fill:var(--text-subdued); }
.bench-examples { border-top:1px solid var(--border); padding:64px 0; }
.bench-case-layout { margin-top:32px; }
.bench-case-picker { display:flex; gap:32px; border-bottom:1px solid var(--border); margin-bottom:32px; }
.bench-case-picker button { text-align:left; background:transparent; border:0; border-bottom:3px solid transparent; padding:16px 0; font-size:16px; line-height:1.4; color:var(--text-subdued); }
.bench-case-picker button[aria-pressed=true] { border-bottom-color:var(--text-heading); color:var(--text-heading); font-weight:650; }
.bench-case-picker button:hover { color:var(--text-heading); }
#case-detail>h3 { font-size:28px; max-width:36ch; letter-spacing:-.025em; }
.bench-case-facts { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin:24px 0; }
.bench-case-facts h4 { font:600 14px var(--font-body); color:var(--text-heading); }
.bench-case-facts p { font-size:16px; max-width:56ch; }
.bench .bench-case-finding { background:var(--surface-page-alt); padding:20px 24px; color:var(--text-heading); font-size:17px; line-height:1.55; margin:28px 0; }
.bench-outcome,.bench-outcome-head { display:grid; grid-template-columns:200px minmax(0,1fr) 156px; gap:32px; }
.bench-outcome-head { color:var(--text-subdued); font-size:13px; padding-bottom:12px; }
.bench-outcome-head span:last-child { text-align:right; }
.bench-outcome { align-items:start; border-top:1px solid var(--border); padding:24px 0; font-size:16px; }
.bench-outcome>strong { font-size:16px; font-weight:650; padding-top:4px; }
.bench-outcome p { font-size:16px; margin:0; }
.bench-verdict { text-align:right; }
.bench-verdict>strong { display:block; font-size:26px; line-height:1.15; font-weight:650; font-variant-numeric:tabular-nums; }
.bench-verdict small { font-size:14px; font-weight:450; color:var(--text-subdued); }
.bench-verdict span { display:block; font-size:13px; color:var(--text-subdued); margin-top:8px; }
.bench-verdict.is-fatal span { color:var(--action-critical); font-weight:650; }
.bench-methodology { border-top:1px solid var(--border); display:grid; grid-template-columns:280px 1fr; gap:64px; padding:64px 0; }
.bench-methodology h2 { font-size:32px; }
.bench-text-link { display:inline-block; margin-top:20px; font-size:14px; }
.bench-methods details { border-bottom:1px solid var(--border); padding:0 0 8px; }
.bench-methods details:first-child summary { padding-top:0; }
.bench-methods summary { font-size:18px; line-height:1.4; }
.bench-methods p { font-size:15px; margin:0 0 16px; max-width:70ch; }
.bench-footer { border-top:1px solid var(--border); padding:24px 0 40px; display:flex; justify-content:space-between; gap:24px; }
.bench-footer p { font-size:12px; }
.bench-footer a { color:var(--text-subdued); }
.bench-skip { position:fixed; top:-80px; left:16px; background:var(--surface-card); padding:12px; z-index:99999; color:var(--text-heading); }
.bench-skip:focus { top:12px; }
#bench-status { padding:36px 0; font-size:16px; }
#bench-status:empty { display:none; }
[hidden] { display:none; }

@media (max-width:1000px) {
 .bench { padding:0 24px; }
 .bench-section-title { align-items:flex-start; }
 .bench-table-tools .bench-sort-control { display:flex; }
 .bench table,.bench tbody { display:block; }
 .bench table { text-align:left; }
 .bench thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
 .bench tbody tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 24px; padding:24px 0; border-top:1px solid var(--border); }
 .bench tbody tr:last-child { border-bottom:1px solid var(--border); }
 .bench tbody tr:hover { background:transparent; }
 .bench td,.bench td:first-child,.bench td:last-child { display:block; padding:0; border:0; white-space:normal; text-align:left; min-width:0; }
 .bench-model-name { grid-column:1 / -1; font-size:18px; }
 .bench-model-name small { display:inline; margin-left:12px; font-size:13px; }
 .bench-cell-label { display:block; font-size:13px; font-weight:450; color:var(--text-subdued); margin-bottom:6px; line-height:1.4; }
 .bench-cell-value { font-size:20px; color:var(--text-heading); }
 .bench-secondary-number .bench-cell-value { font-size:17px; font-weight:500; }
 .bench-comparison { grid-template-columns:1fr; gap:40px; }
 .bench-comparison .bench-section-title { min-height:0; align-items:center; }
 .bench-bar-row { grid-template-columns:156px minmax(0,1fr) 56px; }
 .bench-outcome,.bench-outcome-head { grid-template-columns:160px minmax(0,1fr) 128px; gap:24px; }
 .bench-methodology { grid-template-columns:220px minmax(0,1fr); gap:32px; }
}
@media (max-width:640px) {
 .bench { padding:0 20px; }
 .bench-hero { padding:40px 0 24px; }
 .bench .bench-lead { font-size:18px; margin-top:16px; }
 .bench-meta { gap:12px 20px; margin-top:24px; font-size:13px; }
 .bench h1 { font-size:36px; }
 .bench h2 { font-size:30px; }
 .bench-nav { gap:24px; font-size:14px; }
 .bench-nav>div { gap:28px; }
 .bench-nav>a { display:none; }
 .bench-results { padding:40px 0 32px; }
 .bench-table-tools { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px 16px; font-size:13px; }
 .bench-table-tools label { flex-direction:column; align-items:flex-start; gap:6px; }
 .bench-table-tools select { width:100%; font-size:14px; }
 .bench-table-tools .bench-sort-control { grid-column:1 / -1; grid-row:2; }
 #download-csv { align-self:end; margin:0; font-size:14px; }
 .bench .bench-finding { font-size:18px; margin:24px 0; }
 .bench-price-basis { gap:8px 12px; font-size:13px; }
 .bench-price-basis a { margin-left:0; }
 .bench tbody tr { gap:20px 16px; }
 .bench-comparison { grid-template-columns:1fr; gap:40px; padding:40px 0; }
 .bench-comparison .bench-section-title { min-height:0; align-items:center; }
 .bench-comparison h3 { font-size:22px; }
 .bench-fatal-chart .bench-caption { max-width:none; }
 .bench-bar-row { grid-template-columns:140px minmax(0,1fr) 52px; gap:8px; }
 .bench-examples { padding:40px 0; }
 .bench-examples>.bench-section-title>.bench-small { display:none; }
 .bench-case-picker { gap:20px; margin-bottom:24px; }
 .bench-case-picker button { flex:1; min-width:0; font-size:14px; }
 #case-detail>h3 { font-size:25px; }
 .bench-case-facts { grid-template-columns:1fr; gap:20px; margin:24px 0; }
 .bench .bench-case-finding { padding:16px; font-size:16px; margin:24px 0; }
 .bench-outcome-head { display:none; }
 .bench-outcome { grid-template-columns:minmax(0,1fr) 116px; gap:12px 16px; padding:24px 0; }
 .bench-outcome>strong { align-self:center; padding:0; }
 .bench-outcome p { grid-column:1 / -1; grid-row:2; }
 .bench-verdict { grid-column:2; grid-row:1; }
 .bench-verdict>strong { font-size:24px; }
 .bench-verdict span { margin-top:4px; }
 .bench-usage-list { grid-template-columns:1fr; }
 .bench-usage-list dl { grid-template-columns:minmax(0,1fr) auto; }
 .bench-methodology { grid-template-columns:1fr; gap:32px; padding:40px 0; }
 .bench-methodology h2 { font-size:30px; }
 .bench-footer { flex-direction:column; gap:8px; }
}
@media (max-width:460px) {
 .bench tbody tr { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .bench-model-name small { display:block; margin:4px 0 0; }
 .bench h1 { font-size:32px; }
 .bench-nav>div { gap:20px; }
 .bench-case-picker { gap:12px; }
 .bench-comparison .bench-section-title { gap:12px; }
 .bench-methods summary { font-size:17px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .bench * { animation:none; transition:none; } }
