:root{--case-wrap:1280px}
.cases,.case-detail{padding-top:calc(var(--nav-h) + 3rem);background:#fff}
.cases__intro,.cases__gallery,.case-detail>*{max-width:var(--case-wrap);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem)}
.cases__intro{padding-block:clamp(3rem,8vw,7rem) clamp(2.5rem,6vw,5rem);max-width:920px;text-align:center}
.section-kicker{margin:0 0 .8rem;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.cases h1,.case-detail h1{margin:0;letter-spacing:-.055em;font-size:clamp(2.7rem,6vw,5.8rem);line-height:.94;font-weight:650;text-wrap:balance}
.cases__intro>p:last-child{max-width:61ch;margin:1.6rem auto 0;color:var(--muted);font-size:clamp(1.05rem,1.5vw,1.24rem);line-height:1.65;text-wrap:balance}
.cases__gallery{padding-block:1rem clamp(6rem,10vw,10rem)}
.cases__toolbar{display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:end;padding-bottom:2rem;border-bottom:1px solid var(--line)}
.cases__toolbar h2{margin:0;font-size:clamp(1.55rem,3vw,2.3rem);letter-spacing:-.04em}
.case-filters{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end;max-width:750px}
.case-filter{min-height:40px;border:1px solid rgba(11,10,12,.13);background:#fff;border-radius:999px;padding:.4rem .85rem;font:600 .87rem/1 'General Sans',sans-serif;color:var(--ink);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.case-filter:hover,.case-filter.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.case-filter:focus-visible,.case-select:focus-visible{outline:3px solid color-mix(in srgb,var(--accent),white 20%);outline-offset:3px}
.case-select-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.case-status{min-height:1.5em;margin:1.2rem 0;color:var(--muted);font-size:.9rem}
.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.6rem)}
.case-card{min-width:0;animation:case-in .38s var(--ease-smooth) both;animation-delay:calc(var(--case-index) * 35ms)}
.case-card[hidden]{display:none}
.case-card__link{display:block;text-decoration:none;border-radius:1.2rem;overflow:hidden;color:inherit;outline-offset:5px}
.case-preview{position:relative;isolation:isolate;min-height:clamp(280px,34vw,480px);overflow:hidden;background:var(--case-paper);color:var(--case-ink);border-radius:1.2rem;transition:transform .52s cubic-bezier(.22,1,.36,1),box-shadow .52s cubic-bezier(.22,1,.36,1)}
.case-preview img{position:absolute;inset:-5%;z-index:-3;width:110%;max-width:none;height:110%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1),filter .8s cubic-bezier(.22,1,.36,1);transform:translate3d(calc(var(--case-x, .5) * -10px),calc(var(--case-y, .5) * -10px),0) scale(1.01)}.case-preview__wash{position:absolute;inset:0;z-index:-2;background:linear-gradient(110deg,color-mix(in srgb,var(--case-paper),transparent 68%),transparent 44%,color-mix(in srgb,var(--case-ink),transparent 70%));transition:opacity .5s cubic-bezier(.22,1,.36,1)}
.case-preview::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.15;background-image:radial-gradient(var(--case-ink) .65px,transparent .85px);background-size:7px 7px;mix-blend-mode:multiply}.case-preview__frame{position:absolute;inset:1.1rem;border:1px solid rgba(255,255,255,.5);border-radius:.75rem;opacity:0;transform:scale(.96);transition:opacity .45s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1)}.case-preview__orb{position:absolute;right:1.55rem;bottom:1.55rem;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--case-paper);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--case-ink),transparent 78%);transform:scale(.2) rotate(-45deg);opacity:0;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .3s ease}.case-preview__orb::before,.case-preview__orb::after{content:"";position:absolute;left:50%;top:50%;width:.75rem;height:1px;background:var(--case-ink);transform:translate(-35%,-50%)}.case-preview__orb::after{transform:translate(0,-50%) rotate(90deg)}
.case-card__link:hover .case-preview,.case-card__link:focus-visible .case-preview{transform:translateY(-7px) scale(1.008);box-shadow:0 28px 58px color-mix(in srgb,var(--case-ink),transparent 76%)}
.case-card__link:hover .case-preview img,.case-card__link:focus-visible .case-preview img{transform:translate3d(calc(var(--case-x, .5) * -18px),calc(var(--case-y, .5) * -18px),0) scale(1.08);filter:saturate(1.08) contrast(1.03)}.case-card__link:hover .case-preview__frame,.case-card__link:focus-visible .case-preview__frame{opacity:1;transform:scale(1)}.case-card__link:hover .case-preview__orb,.case-card__link:focus-visible .case-preview__orb{opacity:1;transform:scale(1) rotate(0)}
.case-card__content{padding:1.25rem .2rem 0}
.case-card__content>span{font-size:.76rem;font-weight:650;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}
.case-card__content h2{margin:.45rem 0 .25rem;font-size:clamp(1.45rem,2.6vw,2.2rem);line-height:1.02;letter-spacing:-.045em}
.case-card__content p{max-width:46ch;margin:0;color:var(--muted);line-height:1.55}.case-card__content b{display:block;margin-top:1rem;font-size:.95rem}.case-card__content i{font-style:normal;color:var(--accent);margin-left:.2rem}.case-card__case-link{display:inline-block;margin:.7rem .2rem 0;color:var(--muted);font-size:.82rem;text-underline-offset:3px}
@keyframes case-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.case-crumb{display:flex;gap:.45rem;padding-top:1.8rem;color:var(--muted);font-size:.94rem}.case-crumb a{color:var(--accent)}
.case-detail__hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:clamp(2rem,5vw,5.5rem);align-items:center;padding-block:clamp(3rem,7vw,7rem)}
.case-detail__hero h1{font-size:clamp(2.55rem,5vw,5rem)}.case-detail__hero>div>p:not(.section-kicker){max-width:50ch;margin:1.4rem 0 0;color:var(--muted);font-size:1.1rem;line-height:1.6}
.case-detail__hero .case-preview{min-height:clamp(350px,38vw,520px)}
.case-detail__actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem}.case-detail__hero small{display:block;margin-top:1rem;color:var(--muted);font-size:.78rem}
.case-detail__story{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,7vw,7rem);padding-block:clamp(4rem,10vw,9rem);background:#f8f7f9}.case-detail__story h2,.case-detail__capabilities h2,.case-detail__limits h2{margin:0;font-size:clamp(2rem,4vw,3.7rem);line-height:1;letter-spacing:-.055em}.case-detail__story>div>p:last-child,.case-detail__limits>p{color:var(--muted);line-height:1.65}
.case-flow{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.case-flow li{display:grid;grid-template-columns:3rem 1fr;column-gap:1rem;padding:1.2rem 0;border-top:1px solid var(--line)}.case-flow span{font-weight:650;color:var(--accent)}.case-flow strong{font-size:1.2rem}.case-flow p{grid-column:2;margin:.25rem 0 0;color:var(--muted)}
.case-detail__capabilities{padding-block:clamp(4rem,9vw,8rem)}.case-detail__capabilities>div{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:2.5rem;border:1px solid var(--line)}.case-detail__capabilities article{background:#fff;padding:1.5rem;min-height:200px}.case-detail__capabilities article>span{color:var(--accent);font-weight:650}.case-detail__capabilities h3{margin:2.7rem 0 .5rem;font-size:1.3rem;letter-spacing:-.03em}.case-detail__capabilities article p{color:var(--muted);line-height:1.55}
.case-detail__limits{display:grid;grid-template-columns:1fr .9fr;gap:clamp(2rem,8vw,7rem);padding-block:clamp(3.5rem,8vw,7rem);border-top:1px solid var(--line)}.text-link{font-weight:650;color:var(--accent)}
.case-detail__related{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-block:1.3rem 4rem;border-top:1px solid var(--line)}.case-detail__related span{font-size:.8rem;font-weight:650;text-transform:uppercase;letter-spacing:.08em}.case-detail__related a{font-weight:650;text-align:right}
@media (max-width:899px){.cases__toolbar{display:block}.case-filters{display:none}.case-select-label{position:static;display:grid;gap:.45rem;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;margin-top:1rem;font-weight:600}.case-select{height:48px;width:100%;padding:0 .8rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;font:inherit}.case-detail__hero,.case-detail__story,.case-detail__limits{grid-template-columns:1fr}.case-detail__hero .case-preview{order:-1}.case-detail__capabilities>div{grid-template-columns:1fr}.case-detail__related{display:block}.case-detail__related a{display:block;text-align:left;margin-top:.55rem}}
@media (max-width:620px){.case-grid{grid-template-columns:1fr}.cases__intro{padding-top:3.2rem}.case-preview,.case-detail__hero .case-preview{min-height:0;aspect-ratio:4/3}.case-preview p{font-size:2rem}.case-detail__actions .btn{width:100%}}
@media (prefers-reduced-motion:reduce){.case-card,.case-preview,.case-preview img,.case-preview__frame,.case-preview__orb,.case-filter{animation:none;transition:none}.case-card__link:hover .case-preview,.case-card__link:focus-visible .case-preview,.case-card__link:hover .case-preview img,.case-card__link:focus-visible .case-preview img{transform:none}}
