.case-gallery{padding-block:30px 100px}
.case-gallery .case-filters{margin-bottom:40px}
.case-gallery-section{padding-top:38px}
.case-gallery-section+.case-gallery-section{margin-top:88px;border-top:1px solid var(--line)}
.case-gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:30px}
.case-gallery-heading .eyebrow{margin:0 0 8px;color:var(--blue);font-size:.6875rem;font-weight:750;letter-spacing:.11em}
.case-gallery-heading h2{margin:0;color:var(--deep);font-size:clamp(1.8rem,4vw,3.15rem);line-height:1.16;letter-spacing:-.035em}
.case-gallery-heading>a{display:inline-flex;align-items:center;gap:12px;min-height:46px;padding:10px 15px;border:1px solid var(--line);color:var(--deep);font-size:.8125rem;font-weight:700;text-decoration:none;transition:color .22s ease,border-color .22s ease,background .22s ease}
.case-gallery-heading>a:hover,.case-gallery-heading>a:focus-visible{border-color:var(--green);background:var(--green);color:var(--deep)}
.case-gallery-subheading{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.case-gallery-subheading h3{margin:0;color:var(--deep);font-size:.8125rem;font-weight:750;letter-spacing:.04em}
.case-gallery-subheading>span{color:var(--blue);font:750 .625rem/1.4 var(--font-brand);letter-spacing:.1em}
.case-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.case-video-frame{position:relative;min-width:0;margin:0;overflow:hidden;background:var(--deep);border:1px solid rgb(11 31 44 / .12);box-shadow:0 9px 24px rgb(14 37 50 / .08);aspect-ratio:16/9}
.case-video-frame video{display:block;width:100%;height:100%;object-fit:cover;background:var(--deep)}
.case-video-index{position:absolute;top:13px;left:14px;padding:5px 8px;background:rgb(9 28 42 / .83);color:var(--green);font:750 .625rem/1.2 var(--font-brand);letter-spacing:.1em;pointer-events:none}
.case-gallery-photo-heading{margin-top:46px}
.case-photo-wall{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(42px,5.4vw,76px);grid-auto-flow:dense;gap:12px}
.case-photo{position:relative;display:block;min-width:0;min-height:0;grid-column:span 3;grid-row:span 3;padding:0;overflow:hidden;border:0;background:var(--deep);color:inherit;cursor:zoom-in;text-decoration:none;isolation:isolate}
.case-photo[href]{cursor:pointer}
.case-photo:nth-child(8n+1){grid-column:span 6;grid-row:span 5}
.case-photo:nth-child(8n+6){grid-column:span 6;grid-row:span 4}
.case-photo:nth-child(8n+7),.case-photo:nth-child(8n+8){grid-row:span 4}
.case-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .58s cubic-bezier(.16,1,.3,1),filter .4s ease;will-change:transform}
.case-photo:before{position:absolute;z-index:1;inset:12px;content:"";border:1px solid rgb(255 255 255 / .78);opacity:0;transform:scale(.985);transition:opacity .32s ease,transform .58s cubic-bezier(.16,1,.3,1);pointer-events:none}
.case-photo:after{position:absolute;z-index:2;inset:0;content:"";background:linear-gradient(112deg,transparent 35%,rgb(190 220 42 / .24) 50%,transparent 65%);transform:translateX(-130%);transition:transform .72s cubic-bezier(.16,1,.3,1);pointer-events:none}
.case-photo-corner{position:absolute;z-index:3;right:0;bottom:0;display:grid;width:42px;height:42px;place-items:center;background:var(--green);color:var(--deep);font-size:1.15rem;opacity:0;transform:translate(6px,6px);transition:opacity .24s ease,transform .36s cubic-bezier(.16,1,.3,1)}
.case-photo:focus-visible{outline:3px solid var(--green);outline-offset:4px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.case-photo:hover img,.case-photo:focus-visible img{transform:scale(1.045);filter:saturate(1.05) contrast(1.025)}.case-photo:hover:before,.case-photo:focus-visible:before{opacity:1;transform:scale(1)}.case-photo:hover:after,.case-photo:focus-visible:after{transform:translateX(130%)}.case-photo:hover .case-photo-corner,.case-photo:focus-visible .case-photo-corner{opacity:1;transform:none}.case-video-frame:hover{box-shadow:0 14px 32px rgb(14 37 50 / .15)}}
.case-photo-dialog{position:fixed;inset:0;width:min(94vw,1500px);max-width:none;max-height:92dvh;padding:20px;border:1px solid rgb(255 255 255 / .22);background:rgb(7 24 36 / .97);color:white;overflow:visible}
.case-photo-dialog::backdrop{background:rgb(5 18 28 / .84);backdrop-filter:blur(8px)}
.case-photo-dialog>img{display:block;width:100%;height:calc(92dvh - 40px);object-fit:contain}
.case-photo-close{position:absolute;top:-16px;right:-16px;display:grid;width:42px;height:42px;place-items:center;border:1px solid rgb(255 255 255 / .36);border-radius:50%;background:var(--green);color:var(--deep);font-size:1.7rem;line-height:1;cursor:pointer}
.case-photo-close:focus-visible{outline:3px solid white;outline-offset:3px}
@media(max-width:900px){.case-gallery{padding-bottom:75px}.case-gallery-section+.case-gallery-section{margin-top:68px}.case-photo-wall{grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:clamp(42px,7.2vw,68px)}}
@media(max-width:700px){.case-gallery{padding-top:20px}.case-gallery .case-filters{margin-bottom:28px}.case-gallery-section{padding-top:24px}.case-gallery-section+.case-gallery-section{margin-top:54px}.case-gallery-heading{align-items:start;gap:14px;margin-bottom:23px}.case-gallery-heading h2{font-size:clamp(1.6rem,7vw,2.35rem)}.case-gallery-heading>a{min-height:42px;gap:7px;padding:8px 10px;font-size:.6875rem;white-space:nowrap}.case-video-grid{gap:10px}.case-video-frame{aspect-ratio:16/9}.case-video-index{top:8px;left:8px;padding:4px 6px;font-size:.55rem}.case-gallery-photo-heading{margin-top:34px}.case-photo-wall{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(42px,13vw,68px);gap:8px}.case-photo{grid-column:span 1;grid-row:span 2}.case-photo:nth-child(4n+1){grid-column:span 2;grid-row:span 3}.case-photo:nth-child(4n+4){grid-column:span 2;grid-row:span 3}.case-photo:before{inset:7px}.case-photo-corner{width:32px;height:32px}.case-photo-dialog{padding:10px}.case-photo-dialog>img{height:calc(92dvh - 20px)}.case-photo-close{top:-12px;right:-9px;width:38px;height:38px}}
@media(max-width:380px){.case-gallery-heading{flex-wrap:wrap}.case-gallery-heading>a{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.case-photo,.case-photo img,.case-photo:before,.case-photo:after,.case-photo-corner,.case-video-frame,.case-gallery-heading>a{transition:none!important;transform:none!important;animation:none!important}.case-photo:after{display:none}}
