Сделано с использованием SVG. В нём есть прямоугольник растянутый на всю ширину и высоту страницы и с прозрачностью 0.4 Когда происходит наведение на дом - прозрачность меняется на 0.6 - происходит затенение. Также внутри SVG есть маска по контуру домов, поэтому они остаются светлыми.