.gallery-section{padding:3rem 0;background:var(--surface)}.gallery-intro{color:var(--muted);margin-top:-.5rem}.gallery-section h2{margin-bottom:.5rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem}.gallery-album{cursor:pointer;border-radius:1rem;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,8%);transition:transform .2s ease,box-shadow .2s ease}.gallery-album:hover{transform:translateY(-4px);box-shadow:0 8px 30px rgba(0,0,0,.12)}.gallery-album-cover{position:relative;aspect-ratio:4/3;overflow:hidden}.gallery-album-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-album:hover .gallery-album-cover img{transform:scale(1.05)}.gallery-album-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%);display:flex;flex-direction:column;justify-content:flex-end;padding:1rem;color:#fff}.gallery-album-title{font-weight:700;font-size:1.1rem}.gallery-album-count{font-size:.85rem;opacity:.8}.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.lightbox.is-open{opacity:1;visibility:visible}.lightbox-content{position:relative;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:90vw;max-height:75vh;object-fit:contain;border-radius:.5rem}.lightbox-caption{color:#fff;text-align:center;margin-top:.75rem;font-size:.95rem;opacity:.85}.lightbox-close{position:absolute;top:1rem;right:1.5rem;background:0 0;border:none;color:#fff;font-size:2.5rem;cursor:pointer;z-index:1001;line-height:1}.lightbox-close:hover{color:var(--accent)}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);border:none;color:#fff;font-size:3rem;cursor:pointer;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-prev:hover,.lightbox-next:hover{background:rgba(255,255,255,.2)}.lightbox-counter{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);color:#fff;font-size:.9rem;opacity:.7}@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.gallery-grid{grid-template-columns:1fr;gap:1rem}.lightbox-prev{left:.5rem}.lightbox-next{right:.5rem}.lightbox-prev,.lightbox-next{width:40px;height:40px;font-size:2rem}}