Changed from hide/show to opacity-based reveal to smooth out animation