(function () { var lightbox = document.getElementById('lightbox'); if (!lightbox) return; var img = document.getElementById('lightboxImg'); var caption = document.getElementById('lightboxCaption'); var closeBtn = document.getElementById('lightboxClose'); function open(src, cap) { img.src = src; caption.textContent = cap || ''; lightbox.hidden = false; document.body.style.overflow = 'hidden'; } function close() { lightbox.hidden = true; img.src = ''; document.body.style.overflow = ''; } document.querySelectorAll('[data-lightbox]').forEach(function (link) { link.addEventListener('click', function (e) { e.preventDefault(); open(link.getAttribute('data-full'), link.getAttribute('data-caption')); }); }); closeBtn.addEventListener('click', close); lightbox.addEventListener('click', function (e) { if (e.target === lightbox) close(); }); document.addEventListener('keydown', function (e) { if (e.key === 'Escape') close(); }); })();