Make users register before accessing content

I'm wondering if there's a way to implement the following requirement: all items, collections and exhibits need to be hidden to non-registered users, but users need to be able to register on their own without admin intervention. Once a user registers and confirms their email, they can access all content.

Ideally, the first page a non-registered user sees is a simple page with info about the website and how/why to register to view content. No content should be accessible without registering

Any help would be appreciated!