        /* ===== Gallery Grid ===== */
        #gallery {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
            gap: 10px;
            padding: 5.5rem 0.5rem 1.5rem 0.5rem;
        }

        .gallery-item img {
            width: 100%;
            height: 8.5rem;
            display: block;
            border-radius: 5px;
            cursor: pointer;
            transition: opacity 0.2s ease;
        }

        .gallery-item img:hover {
            opacity: 0.9;
        }

        #lightbox {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.9);
            display: flex;
            justify-content: center;
            align-items: center;
            visibility: hidden;
            opacity: 0;
            transition: opacity 0.35s ease;
            z-index: 999;
        }

        #lightbox.open {
            visibility: visible;
            opacity: 1;
        }

        #lightbox.closing {
            opacity: 0;
        }

        #lightbox img {
            max-width: 90vw;
            max-height: 90vh;
            border-radius: 4px;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6);
            transition: opacity 0.35s ease;
        }

        #lightbox img.fade-out {
            opacity: 0;
        }

        #lightbox.open img {
            animation: zoomIn 0.4s ease;
        }

        @keyframes zoomIn {
            from {
                transform: scale(0.85);
                opacity: 0;
            }

            to {
                transform: scale(1);
                opacity: 1;
            }
        }

        .lb-nav {
            position: absolute;
            background: rgba(255, 255, 255, 0.15);
            border: none;
            width: 48px;
            height: 48px;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
            backdrop-filter: blur(4px);
            transition: background 0.2s ease;
        }

        .lb-nav:hover {
            background: rgba(255, 255, 255, 0.25);
        }

        .lb-nav:active {
            background: rgba(255, 255, 255, 0.3);
        }

        .lb-nav:focus {
            outline: 2px solid #fff;
        }

        .lb-nav svg {
            width: 24px;
            height: 24px;
            fill: none;
            stroke: #fff;
            stroke-width: 2;
            stroke-linecap: round;
            stroke-linejoin: round;
            pointer-events: none;
        }

        .lb-prev {
            left: 20px;
            top: 50%;
            transform: translateY(-50%);
        }

        .lb-next {
            right: 20px;
            top: 50%;
            transform: translateY(-50%);
        }

        .lb-close {
            right: 20px;
            top: 20px;
        }