.case-study-scroll__viewport{width:100%;margin-top:clamp(2rem,4vw,3rem);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;scrollbar-width:none}.case-study-scroll__viewport::-webkit-scrollbar{display:none}.case-study-scroll__track{--cs-gap:clamp(0.875rem,2vw,1.75rem);--cs-gutter:max(5vw,var(--page-gutter,1.25rem));--cs-card-width:calc((100vw - (var(--cs-gutter) * 2) - var(--cs-gap)) / 1.08);display:flex;width:max-content;align-items:stretch;gap:var(--cs-gap);padding-inline:var(--cs-gutter);padding-right:max(var(--cs-gutter),calc(100vw - var(--cs-card-width) - var(--cs-gutter)));padding-bottom:.25rem}.case-study-scroll__track .case-study-grid-card{flex-shrink:0;width:min(26rem,max(15rem,var(--cs-card-width)));scroll-snap-align:start;scroll-snap-stop:always}.case-study-scroll__track .portfolio-card{flex-shrink:0;width:min(22rem,max(15rem,var(--cs-card-width)));scroll-snap-align:start;scroll-snap-stop:always}@media (max-width:767px){.case-study-scroll__viewport{overflow:visible;scroll-padding-inline:0}.case-study-scroll__track{flex-direction:column;width:100%;align-items:stretch;padding-inline:max(5vw,var(--page-gutter,1.25rem));padding-right:max(5vw,var(--page-gutter,1.25rem));gap:1rem}.case-study-scroll__track .case-study-grid-card,.case-study-scroll__track .portfolio-card{width:100%;max-width:100%;scroll-snap-align:none}}@media (max-width:768px){.case-study-scroll__viewport{scroll-padding-inline:max(5vw,var(--page-gutter,1.25rem))}.case-study-scroll__track{--cs-card-width:calc((100vw - (var(--cs-gutter) * 2) - var(--cs-gap)) / 1.05);gap:.875rem}.case-study-scroll__track .case-study-grid-card,.case-study-scroll__track .portfolio-card{width:min(20rem,max(14.5rem,var(--cs-card-width)))}}@media (max-width:480px){.case-study-scroll__track{--cs-card-width:calc((100vw - (var(--cs-gutter) * 2) - var(--cs-gap)) / 1.02);gap:.75rem}.case-study-scroll__track .case-study-grid-card,.case-study-scroll__track .portfolio-card{width:min(18.5rem,max(14rem,var(--cs-card-width)))}}.case-study-page{position:relative;width:100%;background:#000;color:#fff;padding-bottom:clamp(4rem,8vh,6.5rem);overflow-x:clip}.case-study-page--portfolio{overflow-x:clip}.case-study-page__head{width:100%;max-width:var(--container-wide);margin:0 auto;padding-block:clamp(3rem,6vh,4.5rem) clamp(1.75rem,3.5vw,2.5rem);padding-inline:0;text-align:center}.case-study-page__title{margin:0 auto;max-width:22ch;font-size:var(--font-size-h2,3.4375rem);font-weight:var(--font-weight-h2,500);line-height:1.2;letter-spacing:-.03em;color:#fff}.case-study-page__subtitle{margin:clamp(1rem,2vw,1.35rem) auto clamp(1.75rem,3vw,2.25rem);max-width:42rem;font-size:clamp(.95rem,1.35vw,1.05rem);font-weight:400;line-height:1.65;color:rgba(255,255,255,.58)}.case-study-page__head .case-study-filters{justify-content:center;margin-bottom:0}.case-study-page__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.75rem,1.4vw,1.75rem);width:100%;padding-inline:max(5vw,var(--page-gutter,1.25rem));margin-top:clamp(1.5rem,3vw,2rem)}.case-study-page__grid .case-study-grid-card{min-width:0}@media (max-width:1023px){.case-study-page__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:479px){.case-study-page__grid{grid-template-columns:1fr}}@media (max-width:30rem){.case-study-page__head .case-study-filters{justify-content:flex-start}}.case-study-page--portfolio .case-study-scroll__viewport{margin-top:clamp(1.5rem,3vw,2rem)}@media (min-width:768px){.case-study-page--portfolio .case-study-scroll__viewport{overflow:visible;scroll-snap-type:none}.case-study-page--portfolio .case-study-scroll__track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:clamp(.75rem,1.4vw,1.75rem);padding-inline:max(5vw,var(--page-gutter,1.25rem));padding-bottom:0}.case-study-page--portfolio .case-study-scroll__track .portfolio-card{width:100%;min-width:0;scroll-snap-align:none}}@media (min-width:768px) and (max-width:1023px){.case-study-page--portfolio .case-study-scroll__track{grid-template-columns:repeat(2,minmax(0,1fr))}}