/* ============================================================
   case-wide surface theme — cleaner / whiter ground
   Scoped to the case studies (this file is loaded only by the
   four case-*.html pages), so the rest of the warm site is
   untouched. Page goes to a neutral near-white; cards stay #fff
   so they still pop. Override here wins because this stylesheet
   loads after each page's inline :root.
   ============================================================ */
:root{
  --paper:#ffffff;     /* base page — neutral near-white (was warm #ffffff) */
  --paper-2:#f5f5f5;   /* recessed/secondary surfaces (was #f5f5f5)         */
}

/* ============================================================
   case-sidebar — persistent left rail for case studies
   (Rachel-Chen-style: sticky metadata + scroll-spy section nav)
   Auto-built by case-sidebar.js from the existing snapshot card
   and .sec-head eyebrows, so it stays in lockstep with content.
   Shows only on wide screens; below that the existing right-edge
   dot-nav (#secnav) + the snapshot card carry the load.
   ============================================================ */

#caserail{
  display:none;                 /* shown via the wide media query below */
  position:fixed; top:0; left:0; bottom:0;
  width:230px; z-index:55;
  flex-direction:column;
  padding:30px 22px 26px 28px;
  background:linear-gradient(180deg,var(--paper) 0%,var(--paper) 78%,rgba(252,251,249,0));
  border-right:1px solid rgba(42,37,32,.07);
  overflow-y:auto; overscroll-behavior:contain;
}
/* thin, unobtrusive scrollbar */
#caserail::-webkit-scrollbar{width:0}
#caserail{scrollbar-width:none}

/* ---- identity / metadata block ---- */
.cr-proj{
  font-family:'Archivo',sans-serif;font-weight:900;letter-spacing:-.02em;
  font-size:19px;line-height:1.04;text-transform:lowercase;color:var(--ink);
  text-decoration:none;display:block;margin-bottom:18px;
}
.cr-proj:hover{color:var(--accent)}
.cr-proj .a{color:var(--accent)}
.cr-meta{display:flex;flex-direction:column;gap:13px;margin-bottom:22px}
.cr-fact > span{
  font-family:'Geist Mono',monospace;text-transform:uppercase;
  letter-spacing:.14em;font-size:9.5px;color:var(--ink-faint);
  display:block;margin-bottom:3px;
}
.cr-fact p{font-size:12.5px;line-height:1.34;color:var(--ink-soft);margin:0;font-weight:500}
.cr-fact p .org{display:block;color:var(--ink-faint);font-weight:400;font-size:11.5px;margin-top:1px}

.cr-rule{height:1px;background:var(--line);margin:0 0 18px}

/* ---- scroll-spy section nav ---- */
.cr-navlabel{
  font-family:'Geist Mono',monospace;text-transform:uppercase;
  letter-spacing:.14em;font-size:9.5px;color:var(--ink-faint);margin-bottom:12px;
}
.cr-nav{display:flex;flex-direction:column;gap:1px;position:relative}
.cr-nav a{
  position:relative;display:flex;align-items:baseline;gap:9px;
  text-decoration:none;padding:6px 0 6px 13px;border-radius:0;
  color:var(--ink-soft);transition:color .22s;
}
.cr-nav a::before{          /* the active spine bar */
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);
  width:2px;height:18px;background:var(--accent);border-radius:2px;
  transition:transform .28s cubic-bezier(.2,.8,.2,1);transform-origin:center;
}
.cr-nav a i{
  font-family:'Geist Mono',monospace;font-style:normal;font-size:10px;
  letter-spacing:.04em;color:var(--ink-faint);flex:0 0 auto;width:15px;
  transition:color .22s;
}
.cr-nav a span{
  font-size:13px;line-height:1.3;letter-spacing:-.005em;
  text-transform:lowercase;
}
.cr-nav a:hover{color:var(--ink)}
.cr-nav a:hover i{color:var(--ink-soft)}
.cr-nav a.on{color:var(--ink);font-weight:600}
.cr-nav a.on i{color:var(--accent)}
.cr-nav a.on::before{transform:translateY(-50%) scaleY(1)}

