.gallery-hero{padding:160px 0 80px;background:linear-gradient(145deg,#02050c,#07101f 60%,#0a1a2e);text-align:center}
.gallery-hero h1{font-size:clamp(2rem,5vw,3.2rem);color:#fff;margin:.6rem 0 1rem}
.gallery-hero p{color:#8195aa;font-size:1.05rem;max-width:540px;margin:0 auto}
.gallery-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.gallery-filter button{padding:8px 18px;border-radius:20px;border:1px solid var(--line);background:#fff;color:#344054;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .18s}
.gallery-filter button.active,.gallery-filter button:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.gallery-masonry{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery-item{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;cursor:pointer}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-item-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,17,31,.85),transparent 50%);opacity:0;transition:opacity .25s;display:flex;align-items:flex-end;padding:20px}
.gallery-item:hover .gallery-item-overlay{opacity:1}
.gallery-item-overlay span{color:#fff;font-size:.8rem;font-weight:700}
.gallery-item-overlay small{display:block;color:#8195aa;font-size:.72rem;margin-top:2px}
/* lightbox */
.gallery-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(2,5,12,.95);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.gallery-lightbox.open{opacity:1;pointer-events:all}
.gallery-lightbox img{max-width:90vw;max-height:85vh;border-radius:16px;object-fit:contain}
.gallery-lightbox-close{position:absolute;top:24px;right:28px;background:none;border:none;color:#fff;font-size:28px;cursor:pointer;line-height:1}
@media(max-width:900px){.gallery-masonry{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.gallery-masonry{grid-template-columns:1fr}}
