.mosaic {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    align-items: start;
}
/* Nested tiles share exact edges; only the deliberate gutter is empty. */
.mosaic[data-mosaic-ready] {
    display: block;
    position: relative;
}
[data-mosaic] > .postcard {
    position: absolute;
    box-sizing: border-box;
    margin: 0;
    min-width: 0;
    /* Border stays disabled while testing the frameless layout. */
    border: 0;
}
[data-mosaic] > .postcard .postcard__img {
    object-fit: contain;
}

.mosaic > .mosaic__column { display: grid; gap: 8px; }
@media (max-width: 1100px) { .mosaic { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 600px) { .mosaic { grid-template-columns: minmax(0,1fr); } }
