The Rendering Pipeline
DOM plus CSSOM to style to layout to paint to composite — and the invalidation rules that decide which of those stages a given change actually costs you.
DOM plus CSSOM become computed styles, then geometry, then paint commands, then a composited frame — and most updates re-run only part of that.
Selector matching, cascade resolution and inheritance turn every rule you shipped into exactly one computed value per property, per element.
A change does not recalculate the document — it dirties a set of elements. The size of that set is the cost, and your selectors are what decide it.
The table you should be able to reconstruct from first principles: which stages each common change invalidates, and why the honest answer is so often "it depends".
`contain` is a promise you make to the engine — nothing inside this box affects anything outside it — and in exchange, invalidation stops at the boundary.
Ask the engine to skip rendering work for content nobody is looking at yet — and take on responsibility for its size, its scrollbar and whether anyone can find it.