I've picked out some the tactics. Black could have won this game.
As has been suggested here.
18.Nf6+ gxf6 19.Qh6 looks very good..
Black cannot take the g5 Bishop as Nxg5 and mate on h7 and the Bishop
coming to f6 and mate on g7 is a threat.
However Black has Ne7 with Nf5 this hits the Queen and holds g7. Maybe Bd3 to
stop this is on. It's getting messy. Once you see the Nd7-f5 idea (and have been
caught with the same trick in the past) you have doubts.
Black cannot take on f5. 28...gxf5 29.Qg3+ and mate.
This opening up of the g-file and Qg3+ seems to have stuck in
White's mind because here...
White played 32.Rxf5 gxf5 33.Bc4+
Black did not take the Bishop as White hoped so Black was not mated
with Qg3+ and Black is now winning.
Onto here. (Black to play)
Black could have exploited White's weak back rank with 35...Nxc4.
I cannot see any White tricks after 35...Nxc4 Black is Rook up.
Instead Black played 35...Qg6 and the chance and the game was lost.