CSS отвечает за внешний вид и раскладку. Он кажется простым, пока не приходится понять, почему стиль не применился или элемент уехал, — поэтому в основе лежат механизмы: каскад и специфичность, блочная модель, контексты форматирования, потоки раскладки.
Современный CSS сильно вырос: Flexbox и Grid заменили «хаки» с float, появились переменные, clamp(), контейнерные запросы, :has(), вложенность. Многое, ради чего раньше брали препроцессоры, теперь доступно из коробки.