use `visibility:hidden` rather than `display:none` so we maintain the desired layout