What a great question! So glad you asked instead of just viewing the source Luke ;)
The menus employ a CSS technique which relies upon radio-button input tags for the selection tracking. Quite ingenious really.
For the record, I didn't invent this, I just wrote up a nice little bit and a demonstration / proof-of-concept which you can find on codepen.io
I learned about this technique while googling for HTML5 and CSS3 menu examples. Too many results to say it was just one or another that taught me the concept. Trying a bunch and then writing my own codepen was what brought it all together in my head.