* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

main {
    /* display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); */
    columns: 1;
    column-gap: 1rem;
}

@media screen and (min-width: 768px) {
    main {
        columns: 2;
    }
}

@media screen and (min-width: 1024px) {
    main {
        columns: 3;
    }
}

main article {
    position: relative;
    margin-bottom: 1rem;
}

main img {
    width: 100%;
    height: auto;
}

main article p {
    position: absolute;
    top: 0;
    z-index: 1;
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
}