This is the first post of a two-part series that looks into the way CSS variables can be used to make the code for complex layouts and interactions