/* Shared editorial case-study components. Colours and type inherit the homepage. */
.case-study{--case-space:clamp(76px,9vw,142px);overflow:clip}
.case-study figure{margin:0}.case-study .case-label{color:var(--secondary);margin-bottom:28px}
.case-intro{padding-top:40px;padding-bottom:65px}.return-work{display:inline-flex;gap:16px;align-items:center;color:var(--secondary);margin-bottom:64px;transition:color .3s}.return-work:hover{color:var(--text)}.case-client{color:var(--secondary);margin-bottom:24px}
.case-intro h1{font-family:var(--serif);font-size:clamp(48px,6.6vw,106px);line-height:1.08;letter-spacing:-.045em;text-wrap:balance;max-width:1300px}.case-intro h1 em{color:#a9a8a3;white-space:nowrap}
.intro-story{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;margin-top:42px;align-items:start}.intro-story h2{font:clamp(25px,2.55vw,38px)/1.25 var(--serif);letter-spacing:-.025em}.intro-story>p{max-width:520px}
.case-tags{display:flex;flex-wrap:wrap;gap:15px 28px;list-style:none;padding:0;margin:45px 0 0;font-size:12px;letter-spacing:.11em;color:#aaa9a6}.case-tags li+li{border-left:1px solid #3b3b3b;padding-left:28px}
.case-hero{width:calc(100% - 4vw);margin-inline:auto!important;overflow:hidden}.case-hero img{width:100%;height:auto}
.case-section{padding-block:var(--case-space)}.case-study h2:not(.eyebrow){font-family:var(--serif);font-size:clamp(37px,4.4vw,67px);line-height:1.12;letter-spacing:-.038em;text-wrap:balance}.case-study h2 em{color:#a9a8a3}.case-study .intro-story h2{font-size:clamp(25px,2.55vw,38px);line-height:1.25;letter-spacing:-.025em}.case-copy{max-width:560px}.editorial-split{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;align-items:start}.editorial-split h2{max-width:680px}.case-challenge{padding-bottom:calc(var(--case-space)*.9)}
.case-direction{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center;padding-bottom:var(--case-space);border-bottom:1px solid var(--line)}.direction-copy h2{margin-bottom:30px}.direction-detail{min-width:0;overflow:hidden}.direction-detail img{width:100%;aspect-ratio:1/1.1;object-fit:cover;object-position:91% center}.case-study figcaption{font-size:12px;letter-spacing:.09em;color:#a9a8a5;line-height:1.6;margin-top:18px}.case-section-heading{max-width:800px;margin-bottom:45px}
.asset-series{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}.asset-series figure{min-width:0}.asset-link{display:block;overflow:hidden}.asset-link img{width:100%;height:auto;transition:filter .45s ease}.asset-link:hover img{filter:brightness(1.045)}.asset-series:focus-visible{outline:1px solid #aaa;outline-offset:10px}
.case-landing{background:#101010}.landing-art{margin-top:56px!important}.landing-art .asset-link{border:1px solid #292929}.landing-art img{width:100%;height:auto}.case-text-link{display:inline-flex;gap:28px;align-items:center;font-size:14px;border-bottom:1px solid #73736f;padding:9px 0;margin-top:25px;transition:color .3s}.case-text-link:hover{color:#aaa9a6}
.whitepaper-spread{display:grid;grid-template-columns:1.1fr .85fr;gap:9%;align-items:start;margin-top:60px;padding:5vw 6vw;background:#141414}.whitepaper-spread .paper-interior{margin-top:23%}.whitepaper-spread .asset-link{box-shadow:0 10px 35px #0004}.whitepaper-spread figcaption{font-size:12px}
.email-series{margin-top:54px;gap:32px}.email-series figcaption{margin-top:0;margin-bottom:23px;display:flex;gap:16px;min-height:3.2em;font-size:12px}.email-series figcaption span{color:#f1f0ed}.email-series .asset-link{background:#fff}.email-series figure:nth-child(2){margin-top:55px}.email-series figure:nth-child(3){margin-top:110px}
.case-journey{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case-journey h2{max-width:850px}.journey{list-style:none;padding:0;display:flex;justify-content:space-between;align-items:center;gap:20px;margin:58px 0 0}.journey li{font-size:13px;letter-spacing:.1em;display:flex;align-items:center;justify-content:space-between;gap:20px;flex:1}.journey li:not(:last-child)::after{content:'→';font-size:22px;font-weight:400;color:#767671;letter-spacing:0}.journey li:last-child{flex:0}
.case-contribution{display:grid;grid-template-columns:1fr 2fr;gap:10%;padding-bottom:0}.case-contribution p{max-width:880px}.case-result{text-align:center;padding-top:calc(var(--case-space)*1.25);padding-bottom:calc(var(--case-space)*1.25)}.case-result .case-label{margin-bottom:18px}.case-result h2{display:flex;flex-direction:column;align-items:center;gap:20px}.result-number{font:clamp(140px,24vw,340px)/.93 var(--serif);letter-spacing:-.075em;padding-right:.07em}.result-unit{font:14px/1.5 var(--sans);letter-spacing:.22em}.case-result>p:last-child{max-width:520px;margin:34px auto 0}
.case-next{border-top:1px solid var(--line);padding-block:var(--case-space)}.next-project-link{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:10%;align-items:center;width:100%;padding:0;text-align:left}.case-next h2{font-size:clamp(45px,6.5vw,100px)!important;letter-spacing:-.045em!important}.next-project-art{display:block;position:relative;aspect-ratio:4/5;border-radius:34px;overflow:hidden;max-width:430px;width:100%;justify-self:end}.next-project-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.next-project-link:hover .next-project-art img{transform:scale(1.018)}.next-project-link .case-text-link{margin-top:36px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Reveal only images as they approach the viewport. Copy remains immediately readable. */
@media(prefers-reduced-motion:no-preference){[data-reveal].reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .85s ease,transform .95s cubic-bezier(.2,.7,.2,1)}[data-reveal].reveal-ready.is-visible{opacity:1;transform:none}}
@media(min-width:1800px){.case-intro,.case-section,.case-direction,.case-next{max-width:1640px}.case-hero{max-width:2200px}.case-landing{max-width:none}.case-landing>.page-width{max-width:1640px}}
@media(max-width:1000px){.editorial-split,.intro-story{gap:7%;grid-template-columns:1fr 1fr}.case-direction{gap:6%;grid-template-columns:1fr 1fr}.asset-series{gap:16px}.email-series{gap:20px}.email-series figcaption{font-size:12px;letter-spacing:.05em}.whitepaper-spread{padding:4vw;gap:6%}.journey{gap:12px}.journey li{font-size:12px;letter-spacing:.04em;gap:12px}.next-project-link{gap:7%;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}
@media(max-width:700px){.case-intro{padding-top:32px;padding-bottom:42px}.return-work{margin-bottom:43px}.case-client{font-size:12px;letter-spacing:.1em;margin-bottom:18px}.case-intro h1{font-size:clamp(42px,9.3vw,65px)}.intro-story,.editorial-split{grid-template-columns:1fr;gap:26px}.intro-story{margin-top:30px}.case-study .intro-story h2{font-size:28px;max-width:480px}.case-desktop-break{display:none}.case-tags{gap:12px 22px;margin-top:30px;font-size:12px;letter-spacing:.05em}.case-tags li+li{border:0;padding:0}.case-hero{width:100%}.case-study{--case-space:72px}.case-study h2:not(.eyebrow){font-size:40px}.case-study .case-label{margin-bottom:23px}.case-direction{grid-template-columns:1fr;gap:32px}.direction-copy h2{max-width:550px}.direction-detail img{aspect-ratio:4/3;object-position:90% center}.case-copy{max-width:none}.case-section-heading{margin-bottom:32px}.asset-series{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:18px;padding:0 0 20px;scrollbar-width:thin;scrollbar-color:#575751 #171717}.asset-series figure{flex:0 0 83%;scroll-snap-align:start;max-width:380px}.asset-series .asset-link{overflow:visible}.landing-art{margin-top:35px!important}.whitepaper-spread{gap:6%;padding:24px 18px;margin-top:38px;grid-template-columns:1.1fr .85fr}.whitepaper-spread .paper-interior{margin-top:30%}.whitepaper-spread figcaption{font-size:12px;letter-spacing:.02em}.email-series{margin-top:34px}.email-series figure:nth-child(n){margin-top:0}.email-series figcaption{font-size:12px;min-height:3.2em;margin-bottom:13px}.email-series figure{flex-basis:83%;max-width:380px}.journey{display:block;margin-top:32px}.journey li{display:block;font-size:14px;letter-spacing:.1em}.journey li:not(:last-child)::after{content:'↓';display:block;margin:8px 0;color:#777;font-size:20px}.case-contribution{grid-template-columns:1fr;gap:0}.result-number{font-size:clamp(140px,37vw,230px)}.result-unit{font-size:13px;letter-spacing:.18em}.case-result>p:last-child{max-width:420px}.next-project-link{grid-template-columns:1fr;gap:35px}.case-next h2{font-size:52px!important}.next-project-art{justify-self:start;width:72%;max-width:330px;border-radius:28px}.next-project-link .case-text-link{margin-top:22px}}
@media(max-width:400px){.case-study h2:not(.eyebrow){font-size:35px}.case-study .intro-story h2{font-size:26px}.whitepaper-spread{grid-template-columns:1fr;padding:24px}.whitepaper-spread .paper-interior{width:80%;margin-top:10px;justify-self:end}}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important}.next-project-link:hover .next-project-art img{transform:none}}

/* Case-study polish: shared image framing and restrained hierarchy refinements. */
.case-study{--case-image-radius:22px;--case-detail-radius:14px}
.case-hero,.case-study .asset-link{border-radius:var(--case-image-radius);overflow:hidden}
.case-study .asset-link img{border-radius:inherit}
.direction-detail img{border-radius:var(--case-detail-radius)}
.case-intro h1{font-size:clamp(50px,7vw,112px)}
.case-study .intro-story h2{font-size:clamp(27px,2.7vw,40px)}
.social-series{gap:32px}
.case-section:has(>.social-series) .case-section-heading{margin-bottom:56px}
.case-landing{padding-block:calc(var(--case-space) + 14px)}
.landing-art{width:calc(100% - 8vw);margin-top:70px!important}
/* Keep the existing result in place, visually connected to the contribution. */
.case-result{padding-top:calc(var(--case-space)*.8)}
.result-number{font-size:clamp(150px,26vw,360px)}
.result-unit{font-size:16px}
@media(max-width:1000px){
 .social-series{gap:24px}
}
@media(max-width:700px){
 .case-study{--case-image-radius:16px;--case-detail-radius:12px}
 .case-intro h1{font-size:clamp(44px,9.8vw,69px)}
 .case-study .intro-story h2{font-size:30px}
 .social-series{gap:22px}
 .case-section:has(>.social-series) .case-section-heading{margin-bottom:40px}
 .case-landing{padding-block:calc(var(--case-space) + 8px)}
 .landing-art{width:calc(100% - var(--gutter)*2);margin-top:46px!important}
 .result-number{font-size:clamp(150px,40vw,250px)}
 .result-unit{font-size:14px}
}
@media(max-width:400px){.case-study .intro-story h2{font-size:28px}}

/* Override the figure margin reset only for the landing-page screenshot. */
.case-study .landing-art{margin-inline:auto}

/* One explanatory paragraph style across every case study. */
.case-study{--case-body-size:19px;--case-body-line-height:1.85;--case-body-colour:#b5b4b0}
.case-study :is(.case-copy,.intro-story>p,.case-contribution>p,.case-result>p:not(.eyebrow)){
 font-family:var(--sans);
 font-size:var(--case-body-size);
 font-weight:400;
 font-style:normal;
 line-height:var(--case-body-line-height);
 letter-spacing:normal;
 color:var(--case-body-colour);
 margin-block-end:0;
}
.case-study .case-copy+.case-copy{margin-block-start:1em}
@media(max-width:1000px){.case-study{--case-body-size:17px}}

/* Shared Next Project title space keeps the compact image frame aligned across projects. */
.next-project-copy{min-width:0}
.next-project-copy>:is(h2,.next-title){min-block-size:2.24em}
@media(max-width:400px){.next-project-copy>:is(h2,.next-title){min-block-size:3.36em}}
