I refused to used tables, but that would not of solved the problem. Then it dawned on me … use em for width.
So after fiddling around … I styled the <dt> as having a width in em, and float: left; then have the <dd> have a margin equal to (or greater) than that width.
Try resizing text (smaller or larger)...