.case-study{--case-paper:#f7f8f5;--case-ink:#14221f;--case-forest:#31554a;--case-sage:#dce7de;--case-line:#d7ddd8;--case-muted:#65716d;--case-orange:#d88022;width:100%;min-height:100vh;color:var(--case-ink);background:radial-gradient(circle at 83% 11%, #dce7de6e, transparent 28rem), var(--case-paper)}.case-study-shell{width:min(100% - 112px,1340px);margin:0 auto;padding:34px 0 28px}.case-study a:focus-visible{outline:2px solid var(--case-orange);outline-offset:5px}.case-study-crumb,.case-section-label,.case-kicker,.case-facts dt,.case-next small,.case-hero-visual figcaption,.case-tactile-image figcaption,.case-metric-grid span{font-family:var(--font-mono), monospace;letter-spacing:.12em;font-size:.66rem;line-height:1.5}.case-study-crumb{color:var(--case-muted);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.case-study-crumb a{color:var(--case-forest)}.case-accent{background:var(--case-orange);width:22px;height:2px;display:inline-block}.case-hero{border-bottom:1px solid var(--case-line);grid-template-columns:minmax(240px,.78fr) minmax(380px,1.25fr) minmax(165px,.42fr);align-items:stretch;gap:clamp(28px,3vw,54px);padding:40px 0 28px;display:grid}.case-hero-copy{flex-direction:column;align-items:flex-start;padding:26px 0;display:flex}.case-kicker,.case-section-label{color:var(--case-forest);align-items:center;gap:11px;display:flex}.case-hero h1,.case-content h2,.case-build h2,.case-reported-results h2,.case-lab-callout h2{letter-spacing:-.07em;font-weight:560}.case-hero h1{max-width:430px;margin-top:20px;font-size:clamp(3.55rem,5.4vw,5.9rem);line-height:.94}.case-hero h1 span{color:var(--case-forest)}.case-summary{color:#4e5b56;max-width:390px;margin-top:28px;font-size:1.04rem;line-height:1.65}.case-actions,.case-lab-callout-links{flex-wrap:wrap;align-items:center;gap:17px 23px;margin-top:auto;padding-top:36px;display:flex}.case-button,.case-inline-link{align-items:center;gap:11px;min-height:46px;font-size:.84rem;display:inline-flex}.case-button{color:#f8faf6;background:var(--case-forest);border:1px solid var(--case-forest);padding:0 17px;transition:background .16s,transform .16s;box-shadow:0 8px 20px #31554a1f}.case-button:hover{background:#1f3b33;transform:translateY(-2px)}.case-inline-link{min-height:0;color:var(--case-ink);border-bottom:1px solid #aab9b0}.case-inline-link:hover{color:var(--case-forest);border-color:var(--case-forest)}.case-hero-visual,.case-tactile-image{background:#10211d;border:1px solid #b9c5bd;min-height:415px;margin:0;position:relative;overflow:hidden}.case-hero-visual .project-visual{border:0;border-radius:0;width:100%;height:100%;min-height:415px}.case-hero-visual .project-visual svg{width:100%;height:100%}.case-hero-visual figcaption,.case-tactile-image figcaption{color:#d2ded7;text-align:right;text-shadow:0 1px 10px #07110e;position:absolute;bottom:11px;left:14px;right:14px}.case-hero-visual .diagram-caption{bottom:39px}.case-facts{border-left:1px solid var(--case-line);flex-direction:column;gap:26px;margin:0;padding:25px 0 25px 23px;display:flex}.case-facts div{gap:6px;display:grid}.case-facts dt{color:var(--case-forest)}.case-facts dd{color:#52605b;margin:0;font-size:.8rem;line-height:1.58}.case-content,.case-build,.case-reported-results,.case-lab-callout,.case-next{border-bottom:1px solid var(--case-line)}.case-content{grid-template-columns:minmax(260px,.75fr) minmax(380px,1.25fr);gap:80px;padding:72px 0;display:grid}.case-content h2,.case-build h2,.case-reported-results h2,.case-lab-callout h2{max-width:390px;margin-top:21px;font-size:clamp(2rem,3.2vw,3.2rem);line-height:1.02}.case-description{align-self:end;max-width:650px}.case-description p,.case-reported-results>div>p,.case-lab-callout>div>p{color:#54625c;font-size:1.06rem;line-height:1.8}.case-build{grid-template-columns:minmax(230px,.7fr) minmax(380px,1.1fr);gap:48px 80px;padding:60px 0;display:grid}.case-build ol{margin:0;padding:0;list-style:none}.case-build li{border-top:1px solid var(--case-line);grid-template-columns:42px minmax(0,1fr);gap:16px;padding:16px 0;display:grid}.case-build li:last-child{border-bottom:1px solid var(--case-line)}.case-build li>span{color:var(--case-orange);font-family:var(--font-mono), monospace;font-size:.7rem}.case-build li p{color:#34443e;font-size:.97rem;line-height:1.65}.case-technologies,.case-method-tags{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.case-technologies span,.case-method-tags span{color:#52635a;background:#f3f6f1;border:1px solid #cad5ce;border-radius:3px;padding:5px 9px;font-size:.72rem}.case-next{justify-content:space-between;gap:30px;padding:28px 0;display:flex}.case-next a{color:var(--case-ink);align-items:center;gap:13px;display:inline-flex}.case-next a:hover{color:var(--case-forest)}.case-next span{gap:3px;font-size:.85rem;display:grid}.case-next small{color:var(--case-muted)}.case-next .case-previous svg{transform:rotate(180deg)}.case-next-link{text-align:right}.case-tactile-image img{object-fit:cover;width:100%;height:100%;min-height:415px;display:block}.case-study-tactile .case-hero{grid-template-columns:minmax(250px,.8fr) minmax(430px,1.26fr) minmax(175px,.42fr)}.case-study-tactile .case-content{padding-bottom:66px}.case-reported-results{grid-template-columns:minmax(250px,.65fr) minmax(450px,1.35fr);gap:70px;padding:65px 0;display:grid}.case-reported-results>div>p{max-width:390px;margin-top:23px;font-size:.9rem}.case-metric-grid{border-top:1px solid var(--case-line);border-left:1px solid var(--case-line);grid-template-columns:1fr 1fr;align-content:start;display:grid}.case-metric-grid>div{border-right:1px solid var(--case-line);border-bottom:1px solid var(--case-line);min-height:174px;padding:22px}.case-metric-grid span{color:var(--case-forest);display:block}.case-metric-grid strong{color:var(--case-forest);letter-spacing:-.06em;margin-top:10px;font-size:clamp(1.65rem,2.4vw,2.5rem);font-weight:550;line-height:1;display:block}.case-metric-grid p{color:var(--case-muted);margin-top:11px;font-size:.77rem;line-height:1.55}.case-metric-grid .case-metric-wide{grid-column:1/-1;min-height:0}.case-lab-callout{justify-content:space-between;align-items:end;gap:50px;padding:60px 0;display:flex}.case-lab-callout>div:first-child{max-width:620px}.case-lab-callout>div>p{max-width:610px;margin-top:23px;font-size:.94rem}.case-lab-callout-links{flex:none;margin:0;padding:0}@media (max-width:1100px){.case-study-shell{width:min(100% - 64px,1040px)}.case-hero,.case-study-tactile .case-hero{grid-template-columns:minmax(245px,.82fr) minmax(360px,1.18fr)}.case-facts{border-top:1px solid var(--case-line);border-left:0;grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:24px;padding:23px 0 0;display:grid}.case-content,.case-build,.case-reported-results{gap:48px}}@media (max-width:720px){.case-study-shell{width:min(100% - 40px,620px);padding-top:25px}.case-hero,.case-study-tactile .case-hero,.case-content,.case-build,.case-reported-results{display:block}.case-hero{padding-top:28px}.case-hero-copy{padding:0 0 33px}.case-hero h1{font-size:clamp(3.2rem,14vw,4.6rem)}.case-summary{margin-top:21px;font-size:1rem}.case-actions{margin-top:0;padding-top:27px}.case-hero-visual,.case-tactile-image,.case-hero-visual .project-visual,.case-tactile-image img{min-height:285px}.case-facts{grid-template-columns:1fr 1fr;gap:20px;display:grid}.case-facts div:last-child:nth-child(odd){grid-column:1/-1}.case-content,.case-build,.case-reported-results,.case-lab-callout{padding:46px 0}.case-content h2,.case-build h2,.case-reported-results h2,.case-lab-callout h2{font-size:clamp(2rem,10vw,2.8rem)}.case-description{margin-top:26px}.case-description p,.case-reported-results>div>p,.case-lab-callout>div>p{font-size:.98rem}.case-build ol{margin-top:32px}.case-technologies,.case-method-tags{margin-top:25px}.case-metric-grid{margin-top:32px}.case-metric-grid>div{padding:17px}.case-lab-callout{display:block}.case-lab-callout-links{margin-top:30px}}@media (max-width:430px){.case-study-shell{width:calc(100% - 32px)}.case-study-crumb{font-size:.58rem}.case-facts,.case-metric-grid{grid-template-columns:1fr}.case-facts div:last-child:nth-child(odd),.case-metric-grid .case-metric-wide{grid-column:auto}.case-next{gap:14px}.case-next span{font-size:.74rem}}@media (prefers-reduced-motion:reduce){.case-study *,.case-study :before,.case-study :after{scroll-behavior:auto;transition:none}}
