Understanding the transition tree
The browser creates temporary pseudo-elements that represent the old and new states.
When you call `document.startViewTransition()`, the browser builds a special layer for the transition. Two of the most important pieces are `::view-transition-old(root)` and `::view-transition-new(root)`.
The first one is the visual snapshot of the previous state. The second one represents the incoming state. By default they cross-fade, but you can replace that motion with your own keyframes.