/**
* Lazy and progressive image loading.
*
* On first load, placeholder-block with gray background and empty img
tag
* will come from SSR.
*
* After client code initiation:
*
* If image is not cached and not loaded yet,
* we will draw a blurred image placeholder inside placeholder-block
* and start listening for on-screen intersection to initiate
* load of actual image. On intersection we will start loading image,
* mark it as cached in sessionStorage, and show it with it with appear animation.
*
* If image was loaded previously, we will just show it with appear animation.
*/