/* Case-study reading pages and shared navigation use the Kado token system. */
@layer components {
  .case-index-banner > img { object-position: center center; opacity: .78; }
  .case-index-banner { block-size: auto; min-block-size: clamp(16rem, 33.333vw, 32rem); padding-block: var(--space-7); }
  .case-index-banner .eyebrow { color: var(--accent-orange); margin-block-end: var(--space-5); }
  .case-index-banner h1 { max-inline-size: 26ch; }
  .header-inner > .primary-nav { display: none; }
  .mobile-nav { position: relative; }
  .mobile-nav summary { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-3); min-block-size: 2.75rem; padding-inline: var(--space-3); list-style: none; cursor: pointer; touch-action: manipulation; user-select: none; -webkit-tap-highlight-color: transparent; font-size: .875rem; font-weight: 500; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav summary .icon { inline-size: 1.25rem; block-size: 1.25rem; }
  .header-inner .mobile-nav nav { position: absolute; inset-block-start: calc(100% + var(--space-2)); inset-inline-end: 0; display: flex; flex-direction: column; align-items: stretch; gap: 0; inline-size: min(17rem, calc(100vw - 2.5rem)); max-block-size: calc(100dvh - var(--header-height) - var(--space-6)); overflow-y: auto; overscroll-behavior: contain; padding: var(--space-2); background: var(--paper); border: 1px solid var(--line); }
  .header-inner .mobile-nav nav a { display: flex; padding-inline: var(--space-4); min-block-size: 2.75rem; }
  .mobile-nav .nav-contact { border: 0; }
  .hero-links { display: grid; grid-column: 1 / -1; justify-items: start; gap: var(--space-1); }
  .case-entry { display: grid; gap: var(--space-5); padding:var(--space-6); border:1px solid var(--line); border-radius:var(--radius-panel); background:var(--white); box-shadow:var(--shadow-panel); }
  .case-entry + .case-entry { margin-block-start:var(--space-5); }
  .case-entry-context { display: grid; justify-items: start; align-content: start; gap: var(--space-2); }
  .case-entry-context .step-number { color: var(--accent-orange); }
  .case-entry-context > p:last-child { font-size: var(--type-small); color: var(--muted); }
  .case-entry-body h2 { max-inline-size: 35ch; font-size: var(--type-title); }
  .case-entry-body h2 a { display: inline-flex; gap: var(--space-5); align-items: start; min-block-size: 2.75rem; text-decoration: none; }
  .case-entry-body h2 a > span[aria-hidden="true"] { color: var(--accent-orange); flex-shrink: 0; }
  .case-entry-body h2 a > span:not([aria-hidden]) { min-inline-size: 0; }
  .case-entry-body > p { max-inline-size: 60ch; color: var(--muted); margin-block: var(--space-4); }
  .case-entry-status { display: block; font-size: var(--type-small); color: var(--muted); }
  .case-breadcrumb { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; font-size: var(--type-small); color: var(--muted); padding-block: var(--space-5) var(--space-6); }
  .case-breadcrumb a { min-block-size: 2rem; display: inline-flex; align-items: center; }
  .case-banner { margin-block: 0 var(--space-6); }
  .case-banner img { display: block; inline-size: 100%; block-size: min(41.6667vw, 33.333rem); object-fit: cover; object-position: center 50%; border: 1px solid var(--line); }
  .case-banner figcaption { margin-block-start: var(--space-2); color: var(--muted); font-size: .6875rem; line-height: 1.4; }
  .case-hero { padding-block: var(--space-5) var(--space-7); }
  .case-hero > .eyebrow { color: var(--accent-orange); margin-block-end: var(--space-5); }
  .case-hero h1 { max-inline-size: 20ch; font-size: clamp(2.5rem, 5.2vw, 4.5rem); }
  .case-deck { margin-block-start: var(--space-6); max-inline-size: 59ch; color: var(--muted); font-size: var(--type-lead); line-height: 1.6; }
  .case-meta { display: grid; gap: var(--space-3); margin-block-start: var(--space-6); font-size: var(--type-small); color: var(--muted); }
  .case-meta > span:first-child { color: var(--ink); }
  /* Empty model fields retain their own margins; collapse only those blank slots. */
  .case-page main [data-site-key]:empty { display: none; }
  .case-page main .case-meta:not(:has(> span:not(:empty))) { display: none; }
  .case-page main .case-source-note:not(:has(> p:not(:empty))) { display: none; }
  .case-facts { border:1px solid var(--line); border-radius:var(--radius-panel); padding:var(--space-5); background:var(--white); box-shadow:var(--shadow-panel); }
  .case-facts > .eyebrow { color: var(--muted); font-size: var(--type-small); line-height: 1.6; letter-spacing: .075em; }
  .case-facts dl { display: grid; gap: var(--space-6); margin-block: var(--space-5); }
  .case-facts dl > div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--space-4); align-items: start; }
  .case-facts dt { font-size: var(--type-section); letter-spacing: -.04em; line-height: 1.15; font-weight: 600; font-variant-numeric: tabular-nums; }
  .case-facts dd { max-inline-size: 32ch; margin-block-start: var(--space-3); font-size: var(--type-small); color: var(--muted); line-height: 1.6; }
  .case-evidence-note { max-inline-size: 100ch; color: var(--muted); font-size: var(--type-small); }
  .case-layout { display: grid; gap: var(--space-7); padding-block: var(--space-7); }
  .case-toc { border-block-end: 1px solid var(--line); padding-block-end: var(--space-5); }
  .case-toc .eyebrow { color: var(--muted); margin-block-end: var(--space-3); }
  .case-toc ol { display: grid; gap: var(--space-1); }
  .case-toc a { display: inline-flex; align-items: center; min-block-size: 2.75rem; text-decoration: none; font-size: .875rem; }
  .case-prose { min-inline-size: 0; }
  .case-prose > section { padding-block: var(--space-7); border-block-start: 1px solid var(--line); }
  .case-prose > section:first-child { padding-block-start: 0; border: 0; }
  .case-section-label { color: var(--accent-orange); margin-block-end: var(--space-4); }
  .case-prose h2 { font-size: clamp(1.563rem, 2.3vw, 2rem); line-height: 1.2; letter-spacing: -.035em; max-inline-size: 34ch; margin-block-end: var(--space-5); }
  .case-prose p { max-inline-size: 68ch; }
  .case-prose > section > p:not(.eyebrow) { margin-block: var(--space-4); color: var(--muted); }
  .privacy-prose address { font-style: normal; color: var(--muted); }
  .privacy-prose address > p { margin-block: var(--space-4); }
  .case-prose blockquote { margin: var(--space-7) 0; padding-inline-start: var(--space-5); border-inline-start: 2px solid var(--accent-orange); font-size: var(--type-title); line-height: 1.45; letter-spacing: -.02em; max-inline-size: 42ch; }
  .case-findings { display: grid; gap: var(--space-5); margin-block: var(--space-6); }
  .case-findings li { padding-inline-start: var(--space-5); border-inline-start: 1px solid var(--line); }
  .case-findings h3, .case-callout h3 { font-size: var(--type-base); letter-spacing: 0; line-height: 1.5; margin-block-end: var(--space-2); }
  .case-findings p, .case-callout p { color: var(--muted); }
  .case-callout { margin-block: var(--space-6); padding: var(--space-5); background: var(--blue-paper); border-inline-start: 2px solid var(--accent-orange); }
  .case-pipeline { display: grid; gap: 0; margin-block: var(--space-6); }
  .case-pipeline li { display: flex; align-items: baseline; gap: var(--space-5); padding-block: var(--space-3); border-block-start: 1px solid var(--line); }
  .case-pipeline li:last-child { border-block-end: 1px solid var(--line); }
  .case-pipeline .step-number { color: var(--accent-orange); }
  .case-figure { margin-block: var(--space-6) var(--space-7); }
  .case-figure img, .case-figure > svg { display: block; inline-size: 100%; block-size: auto; border: 1px solid var(--line); }
  .case-figure figcaption { color: var(--muted); font-size: var(--type-small); line-height: 1.65; margin-block-start: var(--space-4); }
  .case-figure .inline-link { font-size: var(--type-small); margin-block-start: var(--space-2); }
  .plant-evidence { --plant-navy: #182c40; --plant-teal: #147d83; --plant-ink: #253b4a; --plant-muted: #596b78; --plant-rule: #d9e2e6; --plant-pale: #edf5f4; --plant-sand: #f5f2ec; margin-block: var(--space-6) var(--space-7); padding-block: var(--space-5); border-block-start: 2px solid var(--plant-teal); color: var(--plant-ink); }
  .plant-evidence figcaption { margin-block-start: var(--space-4); color: var(--plant-muted); font-size: var(--type-small); line-height: 1.6; }
  .plant-evidence .plant-visual-title { margin-block: 0 var(--space-4); color: var(--plant-teal); font-size: var(--type-small); font-weight: 600; letter-spacing: .075em; text-transform: uppercase; }
  .plant-promise-flow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch; gap: var(--space-3); }
  .plant-assessment-alert { display:grid; align-content:center; gap:var(--space-4); margin-block:var(--space-6); padding:var(--space-4); border-radius:var(--radius-panel); background:var(--blue-paper); color:var(--ink); container-type:inline-size; }
  .plant-assessment-alert > svg { display:block; inline-size:100%; block-size:auto; }
  .plant-assessment-alert .explanation-effect { pointer-events:none; }
  .plant-assessment-alert.explanation-still .explanation-effect { display:none; }
  .plant-assessment-alert.explanation-still [data-node="alert"] > .workflow-icon { opacity:1 !important; }
  .plant-assessment-alert > .plant-flow-mobile { display:none; }
  .plant-assessment-alert [data-node="alert"] > rect:not(.explanation-effect) { fill:var(--alert-paper); fill-opacity:1; stroke:var(--accent-orange); }
  .plant-assessment-alert [data-node="alert"] > text { fill:var(--accent-orange); }
  .plant-assessment-alert [data-node="alert"] > .workflow-icon { color:var(--accent-orange); }
  .plant-assessment-alert figcaption { display:grid; gap:var(--space-2); margin:0; color:var(--muted); font-size:.875rem; line-height:1.5; }
  @container(max-width:24rem) { .plant-assessment-alert > .plant-flow-desktop { display:none; } .plant-assessment-alert > .plant-flow-mobile { display:block; } }
  .plant-promise-flow li { position: relative; display: grid; place-items: center; min-inline-size: 0; min-block-size: 3.25rem; padding: var(--space-3); background: var(--plant-pale); color: var(--plant-navy); text-align: center; }
  .plant-promise-flow li:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; inset-inline-end: -.75rem; inset-block-start: 50%; transform: translateY(-50%); color: var(--plant-teal); font-size: var(--type-lead); }
  .plant-promise-flow li:first-child { background: var(--plant-navy); color: var(--white); }
  .plant-promise-flow li span { max-inline-size: 13ch; font-size: var(--type-small); font-weight: 600; line-height: 1.35; }
  .plant-request { padding: var(--space-5); background: var(--plant-sand); }
  .plant-request .plant-request-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .plant-request-metrics > div { min-inline-size: 0; padding-inline: var(--space-5); border-inline-start: 1px solid var(--plant-rule); }
  .plant-request-metrics > div:first-child { padding-inline-start: 0; border: 0; }
  .plant-request-metrics dt { color: var(--plant-navy); font-size: var(--type-title); line-height: 1.15; letter-spacing: -.04em; font-weight: 600; font-variant-numeric: tabular-nums; }
  .plant-request-metrics dd { margin-block-start: var(--space-2); color: var(--plant-muted); font-size: var(--type-small); line-height: 1.45; }
  .plant-workshop-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); }
  .plant-workshop-panel { min-inline-size: 0; }
  .plant-workshop-panel + .plant-workshop-panel { padding-inline-start: var(--space-6); border-inline-start: 1px solid var(--plant-rule); }
  .plant-bar-row { margin-block-start: var(--space-4); }
  .plant-bar-label { display: flex; justify-content: space-between; gap: var(--space-3); color: var(--plant-muted); font-size: var(--type-small); line-height: 1.4; }
  .plant-bar-label strong { color: var(--plant-navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .plant-bar-track { display: block; inline-size: 100%; block-size: .55rem; margin-block-start: var(--space-2); background: var(--plant-rule); }
  .plant-bar-fill { display: block; block-size: 100%; background: var(--plant-navy); }
  .plant-bar-fill-complete { background: var(--plant-teal); }
  .plant-evidence-note { margin-block-start: var(--space-4); color: var(--plant-muted); font-size: var(--type-small); line-height: 1.5; }
  .plant-slot-line { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); margin-block-start: var(--space-5); }
  .plant-slot-line::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: .375rem; border-block-start: 2px solid var(--plant-rule); }
  .plant-slot-line li { position: relative; display: grid; justify-items: start; gap: var(--space-2); color: var(--plant-muted); font-size: var(--type-small); line-height: 1.35; }
  .plant-slot-line li:nth-child(2) { justify-items: center; }
  .plant-slot-line li:last-child { justify-items: end; text-align: end; }
  .plant-slot-line i { position: relative; z-index: 1; inline-size: .75rem; block-size: .75rem; background: var(--plant-teal); border: 2px solid var(--paper); box-shadow: 0 0 0 1px var(--plant-teal); }
  .plant-slot-line li:nth-child(2) i { background: var(--plant-navy); box-shadow: 0 0 0 1px var(--plant-navy); }
  .plant-slot-line strong { color: var(--plant-navy); font-weight: 600; font-variant-numeric: tabular-nums; }
  .plant-readiness-score { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-3); margin-block: 0 var(--space-5); }
  .plant-readiness-score strong { color: var(--plant-navy); font-size: var(--type-section); font-variant-numeric: tabular-nums; letter-spacing: -.045em; }
  .plant-readiness-score > span { color: var(--plant-muted); font-size: var(--type-small); }
  .plant-evidence .plant-maturity { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: end; gap: var(--space-2); min-block-size: 11rem; }
  .plant-maturity li { display: flex; flex-direction: column; min-inline-size: 0; padding: var(--space-3); background: var(--plant-sand); color: var(--plant-navy); }
  .plant-maturity li:nth-child(1) { min-block-size: 6.5rem; }
  .plant-maturity li:nth-child(2) { min-block-size: 7.75rem; background: var(--plant-teal); color: var(--white); }
  .plant-maturity li:nth-child(3) { min-block-size: 9rem; }
  .plant-maturity li:nth-child(4) { min-block-size: 10rem; }
  .plant-maturity li:nth-child(5) { min-block-size: 11rem; }
  .plant-maturity small { font-size: var(--type-small); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
  .plant-maturity strong { margin-block-start: var(--space-2); font-size: var(--type-small); line-height: 1.35; }
  .plant-maturity li > span { margin-block-start: auto; padding-block-start: var(--space-2); color: var(--plant-muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; }
  .plant-maturity li:nth-child(2) > span { color: var(--white); }
  .plant-maturity em { color: var(--white); font-size: var(--type-small); font-style: normal; font-weight: 600; text-transform: uppercase; }
  .plant-evidence .plant-readiness-grid { display: grid; gap: var(--space-2); margin-block-start: var(--space-3); }
  .plant-readiness-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 5.5rem; align-items: center; gap: var(--space-3); min-block-size: 1.65rem; color: var(--plant-ink); font-size: var(--type-small); }
  .plant-readiness-row > span:last-child { color: var(--plant-muted); text-align: end; font-variant-numeric: tabular-nums; }
  .plant-rating { display: flex; gap: .2rem; }
  .plant-rating i { inline-size: .8rem; block-size: .55rem; background: var(--plant-rule); }
  .plant-rating i.is-set { background: var(--plant-teal); }
  .case-source-note { padding-block-start: var(--space-5); border-block-start: 1px solid var(--line); font-size: var(--type-small); color: var(--muted); }
  .mobile-nav summary { border-radius:var(--radius-control); }
  .header-inner .mobile-nav nav { border-radius:var(--radius-panel); box-shadow:var(--shadow-panel); }
  .case-banner img, .case-figure img, .case-figure > svg { border-radius:var(--radius-panel); box-shadow:var(--shadow-panel); }
  .case-callout, .plant-request { border-radius:var(--radius-panel); box-shadow:var(--shadow-panel); }
  .plant-promise-flow li, .plant-maturity li, .harness-flow .case-pipeline li { border-radius:var(--radius-control); }
  .case-source-note p + p { margin-block-start: var(--space-3); }
  .case-related { border-block-start: 1px solid var(--line); padding-block: var(--space-7); }
  .case-related .eyebrow { color: var(--muted); margin-block-end: var(--space-4); }
  .case-related h2 { font-size: var(--type-title); max-inline-size: 42ch; }
  .case-related h2 a { text-decoration: none; }
  .case-related h2 a > span[aria-hidden="true"] { color: var(--accent-orange); }
  .case-related > p:last-child { color: var(--muted); max-inline-size: 62ch; margin-block-start: var(--space-4); }
  .case-contact { background: var(--ink); color: var(--white); padding-block: var(--space-8); }
  .case-contact > .shell { display: grid; gap: var(--space-6); }
  .case-contact .eyebrow { color: var(--navy-secondary); margin-block-end: var(--space-4); }
  .case-contact h2 { font-size: var(--type-section); }
  .case-contact .shell > div:last-child { display: grid; justify-items: start; align-content: center; }
  .case-contact .shell > div:last-child > p { max-inline-size: 42ch; color: var(--navy-secondary); }
  .case-contact .button { margin-block-start: var(--space-5); }
  .case-contact-email { margin-block-start: var(--space-6); font-size: .875rem; }
  .case-contact :focus-visible { outline-color: #ffcc91; }
  .contact-studies { grid-column: 1; }
  .contact-studies .button { min-inline-size: min(100%, 17rem); }
  .button--outline { background: transparent; color: var(--white); border-color: var(--navy-secondary); }
  .case-index-contact { padding-block: var(--space-7); }
}

@layer responsive {
  @media (max-width: 40rem) {
    .case-index-banner > img { object-position: left center; opacity: .58; }
    .case-banner img { block-size: auto; }
    .plant-promise-flow { grid-template-columns: 1fr; gap: var(--space-2); }
    .plant-promise-flow li { min-block-size: 2.75rem; justify-items: start; padding-inline: var(--space-4); text-align: start; }
    .plant-promise-flow li:not(:last-child)::after { content: "↓"; inset-inline: 50% auto; inset-block: auto -.72rem; transform: translateX(-50%); }
    .plant-promise-flow li span { max-inline-size: none; }
    .plant-request { padding: var(--space-4); }
    .plant-request-metrics > div { padding-inline: var(--space-3); }
    .plant-request-metrics > div:last-child dt { font-size: var(--type-base); white-space: nowrap; }
    .plant-workshop-grid { grid-template-columns: 1fr; gap: var(--space-5); }
    .plant-workshop-panel + .plant-workshop-panel { padding-inline: 0; padding-block-start: var(--space-5); border-inline: 0; border-block-start: 1px solid var(--plant-rule); }
    .plant-readiness-score { display: grid; gap: var(--space-2); }
    .plant-readiness-score strong { font-size: var(--type-title); white-space: nowrap; }
    .plant-evidence .plant-maturity { grid-template-columns: 1fr; gap: var(--space-2); min-block-size: 0; }
    .plant-maturity li, .plant-maturity li:nth-child(n) { min-block-size: 0; display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); padding: var(--space-3); }
    .plant-maturity li strong, .plant-maturity li > span { margin: 0; padding: 0; }
    .plant-maturity em { grid-column: 2 / -1; }
    .plant-readiness-row { grid-template-columns: minmax(0, 1fr) auto 4.5rem; gap: var(--space-2); }
  }
  @media (min-width: 40rem) {
    .case-facts dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); }
    .case-facts dl > div { display: block; }
    .case-meta { grid-template-columns: 1fr 1fr; gap: var(--space-6); }
    .case-contact > .shell { grid-template-columns: 1.3fr 1fr; gap: var(--space-8); }
  }
  @media (max-width: 47.999rem) {
    .header-inner { gap: var(--space-2); flex-wrap: wrap; }
    .header-inner > .primary-nav { display: flex; margin-inline-start: auto; }
    .header-inner .primary-nav > a { display: none; }
    .header-inner .primary-nav > a[data-site-key="nav.blogLink"] { display: inline-flex; }
    .brand { inline-size: 8.5rem; max-inline-size: 100%; }
  }
  @media (min-width: 48rem) {
    .header-inner > .primary-nav { display: flex; }
    .header-inner .primary-nav a { display: inline-flex; }
    .mobile-nav { display: none; }
  }
  @media (min-width: 64rem) {
    .case-entry { grid-template-columns: minmax(0,1fr) minmax(0,3fr); gap: var(--space-6); padding-block: var(--space-7); }
    .case-entry-body h2 { font-size: 2rem; }
    .case-hero { padding-block: var(--space-6) var(--space-8); }
    .case-hero h1 { max-inline-size: 21ch; }
    .case-deck { margin-block-start: var(--space-7); font-size: var(--type-title); line-height: 1.5; }
    .case-meta { margin-block-start: var(--space-7); }
    .case-facts { padding-block: var(--space-7); }
    .case-facts dl { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block: var(--space-6); }
    .case-layout { grid-template-columns: minmax(0,1fr) minmax(0,3fr); gap: var(--space-6); padding-block: var(--space-9); }
    .case-toc { position: sticky; inset-block-start: calc(var(--header-height) + var(--space-6)); align-self: start; border: 0; padding-block-end: 0; }
    .case-toc a { max-inline-size: 23ch; }
    .case-prose { max-inline-size: 47.5rem; }
    .case-prose > section { padding-block: var(--space-8); }
    .case-related { padding-block: var(--space-8); padding-inline-start: calc((100% - var(--space-6)) / 4 + var(--space-6)); }
    .case-contact { padding-block: var(--space-9); }
  }
  @media (hover: hover) and (pointer: fine) {
    .case-entry h2 a:hover, .case-related h2 a:hover, .case-toc a:hover { text-decoration: underline; }
    .button--outline:hover { background: var(--accent); color: var(--white); border-color: var(--accent); }
  }
}

