Chat sides
Each bubble is anchored to its own dot on the centre spine with
data-⚓️-side="before" (them) or "after" (you).
Swap seats flips one value per bubble and data-⚓️-tween
swings it across. New messages grow out of the spine (data-⚓️-morph-from).
-
Riley: did you see the anchor positioning thing
-
Sam: the one where a bubble just says which side it lives on?
-
Riley: yes. no flex-direction, no margins, no JS maths