is opacity required? Will visibility: hidden work ?