.project-gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(18rem,100%),1fr));grid-gap:clamp(.75rem,2vw,1.25rem);gap:clamp(.75rem,2vw,1.25rem)}.project-gallery__item{margin:0}.project-gallery__thumb{display:block;width:100%;padding:0;border:none;background:var(--color-off-white);cursor:pointer;overflow:hidden;aspect-ratio:4/3;border-radius:var(--radius-img)}.project-gallery__image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}.project-gallery__thumb:hover .project-gallery__image{transform:scale(1.06)}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);background:rgb(10 10 10/.92);animation:lightbox-in .2s ease}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox__figure{margin:0;max-width:min(72rem,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.lightbox__image{max-width:100%;max-height:82vh;object-fit:contain;display:block;border-radius:var(--radius-img)}.lightbox__caption{font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-muted-on-dark)}.lightbox__close{position:absolute;top:clamp(.75rem,3vw,1.5rem);right:clamp(.75rem,3vw,1.5rem);width:3rem;height:3rem;display:inline-flex;align-items:center;justify-content:center;font-size:2rem;line-height:1;color:var(--color-text-on-dark);background:transparent;border:none;cursor:pointer;transition:opacity .2s ease}.lightbox__close:hover{opacity:.6}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:3.25rem;height:3.25rem;display:inline-flex;align-items:center;justify-content:center;font-size:2rem;line-height:1;color:var(--color-text-on-dark);background:rgb(255 255 255/.08);border:1px solid rgb(255 255 255/.2);cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.lightbox__nav:hover{background:rgb(255 255 255/.18);border-color:rgb(255 255 255/.4)}.lightbox__nav--prev{left:clamp(.5rem,3vw,2rem)}.lightbox__nav--next{right:clamp(.5rem,3vw,2rem)}@media (max-width:560px){.lightbox__nav{width:2.5rem;height:2.5rem;font-size:1.5rem}}