Custom HtmlTexture test — owned GPUTexture, full probe parity

The DOM panel lives in the canvas layoutsubtree at a fixed position with pointer-events:none — it is never moved and never directly clickable. The only path to it is the MRT GPU picker: it resolves the panel + world hit point (depth-tested, so the cube genuinely occludes), and the real pointerdown synchronously actuates the resolved sub-element with a programmatic method — click() / focus() / showPicker() / Selection API / clipboard. No slide.

3D scene — panel behind a (occluding) cube
Live diagnostics

Booting WebGPU + picker…