The new (written from scratch) CSS engine definitely did give a big performance boost, but I'd say it was only about 1/4 of the increase from 56 to 57.
Another big factor is the new UI. It's partially just more efficient, partially uses animations to make it look faster / more responsive, partially enables new performance features, such as "tab warmup", which starts loading in a tab as you hover your mouse over it, so that it's instantly there when you actually click.
Then they're still benefitting from the new multiprocess architecture. A lot of performance problems can be solved by just throwing a lengthy task into a background thread.
Then the deprecation of the old extension API is also significant. The old extension API had essentially no abstraction from Firefox's source code, so Mozilla couldn't even really refactor code without breaking extensions.
Now that that's deprecated, they were able to throw out big chunks of code [1] and refactor what's left.
I presume that made it a lot easier to work with the code and find performance problems, but also just in general, they put a lot of effort into fixing hundreds of smaller performance issues that taken together did make a big difference, too.
Not to mention that lots of those old extensions had performance problems themselves as well.
And lastly, they also just made sure that the right things have the right priorities. Your background tab is not as important as the tab that you're looking at and so on. Again benefitting from the multiprocess architecture.
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1347507