We need to keep background-size: 3rem or whatever it's real size because some devices may have more than 1x device pixel ratio, like helix. Without that, the image in helix will be shown as 1.5x size. If we use 30px as an example, its 1.5x image will be 45px. When showing in helix, we need to tell helix to show the image in 30px in "css pixel" and it will translate into 45px in its "device pixel".

So, if the image width is enlarged to 35px, you need to use 3.5rem as its background-size.