Here are somethings that I notice. Taking on d4 is not the way to go after 6...cxd4?! 7. cxd4! (not exd4) white can now put his knight and dark square bishop on better squares. There is no need to release tension, besides after a possible dxc5 black has a better pawn structure.
15... 0-0-0? is casteling into white's attack, it is better to keep the king in the center (for now atleast). Here is a safer idea: 15...h3! 16.g3 Bxe5 17. fxe5 and here the center is closed so the king is still safe in the center, and later when the position is more clear we can walk the king to the safer side of the board. This position is more about ideas than calculation.
16...Rdg8? / 17... g5? this whole idea is flawed the g5 square is defended enough times Bxe4 fxe4 fxg5 and the file is still not open and black is a pawn down. This is not the type of position to go attack your own king is not safe enough.
19.Ba6+? misses the simple Bxe4 fxe4 fxg5 and black has nothing.
20...g4? this constuction can only breakthrough with sacrifices h2/g2 vs h4/g4 is a sort of lock. ChessNetwork has a video on this concept
www.youtube.com/watch?v=Mc9OmY3Tiso here Petrosion plays a7-a6 to stop breaks, 20... gxf4 opens the position and black gets chances.
24.c5? keeping tension is better or taking on d5 this move blocks white later.
29... Rb4?? The intention is to distract the queen but this misses the simple Ba6+, how to avoid this? Consider checks and captures first when calculating a tactic. Now white gets an extra tempo since the rook is no better on b4 than b2.
32.g3 this is why 20...g4 is bad, how will you get at the king? Not from the g and h-file without a Nxg3 sacrifice
After this the mistakes you made were with little time so I will excuse those.