It's still advanced tho! A bit curious about how similar XSL-FO and XPS are. XSL-FO has the advantage of being XML based and therefore extensible, compared to CSS. On the other hand CSS could be seen as a DSL. The ideal is to be able to use whichever you like
the most - so the extensible format when you need it and the DSL when you don't need extensibility. I wonder if there's already an Mgrammar for CSS.
CSS is extensible, it allows new properties (provided there is a vendor prefix like "-moz" or "-webkit")
and new selectors. You can probably get away with adding your own @blocks too. The specification states that unrecognised syntax should be ignored which makes it future-proof (unless they add in some paradigm-shifting syntax features).
CSS is a DSL, but it isn't programming since it's declaritive. I don't see the point in making everything have an XML syntax. Keep things simple, and CSS's syntax is a
lot more simpler than XMLs, tidier, less clutter, and easier to parse (so simple you can write a fairly robust FSM-based parser by hand in a couple of hours).
CSS and XSL-FO serve different purposes. You can apply an XSL-FO to any XHTML or XML document in the same way CSS can; it's just that CSS handles pretty much everything whereas XSL-FO is more of a 'roll-your-own' and seems geared towards fixed-format printing,
whereas CSS supports many different media types with different methods of rendering (e.g. paged or continous).