- treats each HTML element as if it appears inside its own box and uses rules to indicate how that element should look allow your code to make decisions about what to do next.
- that specify the elements the rule applies to and declarations that indicate what these elements should look like
- allow you to target your rules at different elements
- the properties of the element that you want to change
- and the values of those properties
- usually appear in a separate document although they may appear within an HTML page batata