.gallery {
    column-count: 3;
    column-gap: 16px;
}

.gallery-item {
    position: relative;
    display: inline-block;
    width: 100%;
    margin-bottom: 16px;
    overflow: hidden;
    break-inside: avoid;
}

.gallery-item img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.8s cubic-bezier(.2,.65,.3,1);
}

.gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.12);
    opacity: 0;
    transition: opacity .5s ease;
}

.gallery-item:hover img {
    transform: scale(1.05);
}

.gallery-item:hover::after {
    opacity: 1;
}

@media (max-width: 991px) {
    .gallery {
        column-count: 2;
    }
}

@media (max-width: 575px) {
    .gallery {
        column-count: 1;
    }
}

