CSS is a lot of things. Frustrating to newcomers, essential (even admirable) to those of us who use it day-to-day. It’s so intertwined with the browser’s rendering model that it can be hard to figure out what’s CSS and what’s the browser. And as most of us know from experience, it’s extremely easy to build an unmaintainable mess with it. Whatever you think of CSS, it’s demonstrably underspecified.