drag to rotate
Global phase is unobservable, so the displayed state drops it. Convention: |ψ〉 = a|0〉 + b|1〉, x = 2 Re(āb), y = 2 Im(āb), z = |a|² − |b|². Readout layout inspired by grok-bloch (javafxpert.github.io/grok-bloch).