First off, I made a simplified fiddle with all the unnecessary stuff, like the reset codes, removed. I don't like reset codes, as they can just get in the way when doing research.
Anyway, I noticed that when you decrease the line-height
even further, the number of red pixels increases. So it has to do with the room for the descender below the image.
That means if you add display:block
to the style for the img, the problem will disappear. See newer fiddle.
Then you won't have to worry about other, seemingly unrelated properties any more.
Edit: it also goes wrong if there's a line of text as the last element in the body. Apparently, the font's descender is too large for that line height, and it overflows out of the line. And therefore, out of the body. So the solution is to hide the overflow of that element.
body :last-child {overflow-y:hidden}
See more updated fiddle.
Or, in this case, a solution would be to keep the line-height at 1.2, but then you might have the same problem with more esotericly shaped fonts...