/* Unified case-study design: Black & Crimson, whitespace over decorative lines. */
.case-shell{--case-accent:var(--accent);padding-bottom:clamp(32px,5vw,75px)}
.case-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:18px 0 25px;color:var(--subtle);font-size:.9rem}
.case-breadcrumb a{color:var(--text);border-bottom:1px solid var(--accent);padding-bottom:3px}
.case-breadcrumb a:hover{color:var(--accent-text)}
.case-hero{display:flex;min-height:clamp(350px,53vh,630px);flex-direction:column;justify-content:center;align-items:flex-start;gap:clamp(24px,3vw,45px);padding:clamp(35px,5vw,75px) 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.case-hero__topline{display:flex;width:100%;justify-content:space-between;flex-wrap:wrap;gap:12px 25px;color:var(--muted);font-size:.8rem;letter-spacing:.04em;font-weight:500}
.case-hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(4rem,10vw,10.7rem);line-height:1.05;letter-spacing:-.07em;color:var(--text);margin:0;overflow-wrap:anywhere}
.case-hero__title em{font-style:normal;color:inherit}
.case-hero__lead{font-size:clamp(1.2rem,1.9vw,1.7rem);color:var(--muted);line-height:1.55;max-width:41ch;margin:0}
.case-hero__action{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--text);border-bottom:1px solid var(--accent)}
.case-hero__action:hover{color:var(--accent-text)}
/* Sticky chapter links are underlined individually; no full-width rule. */
.case-chapters{display:flex;position:sticky;top:88px;z-index:9;gap:clamp(19px,3.4vw,55px);overflow-x:auto;overflow-y:hidden;background:var(--bg);scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.case-chapters__link{display:inline-flex;flex-shrink:0;align-items:center;white-space:nowrap;min-height:55px;font-size:.91rem;font-weight:500;color:var(--muted);border-bottom:2px solid transparent}
.case-chapters__link:hover,.case-chapters__link:focus-visible{color:var(--text)}
.case-chapters__link[aria-current="location"]{color:var(--text);border-bottom-color:var(--accent)}
#case-overview,#case-process,#case-engineering,#case-validation{scroll-margin-top:170px}
.case-section,.case-chapter{padding:clamp(54px,6.1vw,90px) 0}
.case-section,.case-chapter__heading{display:block}
.case-section__eyebrow{font-size:.79rem;font-weight:600;letter-spacing:.075em;text-transform:uppercase;line-height:1.5;color:var(--accent-text);margin:0 0 clamp(16px,2vw,25px)}
.case-section__body,.case-chapter__heading>div{min-width:0}
.case-overview__question{font-size:clamp(2.55rem,4.8vw,5.7rem);letter-spacing:-.053em;line-height:1.1;text-wrap:balance;max-width:19ch;margin:0 0 28px}
.case-section__lead{font-size:clamp(1.1rem,1.38vw,1.29rem);line-height:1.7;color:var(--muted);max-width:63ch;margin:0}
.case-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,45px);max-width:850px;margin:clamp(34px,4.5vw,60px) 0 0}
.case-facts>div{min-width:0}
.case-facts dt{font-size:.85rem;color:var(--subtle);margin-bottom:8px;line-height:1.45}
.case-facts dd{font-size:.99rem;line-height:1.55;margin:0;overflow-wrap:anywhere}
.case-chapter__heading{margin-bottom:clamp(32px,4.5vw,60px);max-width:1180px}
.case-chapter__heading h2,.case-validation h2{font-size:clamp(2.45rem,4.1vw,4.7rem);letter-spacing:-.05em;line-height:1.12;text-wrap:balance;max-width:24ch;margin:0 0 21px;text-align:left}
.case-chapter__heading p:not(.case-section__eyebrow){font-size:clamp(1.08rem,1.4vw,1.26rem);color:var(--muted);line-height:1.65;max-width:59ch;margin:0}
.case-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,4vw,66px);padding:0;margin:0;list-style:none}
.case-flow__item,.case-decisions__item{min-width:0}
.case-flow__item h3{font-size:clamp(1.15rem,1.5vw,1.45rem);font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:0 0 12px}
.case-flow__item p{font-size:1rem;line-height:1.65;color:var(--muted);margin:0}
.case-decisions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4.6vw,72px)}
.case-decisions__item h3{font-size:clamp(1.22rem,1.82vw,1.72rem);line-height:1.32;letter-spacing:-.025em;font-weight:600;margin:0 0 12px}
.case-decisions__item p{font-size:1.04rem;line-height:1.65;color:var(--muted);margin:0}
.case-validation h2{max-width:24ch}
.case-validation__extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(25px,5vw,75px);margin-top:clamp(36px,5vw,70px);max-width:930px}
.case-validation__extras h3{font-size:1.11rem;font-weight:600;line-height:1.35;margin:0 0 12px}
.case-validation__extras p{font-size:1rem;line-height:1.68;color:var(--muted);margin:0}
.case-next{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:clamp(34px,5vw,73px) 0 0;margin:clamp(28px,4vw,68px) 0 0;border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.case-next h2{font-family:var(--serif);font-size:clamp(3.4rem,6.5vw,7.5rem);font-weight:400;line-height:1.02;letter-spacing:-.065em;color:var(--text);margin:0}
.case-next__link{display:inline-flex;flex-shrink:0;align-items:center;min-height:44px;font-size:1rem;font-weight:600;border-bottom:1px solid var(--accent)}
.case-next__link:hover{color:var(--accent-text)}
.case-error{font-size:clamp(2.6rem,6vw,5.2rem);margin:45px 0 20px}
.case-error__back{display:inline-block;min-height:44px;margin:24px 0 70px;border-bottom:1px solid var(--accent)}
@media(min-width:901px) and (prefers-reduced-motion:no-preference){
 .case-shell[data-motion="ready"] .case-reveal:not(.is-visible){opacity:0;transform:translateY(18px)}
 .case-reveal{transition:opacity .5s ease,transform .5s ease}
}
@media(max-width:1000px){
 .case-facts,.case-flow,.case-decisions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 .case-breadcrumb{padding:12px 0 18px}
 .case-hero{min-height:380px;padding:35px 0;gap:24px}
 .case-hero__topline{font-size:.73rem;letter-spacing:0}
 .case-hero__title{font-size:clamp(3.7rem,12vw,6.5rem)}
 .case-hero__lead{font-size:1.14rem}
 .case-chapters{top:72px;gap:25px}
 .case-chapters__link{min-height:51px;font-size:.85rem}
 #case-overview,#case-process,#case-engineering,#case-validation{scroll-margin-top:137px}
 .case-section,.case-chapter{padding:45px 0;display:block}
 .case-section__eyebrow{margin:0 0 18px}
 .case-overview__question,.case-chapter__heading h2,.case-validation h2{font-size:clamp(2.3rem,8.7vw,4.2rem);margin-bottom:19px}
 .case-chapter__heading{display:block;margin-bottom:31px}
 .case-chapter__heading .case-section__eyebrow{margin-bottom:17px}
 .case-facts{gap:23px 16px;margin-top:29px}
 .case-flow,.case-decisions{grid-template-columns:1fr;gap:26px}
 .case-flow__item h3,.case-decisions__item h3{margin-bottom:7px}
 .case-validation__extras{grid-template-columns:1fr;gap:28px;margin-top:31px}
 .case-next{margin-top:14px;padding-top:35px;display:block}
 .case-next h2{font-size:clamp(3.3rem,11vw,5rem)}
 .case-next__link{margin-top:17px}
}
@media(max-width:420px){
 .case-hero__topline span:last-child{max-width:140px;text-align:right}
 .case-facts{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.case-reveal{opacity:1!important;transform:none!important;transition:none!important}}

/* Code availability is a real external link, not a claim of a live demo. */
.case-validation__repository{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-top:14px;
  border-bottom:1px solid var(--accent);
  color:var(--text);
  font-size:.98rem;
  font-weight:600;
}
.case-validation__repository:hover{color:var(--accent-text)}
