CSS is actually pretty simple, as long as you start with the smallest elements and work up. It becomes a nightmare if you try and address everything individually. It’s not really a programming language, but a series of guidelines.
I’ve seen this simplicity actually throw developers as they’re used to something much more complex and systematic.
Preprocessors like SASS are great, but I wonder if they’re designed to complicate CSS a bit so developers feel at home.
Pixel perfect design is totally possible, as long as the designer is aware of the constraints and opportunities of the medium they’re working in.