@layer preferences {
  @media (forced-colors: active) {
    .case-callout, .case-figure img, .case-figure > svg, .plant-request, .plant-promise-flow li, .plant-maturity li { border: 1px solid CanvasText; }
    .plant-bar-track, .plant-rating i { border: 1px solid CanvasText; }
  }
}

/* Approved report-derived software delivery figures. */

/* Isolated flow-doc extensions of the established Kado/report vocabulary. */
@layer components {
  .software-study { --report-navy: #182c40; --report-teal: #147d83; --report-pale: #edf5f4; --report-sand: #f5f2ec; }
  .harness-flow { margin-block: var(--space-6) var(--space-7); padding-block-start: var(--space-5); border-block-start: 2px solid var(--report-teal); }
  .harness-flow .case-pipeline { margin-block: 0; gap: var(--space-3); }
  .harness-flow .case-pipeline li { position: relative; display: grid; align-content: center; gap: var(--space-2); padding: var(--space-4); border: 0; background: var(--report-pale); min-inline-size: 0; }
  .harness-flow .case-pipeline .step-number { color: var(--report-teal); font-size: var(--type-small); }
  .harness-flow .case-pipeline li > span:last-child { font-size: var(--type-small); line-height: 1.4; font-weight: 600; }
  .harness-flow .case-pipeline li:last-child { background: var(--report-teal); color: var(--white); }
  .harness-flow .case-pipeline li:last-child .step-number { color: var(--white); }
  .harness-flow .case-pipeline li:not(:last-child)::after { content: "↓"; position: absolute; inset-inline-start: 50%; inset-block-end: calc(-1 * var(--space-4)); z-index: 1; transform: translateX(-50%); color: var(--report-teal); font-size: var(--type-lead); }
  .harness-flow figcaption { font-size: var(--type-small); color: var(--muted); line-height: 1.6; margin-block-start: var(--space-4); }
  .harness-table { inline-size: 100%; border-collapse:separate; border-spacing:0; border-radius:var(--radius-panel); overflow:hidden; margin-block: var(--space-6); font-size: var(--type-base); line-height: 1.65; }
  .harness-table caption { text-align: start; caption-side: top; color: var(--report-teal); font-weight: 600; text-transform: uppercase; letter-spacing: .075em; padding-block-end: var(--space-4); }
  .harness-table th, .harness-table td { padding: var(--space-4); text-align: start; vertical-align: top; overflow-wrap: anywhere; }
  .harness-table thead { color:var(--white); font-size:var(--type-small); }
  .harness-table thead th { background:var(--report-navy); }
  .harness-table thead th:first-child { border-start-start-radius:var(--radius-panel); }
  .harness-table thead th:last-child { border-start-end-radius:var(--radius-panel); }
  .harness-table tbody th { inline-size: 34%; font-weight: 600; color: var(--report-navy); }
  .harness-table tbody tr { background: var(--report-pale); border-block-end: 1px solid var(--white); }
  .harness-table tbody tr:nth-child(even) { background: var(--report-sand); }
  .harness-table tbody td { color: var(--muted); }
  .harness-reference { border-block-start: 2px solid var(--report-teal); padding-block-start: var(--space-5); }
  .harness-reference h3 { font-size: var(--type-lead); line-height: 1.4; margin-block-end: var(--space-5); }
  .harness-source { font-size: var(--type-small); color: var(--muted); margin-block-start: var(--space-3); line-height: 1.65; }
  .harness-source a { text-underline-offset: .2em; }
}
@layer responsive {
  @media (min-width: 40rem) {
    .software-study .case-facts dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .harness-flow .case-pipeline { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .harness-flow .case-pipeline li { align-content: start; padding: var(--space-3); }
    .harness-flow .case-pipeline li:not(:last-child)::after { content: "→"; inset-inline: auto calc(-1 * var(--space-4)); inset-block: 50% auto; transform: translateY(-50%); }
  }
  @media (min-width: 64rem) {
    .software-study .case-facts dl { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  }
  @media (max-width: 39.999rem) {
    .case-facts dl > div { grid-template-columns:minmax(0,1fr); gap:var(--space-2); }
    .case-facts dd { margin-block-start:0; }
    .harness-table thead { display: none; }
    .harness-table tbody, .harness-table tr, .harness-table th, .harness-table td { display: block; inline-size: 100%; }
    .harness-table tbody th { inline-size: 100%; padding-block-end: var(--space-2); }
    .harness-table tbody td { padding-block-start: 0; }
    .harness-table tr + tr { border-block-start: var(--space-2) solid var(--paper); }
    .harness-table tbody tr { border-radius:var(--radius-control); }
    .harness-table { font-size: var(--type-base); }
  }
}
@layer preferences {
  @media (forced-colors: active) {
    .harness-table tr, .harness-flow .case-pipeline li { border: 1px solid CanvasText; }
  }
}