/* ---- reading progress (foot of rail) ---- */
.cr-foot{margin-top:auto;padding-top:22px}
.cr-prog{height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.cr-prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .12s linear}
.cr-pct{
  font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-faint);margin-top:8px;
}

/* ============================================================
   Activate the rail on wide screens and shift the page right so
   the centered content column never collides with it. Below this
   width the rail is hidden and nothing shifts.
   ============================================================ */
@media (min-width:1180px){
  body{padding-left:230px}
  #caserail{display:flex}
  #secnav{display:none !important}     /* rail replaces the dot-nav */
}

@media (prefers-reduced-motion:reduce){
  .cr-nav a::before,.cr-prog i{transition:none}
}

/* ============================================================
   testimonial — sleek editorial restyle
   Overrides the boxed .quote card in every case file (this sheet
   loads last, so equal-specificity rules here win). Drops the
   box + heavy shadow for a borderless pull-quote with a small
   terracotta accent rule and tighter, controlled type.
   ============================================================ */
.quote{
  background:none;border:none;box-shadow:none;border-radius:0;
  padding:6px 0;text-align:center;position:relative;
  max-width:860px;margin:0 auto;
}
.quote::before{
  content:'';display:block;width:32px;height:2px;border-radius:2px;
  background:var(--accent);margin:0 auto 30px;
}
.quote .q{
  font-family:'Fraunces',serif;font-style:normal;font-weight:300;
  font-size:clamp(24px,2.8vw,34px);line-height:1.32;letter-spacing:-.02em;
  color:var(--ink);max-width:760px;margin:0 auto 26px;
}
.quote .q::before{content:'\201C';color:var(--accent);font-weight:600}
.quote .q::after{content:'\201D';color:var(--accent);font-weight:600}
.quote .who{
  font-family:'Geist Mono',monospace;text-transform:uppercase;
  letter-spacing:.18em;font-size:11px;color:var(--ink-faint);
}

/* ============================================================
   handoff — light & minimal (overrides the dark slab in every
   case file). Drops the dark box for a clean closing statement
   on the page ground, matching the testimonial restyle.
   ============================================================ */
.handoff{
  background:none;color:var(--ink);border:none;border-radius:0;padding:0;
}
.handoff .eyebrow{color:var(--ink-faint)}
.handoff h2{color:var(--ink)}
.handoff p{color:var(--ink-soft);max-width:680px}
.handoff .accent{color:var(--accent)}

