Missing CSS variables is actually easy to do as they didn't call them variables. They're "custom properties".. What's cool about them is they're per-tag assignable and real-time alterable. If you have need of passing values from Javascript to your CSS without directly targeting a property, being able to set the "custom property" from JS in realtime is a life-saver.
It's VERY easy to miss a lot of the recent -- or even not so recent -- changes to CSS. Much like ECMAScript it's changing very rapidly with many new ways -- good and bad -- of doing things.
It's a genuine struggle for all of us to keep up at this pace. Especially since after a decade and a half of browser makers dragging their heels on implementing anything, we've had a good six years of rapid deployment.
A lot of it making the hoops we used to jump through with complex properties or resorting to JavaScript now being as simple as a single pseudo-class in the stylesheet.
The past six months or so I've been making myself learn something new about JS and CSS every night.