/* Project-specific compositions; type, spacing, shell and artifacts use case-system.css. */
.case-theme--vibrant-grants {
  /* A blue of its own. The previous #08788a was byte-identical to
     .case-theme--razorpay-website and a near match for the research page, so
     this case study read as a reskin. Values chosen for measured separation
     from every existing theme (min deltaE 18.2 on the paper accent, 9.3 on the
     surface, 11.7 on the on-dark accent) and for contrast: 8.39:1 on white,
     8.81:1 on the surface. */
  --case-surface: #0e1c30;
  --case-accent: #1d4e89;
  --case-accent-rgb: 29, 78, 137;
  --case-accent-dark: #8ac4ea;
  --case-accent-dark-rgb: 138, 196, 234;
  --vg-line: rgba(138, 196, 234, .6);
  --vg-line-soft: rgba(138, 196, 234, .12);
  --vg-badge-ink: #cfe6f6;
}
.case-theme--vibrant-grants .vibrant-copy { max-width: 680px; margin: 0 0 20px; color: var(--case-copy); font-size: 17px; line-height: 1.75; }
.case-theme--vibrant-grants .strip-dark .vibrant-copy { color: rgba(255,255,255,.72); }
.case-theme--vibrant-grants .vibrant-copy--transition { margin-top: 28px; }
.case-theme--vibrant-grants .case-hero { min-height: 0; padding: 104px 0 44px; }
.case-theme--vibrant-grants .case-hero h1 { font-size: clamp(36px,5.2vw,64px); margin-bottom: 24px; }
.case-theme--vibrant-grants .hero-standfirst { margin-bottom: 28px; font-size: clamp(17px,1.6vw,19px); line-height: 1.6; }
.case-theme--vibrant-grants .snapshot { padding-bottom: 36px; }
.case-theme--vibrant-grants .strip { padding: clamp(44px,6vw,72px) 0; }
.case-theme--vibrant-grants .strip h2, .case-theme--vibrant-grants .case-ending h2 { max-width: 30ch; font-size: clamp(28px,3.3vw,40px); line-height: 1.2; margin-bottom: 20px; }
.case-theme--vibrant-grants .kicker { text-transform: none; letter-spacing: .02em; }
/* Keep the node field off the long dark content strips, where it competes
   with the figures, but let the hero have it like the canonical cases. Its
   colour is read from --case-accent-dark-rgb by shell.js. */
.case-theme--vibrant-grants .dark-section__network { display: none; }
.case-theme--vibrant-grants .case-hero--dark .dark-section__network,
.case-theme--vibrant-grants .case-hero__network { display: block; opacity: .34; }
/* First fold. The flat fill here previously overrode the case system's
   radial glow, leaving a bare rectangle while every sibling case study had
   depth. Two cool stops now sit high-right like the rest of the family, and
   both fade well before the bottom edge so the join with the dark snapshot
   band below stays seamless. */
