1. Read CSS
2. Write CSS
…I'm not joking! If I had to simplify everything I'm about to explain below it could be summarized in these two simple rules.
Imagine a pie chart in your mind, if you divided that chart between 'time spent reading CSS' and 'time spent writing CSS' how much time does the 'reading CSS' have? Is it a sliver? Does that section of the chart even exist?
It's been my experience that most people working with CSS spend almost zero time reading CSS they (or anybody else) have written.
Imagine trying to learn a new human language, but never reading anything written in it, and definitely never proofreading over what you've written in it to see if it makes sense. Is that a good way to increase literacy?
Likewise, writing pure, vanilla, unassisted CSS really teaches you a lot about CSS. It's very trendy now to use preprocessors and compilers and plugins and shorthand syntaxes and all sorts of tooling to help you write CSS - but if you really want to focus on learning CSS the best way is to write 'just CSS' and skip over all the other tools.
Basically, the TL;DR is this:
Build 1000 things with CSS.
If you try to build 1000 web apps, or 1000 websites you'll never finish, so try to work at a scale where you can output dozens, or hundreds of things.
The easiest way to get really good at CSS is to write a lot of CSS. Find creative ways to write lots and lots of CSS!