oops, silly mistake! <body> has a default nonzero margin, apparently… setting this to 0 fixed the problem!
<body>
0