A fun exercise - while you might not _need_ JS, it's still the best option in a lot of cases.
I'd never even consider using most of these techniques in production - while they're interesting and showcase what CSS can do, they're practically unmaintainable.