.case-theme--vibrant-grants .case-hero--dark {
  background:
    radial-gradient(58vw 46vw at 86% 6%, rgba(138, 196, 234, .20), transparent 62%),
    radial-gradient(34vw 30vw at 97% 0%, rgba(93, 158, 214, .16), transparent 58%),
    var(--case-surface);
}
.product-introduction { max-width: 900px; margin: 28px 0; }
.product-introduction > a { display: block; cursor: zoom-in; }
.project-result { max-width: 76ch; margin: 24px 0 0; color: var(--case-copy); font-size: 15px; line-height: 1.7; }
.case-appendix { margin-top: 32px; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.case-appendix > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; padding: 18px 28px 18px 0; position: relative; cursor: pointer; list-style: none; color: var(--case-ink); font-size: 15px; font-weight: 600; }
.case-appendix > summary::-webkit-details-marker { display: none; }
.case-appendix > summary > span { color: var(--case-muted); font-size: 13px; font-weight: 400; }
.case-appendix > summary::after { content: "+"; position: absolute; right: 0; color: var(--case-accent); font-size: 22px; font-weight: 400; }
.case-appendix[open] > summary::after { content: "−"; }
.case-appendix > summary:focus-visible { outline: 2px solid var(--case-accent); outline-offset: 3px; }
.case-appendix__body { padding-bottom: 28px; }
.case-appendix .fx { opacity: 1; transform: none; transition: none; }
.case-appendix h3 { font-size: 24px; }
.case-theme--vibrant-grants .section-rail-mobile__scroller { padding-top: 6px; padding-bottom: 6px; }
.case-theme--vibrant-grants .fx { transition-duration: .45s; transform: translateY(18px); }
.case-theme--vibrant-grants .fx.in { transform: none; }
.case-theme--vibrant-grants .snap-item .s-label { font-size: 12px; }
.case-theme--vibrant-grants .case-hero--dark + .snapshot .s-label { color: rgba(255,255,255,.76); }
.case-theme--vibrant-grants .case-hero--dark + .snapshot .s-value small { color: rgba(255,255,255,.78); }
.case-theme--vibrant-grants .case-hero--dark .eyebrow { color: rgba(255,255,255,.76); }
.case-theme--vibrant-grants .case-hero--dark .hero-standfirst { color: rgba(255,255,255,.8); }
.funding-context { max-width: 680px; margin: 28px 0; color: var(--case-copy); font-size: 15px; line-height: 1.75; }
.funding-context a { color: var(--case-accent); text-decoration: underline; text-underline-offset: 3px; }
.client-blurb { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: center; gap: 28px; max-width: 780px; margin-top: 40px; padding: 24px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.client-blurb img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.client-blurb h3 { margin: 0 0 16px; font-family: var(--case-serif); font-size: clamp(24px,3vw,32px); font-style: italic; font-weight: 400; line-height: 1.3; }
.client-blurb > div > p:not(.kicker) { margin: 0 0 14px; color: var(--case-copy); font-size: 14px; line-height: 1.75; }
.client-blurb > div > p:last-child { margin-bottom: 0; }
.stakeholder-map { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.8fr); align-items: center; gap: 28px 56px; margin: 48px 0 0; }
.stakeholder-map h3, .participant-evidence h3, .format-findings h3, .review-evidence h3 { margin: 0 0 20px; font-size: clamp(24px,3vw,32px); line-height: 1.25; letter-spacing: -.025em; }
.stakeholder-map p { max-width: 48ch; color: var(--case-copy); font-size: 16px; line-height: 1.75; }
.stakeholder-map img { display: block; width: 100%; height: auto; max-width: 420px; margin: 0 auto; mix-blend-mode: multiply; }
.stakeholder-map > a { display: block; cursor: zoom-in; }
.stakeholder-map > figcaption { grid-column: 1 / -1; max-width: 80ch; color: var(--case-muted); font-size: 12px; line-height: 1.7; }
.research-findings { margin-top: 32px; }
.research-findings > article { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 40px; padding: 28px 0; border-top: 1px solid var(--case-border); }
.research-findings h3 { margin: 0 0 12px; color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(23px,2.5vw,28px); font-weight: 400; line-height: 1.3; }
.research-findings p:not(.finding-source):not(.finding-label), .format-findings article p:not(.finding-label) { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.75; }
.finding-source, .finding-label { margin: 0 0 12px; color: var(--case-accent); font-size: 12px; font-weight: 600; line-height: 1.6; }
.participant-evidence, .format-findings, .review-evidence { margin-top: 40px; }
.participant-matrix tbody td:nth-child(2) { width: 24%; color: var(--case-copy); }
.study-sample-note { max-width: 80ch; margin: 18px 0 0; color: var(--case-muted); font-size: 13px; line-height: 1.7; }
.case-theme--vibrant-grants .research-timeline { max-width: 740px; margin-top: 36px; }
.prototype-evidence { margin: 36px 0; }
.prototype-evidence .artifact-figure { margin: 0 0 36px; }
.prototype-evidence .artifact-figure:first-child { max-width: 720px; }
.prototype-evidence .artifact-figure:last-child { max-width: 960px; }
.prototype-evidence .artifact-figure > a { display: block; cursor: zoom-in; }
.refinement-case { max-width: 900px; margin: 28px 0; padding: clamp(22px,3vw,32px); background: rgba(var(--case-accent-rgb),.05); }
.refinement-case h3, .recorded-eval-case h3 { margin: 0 0 20px; color: var(--case-ink); font-family: var(--case-serif); font-weight: 400; font-size: clamp(23px,2.5vw,28px); line-height: 1.3; }
.recorded-eval-case h3 { font-family: var(--case-font); font-weight: 600; font-size: clamp(21px,2.2vw,25px); }
.refinement-case__steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; margin: 28px 0 0; }
.refinement-case__steps > div { padding-top: 16px; border-top: 1px solid var(--case-border); }
.refinement-case__steps dt, .recorded-eval-case dt { margin-bottom: 10px; color: var(--case-accent); font-size: 13px; font-weight: 600; line-height: 1.5; }
.refinement-case__steps dd, .recorded-eval-case dd { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.7; }
.recorded-eval-case { max-width: 900px; margin: 32px 0; }
.recorded-eval-case dl { margin: 24px 0 0; }
.recorded-eval-case dl > div { display: grid; grid-template-columns: minmax(140px,.3fr) minmax(0,.7fr); gap: 28px; padding: 18px 0; border-top: 1px solid var(--case-border); }
.opportunity-matrix { table-layout: fixed; font-size: 14px; }
.opportunity-matrix tbody th { width: 23%; }
.opportunity-matrix tbody td { color: var(--case-copy); }
.format-findings > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
.format-findings article { padding-top: 20px; border-top: 1px solid var(--case-border); }
.study-pills { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 24px; padding: 0; list-style: none; }
.study-pills li { padding: 8px 14px; border: 1px solid var(--case-border); border-radius: 999px; color: var(--case-copy); font-size: 13px; line-height: 1.5; }
.artifact-figure--expandable > a { display: block; cursor: zoom-in; }
.artifact-figure--expandable figcaption a { color: var(--case-accent); text-decoration: underline; text-underline-offset: 3px; }
.evaluation-method { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 36px; margin: 32px 0; padding: 24px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.evaluation-method dt { margin-bottom: 6px; color: var(--case-accent); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.evaluation-method dd { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.6; }
.evaluation-pipeline { margin: 40px 0; }
.evaluation-pipeline ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.evaluation-pipeline li { position: relative; display: grid; place-items: center; min-height: 108px; padding: 16px 8px; border: 1px solid var(--case-accent); border-radius: 6px 15px 5px 12px; text-align: center; color: var(--case-ink); font-family: var(--case-serif); font-size: 16px; font-style: italic; line-height: 1.4; }
.evaluation-pipeline li:not(:last-child)::after { content: "→"; position: absolute; right: -21px; top: calc(50% - 15px); color: var(--case-accent); font-size: 22px; }
.evaluation-limit { max-width: 78ch; margin: 20px 0; color: var(--case-copy); font-size: 14px; line-height: 1.7; }
.eval-matrix { width: 100%; margin-top: 24px; border-collapse: collapse; text-align: left; font-size: 13px; line-height: 1.6; }
.eval-matrix th, .eval-matrix td { padding: 15px 12px; vertical-align: top; border-bottom: 1px solid var(--case-border); }
.eval-matrix thead th { color: var(--case-accent); font-size: 12px; letter-spacing: .05em; font-weight: 700; }
.eval-matrix tbody th { width: 31%; padding-left: 0; font-weight: 600; color: var(--case-ink); }
.eval-matrix tbody td:last-child { color: var(--case-copy); }
.eval-matrix__number { display: inline-block; min-width: 30px; color: var(--case-accent); font-family: var(--case-serif); font-style: italic; font-weight: 400; }
.eval-matrix__additional { border-top: 2px solid var(--case-accent); }
.eval-result { display: inline-block; white-space: nowrap; padding: 3px 8px; border-radius: 4px; background: rgba(var(--case-accent-rgb),.07); color: var(--case-accent); font-size: 12px; font-weight: 600; }
.eval-result--partial { background: #f8eedb; color: #775010; }
.eval-result--fail { background: #f9e7e3; color: #923d2e; }
.eval-result-key { margin-top: 16px; color: var(--case-copy); font-size: 12px; line-height: 1.7; }
.evaluation-decisions { margin-top: 40px; }
.evaluation-decisions > h3 { margin: 0 0 24px; font-size: clamp(24px,3vw,32px); line-height: 1.2; letter-spacing: -.025em; }
.decision-matrix { table-layout: fixed; font-size: 14px; }
.decision-matrix tbody th { width: auto; }
.decision-matrix tbody td { color: var(--case-copy); }
.decision-status { display: block; margin-bottom: 8px; color: var(--case-accent); font-size: 12px; font-weight: 600; }
.delivery-changes { margin: 40px 0 0; border-top: 1px solid var(--case-border); }
.delivery-changes > div { display: grid; grid-template-columns: minmax(140px,.25fr) minmax(0,.75fr); gap: 32px; padding: 24px 0; border-bottom: 1px solid var(--case-border); }
.delivery-changes dt { color: var(--case-accent); font-family: var(--case-serif); font-size: 20px; font-style: italic; }
.delivery-changes dd { margin: 0; color: var(--case-copy); font-size: 16px; line-height: 1.7; }
.funding-quote { max-width: 780px; margin: 40px 0; padding: 12px 0 12px 24px; border-left: 2px solid var(--case-accent); }
.funding-quote p { margin: 0; color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(24px,3vw,34px); font-style: italic; line-height: 1.4; }
.funding-quote cite { display: block; margin-top: 16px; color: var(--case-muted); font-family: var(--case-font); font-size: 12px; font-style: normal; }
.story-turn { display: flex; gap: 24px; align-items: center; max-width: 760px; margin-top: 48px; }
.story-turn svg { flex: 0 0 84px; width: 84px; height: 70px; }
.story-turn path { stroke: var(--case-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.story-turn p { margin: 0; color: var(--case-accent); font-family: var(--case-serif); font-size: clamp(22px,2.7vw,28px); font-style: italic; line-height: 1.4; }
.case-theme--vibrant-grants .case-orientation p { max-width: 32ch; }
.research-journey { margin: 56px 0 0; }
.research-journey__bookends { display: flex; justify-content: space-between; gap: 24px; color: var(--case-accent); font-family: var(--case-serif); font-size: 18px; font-style: italic; }
.research-journey__bookends span:first-child { transform: rotate(-3deg); }
.research-journey__bookends span:last-child { transform: rotate(2deg); }
.research-journey__drawing { position: relative; margin-top: 28px; }
.research-journey__line { position: absolute; pointer-events: none; overflow: visible; }
.research-journey__line--desktop { top: 140px; left: 0; width: 100%; height: 160px; }
.research-journey__line--mobile { display: none; }
.research-journey__stroke, .research-journey__arrow { stroke: var(--case-accent); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.research-journey__echo { stroke: var(--case-accent); stroke-width: 1; opacity: .18; vector-effect: non-scaling-stroke; }
.research-journey__dots { fill: var(--case-paper); stroke: var(--case-accent); stroke-width: 2; }
.research-journey__stages { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.research-journey__stages li { position: relative; display: grid; grid-template-rows: 140px 160px 140px; min-width: 0; padding: 0 12px; }
.research-journey__label { grid-row: 1; align-self: end; padding-bottom: 14px; }
.research-journey__stages li:nth-child(even) .research-journey__label { grid-row: 3; align-self: start; padding-top: 14px; padding-bottom: 0; }
.research-journey__stages li::after { content: ""; position: absolute; top: 142px; left: 50%; height: 50px; border-left: 1px dashed var(--case-border); transform: rotate(-4deg); }
.research-journey__stages li:nth-child(even)::after { top: 253px; height: 45px; transform: rotate(5deg); }
.research-journey__label h3 { margin: 0 0 10px; font-family: var(--case-serif); font-size: 19px; font-style: italic; font-weight: 400; line-height: 1.25; }
.research-journey__label p { margin: 0; color: var(--case-copy); font-size: 13px; line-height: 1.8; }
.research-journey figcaption { max-width: 65ch; margin-top: 16px; color: var(--case-muted); font-size: 12px; line-height: 1.7; }
.vibrant-conversation { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; align-items: start; margin-top: 28px; }
.vibrant-conversation .chat-demo { max-width: 680px; }
.case-theme--vibrant-grants .principles { margin: 36px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--case-border); }
.case-theme--vibrant-grants .principles li { display: grid; grid-template-columns: minmax(100px,.4fr) minmax(0,.6fr); gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--case-border); font-size: 14px; line-height: 1.65; }
.case-theme--vibrant-grants .principles span { color: var(--case-muted); }
.chat-demo { padding: clamp(20px,3vw,32px); border: 1px solid var(--case-border); border-radius: 15px; }
.chat-demo__label { margin: 0 0 24px; color: var(--case-muted); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.bubble { max-width: 89%; padding: 14px 16px; margin: 14px 0; border-radius: 15px; font-size: 14px; line-height: 1.65; }
.bubble--ai { background: rgba(var(--case-accent-rgb),.08); border-bottom-left-radius: 3px; }
.bubble--user { margin-left: auto; background: var(--case-surface); color: #fff; border-bottom-right-radius: 3px; }
.decision-table { margin-top: 48px; border-top: 1px solid rgba(255,255,255,.18); }
.decision-table > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.8fr) minmax(0,2fr); gap: 28px; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.18); font-size: 14px; line-height: 1.65; }
.decision-table__head { color: rgba(255,255,255,.55); font-size: 11px !important; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.decision-table [role="cell"]:last-child { color: rgba(255,255,255,.72); }
.badge { display: inline-block; padding: 6px 12px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: var(--case-accent-dark); font-size: 11px; font-weight: 700; font-style: normal; }
.eval-examples { margin-top: 64px; }
.eval-examples > h3, .vibrant-contribution h3 { margin: 0 0 20px; font-size: clamp(24px,3vw,34px); letter-spacing: -.025em; line-height: 1.2; }
.example-note { max-width: 680px; margin: 0 0 30px; color: var(--case-copy); font-size: 15px; line-height: 1.75; }
.eval-case { border-top: 1px solid var(--case-border); }
.eval-case:last-child { border-bottom: 1px solid var(--case-border); }
.eval-case summary { display: flex; align-items: center; gap: 18px; padding: 24px 0; cursor: pointer; list-style: none; font-size: clamp(18px,2vw,22px); font-weight: 600; line-height: 1.4; }
.eval-case summary::-webkit-details-marker { display: none; }
.eval-case summary > span:first-child { color: var(--case-accent); font-family: var(--case-serif); font-style: italic; }
.eval-case summary:focus-visible { outline: 2px solid var(--case-accent); outline-offset: 5px; }
.case-toggle { margin-left: auto; color: var(--case-accent); font-size: 24px; }
.eval-case[open] .case-toggle { transform: rotate(45deg); }
.eval-case__body { padding-bottom: 30px; }
.eval-case__body > p { max-width: 840px; color: var(--case-copy); font-size: 15px; line-height: 1.75; }
.response-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 24px 0; }
.response-example { padding: 24px; border: 1px solid var(--case-border); border-radius: 15px; }
.response-example--expected { background: rgba(var(--case-accent-rgb),.06); }
.response-example p { color: var(--case-copy); font-size: 15px; line-height: 1.75; }
.response-example .response-label { margin: 0 0 18px; color: var(--case-accent); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.response-example .response-reason { padding-top: 16px; margin-bottom: 0; border-top: 1px solid var(--case-border); color: var(--case-muted); font-size: 13px; }
.vibrant-contribution { max-width: 680px; margin-top: 64px; padding: 34px 0 0; border-top: 1px solid var(--case-border); }
.vibrant-contribution > p:last-child { color: var(--case-copy); font-size: 17px; line-height: 1.75; }
.evaluated-case { margin-top: 48px; padding: clamp(24px,4vw,40px); border: 1px solid var(--case-border); border-radius: 15px; background: rgba(var(--case-accent-rgb),.04); }
.evaluated-case h3, .evaluation-findings > h3 { margin: 0; font-size: clamp(24px,3vw,34px); letter-spacing: -.025em; line-height: 1.2; }
.evidence-note { max-width: 75ch; margin: 24px 0 0; color: var(--case-muted); font-size: 12px; line-height: 1.7; }
.evaluation-findings { margin-top: 48px; }
.evaluation-findings .finding-list { margin-top: 24px; }
.evaluation-criteria-label { margin-top: 52px; }
.review-sketch__recommendation { margin-top: 36px; color: var(--case-accent); font-weight: 600; }
/* Sketches explain different relationships: a shared need, a process, and a review checkpoint. */
.funding-map, .grant-process, .review-sketch { margin: 52px 0 0; }
.funding-map__needs, .grant-process__stages { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.funding-map__needs { gap: 52px; }
.funding-map__needs > article:not(:first-child)::before { content: "+"; position: absolute; left: -39px; top: calc(50% - 25px); color: var(--case-accent); font-family: var(--case-serif); font-size: 38px; font-style: italic; transform: rotate(-5deg); }
.sketch-node { position: relative; min-width: 0; padding: 28px; }
.sketch-node__outline { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.sketch-node__outline path, .funding-map__connections path, .funding-map__center path, .grant-process__arrow path, .review-sketch__handoff path { stroke: var(--case-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.sketch-node h3, .funding-map__center h3, .review-sketch h3 { position: relative; margin: 0 0 16px; font-family: var(--case-serif); font-size: clamp(22px,2.5vw,28px); font-style: italic; font-weight: 400; line-height: 1.25; }
.sketch-node p { position: relative; margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.75; }
.funding-map__connections { display: block; width: 100%; height: 110px; }
.funding-map__connections--mobile { display: none; }
.funding-map__center { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 170px; max-width: 460px; margin: 0 auto; padding: 25px 36px; text-align: center; }
.funding-map__center svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.funding-map__center h3 { margin-bottom: 8px; color: var(--case-accent); font-size: 36px; }
.funding-map__center p { position: relative; margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.5; }
.funding-map figcaption, .grant-process figcaption, .review-sketch figcaption { margin-top: 24px; max-width: 78ch; color: var(--case-muted); font-size: 12px; line-height: 1.7; }
.grant-process__stages { margin: 0; padding: 0; list-style: none; gap: 42px; }
.grant-process .sketch-node { display: flex; flex-direction: column; padding: 28px 24px; border: 1px solid var(--vg-line); border-radius: 7px 14px 6px 12px; }
.grant-process .sketch-node h3 { min-height: 2.5em; color: #fff; }
.grant-process .sketch-node .badge { align-self: flex-start; max-width: 100%; white-space: normal; line-height: 1.6; color: var(--vg-badge-ink); background: var(--vg-line-soft); }
.grant-process .sketch-node p { margin-top: 18px; color: rgba(255,255,255,.78); }
.grant-process .grant-process__reason { padding-top: 18px; border-top: 1px dashed rgba(255,255,255,.25); }
.grant-process__arrow { position: absolute; top: 34px; right: -45px; width: 48px; height: 30px; }
.grant-process__aside { margin-top: 26px; }
.grant-process__aside > span { color: var(--case-accent); font-family: var(--case-serif); font-size: 18px; font-style: italic; }
.grant-process .grant-process__aside p { margin-top: 8px; font-size: 13px; }
.grant-process__review { margin-top: 30px; padding: 20px 8px; border-top: 1px dashed rgba(255,255,255,.3); text-align: center; }
.grant-process__review > span { color: var(--case-accent); font-family: var(--case-serif); font-size: 20px; font-style: italic; }
.grant-process__review p { margin: 10px 0 0; color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.6; }
.grant-process figcaption { color: rgba(255,255,255,.55); }
.review-sketch { padding: clamp(20px,4vw,40px); border: 1px solid var(--case-border); border-radius: 4px 18px 6px 14px; }
.review-sketch__intro { max-width: 680px; color: var(--case-copy); font-size: 14px; line-height: 1.75; }
.review-sketch__items, .project-status { margin: 32px 0 0; border-top: 1px solid var(--case-border); }
.review-sketch__items > div, .project-status > div { display: grid; grid-template-columns: minmax(130px,.25fr) minmax(0,.75fr); gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--case-border); }
.review-sketch__items dt, .project-status dt { color: var(--case-accent); font-family: var(--case-serif); font-size: 19px; font-style: italic; line-height: 1.4; }
.review-sketch__items dd, .project-status dd { margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.75; }
.review-sketch__items strong { display: block; margin-bottom: 6px; color: var(--case-ink); font-weight: 600; }
.review-sketch__handoff { display: flex; align-items: center; gap: 22px; margin-top: 32px; color: var(--case-accent); font-family: var(--case-serif); font-size: 18px; font-style: italic; line-height: 1.5; }
.review-sketch__handoff svg { width: 54px; height: 30px; flex-shrink: 0; }
.case-extra { margin-top: 32px; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.case-extra summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; cursor: pointer; list-style: none; color: var(--case-accent); font-size: 15px; font-weight: 600; line-height: 1.5; }
.case-extra summary::-webkit-details-marker { display: none; }
.case-extra summary::after { content: "+"; font-size: 24px; font-weight: 400; }
.case-extra[open] summary::after { content: "−"; }
.case-extra summary:focus-visible { outline: 2px solid var(--case-accent); outline-offset: 4px; }
.case-extra .artifact-figure { margin: 12px 0 28px; }
.evaluation-results { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; margin-top: 24px; }
.evaluation-results article { padding: 24px 0; border-top: 1px solid var(--case-border); }
.evaluation-results__status { display: block; margin-bottom: 14px; color: var(--case-accent); font-family: var(--case-serif); font-size: 16px; font-style: italic; }
.evaluation-results h3 { margin: 0 0 14px; font-size: clamp(22px,2.5vw,28px); letter-spacing: -.025em; line-height: 1.2; }
.evaluation-results p, .stress-test-input { color: var(--case-copy); font-size: 15px; line-height: 1.75; }
.evaluation-results .evaluation-results__lesson { color: var(--case-ink); font-weight: 600; }
.stress-test-input { max-width: 60ch; margin: 24px 0; }
.eval-coverage { margin-top: 40px; }
.eval-coverage > h3, .eval-takeaway h3 { margin: 0 0 24px; font-size: clamp(24px,3vw,32px); line-height: 1.2; letter-spacing: -.025em; }
.eval-coverage__groups { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.eval-coverage__groups article { padding: 20px 0; border-top: 1px solid var(--case-border); }
.eval-coverage__groups h4 { margin: 0 0 16px; color: var(--case-accent); font-family: var(--case-serif); font-size: 19px; font-weight: 400; font-style: italic; line-height: 1.3; }
.eval-coverage__groups ul { margin: 0; padding-left: 17px; color: var(--case-copy); font-size: 13px; line-height: 1.6; }
.eval-coverage__groups li { margin-bottom: 8px; }
.eval-coverage__groups li::marker { color: var(--case-accent); }
.eval-takeaway { max-width: 780px; margin-top: 40px; padding: 28px 0 0; border-top: 2px solid var(--case-accent); }
.eval-takeaway p:not(.kicker) { margin: 0 0 18px; color: var(--case-copy); font-size: 17px; line-height: 1.75; }
.eval-rubric-block, .eval-grading, .eval-next { margin-top: 40px; }
.eval-rubric-block > h3, .eval-grading > h3, .eval-next > h3 { margin: 0 0 24px; font-size: clamp(24px,3vw,32px); line-height: 1.2; letter-spacing: -.025em; }
.eval-rubric { margin: 0; border-top: 1px solid var(--case-border); }
.eval-rubric > div { display: grid; grid-template-columns: minmax(180px,.3fr) minmax(0,.7fr); gap: 28px; padding: 18px 0; border-bottom: 1px solid var(--case-border); }
.eval-rubric dt { color: var(--case-accent); font-size: 15px; font-weight: 600; line-height: 1.6; }
.eval-rubric dd { margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.7; }
.eval-rubric + .vibrant-copy { margin-top: 24px; }
.case-theme--vibrant-grants .evaluation-findings { margin-top: 28px; }
.eval-grading__scale { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 28px; }
.eval-grading__scale article { padding: 20px 0; border-top: 1px solid var(--case-border); }
.eval-grading__scale h4 { margin: 0 0 12px; color: var(--case-accent); font-family: var(--case-serif); font-size: 22px; font-style: italic; font-weight: 400; }
.eval-grading__scale p { margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.7; }
.eval-next__checks { max-width: 780px; margin: 0; padding-left: 20px; color: var(--case-copy); font-size: 15px; line-height: 1.75; }
.eval-next__checks li { padding-left: 5px; margin-bottom: 16px; }
/* Reading hierarchy: evidence, decisions, and annotated product details. */
.brief-question { max-width: 780px; margin: 28px 0; padding: 20px 0; border-top: 1px solid var(--case-border); }
.brief-question > p:not(.finding-label) { margin: 0 0 12px; color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(22px,2.5vw,27px); line-height: 1.4; }
.brief-question small { display: block; max-width: 65ch; color: var(--case-muted); font-size: 14px; line-height: 1.7; }
.brief-question > .finding-label { margin-bottom: 16px; font-size: 18px; font-weight: 700; color: var(--case-accent); }
.study-pills--dark li { color: rgba(255,255,255,.78); border-color: rgba(255,255,255,.25); }
.research-sample, .evaluation-scope { max-width: 80ch; margin: 0 0 24px; color: var(--case-muted); font-size: 14px; line-height: 1.7; }
.finding-links { margin: 32px 0; }
.finding-links > article { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.8fr); align-items: center; gap: 64px; padding: 28px 0; border-top: 1px solid var(--case-border); }
.finding-links > article:last-child { border-bottom: 1px solid var(--case-border); }
.finding-links h3 { margin: 0 0 16px; color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(23px,2.5vw,29px); font-weight: 400; line-height: 1.3; }
.finding-links p:not(.finding-label) { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.7; }
.finding-links blockquote { margin: 0 0 14px; color: var(--case-ink); font-family: var(--case-serif); font-size: 22px; font-style: italic; }
.finding-links__implication { position: relative; padding: 8px 0 8px 22px; border-left: 1px solid var(--case-border); }
.finding-links__implication h4 { margin: 0 0 12px; color: var(--case-ink); font-size: 18px; font-weight: 600; line-height: 1.4; }
.finding-links__implication::before { content: '↝'; position: absolute; left: -48px; top: calc(50% - 24px); color: var(--case-accent); font-size: 34px; }
.evidence-bars { margin: 20px 0; }
.evidence-bars > div + div { margin-top: 18px; }
.evidence-bars span { display: block; margin-bottom: 8px; color: var(--case-copy); font-size: 14px; line-height: 1.5; }
.evidence-bars b { color: var(--case-accent); font-size: 18px; }
.evidence-bars i { display: block; position: relative; height: 8px; width: 100%; background: rgba(var(--case-accent-rgb),.08); border-radius: 4px 7px 3px 5px; }
.evidence-bars i::before { content: ''; display: block; width: var(--bar-size); height: 100%; border-radius: inherit; background: var(--case-accent); }
.co-design-evidence { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 48px; margin: 32px 0; }
.participant-quote { margin: 0; padding: 8px 0 8px 24px; border-left: 2px solid var(--case-accent); }
.participant-quote > p { margin: 0 0 16px; color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(22px,2.4vw,27px); line-height: 1.4; }
.participant-quote cite { display: block; color: var(--case-muted); font-size: 12px; font-style: normal; line-height: 1.6; }
.co-design-evidence .study-sample-note { margin-top: 14px; }
.co-design-evidence > div > p { margin: 0; color: var(--case-copy); font-size: 16px; line-height: 1.75; }
.strategy-review-note { max-width: 80ch; margin: 24px 0 0; color: rgba(255,255,255,.76); font-size: 14px; line-height: 1.7; }
.client-authority { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: 36px; margin-top: 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.25); }
.client-authority h3 { margin: 0; font-family: var(--case-serif); font-size: 25px; font-weight: 400; line-height: 1.35; color: #fff; }
.client-authority p { margin: 0; color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.7; }
.reporting-path { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; margin: 28px 0 0; padding: 0; list-style: none; }
.reporting-path li { position: relative; padding: 16px; border: 1px solid var(--case-accent); border-radius: 6px 14px 5px 10px; }
.reporting-path li + li::before { content: '↝'; position: absolute; left: -32px; top: calc(50% - 20px); font-size: 27px; color: var(--case-accent); }
.reporting-path span { display: block; color: var(--case-ink); font-size: 16px; font-weight: 600; line-height: 1.4; }
.reporting-path small { display: block; margin-top: 10px; color: var(--case-copy); font-size: 13px; line-height: 1.6; }
.vibrant-conversation .chat-demo { margin-top: 24px; }
.interaction-findings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin: 24px 0 0; }
.interaction-findings article { padding: 20px 0; border-top: 1px solid var(--case-border); }
.interaction-findings h4, .screen-notes h4, .scenario-map h4, .next-testing h4 { margin: 0 0 12px; color: var(--case-ink); font-size: 16px; font-weight: 600; line-height: 1.5; }
.interaction-findings p { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.7; }
.review-quote { max-width: 740px; margin: 32px 0 24px; }
.annotated-product { display: grid; grid-template-columns: minmax(0,1fr); max-width: 900px; gap: 20px; align-items: start; margin: 28px 0 0; }
.annotated-product__screen h3 { margin: 0 0 20px; font-size: 21px; color: var(--case-ink); line-height: 1.4; }
.annotated-product__screen > a { display: block; position: relative; aspect-ratio: 1.45; overflow: hidden; border: 1px solid var(--case-border); border-radius: 6px; cursor: zoom-in; }
/* Focus on the task rather than the laptop frame; the link opens the full artifact. */
.annotated-product img { display: block; position: absolute; width: 111%; max-width: none; height: auto; left: -7%; top: -15%; }
.mobile-screen-note { display: none; }
.screen-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.screen-notes li { display: flex; gap: 12px; padding: 0; }
.screen-notes p { margin: 0; color: var(--case-copy); font-size: 13px; line-height: 1.7; }
.annotation-number, .screen-pin { display: grid; place-items: center; width: 26px; height: 26px; flex: 0 0 26px; border-radius: 50%; background: var(--case-accent); color: #fff; font-size: 13px; font-weight: 700; }
.screen-pin { position: absolute; transform: translate(-50%,-50%); box-shadow: 0 0 0 3px #fff; }
.screen-pin--source { left: 61%; top: 59%; }
.screen-pin--approval { left: 40%; top: 85%; }
.screen-pin--review { left: 22%; top: 70%; }
.annotated-product figcaption { grid-column: 1 / -1; color: var(--case-muted); font-size: 12px; line-height: 1.7; }
.scenario-map { margin: 28px 0; border-top: 1px solid var(--case-border); }
.scenario-map > div { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr); gap: 36px; padding: 20px 0; border-bottom: 1px solid var(--case-border); }
.scenario-map h4 { position: relative; }
.scenario-map h4::after { content: '→'; position: absolute; right: -26px; color: var(--case-accent); }
.scenario-map p { margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.7; }
.scenario-map__head span { color: var(--case-accent); font-size: 12px; font-weight: 600; }
.refinement-case .kicker .eval-result, .recorded-eval-case .kicker .eval-result { margin-left: 12px; }
.stopping-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin: 24px 0; }
.stopping-comparison > div { min-width: 0; padding: 20px; background: var(--case-bg,#fff); border: 1px solid var(--case-border); border-radius: 7px 13px 5px 9px; }
.stopping-flow { display: flex; align-items: center; gap: 12px; padding-bottom: 40px; }
.stopping-flow > span:not(.flow-arrow) { position: relative; flex: 1; min-width: 0; overflow-wrap: break-word; color: var(--case-ink); font-size: 15px; line-height: 1.6; }
.flow-arrow { color: var(--case-accent); font-size: 22px; }
.stopping-flow__loop { color: #923d2e !important; }
.stopping-flow__loop svg { position: absolute; width: 110%; height: 44px; left: -5%; top: calc(100% - 2px); }
.stopping-flow__loop path { stroke: #923d2e; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.stopping-flow__choice { padding: 10px; border: 1px solid var(--case-accent); border-radius: 4px; color: var(--case-accent) !important; }
.refinement-case .study-sample-note { margin: 0 0 20px; }
.conflict-map { display: grid; grid-template-columns: minmax(0,1fr) 100px minmax(0,1.2fr); gap: 20px; align-items: center; margin: 28px 0; padding: 24px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.conflict-map__sources { display: grid; gap: 14px; }
.conflict-map__sources span { padding: 12px; border: 1px solid var(--case-accent); border-radius: 5px 9px 3px 7px; font-size: 14px; color: var(--case-ink); }
.conflict-map svg { width: 100%; height: auto; }
.conflict-map path { stroke: var(--case-accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.conflict-map h4 { margin: 0; color: var(--case-ink); font-size: 18px; font-weight: 600; line-height: 1.4; }
.conflict-map p { margin: 12px 0 0; color: var(--case-copy); font-size: 14px; line-height: 1.7; }
.recorded-eval-case .case-decision { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
.recorded-eval-case .case-decision > div { display: block; }
.successful-behaviors { display: grid; grid-template-columns: minmax(0,.55fr) minmax(0,1.45fr); gap: 32px; margin: 24px 0; padding: 24px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.successful-behaviors h4 { margin: 0; color: var(--case-ink); font-size: 18px; line-height: 1.4; }
.successful-behaviors ul { margin: 0; padding-left: 18px; color: var(--case-copy); font-size: 14px; line-height: 1.7; }
.successful-behaviors li + li { margin-top: 12px; }
.next-testing, .delivery-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; margin-top: 28px; }
.next-testing > div, .delivery-summary > div { padding-top: 20px; border-top: 1px solid var(--case-border); }
.next-testing p { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.7; }
.delivery-result { max-width: 24ch; margin: 28px 0; color: var(--case-accent); font-family: var(--case-serif); font-size: clamp(28px,3.5vw,40px); line-height: 1.3; }
.delivery-summary h3 { margin: 0 0 16px; color: var(--case-ink); font-size: 19px; line-height: 1.4; }
.delivery-summary ul { margin: 0; padding-left: 18px; color: var(--case-copy); font-size: 15px; line-height: 1.8; }
.delivery-summary li + li { margin-top: 10px; }
.evaluation-method > div:nth-child(3) dd { color: var(--case-copy); font-size: 16px; line-height: 1.6; }
.case-theme--vibrant-grants .case-reflection h2 { font-size: clamp(25px,2.5vw,30px); }
.review-quote cite { font-size: 14px; }
/* Two explanatory sketches, using readable HTML labels rather than raster text. */
.opportunity-fit { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(100px,.6fr) minmax(0,1fr); grid-template-rows: 240px auto; gap: 16px; align-items: center; margin: 32px 0; padding: 0 40px; }
.opportunity-fit__drawing { position: absolute; top: 0; left: 0; width: 100%; height: 240px; pointer-events: none; }
.opportunity-fit__drawing--tall { display: none; }
.opportunity-fit__drawing path { stroke: var(--case-accent); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.opportunity-fit > div { position: relative; max-width: 220px; justify-self: center; text-align: center; }
.opportunity-fit h3 { margin: 0 0 12px; font-size: 17px; line-height: 1.4; color: var(--case-ink); }
.opportunity-fit p { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.7; }
.opportunity-fit__choice span { display: block; margin-bottom: 8px; color: var(--case-muted); font-size: 12px; }
.opportunity-fit .opportunity-fit__choice h3 { margin: 0; font-family: var(--case-serif); font-size: 25px; font-weight: 400; line-height: 1.2; color: var(--case-accent); }
.opportunity-fit figcaption, .evaluation-sketch figcaption { grid-column: 1 / -1; margin: 0; color: var(--case-muted); font-size: 13px; line-height: 1.7; }
.opportunity-fit figcaption { text-align: center; }
.evaluation-sketch { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.85fr) minmax(0,1fr); align-items: center; gap: 24px 64px; margin: 32px 0; }
.evaluation-sketch > div { position: relative; min-width: 0; }
.evaluation-sketch h3 { margin: 0 0 10px; color: var(--case-ink); font-size: 17px; line-height: 1.4; }
.evaluation-sketch p { margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.7; }
.test-input { position: relative; padding: 16px 18px; border: 1px solid var(--case-border); }
.test-input + .test-input { margin-top: 16px; }
.test-input--document { border-radius: 2px 16px 3px 2px; }
.test-input--conversation { border-radius: 13px 12px 12px 2px; }
.evaluation-sketch__arrow { position: absolute; top: calc(50% - 18px); right: -59px; width: 54px; height: 36px; }
.evaluation-sketch__arrow path { stroke: var(--case-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.evaluation-sketch__model { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 22px; text-align: center; }
.evaluation-sketch__model > svg:not(.evaluation-sketch__arrow) { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.evaluation-sketch__model > svg:not(.evaluation-sketch__arrow) path { stroke: var(--case-accent); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.evaluation-sketch__model > span { display: block; margin-bottom: 8px; color: var(--case-muted); font-size: 12px; }
.evaluation-sketch__review { padding: 16px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.evaluation-sketch__review > span { display: block; margin-top: 16px; color: var(--case-accent); font-size: 14px; line-height: 1.5; }
.evaluation-sketch.evaluation-sketch--setup { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 20px 40px; padding: 24px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.evaluation-sketch--setup figcaption { margin: 0; }
@media (max-width: 700px) {
  .opportunity-fit { grid-template-columns: 1fr; grid-template-rows: 210px 100px 210px auto; padding: 0 32px; gap: 0; }
  .opportunity-fit__drawing--wide { display: none; }
  .opportunity-fit__drawing--tall { display: block; height: 520px; }
  .opportunity-fit figcaption { margin-top: 16px; }
  .evaluation-sketch { grid-template-columns: 1fr; gap: 44px; max-width: 480px; }
  .evaluation-sketch__inputs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .test-input + .test-input { margin-top: 0; }
  .test-input { padding: 14px; }
  .evaluation-sketch__model { width: 230px; justify-self: center; }
  .evaluation-sketch__arrow { top: auto; right: calc(50% - 27px); bottom: -40px; transform: rotate(90deg); }
  .evaluation-sketch figcaption { margin-top: -24px; }
  .evaluation-sketch.evaluation-sketch--setup { grid-template-columns: minmax(0,1fr); gap: 20px; max-width: none; }
  .evaluation-sketch--setup figcaption { margin-top: 0; }
}
@media (max-width: 820px) {
  .finding-links > article { gap: 40px; }
  .finding-links__implication::before { left: -32px; font-size: 25px; }
  .annotated-product { grid-template-columns: 1fr; gap: 20px; }
  .screen-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
  .screen-notes li { border-bottom: 0; padding: 0; }
  .stopping-comparison { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 560px) {
  .brief-question { padding: 20px 0; }
  .finding-links > article, .co-design-evidence, .client-authority, .interaction-findings, .next-testing, .delivery-summary, .successful-behaviors { grid-template-columns: 1fr; gap: 20px; }
  .finding-links__implication { margin-top: 8px; }
  .finding-links__implication::before { content: '↓'; top: -29px; left: 20px; font-size: 22px; }
  .reporting-path { grid-template-columns: 1fr; gap: 28px; }
  .reporting-path li + li::before { content: '↓'; top: -31px; left: 20px; font-size: 22px; }
  .screen-notes { grid-template-columns: 1fr; gap: 18px; }
  .screen-pin { width: 21px; height: 21px; font-size: 11px; box-shadow: 0 0 0 2px #fff; }
  .annotated-product__screen > a { aspect-ratio: 1100 / 650; }
  .annotated-product img { width: 100%; left: 0; top: 0; }
  .screen-pin--source { left: 44%; top: 34%; }
  .screen-pin--approval { left: 47%; top: 87%; }
  .screen-pin--review { display: none; }
  .mobile-screen-note { display: block; margin-top: 8px; }
  .scenario-map > div:not(.scenario-map__head) { grid-template-columns: 1fr; gap: 12px; }
  .scenario-map .scenario-map__head { display: none; }
  .scenario-map h4 { margin-bottom: 0; }
  .scenario-map h4::after { display: none; }
  .scenario-map > div > p:last-child::before { content: 'Prompt: '; font-weight: 600; color: var(--case-accent); }
  .conflict-map { grid-template-columns: 1fr; gap: 12px; padding: 20px; }
  .conflict-map__sources { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .conflict-map svg { width: 70px; height: 60px; margin: -5px auto; transform: rotate(90deg); }
  .recorded-eval-case .case-decision { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 767px) {
  .case-theme--vibrant-grants .site-nav { flex-direction: row; align-items: center; gap: 12px; min-height: 56px; padding-top: 12px; padding-bottom: 12px; }
  .case-theme--vibrant-grants .site-nav__links { flex-wrap: nowrap; gap: 12px; }
  .case-theme--vibrant-grants .site-nav__links a { font-size: 12px; letter-spacing: 0; }
}
@media (max-width: 820px) {
  .evaluation-pipeline ol { grid-template-columns: 1fr; gap: 28px; }
  .evaluation-pipeline li { min-height: 66px; }
  .evaluation-pipeline li:not(:last-child)::after { content: "↓"; top: auto; bottom: -28px; right: calc(50% - 7px); }
  .evaluation-results { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .eval-coverage__groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .funding-map__needs, .grant-process__stages { grid-template-columns: 1fr; }
  .funding-map__needs { gap: 52px; }
  .funding-map__needs > article:not(:first-child)::before { top: -49px; left: calc(50% - 12px); }
  .funding-map__connections--desktop { display: none; }
  .funding-map__connections--mobile { display: block; height: 80px; }
  .grant-process__stages { gap: 54px; }
  .grant-process .sketch-node h3 { min-height: 0; }
  .grant-process__arrow { top: auto; bottom: -42px; right: calc(50% - 24px); transform: rotate(90deg); }
  .research-journey__bookends { display: none; }
  .research-journey__drawing { margin-top: 0; }
  .research-journey__line--desktop { display: none; }
  .research-journey__line--mobile { display: block; top: 0; left: 0; width: 88px; height: 100%; }
  .research-journey__stages { grid-template-columns: 1fr; }
  .research-journey__stages li { display: block; min-height: 160px; padding: 18px 0 24px 116px; }
  .research-journey__label, .research-journey__stages li:nth-child(even) .research-journey__label { padding: 0; }
  .research-journey__label h3 { font-size: 22px; }
  .research-journey__label p { font-size: 14px; }
  .research-journey__stages li::after, .research-journey__stages li:nth-child(even)::after { top: 30px; left: 78px; width: 24px; height: 0; border-left: 0; border-top: 1px dashed var(--case-border); transform: rotate(-5deg); }
  .research-journey figcaption { margin-top: 28px; }
  .vibrant-conversation { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .refinement-case__steps, .recorded-eval-case dl > div { grid-template-columns: 1fr; gap: 12px; }
  .stakeholder-map, .research-findings > article, .format-findings > div { grid-template-columns: 1fr; gap: 20px; }
  .stakeholder-map > a { max-width: 340px; margin: 0 auto; }
  .participant-matrix tbody td:nth-child(2) { width: auto; max-width: 160px; text-align: right; }
  .opportunity-matrix tbody tr { display: block; }
  .opportunity-matrix tbody th, .opportunity-matrix tbody td { display: block; width: auto; margin-top: 14px; }
  .opportunity-matrix tbody th { margin-top: 0; }
  .opportunity-matrix tbody td:nth-child(2)::before { content: "What participants wanted"; }
  .opportunity-matrix tbody td:last-child::before { content: "What we chose"; }
  .opportunity-matrix tbody td::before { display: block; margin-bottom: 5px; color: var(--case-accent); font-size: 11px; font-weight: 600; }
  .client-blurb { grid-template-columns: 1fr; gap: 20px; }
  .client-blurb img { max-width: 360px; margin: 0 auto; }
  .evaluation-method, .delivery-changes > div { grid-template-columns: 1fr; gap: 12px; }
  .eval-matrix thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
  .eval-matrix tbody tr { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 16px 0; border-bottom: 1px solid var(--case-border); }
  .eval-matrix tbody th, .eval-matrix tbody td { width: auto; padding: 0; border: 0; }
  .eval-matrix tbody td:last-child { grid-column: 1 / -1; margin-top: 10px; }
  .decision-matrix tbody tr { display: block; }
  .decision-matrix tbody th, .decision-matrix tbody td { display: block; margin-top: 16px; }
  .decision-matrix tbody th { margin-top: 0; }
  .decision-matrix tbody th::before { content: "What we needed"; }
  .decision-matrix tbody td:nth-child(2)::before { content: "What went wrong"; }
  .decision-matrix tbody td:last-child::before { content: "What we did about it"; }
  .decision-matrix tbody th::before, .decision-matrix tbody td::before { display: block; margin-bottom: 5px; color: var(--case-accent); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
  .eval-rubric > div, .eval-grading__scale { grid-template-columns: 1fr; gap: 8px; }
  .eval-coverage__groups { grid-template-columns: 1fr; gap: 4px; }
  .story-turn { gap: 16px; }
  .story-turn svg { flex-basis: 56px; width: 56px; height: 52px; }
  .evaluation-results { grid-template-columns: 1fr; gap: 8px; }
  .review-sketch__items > div, .project-status > div { grid-template-columns: 1fr; gap: 10px; }
  .review-sketch__handoff { flex-direction: column; align-items: flex-start; gap: 12px; }
  .review-sketch__handoff svg { transform: rotate(90deg); margin-left: 12px; }
  .response-pair { grid-template-columns: 1fr; }
  .decision-table > div { grid-template-columns: 1fr; gap: 10px; }
  .decision-table__head { display: none !important; }
  .case-theme--vibrant-grants .principles li { grid-template-columns: 1fr; gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .case-theme--vibrant-grants .fx { transform: none; transition: none; }
}

/* Research story: why → what we learned → what we did */
.research-story { list-style: none; margin: 48px 0 0; padding: 0; }
.research-story > li { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 20px 56px; padding: 36px 0; border-top: 1px solid var(--case-border); }
.research-story > li:last-child { border-bottom: 1px solid var(--case-border); }
.research-story__step { display: block; margin-bottom: 10px; color: var(--case-accent); font-family: var(--case-serif); font-size: 28px; line-height: 1; }
.research-story__head h3 { margin: 6px 0 16px; color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(22px,2.4vw,27px); font-weight: 400; line-height: 1.3; }
.research-story__head .study-pills { margin: 0; }
.research-story__beats { display: grid; gap: 18px; margin: 0; }
.research-story__beats > div { display: grid; grid-template-columns: 9.5em minmax(0,1fr); gap: 16px; }
.research-story__beats dt { color: var(--case-muted); font-size: 13px; font-weight: 600; letter-spacing: .02em; line-height: 1.7; }
.research-story__beats > div:last-child dt { color: var(--case-accent); }
.research-story__beats dd { margin: 0; color: var(--case-copy); font-size: 15px; line-height: 1.7; }
.research-story__beats > div:last-child dd { color: var(--case-ink); }
.research-story__quote { margin: 14px 0 0; padding-left: 16px; border-left: 2px solid var(--case-accent); color: var(--case-ink); font-family: var(--case-serif); font-size: 19px; font-style: italic; line-height: 1.45; }
.research-story__quote cite { display: block; margin-top: 6px; color: var(--case-muted); font-family: inherit; font-size: 12px; font-style: normal; }
.research-story__map { grid-column: 2; display: block; max-width: 320px; cursor: zoom-in; }
.research-story__map img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.case-theme--vibrant-grants .research-timeline a { display: block; cursor: zoom-in; }

/* Data collection: survey vs chatbot vs interview */
.modality-compare { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; margin: 36px 0; border: 1px solid var(--case-border); border-radius: 14px; overflow: hidden; }
.modality-compare > div { padding: 22px 24px; }
.modality-compare > div + div { border-left: 1px solid var(--case-border); }
.modality-compare h3 { margin: 0 0 10px; color: var(--case-ink); font-family: var(--case-serif); font-size: 22px; font-weight: 400; }
.modality-compare p { margin: 0 0 8px; color: var(--case-copy); font-size: 14px; line-height: 1.6; }
.modality-compare__gap { color: var(--case-muted) !important; }
.modality-compare__choice { background: color-mix(in srgb, var(--case-accent) 9%, transparent); }
.modality-compare__choice > span { display: block; margin-bottom: 6px; color: var(--case-accent); font-size: 12px; font-weight: 600; }
.modality-rules { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 40px; margin: 0 0 8px; padding: 0; list-style: none; }
.modality-rules b { display: block; margin-bottom: 4px; color: var(--case-ink); font-size: 15px; }
.modality-rules span { color: var(--case-copy); font-size: 14px; line-height: 1.6; }
.chatbot-flow a { display: block; cursor: zoom-in; }

@media (max-width: 760px) {
  .research-story > li { grid-template-columns: 1fr; padding: 28px 0; }
  .research-story__beats > div { grid-template-columns: 1fr; gap: 4px; }
  .research-story__map { grid-column: 1; max-width: 260px; }
  .modality-compare { grid-template-columns: 1fr; }
  .modality-compare > div + div { border-left: 0; border-top: 1px solid var(--case-border); }
  .modality-rules { grid-template-columns: 1fr; }
}
.research-story--single { margin-top: 32px; }
.research-story--single .research-story__head .finding-label { margin-bottom: 14px; }
.team-photo { margin: 40px 0 0; }
.team-photo img { display: block; width: 100%; max-width: 760px; height: auto; border-radius: 14px; }
.team-photo figcaption { margin-top: 10px; color: var(--case-muted); font-size: 12px; }

/* Oct 15 annotation pass 2 */
.case-theme--vibrant-grants .research-timeline { max-width: 100%; }
.flow-arrow-link { position: absolute; z-index: 5; pointer-events: none; overflow: visible; }
.flow-arrow-link path { stroke: url(#report-arrow-ink); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.case-theme--vibrant-grants .strip-tint { background: #edf2f8; }
.case-theme--vibrant-grants .strip-tint .refinement-case { background: #fff; }
.eval-board { margin: 36px 0 32px; }
.eval-board a { display: block; cursor: zoom-in; }
.grant-process .grant-process__why { margin-top: 20px; padding: 16px 18px; border-left: 2px solid var(--case-accent-dark); border-radius: 0 8px 8px 0; background: var(--vg-line-soft); }
.grant-process__why > span { display: block; margin-bottom: 6px; color: var(--case-accent-dark); font-size: 13px; font-weight: 700; }
.grant-process .grant-process__why p { margin: 0; color: #fff; font-size: 15px; line-height: 1.65; }
.grant-process .grant-process__reason { border-top: 0; padding-top: 0; }
.case-theme--vibrant-grants .eval-model { margin: 4px 0 32px; color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(20px,2.2vw,24px); line-height: 1.4; }
.method-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.method-list li { padding-left: 14px; border-left: 2px solid var(--case-border); }
.method-list b { color: var(--case-ink); font-weight: 600; }
