.text
{
    max-width: 35rem;
    margin: 0 auto 4rem;
}


.grid
{
    line-height: 0;

    display: grid;

    list-style: none;

    grid-gap: 1rem;
    grid-template-columns: repeat(1, 1fr);
    grid-auto-flow: dense;
}
.grid li
{
    line-height: 0;

    position: relative;

    overflow: hidden;

    background: #000;

    --cols: 1;
    --rows: 1;
}
.grid li:first-child
{
    --cols: 2;
    --rows: 2;
}
.grid li:nth-child(5)
{
    --cols: 2;
}
.grid li:nth-child(6)
{
    --rows: 2;
}
.grid li:nth-child(7)
{
    --cols: 2;
}
.grid a
{
    display: block;

    height: 10rem;
}
.grid img
{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    width: 100%;
    height: 100%;

    transition: all .3s;

    object-fit: cover;
}
.grid figcaption
{
    font-size: .875rem;
    font-weight: 600;
    line-height: 1;

    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    display: flex;

    text-align: center;
    letter-spacing: .125em;
    text-transform: uppercase;

    color: #fff;
    background: rgba(0,0,0, .5);

    align-items: center;
    justify-content: center;
}

@media screen and (min-width: 45em)
{
    .grid
    {
        grid-template-columns: repeat(3, 1fr);
    }
    .grid li
    {
        grid-column-start: span var(--cols);
        grid-row-start: span var(--rows);
    }
    .grid a
    {
        padding-bottom: 52.65%;
    }
}
