Hey man, let's take a look
20...f5 he offered you his g pawn on his king side, popping the kings position wide open to attack, yet you didn't take on f5? Always remember that when you can trade your pawns for the pawns protecting his king it's a good trade. 21. exf5 is much preferred, removing his g6 pawn from its protecting square.
Because of not taking on 20 you lost 3 pawns! and you hung a knight! So that is where it all went wrong.
26.... Rf8, you always gotta watch out for two rooks on the same lines, they can be deadly. Much better than 27. Kg2 is 27. Rd2 defending the f2 square twice.
Basically you made no bad moves, you just simply didn't respond well to his threats... if that makes any sense. I think your problems were in your defense.
Anyways it looks like a 1300 player towards the end so don't get upset,
just take your time with your moves and they'll be much prettier