.gallery{max-width:1400px;margin:40px auto;padding:0 24px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.gallery-item{position:relative;aspect-ratio:4/4;overflow:hidden;border-radius:8px;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s cubic-bezier(.16,1,.3,1);display:block}.gallery-item:hover img{transform:scale(1.2)}.gallery-overlay{position:absolute;inset:0;background:transparent;display:flex;align-items:center;justify-content:center;transition:background .5s ease}.gallery-item:hover .gallery-overlay{background:rgba(0,0,0,.35)}.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;animation:lb-in .4s cubic-bezier(.16,1,.3,1)}@keyframes lb-in{0%{opacity:0}to{opacity:1}}.lightbox-img-wrap{overflow:hidden}.lightbox-img,.lightbox-img-wrap{max-width:75vw;max-height:80vh;border-radius:12px}.lightbox-img{display:block;width:auto;height:auto;animation:img-in .5s cubic-bezier(.16,1,.3,1)}@keyframes img-in{0%{opacity:0;transform:scale(.96);filter:blur(4px)}to{opacity:1;transform:scale(1);filter:blur(0)}}.lightbox-close{position:absolute;top:24px;right:28px;background:none;border:none;color:#a9a9a9;font-size:1.4rem;cursor:pointer;transition:opacity .2s ease;line-height:1}.lightbox-close:hover{opacity:1;color:#c9982a}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#a9a9a9;font-size:4rem;cursor:pointer;transition:opacity .2s ease;line-height:1;padding:0 24px}.lightbox-arrow:hover{opacity:1;color:#c9982a}.lightbox-prev{left:0}.lightbox-next{right:0}.lightbox-counter{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;opacity:.5;font-size:.85rem;letter-spacing:.1em}@media(max-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gallery{padding:0 16px}.lightbox-arrow{font-size:2.5rem;padding:0 12px}}