Mobile Safari 9のようなUIを持つ場合、UIがコンテンツにかぶさっているため、初期描画領域がそもそもずれているような結果になってしまう。body要素に指定した✕画像で確認できるように位置的には間違ってはいない。
body
calc()
.test { margin: calc((100vh - 1em) / 2) 0; }