key differences between opacity: 0, visibility: hidden, and display: none:

Property Visibility Layout Interaction
opacity: 0 Invisible Yes Yes
visibility: hidden Invisible Yes No
display: none Hidden No No