/* Case studies share the v2 foundations; these rules only compose the case pages. */
.case-brand{background:var(--paper);color:var(--ink)}
.case-brand .header nav a[aria-current=page]{color:var(--teal)}
.case-list-section{padding-block:64px 112px}
.case-list-heading{max-width:900px;margin-bottom:48px}
.case-list-heading .intro{color:var(--teal);font-size:1rem;margin-bottom:20px}
.case-list-heading h1{font-size:clamp(3rem,5vw,4.5rem);letter-spacing:-.05em;line-height:1.08}
.case-list-heading>p:last-child{font-size:1.125rem;line-height:1.7;color:var(--muted);margin-top:28px}
.case-filter-bar{border-block:1px solid var(--line);padding:20px 0;margin-bottom:40px}
.case-filters{display:flex;gap:10px;flex-wrap:wrap}
.filter-chip{padding:10px 17px;min-height:44px;border:1px solid var(--line);border-radius:7px;background:transparent;font-size:.875rem;line-height:1.5;transition:background .2s,color .2s,border-color .2s}
.filter-chip:hover{border-color:var(--ink)}
.filter-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
#caseStatus{font-size:.875rem;color:var(--muted);margin-top:16px}
.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 32px}
.case-grid .project{min-width:0;max-width:none}
.case-grid .project[hidden]{display:none}
.case-grid .project-image{background:var(--white)}
.case-grid .project-image>img{aspect-ratio:5/3;width:100%;object-fit:contain}
.case-grid .project-info p{font-size:.875rem;line-height:1.57}
.case-grid .project-info h3{font-size:1.5rem}
.case-grid .project>p{font-size:1rem;line-height:1.625}
.case-brand .project-image:before{content:none}
.case-brand .project-image.is-original:before{display:none}
.case-brand .btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:15px 22px;border-radius:8px;background:var(--ink);color:#fff;font:500 1rem/1.5 Inter,Arial,sans-serif;border:1px solid var(--ink);transition:background .2s,transform .18s var(--ease)}
.case-brand .btn:hover{background:#3d3f4a}
.case-brand .btn:active{transform:scale(.97)}
.case-brand .btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.case-brand .btn-ghost:hover{background:#eeefea}
.project-hero{width:min(1280px,calc(100% - 96px));margin:auto;padding:48px 0 72px;display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.project-hero__inner.wrap{width:100%;min-width:0;order:1}
.project-hero__media{order:2;min-width:0}
.project-hero__media img{width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:var(--white);border-radius:14px}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem;line-height:1.6;color:var(--muted);margin-bottom:36px}
.crumbs a:hover{color:var(--teal);text-decoration:underline}
.project-hero__kicker{font-size:.875rem;color:var(--teal);margin-bottom:18px}
.project-hero h1{font-size:clamp(2.5rem,4vw,4rem);letter-spacing:-.045em;line-height:1.1;overflow-wrap:anywhere}
.project-hero__subtitle{font-size:1.125rem;line-height:1.65;margin-top:24px;color:var(--muted)}
.project-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;flex-direction:row-reverse;justify-content:flex-end}
.project-hero__actions .btn-ghost{order:1}
.project-metrics{background:#e7f5ef;padding-block:40px}
.project-metrics__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px}
.metric-value{font-family:'Space Grotesk',sans-serif;font-size:clamp(2rem,3vw,3rem);font-weight:600;letter-spacing:-.04em;line-height:1.15;color:var(--teal);overflow-wrap:anywhere}
.metric-label{font-size:.875rem;line-height:1.6;margin-top:10px;max-width:30ch}
.project-body{padding-block:88px}
.project-body__grid{display:grid;grid-template-columns:220px minmax(0,740px);justify-content:space-between;gap:64px}
.project-index{align-self:start;position:sticky;top:32px}
.project-index__title{font-weight:600;font-size:1rem;margin-bottom:20px}
.project-index ol{list-style:none;margin:0;padding:0}
.project-index li{border-bottom:1px solid var(--line)}
.project-index a{display:flex;align-items:center;gap:16px;font-size:.875rem;min-height:48px;padding-block:10px}
.project-index a>span{font-family:'Space Grotesk',sans-serif;color:var(--teal);font-size:.8rem}
.project-index a:hover{color:var(--teal)}
.project-chapter{padding-bottom:44px;margin-bottom:40px;border-bottom:1px solid var(--line);scroll-margin-top:28px}
.project-chapter:last-child{margin-bottom:0}
.project-chapter__num{font-size:.875rem;color:var(--teal);margin-bottom:12px;font-family:'Space Grotesk',sans-serif}
.project-chapter h2{font-size:2rem;line-height:1.25;margin-bottom:22px}
.rich{font:400 1rem/1.75 Inter,Arial,sans-serif;color:var(--ink);overflow-wrap:break-word}
.rich p{max-width:72ch;margin-bottom:18px}
.rich p:last-child{margin-bottom:0}
.rich h2,.rich h3{font-size:1.4rem;margin:28px 0 16px}
.rich li{padding-left:4px;margin-bottom:10px}
.rich ul,.rich ol{padding-left:22px}
.rich a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.rich img{max-width:100%;height:auto;border-radius:10px}
.stack-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.stack-chips li{background:#eee7f8;padding:8px 14px;border-radius:6px;font-size:.875rem}
.project-cta{background:var(--ink);color:#fff;text-align:center;padding-block:80px}
.project-cta h2{font-size:clamp(2.2rem,4vw,3.5rem);line-height:1.1}
.project-cta p{margin:24px auto 0;color:#d4d5da;max-width:620px;font-size:1rem;line-height:1.625}
.project-cta__actions{display:flex;justify-content:center;gap:16px;margin-top:32px;flex-wrap:wrap}
.project-cta .btn-accent{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.project-cta .btn-accent:hover{background:#62ecd4}
.project-cta .btn-ghost{border-color:#65666e;color:#fff}
.project-cta .btn-ghost:hover{background:#3d3f4a}
.case-brand .section-dark{padding-block:80px;background:#fff}
.case-brand .section-head{margin-bottom:36px}
.case-brand .section-head h2{font-size:2.5rem}
.case-visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.case-visual-grid .project{min-width:0}
.case-visual-grid .project-info h3{font-size:1.375rem}
.case-visual-grid .project>p{font-size:1rem;line-height:1.625}
@media(max-width:1050px){.project-hero{width:calc(100% - 64px);gap:32px}.project-body__grid{grid-template-columns:180px minmax(0,1fr);gap:40px}.project-hero h1{font-size:2.8rem}.project-hero__actions .btn{font-size:.875rem;padding-inline:16px}.case-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
.case-list-section{padding-block:36px 64px}.case-list-heading{margin-bottom:32px}.case-list-heading h1{font-size:2.5rem}.case-list-heading h1 br{display:none}.case-list-heading>p:last-child{font-size:1rem;margin-top:24px}.case-list-heading>p:last-child br{display:none}.case-grid,.case-visual-grid{grid-template-columns:1fr;gap:36px}.case-grid .project-info h3{font-size:1.375rem}.case-grid .project{width:100%}.filter-chip{padding-inline:13px}.case-filter-bar{margin-bottom:30px}.case-filters{gap:8px}.project-hero{width:calc(100% - 40px);padding:28px 0 40px;grid-template-columns:1fr;gap:32px}.crumbs{margin-bottom:28px;font-size:.75rem}.project-hero h1{font-size:2.5rem}.project-hero__subtitle{font-size:1rem;margin-top:20px}.project-hero__actions{margin-top:24px;flex-direction:column}.project-hero__actions .btn{font-size:1rem;width:100%;min-height:52px}.project-hero__media img{aspect-ratio:16/10}.project-metrics{padding-block:28px}.project-metrics__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}.metric-value{font-size:2rem}.metric-label{font-size:.875rem}.project-body{padding-block:40px}.project-body__grid{grid-template-columns:1fr;gap:32px}.project-index{position:static}.project-index ol{display:flex;gap:8px;flex-wrap:wrap}.project-index li{border:1px solid var(--line);border-radius:6px}.project-index a{padding:8px 12px;min-height:44px;gap:8px}.project-index__title{margin-bottom:12px}.project-chapter h2{font-size:1.75rem}.project-chapter{padding-bottom:28px;margin-bottom:28px}.project-cta{padding-block:56px}.project-cta__actions{flex-direction:column}.project-cta .btn{width:100%}.case-brand .section-dark{padding-block:56px}.case-brand .section-head h2{font-size:2rem}.case-visual-grid .project-info h3{font-size:1.375rem}}
@media(prefers-reduced-motion:reduce){.case-brand .btn:active{transform:none}}
/* Keep artwork at its intended ratio, without empty bands around it. */
.case-brand .project-image>img{height:auto}
.case-grid .case-card-title{font-size:1.5rem;line-height:1.25;letter-spacing:-.035em}
.project-hero__actions{flex-direction:row;justify-content:flex-start}
.rich{line-height:1.625}
@media(max-width:760px){.case-grid .case-card-title{font-size:1.375rem}.project-hero__actions{flex-direction:column}}
/* Source posters include a hairline frame: clip it without altering the artwork. */
.project-hero__media{overflow:hidden;border-radius:14px;background:transparent}
.project-hero__media img{aspect-ratio:auto;height:auto;object-fit:cover;background:transparent;border:0;outline:0;clip-path:inset(1px round 13px)}

/* Portfolio introduction: measured typography and a clear expertise switcher. */
.case-list-section{padding-top:56px}
.case-list-heading{max-width:none;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,1fr);gap:20px 64px;align-items:end;margin-bottom:40px}
.case-list-heading .intro{grid-column:1/-1;font-size:.875rem;line-height:1.5;font-weight:600;margin:0;color:var(--teal)}
.case-list-heading h1{font-size:clamp(2.5rem,4.2vw,3.5rem);line-height:1.08;letter-spacing:-.045em;text-wrap:balance}
.case-list-heading>p:last-child{font-size:1rem;line-height:1.625;margin:0 0 4px;max-width:37ch}
.case-filter-bar{border:0;padding:0;margin-bottom:32px}
.case-filter-label{font-size:.75rem;font-weight:500;letter-spacing:.015em;color:var(--muted);margin-bottom:12px}
.case-filters{display:flex;flex-wrap:wrap;gap:8px;background:#eeefea;padding:6px;border-radius:14px;width:fit-content;max-width:100%}
.filter-chip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 16px;min-height:48px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-size:.875rem;font-weight:500;line-height:1.4;touch-action:manipulation;transition:background 160ms,color 160ms,box-shadow 160ms,transform 100ms}
.filter-chip:hover{background:#ffffff80;border-color:transparent;color:var(--ink)}
.filter-chip.active{background:var(--white);color:var(--teal);border-color:#dce7e1;box-shadow:0 2px 5px #24252f08}
.filter-count{font-size:.75rem;line-height:1;min-width:23px;min-height:23px;display:grid;place-items:center;border-radius:50%;background:#e4e6df;color:var(--muted);font-variant-numeric:tabular-nums}
.filter-chip.active .filter-count{background:#d4f7ed;color:var(--teal)}
.filter-chip:active{transform:scale(.98);background:#d4f7ed}
.filter-chip:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
#caseStatus{margin-top:16px;font-size:.8125rem;line-height:1.5;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:1000px){.case-list-heading{grid-template-columns:1fr;gap:18px}.case-list-heading>p:last-child{max-width:56ch}.case-filters{width:100%}.filter-chip{flex:1 1 auto}}
@media(max-width:760px){.case-list-section{padding-top:32px}.case-list-heading{gap:16px;margin-bottom:28px}.case-list-heading h1{font-size:clamp(2rem,8.7vw,2.75rem);line-height:1.1;letter-spacing:-.04em;max-width:19ch}.case-list-heading>p:last-child{font-size:1rem;line-height:1.625}.case-filters{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;border-radius:12px}.filter-chip{gap:8px;padding:10px;min-height:58px;font-size:.8125rem;text-align:left;border-radius:8px}.filter-count{min-width:21px;min-height:21px}.case-filter-label{margin-bottom:10px}.case-filter-bar{margin-bottom:28px}}
@media(prefers-reduced-motion:reduce){.filter-chip{transition:none}.filter-chip:active{transform:none}}
@media(prefers-contrast:more){.filter-chip.active{border:2px solid var(--teal)}.filter-chip{color:var(--ink)}}
@media(max-width:760px){.case-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-chip{min-width:0}.filter-chip>span:first-child{min-width:0;overflow-wrap:anywhere}.filter-count{flex-shrink:0}}
