Nested composite-transform frame pacing

A CSS border spinner rotates inside a route whose parent transform is driven by requestAnimationFrame. On iOS WebKit, changing only the spinner duration can cause repeatable 33–34 ms frame gaps.

Ready. Each run measures 1.8 seconds.
Existing route
Incoming route
Waiting for asynchronous data…
Spinnerp95MaxFrames > 30 ms
No runs yet.