Why not?
Major reason: Separation of concerns: CSS is for appearance, Javascript is for behavior. They don't work well trying to do the other's job. This is touched on by the shrinking problem I mentioned above - it's easy to watch more events to make the behavior of Javascript functionality more flexible or more user-friendly, but not so much in CSS.
That said, it's a toy demonstration of transitions; it's cool that the bear dances, even if I wouldn't take him on Dancing with the Stars.
HTML = Content
CSS = Style / Design
JS = Interaction
Once you start to mix them up you start down a hair path
So, the breakup which you have given does not unequivocally argue for the use of JS.