Compare naive text-embedding cosine similarity against signed weighted-sum matching. Adjust the user profile sliders to see where the two models diverge — and why the sign of an affinity score must live on the vector, not in the text.