main h1 { color: #1f4e79; } .mosaic { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--mosaic-side), 1fr)); grid-gap: 0.8em; } .mosaic .photo { position: relative; width: 100%; height: 0; padding-bottom: 100%; } .mosaic img { position: absolute; object-position: center; object-fit: cover; height: 100%; width: 100%; transition: filter 0.5s; } .photo p.credits:before { content: '© '; } .photo p.credits { position: absolute; bottom: 0; right: 0; margin: 0; color: white; background: #0008; border-top-left-radius: 0.5em; padding: 0 0.2em; font-size: small; } .mosaic .video { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; /* 9/16 */ } .mosaic .video .yt { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } @media (min-width: 50em) { .mosaic.photos { --mosaic-side: 14em; } .mosaic.videos { --mosaic-side: 25em; } .photo p.credits > .name { display: none; } .photo p.credits:hover > .name { display: initial; } } @media (max-width: 50em) { .mosaic.photos { --mosaic-side: 8em; } .mosaic.videos { --mosaic-side: 18em; } }