Inspired by what I saw here, I wanted to investigate how far it was possible to get with a pure CSS solution.
The trick to getting the CSS to do the majority of heavy lifting is by looping through our "inner" elements at start up and declaring a width for them so that all we need do is use `translateX(-100%)` on hover. To use the translate method, the "inner" elements just require a set width for their content. This saves us from having to write event driven animation code in our JavaScript.