CSS, short for Cascading Style Sheets, is the primary language used to describe look and formatting for webpages across the Internet and documents of markup (e.g. HTML and XML) in general. If you want to work with designing your own webpages, you need to be able to understand and write CSS. Lucky for you, you've come to the right place, because in this tutorial, you will be able to learn pretty much anything there is to know about CSS, from the most basic stuff about syntax and simple properties, to more advanced examples.
How do I use this tutorial?
If you're brand new in the world of CSS, I suggest that you start from the top of the Table of Contents to the right and then simply go all the way through the tutorial. It has been organized to start with some very basic theory and then move on to more and more advanced stuff. If you already know some CSS, then I suggest that you snoop around in the various chapters, to learn the stuff you haven't already been exposed to. Each chapter has been written so that you can use it alone, to learn that particular subject.
For webpages, CSS is always used in combination with a markup language, usually HTML/XHTML. CSS may be used for other purposes, but in this tutorial, we will focus on how you use it together with HTML. Most examples have HTML code in them, to show you how CSS and HTML work together, so a bit of HTML knowledge is preferable. If you don't already know HTML, then I suggest that you have a look at this HTML5 Tutorial.
You don't need any special tools to write CSS - it can be done in any plain text editor, e.g. Notepad. If you already know HTML, then you probably also have a favorite web editor which can likely be used for CSS as well.
With that in place, you're ready to start learning CSS - enjoy!