Thanks for the link! The concept from part 3 of treating the axes as unit vectors that default to (1, 0) and (0, 1) but can be rotated at will really helped bridge the gap in my mind between rotating vectors "manually" and using matrix multiplication.