.gallery-filters{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.gallery-filter-btn{padding:10px 24px;background:var(--surface);border:2px solid var(--border);border-radius:50px;color:var(--text-secondary);font-weight:600;font-size:.95rem;cursor:pointer;transition:.3s}.gallery-filter-btn.active,.gallery-filter-btn:hover{background:var(--primary);border-color:var(--primary);color:var(--white)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;animation:.6s fadeInUp}.gallery-item{opacity:1;transform:scale(1);transition:opacity .3s,transform .3s}.gallery-item.hidden{opacity:0;transform:scale(.9);pointer-events:none}.gallery-image{position:relative;overflow:hidden;border-radius:16px;aspect-ratio:4/3;cursor:pointer}.gallery-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-image:hover img{transform:scale(1.1)}.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:20px}.gallery-image:hover .gallery-overlay{opacity:1}.gallery-overlay span{color:#fff;font-weight:600}#lightboxModal{display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.95);align-items:center;justify-content:center}#lightboxModal.active{display:flex}#lightboxClose{position:absolute;top:20px;right:20px;background:0 0;border:none;color:#fff;font-size:2rem;cursor:pointer;z-index:10001;transition:transform .3s}#lightboxClose:hover{transform:scale(1.2)}#lightboxImage{max-width:90%;max-height:90%;object-fit:contain}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1366px){.gallery-section{padding:60px 0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.gallery-filters{gap:12px}.gallery-filter-btn{padding:8px 20px;font-size:.9rem}}@media (max-width:768px){.gallery-section{padding:60px 0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.gallery-filters{gap:8px;flex-wrap:wrap}.gallery-filter-btn{padding:8px 16px;font-size:.85rem}}