Before @layer was introduced, it was commonly used to override specificty and force a rule to be applied. It was, and is, confusing and can be difficult to control. With layered rules, which are supported by all major browsers, it becomes much much easier to control how rules are applied. If you're starting a new project you should definitely use layers. Converting to layers is very doable but non-trivial. I converted all my projects to use the layered approach, don't use !important at all and have found it extremely easy to confrol and understand. See the description at https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@layer