/* Shared portfolio case-study system.
   Canonical source: Microsoft Copilot Trust + Microsoft Retention. */
:root {
  --case-ink: #0b0b0c;
  --case-surface: #0b0b0c;
  --case-paper: #fff;
  --case-muted: #6b6e68;
  --case-copy: #3c3c44;
  --case-border: rgba(11, 11, 12, 0.18);
  --case-accent: #4f46e5;
  --case-accent-dark: #9d91ff;
  --case-font: "Archivo", "Helvetica Neue", sans-serif;
  --case-serif: "Fraunces", Georgia, serif;
}

body.case-study {
  margin: 0;
  overflow-x: hidden;
  background: var(--case-paper);
  color: var(--case-ink);
  font-family: var(--case-font);
  font-weight: 400;
}

/* Project pages use a coordinated cool spectrum.
   Each family has a deep surface, dark-on-paper accent, and light-on-dark accent. */
.case-theme--copilot {
  --case-surface: #211b3d;
  --case-accent: #6658dd;
  --case-accent-rgb: 102, 88, 221;
  --case-accent-dark: #9f95f5;
  --case-accent-dark-rgb: 159, 149, 245;
}

.case-theme--retention {
  --case-surface: #132c3b;
  --case-accent: #0875ad;
  --case-accent-rgb: 8, 117, 173;
  --case-accent-dark: #59afe0;
  --case-accent-dark-rgb: 89, 175, 224;
}

.case-theme--meesho {
  --case-surface: #2b1938;
  --case-accent: #6e3a98;
  --case-accent-rgb: 110, 58, 152;
  --case-accent-dark: #c58be7;
  --case-accent-dark-rgb: 197, 139, 231;
}

.case-theme--razorpay-onboarding {
  --case-surface: #20224a;
  --case-accent: #4e50bd;
  --case-accent-rgb: 78, 80, 189;
  --case-accent-dark: #9fa5f5;
  --case-accent-dark-rgb: 159, 165, 245;
}

.case-theme--razorpay-website {
  --case-surface: #12313a;
  --case-accent: #08788a;
  --case-accent-rgb: 8, 120, 138;
  --case-accent-dark: #66c4d2;
  --case-accent-dark-rgb: 102, 196, 210;
}

.case-theme--razorpay-d2c {
  --case-surface: #281a36;
  --case-accent: #7139a6;
  --case-accent-rgb: 113, 57, 166;
  --case-accent-dark: #c38cec;
  --case-accent-dark-rgb: 195, 140, 236;
}

.case-theme--madahead {
  --case-surface: #182445;
  --case-accent: #3157c8;
  --case-accent-rgb: 49, 87, 200;
  --case-accent-dark: #8ba4f2;
  --case-accent-dark-rgb: 139, 164, 242;
}

.case-study[class*="case-theme--"] {
  --ink: var(--case-surface);
  --glow: var(--case-accent);
  --glow-soft: var(--case-accent-dark);
  --purple: var(--case-accent);
  --sky: var(--case-accent);
  --sky-deep: var(--case-accent);
}

