"it's been quite amazing to see the relatively rapid movement in the US on marijuana and gay rights in the past few years. I'm not quite sure how it happened."
I see Obama's election as a harbinger of these changes (I'm not giving him credit for these changes but instead saying he was an early symptom/beneficiary). To put a demographic spin on it: the baby boomers (Clinton/Bush/Obama) roiled the pot but, as in the 60s, didn't really change a lot themselves. But the folks behind the boomers _did_ make a difference, taking advantage of things to encourage change.
And, as much fun as I have making fun of "stoopid 'mericans": anti-intellectual conspiracy nuts, anti-evolution folks and the like, I do think the bulk of Americans are basically good people. So when a lot of kids are willing to stand up and say "hey, this isn't fair", plenty of others will agree, even if shamefacedly, and change their vote to be less unkind even when nobody's looking.
It will be funny if Hillary Clinton is elected president: likely the first and last baby boomer presidents will be Clintons. I wonder if the country will become more conservative again. It seems like it progresses in a systolic fashion.