Basic @transitions

Turns out to be super complicated to do something like this well.
There’s a random 10 millisecond delay before starting a transition to
allow the browser to synchronize the CSS changes. This really bothers
me but I don’t know of any way around it.