CSS is used to style and lay out web pages. It separates the presentation of HTML elements from the content. CSS rules consist of selectors that point to HTML elements and declarations that apply styles like colors, fonts, sizes etc. CSS rules cascade from broad to specific. More specific selectors override broader ones. CSS can be applied via external stylesheets, internal stylesheets or inline styles. Pseudo-classes can style elements in special states like hover. Media queries allow responsive designs for different screen sizes.