We were resolving percentage values against the containing block size in the wrong axis.
box-sizing: border-box