We could talk about the merit of individual moves in the sequence, but instead let's just look at the result after :48:. Yes, white's alive, but his group has only about 5 points of territory. You don't have territory in that area, but by getting stones such as S12, you have significantly reduced his corner territory (for instance, in endgame you can monkey jump into the corner). You also have gotten much stronger on the outside and this might allow you to make a large center area with a move such as P14 or P13 (your move on the left side for

was also good). This strong center will also make any invasion by him into your top side very difficult. It would be much easier to invade the top for white at say,

rather than after

(not that invading the top would be the right choice for white there, but it was an option that's now gone (or very difficult)). After

are you actually dissatisfied with the huge center area you got, including cutting off the R14 stone? If you played

at K17, to avoid the cut that's very often a problem with haneing on the second line, then you would get an even better result.
Overall, the main problem wasn't with the invasion living - invasions often will - it's with you thinking of the right-side as your definitive territory and getting upset when white invaded rather than paying attention to the profit you got on the outside as a result of white's invasion. Letting your opponent live while still profiting from their invasion is a difficult concept to grasp, but I feel this game actually serves as a pretty good example of how to do it.