.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media(min-width:640px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.gallery-grid{grid-template-columns:repeat(4,1fr);gap:10px}}.gallery-item{position:relative;overflow:hidden;cursor:pointer;border-radius:6px;aspect-ratio:4 / 3}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,filter .4s ease}.gallery-item:hover img{transform:scale(1.08);filter:brightness(.75)}.gallery-item-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;background:#0000004d}.gallery-item:hover .gallery-item-overlay{opacity:1}.lightbox-backdrop{position:fixed;inset:0;z-index:9999;background:#000000eb;display:flex;align-items:center;justify-content:center;opacity:0;animation:lbFadeIn .25s ease forwards}.lightbox-backdrop.closing{animation:lbFadeOut .2s ease forwards}.lightbox-content{position:relative;max-width:90vw;max-height:85vh;display:flex;align-items:center;justify-content:center}.lightbox-content img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:4px;opacity:0;animation:lbImgIn .3s .05s ease forwards}.lightbox-close{position:absolute;top:16px;right:16px;z-index:10001;width:44px;height:44px;border:none;background:#ffffff1f;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.lightbox-close:hover{background:#ffffff40}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10001;width:50px;height:50px;border:none;border-radius:50%;background:#ffffff1f;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}.lightbox-arrow:hover{background:#ffffff40;transform:translateY(-50%) scale(1.1)}.lightbox-arrow-prev{left:16px}.lightbox-arrow-next{right:16px}.lightbox-counter{position:absolute;bottom:16px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:14px;font-weight:500;letter-spacing:.05em}@keyframes lbFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lbFadeOut{0%{opacity:1}to{opacity:0}}@keyframes lbImgIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:640px){.lightbox-arrow{width:40px;height:40px}.lightbox-arrow-prev{left:8px}.lightbox-arrow-next{right:8px}.lightbox-close{top:10px;right:10px}}
