Vertex shader applied via Fold.querySelector
All cards are queried with Fold.querySelectorAll('.card'). Each card's existing background plane is replaced in-place with a plasma ShaderMaterial via group.traverse() and Fold.MESH_TYPE.BACKGROUND. No new geometry is created.
Queried with Fold.querySelector('#featured'). The returned THREE.Group is rotated each frame — no mesh or material changes needed. Background, text, and any nested child groups all move together as a single scene-graph node.
Also receives the plasma background from querySelectorAll('.card'). Each entry in the returned array is a THREE.Group for standard elements or a THREE.Group[] pair for sticky elements.
Uses Fold.MESH_TYPE.BACKGROUND and Fold.MESH_TYPE.TEXT with group.traverse(). The background plane gets an aurora shader; the text cycles through hue shifts. No heuristics — each mesh is identified by its userData.foldType tag.