Two independent Washes.create() instances stacked with CSS. The
backdrop (#bg) runs setAnimation() and has
pointer-events:none, so it never steals input. The overlay
(#fg) is transparent(true) and sits on top, capturing
all painting. They share no simulation state. The HUD shows the backdrop's
measured frame time; an adaptive loop steps its quality() preset
down when perfMetrics().framep95 exceeds budget and back up when
it recovers — so a heavy backdrop self-throttles without touching the overlay.