I guess what I would add is with CSS, you are given the ability modify the behavior of existing html tags so, for example, whenever you issue a "font" tag all by itself, your page displays the font, color and attribues that have been declared at the top in the <style> section.

Another important feature is CSS allows you to place items at will practically wherever you want. Even on top or slightly off. You can almost throw out the old way of using nested tables for positioning with this one feature. This feature is a good way of getting a complicated HTML form to fit in a small amount of space.

Another fun feature is the ability to define a <div> </div> where the div defines a rectangular area sort of like a cell in a table. You can assign a background color to this area and then you can even place one of these divs on top of another one and manipulate the z-order causing one div to obscure another one. Using this feature you can simulate tabbed interfaces without having to talk to the server every time you want to present a new tab.

These are just some ideas. There's a lot more functionality available than what I've outlined here, these are just some of the things I've had time to play around with.

cudabean