While it is possible to embed this information in the HTML itself, it's hard to obtain visual "compatibility" between different browsers with HTML only. CSS also makes it natural to describe the various HTML elements just once, instead of every time that particular element is used.
The main advantage of this is that it tends to reduce bandwidth, while at the same time making the HTML code a lot easier to read and maintain.
All modern browsers support CSS. I have quite a bit of experience writing CSS, and this web site relies heavily on it for visual appearance.