/* ── time-of-day sky blooms on case cards (dawn/day/golden/night) — rolled out site-wide ── */
.cards .card:nth-child(1),.themes .theme:nth-child(1),.voices .voice:nth-child(1){background:#f5f5f5 radial-gradient(125% 95% at 100% 0%,rgba(126,185,217,.30),rgba(243,208,159,.15) 46%,transparent 72%) no-repeat}
.cards .card:nth-child(2),.themes .theme:nth-child(2),.voices .voice:nth-child(2){background:#f5f5f5 radial-gradient(125% 95% at 100% 0%,rgba(90,147,207,.28),rgba(185,220,244,.18) 46%,transparent 72%) no-repeat}
.cards .card:nth-child(3),.themes .theme:nth-child(3),.voices .voice:nth-child(3){background:#f5f5f5 radial-gradient(125% 95% at 100% 0%,rgba(168,158,203,.30),rgba(247,220,194,.16) 46%,transparent 72%) no-repeat}
.cards .card:nth-child(4),.themes .theme:nth-child(4){background:#f5f5f5 radial-gradient(125% 95% at 100% 0%,rgba(61,79,107,.22),rgba(154,161,168,.13) 46%,transparent 72%) no-repeat}
.cards .card:nth-child(1):hover,.themes .theme:nth-child(1):hover,.voices .voice:nth-child(1):hover{background:#fff radial-gradient(130% 100% at 100% 0%,rgba(126,185,217,.50),rgba(243,208,159,.26) 46%,transparent 76%) no-repeat}
.cards .card:nth-child(2):hover,.themes .theme:nth-child(2):hover,.voices .voice:nth-child(2):hover{background:#fff radial-gradient(130% 100% at 100% 0%,rgba(90,147,207,.46),rgba(185,220,244,.30) 46%,transparent 76%) no-repeat}
.cards .card:nth-child(3):hover,.themes .theme:nth-child(3):hover,.voices .voice:nth-child(3):hover{background:#fff radial-gradient(130% 100% at 100% 0%,rgba(168,158,203,.50),rgba(247,220,194,.28) 46%,transparent 76%) no-repeat}
.cards .card:nth-child(4):hover,.themes .theme:nth-child(4):hover{background:#fff radial-gradient(130% 100% at 100% 0%,rgba(61,79,107,.40),rgba(154,161,168,.24) 46%,transparent 76%) no-repeat}

/* ── research findings: statement + evidence rows (shared) ── */
.findings{margin-top:4px}
.frow{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vw,56px);padding:24px 0;border-top:1px solid var(--line,rgba(20,32,52,.12));align-items:start}
.frow:last-child{border-bottom:1px solid var(--line,rgba(20,32,52,.12))}
.frow .fr-n{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#2f6cb8}
.frow .fr-find{font-size:clamp(17px,1.7vw,21px);font-weight:500;line-height:1.22;letter-spacing:-.01em;margin-top:8px;color:var(--ink,#22271e)}
.frow .fr-q{font-size:15px;color:var(--ink-soft,#4a4a40);line-height:1.55}
.frow .fr-attr{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint,#8b95a3);margin-top:10px}
@media(max-width:760px){.frow{grid-template-columns:1fr;gap:10px}}

/* ============================================================
   IMPACT — cloudy panel + white cards + green arrows
   (Sanjay-style). Scoped to .impact-sky so it out-specifies
   each case's inline .imp rules. Add <div class="impact-sky">
   around the .impact grid + a <span class="arrow">↑</span> at
   the start of each .ibig.
   ============================================================ */
.impact-sky{border-radius:26px;padding:clamp(30px,4.4vw,52px);
  background:radial-gradient(46% 64% at 13% 14%,rgba(255,255,255,.9),transparent 56%),radial-gradient(42% 54% at 87% 8%,rgba(255,255,255,.72),transparent 52%),radial-gradient(54% 60% at 66% 100%,rgba(255,255,255,.6),transparent 56%),linear-gradient(180deg,#cfe3f6 0%,#dceafb 50%,#e9f2fc 100%);}
.impact-sky .imp{border:none;border-radius:18px;padding:30px 28px;background:#fff;box-shadow:0 22px 54px -32px rgba(20,32,52,.32)}
.impact-sky .imp .eyebrow{display:flex;align-items:center;gap:7px;margin-bottom:18px}
.impact-sky .imp .eyebrow::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green,#0083E7)}
.impact-sky .imp .ibig{font-family:'Switzer',sans-serif;font-weight:500;font-size:clamp(30px,3vw,42px);letter-spacing:-.03em;line-height:1.04;margin-bottom:14px;color:var(--ink,#22271e)}
.impact-sky .imp .ibig .arrow{color:var(--green,#0083E7);font-weight:500;font-size:.82em;display:inline-block;opacity:1;transform:none}
.impact-sky .imp p{font-size:14.5px;color:var(--ink-soft,#4a4a40);margin:0;line-height:1.5}
@media(max-width:820px){.impact-sky{padding:24px}.impact-sky .impact{grid-template-columns:1fr}}

/* ============================================================
   IN THEIR OWN WORDS — Sanjay-style persona quote cards
   (quote on top, avatar + name + context row at the bottom).
   Illustrated avatars via DiceBear "notionists".
   ============================================================ */
.words{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:4px 0 28px}
.wcard{display:flex;flex-direction:column;justify-content:space-between;gap:30px;background:#fff;border:1px solid rgba(20,32,52,.07);border-radius:18px;padding:30px 28px;box-shadow:0 20px 52px -34px rgba(20,32,52,.30)}
.wcard .wq{font-family:'Switzer',sans-serif;font-weight:500;font-size:clamp(14px,1.3vw,16px);line-height:1.4;letter-spacing:-.01em;color:var(--ink,#22271e);margin:0}
.wcard .wpersona{display:flex;align-items:center;gap:13px}
.wcard .wav{width:46px;height:46px;border-radius:50%;flex:0 0 auto;background:#eef2f6;border:1px solid var(--line,rgba(20,32,52,.12));object-fit:cover}
.wcard .wname{display:block;font-weight:600;font-size:15px;color:var(--ink,#22271e);letter-spacing:-.01em}
.wcard .wctx{display:block;font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint,#8b95a3);margin-top:3px}
@media(max-width:820px){.words{grid-template-columns:1fr}}

/* "in their own words" cards — staggered fade-up reveal (hooks the
   case reveal observer: .words gets .in when scrolled into view) */
.words .wcard{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease,cubic-bezier(.22,1,.36,1)),transform .9s var(--ease,cubic-bezier(.22,1,.36,1));}
.words.in .wcard{opacity:1;transform:none;}
.words.in .wcard:nth-child(1){transition-delay:.05s}
.words.in .wcard:nth-child(2){transition-delay:.16s}
.words.in .wcard:nth-child(3){transition-delay:.27s}
@media(prefers-reduced-motion:reduce){.words .wcard{opacity:1!important;transform:none!important;transition:none!important}}

/* impact cards: same warm dawn bloom on hover as the problem cards */
.impact-sky .imp{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,background .35s ease}
.impact-sky .imp:hover{transform:translateY(-4px);background:#fff radial-gradient(130% 100% at 100% 0%,rgba(126,185,217,.5),rgba(243,208,159,.26) 46%,transparent 76%) no-repeat;box-shadow:0 30px 60px -34px rgba(20,32,52,.36)}
@media(prefers-reduced-motion:reduce){.impact-sky .imp{transition:none}.impact-sky .imp:hover{transform:none}}

/* ============================================================
   Editorial reframe + shift line + open-stepper — rolled out
   across all case studies (replaces boxed decisions, before/after
   boxes, and hidden tab steppers per the case-study research).
   ============================================================ */
.reframe{max-width:860px;margin:2px 0 6px}
.reframe .re-eyebrow{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green,#0083E7);display:block;margin-bottom:14px}
.reframe .re-line{font-family:'Switzer',sans-serif;font-weight:400;font-size:clamp(20px,2.4vw,30px);letter-spacing:-.02em;line-height:1.32;margin:0;color:var(--ink-soft,#4a4a40)}
.reframe .re-line em{font-style:normal;color:var(--ink,#22271e);font-weight:500}
.reframe .re-line strong{font-weight:500;color:var(--green,#0083E7)}

.shiftblk{max-width:760px}
.shiftblk .seyebrow{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green,#0083E7);display:block;margin-bottom:16px}
.shiftblk .old{font-family:'Switzer',sans-serif;font-weight:400;font-size:clamp(19px,2.5vw,29px);letter-spacing:-.01em;color:#aab1bb;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 56%;background-size:0% 1.5px}
.shiftblk.go .old{animation:strikeIn .55s cubic-bezier(.22,1,.36,1) .15s forwards}
@keyframes strikeIn{to{background-size:100% 1.5px}}
.shiftblk .arw{color:var(--green,#0083E7);margin:0 10px;font-weight:400;font-size:.82em;opacity:0;transition:opacity .4s ease .5s}
.shiftblk.go .arw{opacity:1}
.shiftblk .new{display:block;margin-top:12px;font-family:'Switzer',sans-serif;font-weight:500;font-size:clamp(28px,4.4vw,52px);letter-spacing:-.03em;line-height:1.05;color:var(--ink,#22271e);opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.22,1,.36,1) .45s,transform .7s cubic-bezier(.22,1,.36,1) .45s}
.shiftblk.go .new{opacity:1;transform:none}
.shiftblk .new em{font-style:normal;color:var(--green,#0083E7)}
.shiftblk .ssub{font-size:16px;color:var(--ink-soft,#4a4a40);margin:22px 0 0;max-width:56ch;line-height:1.6;opacity:0;transition:opacity .6s ease .8s}
.shiftblk.go .ssub{opacity:1}
@media(prefers-reduced-motion:reduce){.shiftblk .old{background-size:100% 1.5px}.shiftblk .new,.shiftblk .arw,.shiftblk .ssub{opacity:1;transform:none}}

/* tab stepper -> open numbered stacked sections */
.stepper{border:none!important;background:none!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;margin-top:26px!important;counter-reset:stp}
.stepper .step-tabs{display:none!important}
.stepper .step-ind{display:none!important}
.stepper .step-panels{padding:0!important;min-height:0!important}
.stepper .step-panel{display:block!important;opacity:1!important;animation:none!important;border-top:1px solid var(--line,rgba(20,32,52,.12));padding:24px 0!important}
.stepper .step-panel:first-child{border-top:none!important}
.stepper .step-panel h3::before{counter-increment:stp;content:"0" counter(stp) "\00a0\00a0\00a0";font-family:'Geist Mono',monospace;color:var(--accent,#16202b);font-size:.6em;letter-spacing:.14em;vertical-align:2px}

/* static pale-blue marker highlight (shared; mashreq's animated .lede .mk overrides locally) */
.mk{background-image:linear-gradient(rgba(0,131,231,.16),rgba(0,131,231,.16));background-repeat:no-repeat;background-position:0 92%;background-size:100% .8em;padding:0 .05em;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* process timeline spine + frosted-glass node dots (shared across cases) */
#stepper{position:relative;padding-left:34px}
#stepper::before{content:'';position:absolute;left:5px;top:20px;bottom:20px;width:2px;background:var(--line)}
#stepper .step-panel{position:relative}
#stepper .step-panel::before{content:'';position:absolute;left:-35px;top:27px;width:16px;height:16px;border-radius:50%;background:linear-gradient(150deg,rgba(120,195,255,.65),rgba(0,131,231,.4));border:1px solid rgba(255,255,255,.6);box-shadow:inset 0 1px 1.5px rgba(255,255,255,.85),inset 0 -2px 3px rgba(0,70,140,.3),0 5px 12px -3px rgba(0,131,231,.38),0 0 0 5px #fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1;transition:transform .45s ease,box-shadow .45s ease,background .45s ease}
#stepper.lit .step-panel::before{transform:scale(1.16);background:linear-gradient(150deg,rgba(125,198,255,.92),rgba(0,131,231,.72));box-shadow:inset 0 1px 1.5px rgba(255,255,255,.95),inset 0 -2px 4px rgba(0,70,140,.45),0 6px 16px -3px rgba(0,131,231,.55),0 0 0 5px #fff}
#stepper.lit .step-panel:nth-child(1)::before{transition-delay:.05s}
#stepper.lit .step-panel:nth-child(2)::before{transition-delay:.22s}
#stepper.lit .step-panel:nth-child(3)::before{transition-delay:.39s}
#stepper.lit .step-panel:nth-child(4)::before{transition-delay:.56s}
@media(max-width:680px){#stepper{padding-left:28px}#stepper .step-panel::before{left:-28px}}

/* closing-thoughts reflection: editorial split (shared across cases) */
.refl-split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.refl-split .rs-big{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(30px,4.2vw,54px);line-height:1.06;letter-spacing:-.02em;margin:0;color:var(--ink);position:sticky;top:96px}
.refl-split .rs-big em{font-style:italic;color:#0083E7}
.refl-split .rs-body p{font-size:16.5px;line-height:1.68;color:var(--ink-soft);margin:0 0 20px}
.refl-split .rs-body p:last-child{color:var(--ink);margin-bottom:0}
@media(max-width:820px){.refl-split{grid-template-columns:1fr;gap:26px}.refl-split .rs-big{position:static}}
