why both `visibility: hidden` and `display: none` ?