Why did you play 15.f3? Maybe better to keep the 3rd rank free to play Rd1/Rd3/Rg3 to attack the king (as the pawn structure is fixed).
As you're playing for the kingside attack better to not let the queenside open up, so maybe 18.b3.
Your 39.Nxh5 a nice (clever) move.
You're right about 79.a4?? Three passers much more difficult to handle than 2!
You know, sometimes a losses feel better than a wins.
In this game i quite well, i think, managed to hold my lines till the endgame where i went horribly wrong.