So many people reach for a solution without really understanding their own problem.
I'm talking specifically about maintainable code. And maintainable CSS code at that.
For scaling CSS imagine a continuum with complete isolation one end (BEM, ECSS et al) and complete abstraction at the other (started with 'Atomic CSS', which then spawned countless others including Tailwind).
My experience is that either end of that continuum leads to an approach that can scale well and be maintainable. Mixing of approaches is where people come unstuck because they don't understand why that is problematic.
Understanding that fundamental (more here: https://css-tricks.com/scaling-css-two-sides-of-a-spectrum/) goes a long way to dealing with the problem.
My preference is isolation (which I detailed at https://ecss.io and in the book 'Enduring CSS' about 5 years back — not mentioned to pimp myself, I don't give a hoot if you buy/read)). I like code that is easy to reason about and delete (I like deleting code far more than writing it!) and that suits my mental model.
I also believe our job as a front-end developer is to accommodate designs, not turn around and say, "sorry, we don't have a class for 8px margin, it will have to be 5px or 10px". I'm not suggesting this or that framework can't accommodate this need, just highlighting why I feel the way I do and choose the solution I do.
Think about how __you__ want to build and maintain code. Don't just jump on something because everyone else does. Analyse your problem. Where are your actual pain points. Find the solution to your own issues. Otherwise you'll just swap one set of problems for another.
A framework may very well meet your needs. And by all means listen to others extolling its virtues but that will not save you from a lack of due diligence!
[ends attempting to dispense fatherly advice]