.demoTile { opacity: 0.7; transition: opacity 0.3s; max-width: 15vw; display: inline; } .demoTile:hover { opacity: 1.0; } .demoTiles { position: absolute; background-color:white; left:27.5%; top: var(--title-height); margin-top:40px; } .page.portfolio { padding-top: 0; width: 70%; right: 0; margin:0; padding:0; transform: translate(-40%,0); } .portfolio h1 { margin: 1em 0 0 0; } .portfolio p { } .wrapper { margin-top: 1em; width: 100%; height: 100%; background-color: transparent; /*background-color: var(--background);*/ display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; } /* what the fuck * https://www.karlhorky.com/2012/06/cross-browser-image-grayscale-with-css.html * */ .wrapper img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.1s ease-in; filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 10+, Firefox on Android */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(50%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */ transition: all .3s ease; } .wrapper img:hover { filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale"); -webkit-filter: grayscale(0%); }