Theme Resonance Bench

Live gatherings now stamp data-spw-theme-cluster and --spw-theme-cluster-index when kin share a payload; the cauldron loads this sheet only then. This bench keeps the same contract as static specimens so the waveform can be compared without a populated garden. Credit and spend hues are the room's existing probe and binding colors — not a third palette.

1. Credit cluster — net-positive valence

Three picked terms sharing a topic (group: material), all wonder/value-leaning operators. Net valence is positive, so the cluster discharges --op-probe-color — the same hue wonder already carries elsewhere on the site. Watch the edge, not the text; the wave arcs across the three roughly a third of a cycle apart instead of firing together.

~grain *matte ^papergami

2. Spend cluster — net-negative valence

Two picked terms sharing a different topic (group: commitment), binding/action-leaning. Net valence is negative, so this cluster discharges --op-binding-color instead — the same earthy hue a commitment already carries in electrostatic-affordances.css. A credit cluster and a spend cluster on the same gathering should read as distinguishable at a glance, not just by hovering to check a tooltip.

=commit !cast

3. Unclustered remainder — no treatment

A fragment with nothing to combine with gets no data-spw-theme-cluster attribute and no animation at all — composeVisionDrafts() already skips exactly these when drafting prompts, so the felt treatment should agree with the data: nothing to gather, nothing to show.

.orphan

4. Both channels on one source

A source can be structurally kin (shares an operator/region with something else gathered) and thematically kin (shares a topic) at the same time. The two waves run on separate timing channels — 9s/700ms here versus field-physics.css's 14s/900ms — deliberately out of phase with each other, so a reader who has learned to read one doesn't mistake it for the other.

~grain (both waves)

5. Reduced motion

With prefers-reduced-motion: reduce, the wave becomes a static dashed outline in the cluster's charge color — legible without moving anything, same fallback shape field-physics.css already uses for the gather wave. Toggle your OS setting to see this specimen change; nothing here is JS-driven.

~grain