main { overflow: auto; padding-top: 2%; padding-bottom: 2%; padding-right: 2%; } .mosaic { display: grid; grid-template-columns: repeat(auto-fill, minmax(25em, 1fr)); grid-gap: 0.8em; } .mosaic.photos { grid-auto-rows: 14em; } .mosaic img { object-position: center; object-fit: cover; height: 100%; width: 100%; transition: filter 0.5s; filter: grayscale(0.8) brightness(0.4); } .mosaic img:hover { filter: none; } .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%; }