.case-study *, .case-study *::before, .case-study *::after { box-sizing: border-box; }
.case-study .container { width: 100%; max-width: 1120px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
.case-study .progress, .case-study .cs-progress { position: fixed; inset: 0 auto auto 0; z-index: 100; width: 0; height: 3px; background: var(--case-accent); }
.case-study .fx { opacity: 0; transform: translateY(36px); transition: opacity 0.9s cubic-bezier(0.22,1,0.36,1), transform 0.9s cubic-bezier(0.22,1,0.36,1); }
.case-study .fx.in { opacity: 1; transform: none; }

/* Shared first fold */
.case-hero, .hero-light, .hero-dark { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 88vh; overflow: hidden; padding: 104px 0 80px; }
.case-hero--light, .hero-light { background: radial-gradient(600px circle at 85% 20%, rgba(var(--case-accent-rgb, 79, 70, 229), 0.09), transparent 60%), var(--case-paper); color: var(--case-ink); }
.case-hero--dark, .hero-dark { --case-accent: var(--case-accent-dark); background: radial-gradient(65vw 55vw at 88% 10%, rgba(var(--case-accent-dark-rgb, 169, 159, 255), 0.2), transparent 62%), var(--case-surface); color: #fff; }
.case-hero .eyebrow, .hero-light .eyebrow, .hero-dark .eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 30px; color: var(--case-muted); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.case-hero--dark .eyebrow, .hero-dark .eyebrow { color: rgba(255,255,255,0.55); }
.case-hero .eyebrow::before, .hero-light .eyebrow::before, .hero-dark .eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--case-accent); }
.case-hero .q-label, .hero-light .q-label, .hero-dark .q-label { margin: 0 0 16px; color: var(--case-accent); font-family: var(--case-serif); font-size: clamp(17px, 2vw, 22px); font-style: italic; }
.case-hero h1, .hero-light h1, .hero-dark h1 { max-width: 18ch; margin: 0 0 36px; font-family: var(--case-font); font-size: clamp(36px, 6.2vw, 80px); font-weight: 800; letter-spacing: -0.035em; line-height: 1.06; }
.case-hero h1 em, .hero-light h1 em, .hero-dark h1 em { color: var(--case-accent); font-family: var(--case-serif); font-style: italic; font-weight: 400; }
.case-hero .hero-standfirst, .hero-light .hero-standfirst, .hero-dark .hero-standfirst { max-width: 54ch; margin: 0 0 44px; color: var(--case-muted); font-size: clamp(17px, 2vw, 21px); line-height: 1.7; }
.case-hero--dark .hero-standfirst, .hero-dark .hero-standfirst { color: rgba(255,255,255,0.68); }
.hero-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.pchip, .hero-chips .chip { padding: 8px 16px; border: 1px solid var(--case-border); border-radius: 999px; background: #fff; color: rgba(11,11,12,0.72); font-family: var(--case-font); font-size: 13px; font-weight: 600; }
.pchip.accent, .hero-chips .chip.accent { border-color: rgba(var(--case-accent-rgb, 79, 70, 229), 0.5); color: var(--case-accent); }
.case-hero--dark .pchip, .hero-dark .chip { border-color: rgba(255,255,255,0.22); background: transparent; color: rgba(255,255,255,0.82); }
.case-hero--dark .pchip.accent, .hero-dark .chip.accent { border-color: rgba(var(--case-accent-dark-rgb, 169, 159, 255), 0.6); color: var(--case-accent-dark); }
.case-hero__network { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .42; pointer-events: none; }
.dark-section__network { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; opacity: .38; pointer-events: none; }
.case-hero--dark, .hero-dark, .fold-dark, .strip-dark, .case-chapter, .case-ending, .closing, .analysis-public { position: relative; overflow: hidden; }
.case-hero--dark > .container, .hero-dark > .container, .fold-dark > .container, .strip-dark > .container, .case-chapter > .container, .case-ending > .container, .closing > .container, .analysis-public > .container,
.case-ending > #site-footer, .closing > #site-footer, .fold-dark > #site-footer { position: relative; z-index: 1; }
.case-hero > .container { position: relative; z-index: 1; }

.snapshot { padding: 0 0 72px; background: var(--case-paper); }
.case-hero--dark + .snapshot, .hero-dark + .snapshot { background: var(--case-surface); color: #fff; }
.snapshot-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px; margin-top: 64px; padding-top: 36px; border-top: 1px solid var(--case-border); }
.snapshot .snapshot-grid { margin-top: 0; }
.case-hero--dark + .snapshot .snapshot-grid, .hero-dark + .snapshot .snapshot-grid { border-color: rgba(255,255,255,0.15); }
.snap-item .s-label { margin: 0 0 8px; color: var(--case-muted); font-size: 11px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.snap-item .s-value { margin: 0; color: var(--case-ink); font-size: 15px; font-weight: 600; line-height: 1.5; }
.snap-item .s-value small { display: block; margin-top: 2px; color: var(--case-muted); font-size: 13px; font-weight: 500; }
.case-hero--dark + .snapshot .s-label, .hero-dark + .snapshot .s-label { color: rgba(255,255,255,0.48); }
.case-hero--dark + .snapshot .s-value, .hero-dark + .snapshot .s-value { color: #fff; }
.case-hero--dark + .snapshot .s-value small, .hero-dark + .snapshot .s-value small { color: rgba(255,255,255,0.55); }

/* Shared sections */
.strip { position: relative; padding: 120px 0; }
.kicker { margin: 0 0 20px; color: var(--case-accent); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.strip h2, .case-ending h2 { max-width: 24ch; margin: 0 0 28px; font-family: var(--case-font); font-size: clamp(30px,4.5vw,52px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }
.strip h2 em, .case-ending h2 em { color: var(--case-accent); font-family: var(--case-serif); font-style: italic; font-weight: 400; }
.prose { max-width: 680px; }
.prose p { margin: 0 0 20px; color: var(--case-copy); font-size: 17px; line-height: 1.75; }
.prose p:last-child { margin-bottom: 0; }
.prose strong { color: var(--case-ink); font-weight: 700; }
.fold-dark, .strip-dark, .case-chapter { --case-accent: var(--case-accent-dark); background: var(--case-surface); color: #fff; }
.fold-dark .prose p, .strip-dark .prose p, .case-chapter .prose p { color: rgba(255,255,255,0.72); }
.fold-dark .prose strong, .strip-dark .prose strong, .case-chapter .prose strong { color: #fff; }

/* Compact orientation after the hero */
.case-orientation { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 50px; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.case-orientation article { min-height: 180px; padding: 28px 28px 30px 0; border-right: 1px solid var(--case-border); }
.case-orientation article:not(:first-child) { padding-left: 28px; }
.case-orientation article:last-child { border-right: 0; }
.case-orientation span { display: block; margin-bottom: 20px; color: var(--case-accent); font-family: var(--case-serif); font-size: 18px; font-style: italic; }
.case-orientation h3 { margin: 0 0 8px; font-size: 15px; line-height: 1.35; }
.case-orientation p { margin: 0; color: var(--case-muted); font-size: 13px; line-height: 1.6; }

/* Canonical research sequence and detailed method rows */
.method-sequence { position: relative; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(18px,3vw,44px); margin: 54px 0 0; }
.method-sequence--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.method-sequence--two { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 680px; }
.method-sequence::before { content: ""; position: absolute; top: 15px; left: 16px; right: 16px; height: 1px; background: linear-gradient(90deg,var(--case-accent),rgba(var(--case-accent-rgb, 79, 70, 229),0.18)); }
.method-sequence article { position: relative; padding-top: 46px; }
.method-sequence article::before { content: ""; position: absolute; top: 8px; left: 0; width: 15px; height: 15px; border: 5px solid #fff; border-radius: 50%; background: var(--case-accent); box-shadow: 0 0 0 1px var(--case-accent); }
.method-sequence span { display: block; margin-bottom: 8px; color: var(--case-accent); font-family: var(--case-serif); font-size: 15px; font-style: italic; }
.method-sequence h3 { margin: 0 0 6px; font-size: 15px; line-height: 1.3; }
.method-sequence p { max-width: 24ch; margin: 0; color: var(--case-muted); font-size: 14px; line-height: 1.55; }
.method-block { display: grid; grid-template-columns: minmax(220px,.38fr) minmax(0,.62fr); gap: clamp(34px,6vw,76px); margin-top: 92px; padding-top: 36px; border-top: 1px solid var(--case-border); }
.method-number { margin: 0 0 13px; color: var(--case-accent); font-family: var(--case-serif); font-size: 28px; font-style: italic; }
.method-block__heading h3 { margin: 0; font-size: clamp(24px,3vw,34px); line-height: 1.12; letter-spacing: -0.025em; }
.method-sample { margin: 14px 0 0; color: var(--case-accent); font-family: var(--case-serif); font-size: 16px; font-style: italic; }
.method-logic { margin: 0; }
.method-logic > div { display: grid; grid-template-columns: 72px 1fr; gap: 20px; padding: 17px 0; border-bottom: 1px solid var(--case-border); }
.method-logic > div:first-child { padding-top: 0; }
.method-logic dt { color: var(--case-accent); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.method-logic dd { margin: 0; color: var(--case-copy); font-size: 14px; line-height: 1.65; }
.method-specs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 32px 0 0; padding: 20px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.method-specs div { padding: 0 13px; border-left: 1px solid var(--case-border); }
.method-specs div:first-child { padding-left: 0; border-left: 0; }
.method-specs dt { margin-bottom: 7px; color: var(--case-accent); font-family: var(--case-serif); font-size: 22px; font-style: italic; line-height: 1; }
.method-specs dd { margin: 0; color: var(--case-muted); font-size: 12px; font-weight: 700; line-height: 1.45; }

/* Evidence and artifacts */
.text-artifact { display: grid; grid-template-columns: minmax(0,.42fr) minmax(0,.58fr); gap: clamp(34px,6vw,76px); align-items: center; margin-top: 56px; }
.text-artifact--reverse > :first-child { order: 2; }
.artifact-figure { position: relative; margin: 46px 0 0; }
.text-artifact .artifact-figure { margin: 0; }
.artifact-figure img { display: block; width: 100%; height: auto; border: 1px solid var(--case-border); border-radius: 15px; background: #fff; }
.artifact-figure figcaption { max-width: 78ch; margin-top: 11px; color: var(--case-muted); font-family: var(--case-font); font-size: 12px; font-style: italic; line-height: 1.5; text-align: center; }
.artifact-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 42px; }
.artifact-pair .artifact-figure { margin: 0; }
.artifact-pair .artifact-figure img { height: clamp(250px,28vw,340px); object-fit: contain; }
.artifact-figure--tactile { transform: rotate(-1deg); transition: transform .35s cubic-bezier(.22,1,.36,1); box-shadow: 0 18px 36px -28px rgba(11,11,12,.3); }
.artifact-figure--tactile:hover { transform: rotate(0) translateY(-4px); }
.artifact-figure--tactile-right { transform: rotate(1deg); transition: transform .35s cubic-bezier(.22,1,.36,1); box-shadow: 0 18px 36px -28px rgba(11,11,12,.3); }
.artifact-figure--tactile-right:hover { transform: rotate(0) translateY(-4px); }

/* Long-form product recommendations */
.recommendation-story { margin-top: 44px; }
.recommendation-step { display: grid; grid-template-columns: minmax(240px,.38fr) minmax(0,.62fr); gap: clamp(36px,7vw,92px); align-items: center; min-height: 72vh; padding: 72px 0; border-top: 1px solid var(--case-border); }
.recommendation-step:last-child { border-bottom: 1px solid var(--case-border); }
.recommendation-step--reverse .recommendation-step__copy { order: 2; }
.recommendation-step__copy > span { display: block; margin-bottom: 22px; color: var(--case-accent); font-family: var(--case-serif); font-size: clamp(44px,6vw,72px); font-style: italic; line-height: 1; }
.recommendation-step__copy .recommendation-link { max-width: 38ch; margin: -8px 0 30px; padding-left: 18px; border-left: 3px solid var(--case-accent); color: var(--case-ink); font-family: var(--case-serif); font-size: clamp(18px,2vw,23px); font-weight: 400; line-height: 1.4; }
.recommendation-link strong { display: block; margin-bottom: 8px; color: var(--case-accent); font-family: var(--case-font); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.recommendation-step__copy .recommendation-action-label { margin: 0 0 9px; color: var(--case-accent); font-size: 11px; font-weight: 800; letter-spacing: .13em; line-height: 1.3; text-transform: uppercase; }
.recommendation-step__copy h3 { max-width: 14ch; margin: 0 0 16px; font-size: clamp(25px,3.5vw,40px); letter-spacing: -.025em; line-height: 1.1; }
.recommendation-step__copy p { max-width: 42ch; margin: 0; color: var(--case-muted); font-size: 15px; line-height: 1.7; }
.recommendation-step .artifact-figure { margin: 0; }
.recommendation-step .artifact-figure img { max-height: 68vh; object-fit: contain; }

/* Product outcome: scrolling recommendations with one persistent artifact. */
.outcome-story { padding: 120px 0; background: var(--case-paper); color: var(--case-ink); }
.outcome-story__intro { margin-bottom: 64px; }
.outcome-story__intro h2 { max-width: 26ch; }
.outcome-story__layout { display: grid; grid-template-columns: minmax(260px,.38fr) minmax(0,.62fr); gap: clamp(48px,8vw,110px); align-items: start; }
.outcome-story__steps article { display: flex; min-height: 72vh; padding: 54px 0; border-top: 1px solid var(--case-border); flex-direction: column; justify-content: center; opacity: .36; transition: opacity .35s ease; }
.outcome-story__steps article:last-child { border-bottom: 1px solid var(--case-border); }
.outcome-story__steps article.is-active { opacity: 1; }
.outcome-story__number { display: block; margin-bottom: 18px; color: var(--case-accent); font-family: var(--case-serif); font-size: clamp(44px,6vw,72px); font-style: italic; line-height: 1; }
.outcome-story__finding { max-width: 36ch; margin: 0 0 26px; padding-left: 16px; border-left: 3px solid var(--case-accent); color: var(--case-copy); font-family: var(--case-serif); font-size: 17px; line-height: 1.5; }
.outcome-story__steps h3 { max-width: 13ch; margin: 0 0 15px; font-size: clamp(27px,3.3vw,40px); letter-spacing: -.025em; line-height: 1.08; }
.outcome-story__steps article > p:last-of-type { max-width: 39ch; margin: 0; color: var(--case-muted); font-size: 15px; line-height: 1.7; }
.outcome-story__visual { position: sticky; top: 96px; height: calc(100vh - 126px); min-height: 520px; }
.outcome-story__visual figure { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; opacity: 0; pointer-events: none; transform: translateY(22px); transition: opacity .45s ease, transform .45s cubic-bezier(.22,1,.36,1); }
.outcome-story__visual figure.is-active { opacity: 1; pointer-events: auto; transform: none; }
.outcome-story__visual img { display: block; width: 100%; max-height: calc(100vh - 150px); border: 1px solid var(--case-border); border-radius: 15px; background: #fff; object-fit: contain; }
.outcome-story__mobile-artifact { display: none; }
.impact-award { margin-top: 64px; padding-top: 34px; border-top: 1px solid var(--case-border); }
.impact-award .prose { max-width: 52ch; }
.impact-award .artifact-figure { margin-top: 30px; }
.recognition-note { grid-template-columns: minmax(0,.62fr) minmax(160px,.38fr); padding: 24px; border: 1px solid var(--case-border); }
.recognition-note .artifact-figure { max-width: 250px; justify-self: end; }

/* Decision-oriented compositions */
.decision-architecture { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 52px; border-top: 1px solid rgba(255,255,255,.18); border-left: 1px solid rgba(255,255,255,.18); }
.decision-architecture article { min-height: 260px; padding: 28px; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.decision-architecture article > span { color: var(--case-accent); font-family: var(--case-serif); font-size: 18px; font-style: italic; }
.decision-architecture__input { margin: 30px 0 10px; color: rgba(255,255,255,.52); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.decision-architecture h3 { margin: 0 0 12px; font-size: 21px; line-height: 1.25; }
.decision-architecture article > p:last-child { margin: 0; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.65; }

.pivot-flow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 52px; border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.pivot-flow article { position: relative; min-height: 210px; padding: 28px 26px; border-right: 1px solid rgba(255,255,255,.18); }
.pivot-flow article:last-child { border-right: 0; }
.pivot-flow article:not(:last-child)::after { content: "→"; position: absolute; top: 28px; right: -11px; z-index: 1; color: var(--case-accent); font-size: 18px; }
.pivot-flow span { color: var(--case-accent); font-family: var(--case-serif); font-style: italic; }
.pivot-flow h3 { margin: 36px 0 10px; font-size: 19px; }
.pivot-flow p { margin: 0; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.6; }

.decision-trace { margin-top: 48px; border-top: 1px solid var(--case-border); }
.decision-trace article { display: grid; grid-template-columns: minmax(0,.44fr) minmax(0,.56fr); border-bottom: 1px solid var(--case-border); }
.decision-trace article > div { padding: 26px 28px 28px 0; }
.decision-trace article > div + div { padding-left: 28px; border-left: 1px solid var(--case-border); }
.decision-trace span { display: block; margin-bottom: 10px; color: var(--case-accent); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.decision-trace h3, .decision-trace p { margin: 0; font-size: 17px; line-height: 1.5; }
.decision-trace p { color: var(--case-muted); }

.impact-highlight { max-width: 900px; margin-top: 48px; padding: 38px 0; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.impact-highlight span { display: block; margin-bottom: 14px; color: var(--case-accent); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.impact-highlight p { max-width: 34ch; margin: 0; font-size: clamp(26px,3.8vw,44px); font-weight: 700; letter-spacing: -.025em; line-height: 1.15; }

.language-decision-model { display: grid; grid-template-columns: minmax(0,.62fr) minmax(240px,.38fr); gap: clamp(36px,6vw,76px); align-items: center; margin-top: 64px; }
.language-decision-model__inputs { border-top: 1px solid var(--case-border); }
.language-decision-model__inputs article { display: grid; grid-template-columns: 34px 120px minmax(0,1fr); gap: 16px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--case-border); }
.language-decision-model__inputs span { color: var(--case-accent); font-family: var(--case-serif); font-style: italic; }
.language-decision-model__inputs h3 { margin: 0; font-size: 16px; }
.language-decision-model__inputs p { margin: 0; color: var(--case-muted); font-size: 13px; line-height: 1.55; }
.language-decision-model__outcome { padding: 10px 0 10px 30px; border-left: 2px solid var(--case-accent); }
.language-decision-model__outcome span { color: var(--case-accent); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.language-decision-model__outcome p { margin: 18px 0 0; font-family: var(--case-serif); font-size: clamp(22px,3vw,32px); line-height: 1.3; }

.impact-sequence { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 52px; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.impact-sequence article { position: relative; min-height: 220px; padding: 30px; border-right: 1px solid var(--case-border); }
.impact-sequence article:last-child { border-right: 0; }
.impact-sequence article:not(:last-child)::after { content: "→"; position: absolute; top: 30px; right: -11px; z-index: 1; padding: 0 3px; background: #fff; color: var(--case-accent); }
.impact-sequence span { color: var(--case-accent); font-family: var(--case-serif); font-style: italic; }
.impact-sequence h3 { margin: 38px 0 10px; font-size: 22px; }
.impact-sequence p { margin: 0; color: var(--case-muted); font-size: 13px; line-height: 1.6; }

/* Product strategy and flow models */
.positioning-map { position: relative; min-height: 460px; margin-top: 54px; padding: 46px; border: 1px solid var(--case-border); background: linear-gradient(var(--case-border) 1px,transparent 1px), linear-gradient(90deg,var(--case-border) 1px,transparent 1px); background-size: 25% 25%; }
.positioning-map::before, .positioning-map::after { content: ""; position: absolute; background: var(--case-ink); }
.positioning-map::before { left: 50%; top: 24px; bottom: 24px; width: 1px; }
.positioning-map::after { top: 50%; left: 24px; right: 24px; height: 1px; }
.positioning-map__label { position: absolute; color: var(--case-muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.positioning-map__label--top { top: 14px; left: 50%; transform: translateX(-50%); }
.positioning-map__label--bottom { bottom: 14px; left: 50%; transform: translateX(-50%); }
.positioning-map__label--left { left: 14px; top: 50%; transform: translateY(-50%) rotate(-90deg); }
.positioning-map__label--right { right: 14px; top: 50%; transform: translateY(-50%) rotate(90deg); }
.positioning-map__item { position: absolute; padding: 9px 12px; border: 1px solid var(--case-border); background: #fff; font-size: 12px; font-weight: 700; }
.positioning-map__item--ai { left: 18%; top: 24%; }
.positioning-map__item--write { right: 15%; bottom: 22%; }
.positioning-map__item--haiku { right: 20%; top: 28%; }
.positioning-map__item--madahead { left: 52%; top: 47%; transform: translate(-50%,-50%); border-color: var(--case-accent); background: var(--case-accent); color: #fff; font-size: 15px; }

.need-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 48px; border-top: 1px solid var(--case-border); border-left: 1px solid var(--case-border); }
.need-grid article { min-height: 230px; padding: 28px; border-right: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.need-grid span { color: var(--case-accent); font-family: var(--case-serif); font-size: 18px; font-style: italic; }
.need-grid h3 { margin: 34px 0 10px; font-size: 22px; }
.need-grid p { margin: 0; color: var(--case-muted); font-size: 13px; line-height: 1.6; }

.game-loop { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 50px; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.game-loop article { position: relative; min-height: 190px; padding: 28px 24px; border-right: 1px solid var(--case-border); }
.game-loop article:last-child { border-right: 0; }
.game-loop article:not(:last-child)::after { content: "→"; position: absolute; top: 28px; right: -11px; z-index: 1; padding: 0 3px; background: #fff; color: var(--case-accent); }
.game-loop span { color: var(--case-accent); font-family: var(--case-serif); font-style: italic; }
.game-loop h3 { margin: 36px 0 8px; font-size: 19px; }
.game-loop p { margin: 0; color: var(--case-muted); font-size: 12px; line-height: 1.55; }

/* Findings, principles and parallel research */
.finding-list, .impact-list { max-width: 840px; margin: 48px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--case-border); }
.finding-list li, .impact-list li { display: grid; grid-template-columns: 58px minmax(0,1fr); gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--case-border); }
.finding-list .finding-n, .impact-list .imp-n { color: var(--case-accent); font-family: var(--case-serif); font-size: 22px; font-style: italic; }
.finding-list h3 { margin: 0 0 8px; font-size: clamp(19px,2vw,24px); line-height: 1.25; }
.finding-list p, .impact-list li > span:last-child { margin: 0; color: var(--case-muted); font-size: 14px; line-height: 1.65; }
.finding-list--tests { max-width: none; }
.finding-list--tests li > div { display: grid; grid-template-columns: minmax(0,.4fr) minmax(240px,.6fr); gap: 0 28px; align-items: start; }
.finding-list--tests li h3, .finding-list--tests li p { grid-column: 1; }
.finding-list--tests li .artifact-figure { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
.case-chapter .finding-list, .fold-dark .impact-list { border-color: rgba(255,255,255,.16); }
.case-chapter .finding-list li, .fold-dark .impact-list li { border-color: rgba(255,255,255,.13); }
.case-chapter .finding-list p, .fold-dark .impact-list li > span:last-child { color: rgba(255,255,255,.7); }
.principles-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 52px; border-top: 1px solid var(--case-border); }
.principle { display: grid; grid-template-columns: 52px 1fr; gap: 18px; min-height: 180px; padding: 30px 30px 30px 0; border-right: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.principle:nth-child(even) { padding-left: 30px; border-right: 0; }
.principle .principle-n { color: var(--case-accent); font-family: var(--case-serif); font-size: 22px; font-style: italic; }
.principle h3 { margin: 0 0 8px; font-size: 19px; }
.principle p { margin: 0; color: var(--case-muted); font-size: 14px; line-height: 1.6; }
.parallel-streams { display: grid; grid-template-columns: 1fr 72px 1fr; gap: 18px; align-items: stretch; margin-top: 54px; }
.research-stream { padding: 30px; border: 1px solid var(--case-border); border-radius: 14px; }
.research-stream .stream-label { color: var(--case-accent); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.research-stream h3 { margin: 22px 0 12px; font-size: 24px; }
.research-stream p { margin: 0; color: var(--case-muted); font-size: 14px; line-height: 1.65; }
.stream-converge { position: relative; display: grid; place-items: center; color: var(--case-accent); font-family: var(--case-serif); font-size: 14px; font-style: italic; text-align: center; }
.stream-converge::before, .stream-converge::after { content: ""; position: absolute; top: 50%; width: 22px; height: 1px; background: var(--case-accent); opacity: .55; }
.stream-converge::before { left: -9px; }
.stream-converge::after { right: -9px; }

/* Quantitative and qualitative impact */
.metric-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 48px; border-top: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.metric-strip--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.metric { min-height: 200px; padding: 30px 28px 30px 0; border-right: 1px solid var(--case-border); }
.metric:not(:first-child) { padding-left: 28px; }
.metric:last-child { border-right: 0; }
.metric strong { display: block; margin-bottom: 18px; color: var(--case-accent); font-family: var(--case-serif); font-size: clamp(52px,7vw,88px); font-style: italic; font-weight: 400; letter-spacing: -.055em; line-height: .95; }
.metric span { display: block; max-width: 20ch; color: var(--case-muted); font-size: 14px; line-height: 1.5; }
.impact-note { margin-top: 32px; }
.impact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 48px; border-top: 1px solid var(--case-border); border-left: 1px solid var(--case-border); }
.impact-grid--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.impact-grid article { min-height: 210px; padding: 30px; border-right: 1px solid var(--case-border); border-bottom: 1px solid var(--case-border); }
.impact-grid article > span { display: block; margin-bottom: 30px; color: var(--case-accent); font-family: var(--case-serif); font-size: 18px; font-style: italic; }
.impact-grid h3 { margin: 0 0 10px; font-size: clamp(19px,2.2vw,25px); letter-spacing: -.015em; line-height: 1.2; }
.impact-grid p { margin: 0; color: var(--case-muted); font-size: 14px; line-height: 1.65; }
.fold-dark .impact-grid, .strip-dark .impact-grid, .case-chapter .impact-grid { border-color: rgba(255,255,255,.16); }
.fold-dark .impact-grid article, .strip-dark .impact-grid article, .case-chapter .impact-grid article { border-color: rgba(255,255,255,.16); }
.fold-dark .impact-grid p, .strip-dark .impact-grid p, .case-chapter .impact-grid p { color: rgba(255,255,255,.7); }

/* Shared last fold */
.case-ending { --case-accent: var(--case-accent-dark); padding: 120px 0 0; background: var(--case-surface); color: #fff; }
.case-ending .kicker { color: var(--case-accent); }
.case-ending .prose p { color: rgba(255,255,255,.72); }
.case-reflection { max-width: 680px; }
.case-next { margin-top: 96px; padding: 34px 0 42px; border-top: 1px solid rgba(255,255,255,.15); }
.case-next .label { margin: 0 0 18px; color: rgba(255,255,255,.48); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.case-next a { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: end; color: #fff; text-decoration: none; }
.case-next__eyebrow { display: block; margin-bottom: 9px; color: var(--case-accent); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.case-next__title { display: block; max-width: 28ch; font-size: clamp(24px,4vw,44px); font-weight: 800; letter-spacing: -.025em; line-height: 1.08; }
.case-next svg { transition: transform .3s cubic-bezier(.22,1,.36,1); }
.case-next a:hover svg { transform: translateX(6px); }
.case-ending .site-footer, .closing .site-footer, .fold-dark .site-footer { margin-top: 0; border-color: rgba(255,255,255,.14); color: #fff; }
.case-ending .site-footer a, .closing .site-footer a, .fold-dark .site-footer a { color: #fff; }
.case-ending .site-footer__meta, .closing .site-footer__meta, .fold-dark .site-footer__meta { color: rgba(255,255,255,.5); }

/* Shared shell contrast */
.case-study--dark-hero .site-nav__brand, .case-study--dark-hero .site-nav__links a { color: rgba(255,255,255,.72); }
.case-study--dark-hero .site-nav__brand, .case-study--dark-hero .site-nav__links a:hover, .case-study--dark-hero .site-nav__links a.is-active { color: #fff; }
.case-study--dark-hero.is-scrolled-past-hero .site-nav__brand { color: var(--case-ink); }
.case-study--dark-hero.is-scrolled-past-hero .site-nav__links a { color: rgba(11,11,12,.65); }
.case-study--dark-hero.is-scrolled-past-hero .site-nav__links a:hover, .case-study--dark-hero.is-scrolled-past-hero .site-nav__links a.is-active { color: var(--case-accent); }
.case-study--dark-hero.is-nav-on-dark .site-nav__brand { color: #fff; }
.case-study--dark-hero.is-nav-on-dark .site-nav__links a { color: rgba(255,255,255,.72); }
.case-study--dark-hero.is-nav-on-dark .site-nav__links a:hover, .case-study--dark-hero.is-nav-on-dark .site-nav__links a.is-active { color: var(--case-accent-dark); }

@media (max-width: 820px) {
  .case-hero, .hero-light, .hero-dark { min-height: 0; padding: 120px 0 72px; }
  .snapshot-grid { grid-template-columns: 1fr 1fr; }
  .case-orientation, .method-sequence, .method-sequence--three, .principles-grid, .metric-strip, .impact-grid, .impact-grid--three { grid-template-columns: 1fr 1fr; }
  .case-orientation article:nth-child(2), .metric:nth-child(2) { border-right: 0; }
  .case-orientation article:nth-child(3), .metric:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--case-border); }
  .method-sequence::before { display: none; }
  .method-sequence article { padding-top: 34px; }
  .method-sequence article::before { top: 4px; }
  .method-block, .text-artifact { grid-template-columns: 1fr; }
  .outcome-story { padding: 90px 0; }
  .outcome-story__layout { display: block; }
  .outcome-story__steps article { min-height: 0; padding: 54px 0; opacity: 1; }
  .outcome-story__visual { display: none; }
  .outcome-story__mobile-artifact { display: block; margin: 30px 0 0; }
  .outcome-story__mobile-artifact img { display: block; width: 100%; max-height: 62vh; border: 1px solid var(--case-border); border-radius: 15px; background: #fff; object-fit: contain; }
  .finding-list--tests li > div { grid-template-columns: 1fr; }
  .finding-list--tests li h3, .finding-list--tests li p, .finding-list--tests li .artifact-figure { grid-column: 1; grid-row: auto; }
  .finding-list--tests li .artifact-figure { margin-top: 20px; }
  .method-block { margin-top: 64px; gap: 24px; }
  .text-artifact--reverse > :first-child { order: initial; }
  .parallel-streams { grid-template-columns: 1fr; }
  .stream-converge { min-height: 58px; }
  .stream-converge::before, .stream-converge::after { top: 50%; width: calc(50% - 56px); }
  .stream-converge::before { left: 0; }
  .stream-converge::after { right: 0; }
  .artifact-pair { grid-template-columns: 1fr; }
  .artifact-pair .artifact-figure img { height: auto; }
  .recommendation-step { grid-template-columns: 1fr; min-height: 0; padding: 64px 0; }
  .recommendation-step--reverse .recommendation-step__copy { order: initial; }
  .decision-architecture, .pivot-flow, .impact-sequence { grid-template-columns: 1fr 1fr; }
  .need-grid, .game-loop { grid-template-columns: 1fr 1fr; }
  .language-decision-model { grid-template-columns: 1fr; }
  .pivot-flow article:nth-child(2), .impact-sequence article:nth-child(2) { border-right: 0; }
}

@media (max-width: 560px) {
  .snapshot-grid, .case-orientation, .method-sequence, .method-sequence--three, .method-sequence--two, .principles-grid, .metric-strip, .metric-strip--two, .method-specs, .impact-grid, .impact-grid--three { grid-template-columns: 1fr; }
  .case-orientation article, .case-orientation article:not(:first-child), .metric, .metric:not(:first-child), .principle, .principle:nth-child(even) { padding: 26px 0; border-right: 0; border-bottom: 1px solid var(--case-border); }
  .case-orientation article:nth-child(3), .metric:nth-child(3) { grid-column: auto; }
  .method-logic > div { grid-template-columns: 58px 1fr; gap: 14px; }
  .method-specs div { padding: 14px 0; border-left: 0; border-bottom: 1px solid var(--case-border); }
  .finding-list li, .impact-list li { grid-template-columns: 42px 1fr; gap: 14px; }
  .decision-architecture, .pivot-flow, .language-decision-model__inputs, .impact-sequence { grid-template-columns: 1fr; }
  .language-decision-model__inputs article { grid-template-columns: 30px 1fr; gap: 8px 14px; }
  .language-decision-model__inputs p { grid-column: 2; }
  .need-grid, .game-loop { grid-template-columns: 1fr; }
  .positioning-map { min-height: 390px; padding: 28px; }
  .decision-trace article { grid-template-columns: 1fr; }
  .decision-trace article > div + div { padding-left: 0; border-left: 0; }
  .recognition-note { grid-template-columns: 1fr; }
  .recognition-note .artifact-figure { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  .case-study .fx { opacity: 1; transform: none; transition: none; }
  .artifact-figure--tactile, .artifact-figure--tactile-right, .case-next svg { transition: none; }
}
