A 99 Lighthouse score is not won at the end of a project. It is won every time someone suggests adding a third-party widget and the answer is a measured no.
Our baseline: server-render everything that can be static, ship one font family with two weights, keep shared JS under 100 kB, and hold third-party scripts to a documented list with an owner for each one.
The interesting constraint is editorial, not technical. A design that needs four typefaces and a video header will never be fast, no matter how good the framework is. So performance enters the conversation during design review, when it is still cheap to change.
The payoff is boring and large: pages that work on a mid-range phone on a bad connection, which is what most of your traffic actually is.