.gallery {
    padding-left: var(--spacing);
    padding-right: var(--spacing);
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing);
}

@media (min-width: 640px) {
    .gallery {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 768px) {
    .gallery {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (min-width: 1024px) {
    .gallery {
        grid-template-columns: repeat(5, 1fr);
    }
}

@media (min-width: 1280px) {
    .gallery {
        grid-template-columns: repeat(6, 1fr);
    }
}

@media (min-width: 1536px) {
    .gallery {
        grid-template-columns: repeat(7, 1fr);
    }
}

.media-item {
    position: relative;
    background-color: rgb(229 231 235);
}

.media-item--portrait {
    grid-row: span 2;
}

.media-item--landscape {
    grid-row: span 1;
}

.media-overlay {
    position: absolute;
    bottom: 0;
    right: 0;
    opacity: 0;
    transition: opacity 500ms ease-in-out;
    background: linear-gradient(to top, rgb(0 0 0 / 0.8), transparent);
    color: white;
    padding: calc(var(--spacing) * 4) calc(var(--spacing) * 4);
    width: 100%;
    display: flex;
    justify-content: flex-end;
    gap: calc(var(--spacing) * 2);
}

.media-item:hover .media-overlay {
    opacity: 1;
}

.media-checkbox {
    display: none;
}

.media-action-link {
    color: white;
    transition: color 150ms ease-in-out;
    cursor: pointer;
}

.media-action-link:hover {
    color: rgb(255 255 255 / 0.8);
}

.media-icon {
    font-size: 1.5rem;
    line-height: 2rem;
}
