27. ... Qxd1+ 28. Ka2 Nc1+ 29. Bxc1 Qxd7 and Black is winning.
What was the mistake here?

27. ... Qxd1+ 28. Ka2 Nc1+ 29. Bxc1 Qxd7 and Black is winning.
dang... my chess expertise is not nearly big enough to calculate that. Thanks.

It's time to learn about "the classical center". The classical center is one of the strongest things you can get in chess. It means you have two pawns in the center (e.4/d4 if you're white, e5/d5 if you're black), and it's a theme that shows up EVERYWHERE. If you can attain the classical center without missing a direct tactic, you should almost always do it.
On move 2, you played Bc4 - it created no threat, did not place a pawn in the center, and put a loose piece in the middle of the board that was easy for black to attack. When black did attack it, you placed the bishop in range of black's pawns - losing time AND donating the center to your opponent.
After losing the center and having your bishop bossed around, you hadn't had enough punishment and decided to threaten children's mate......whereupon black traded, and made the classical center
After this, it was black's game to lose (which he did!), and your little combo at the end was nice, but your opening was just ridiculous. And NOT because you don't know opening theory, because you had no desire to occupy the center or develop your pieces beyond pointing things at f7.
That analysis isn't the best resistance that white can give, though, in the line
27. ... Qxd1+ 28. Ka2 Nc1+
Clearly, white shouldn't play 29. Bxc1, because of 29 ... Qxd7 winning. White also can't play 29. Ka3 because of 29 ... Qb3#. So instead, white is forced to play 29. Kb1 (or 29. Ka1, but it doesn't really make any difference). Black has a perpetual here, 29 ... Nb3+ 30. Ka2 Nc1+ 31. Kb1, and so on, so it is at least a draw.
But black can win, after 28 ... Nc1 29. Ka2, by playing 29 ... Nd3+. If 30. Bc1, then 30 ... Qxc1 which is clearly winning, and if 30. Ka2, then 30 ... Nb4+. White cannot take because of the threat of 31. Bxb4 Qxd7 winning for black, so instead we have 31. Ka3 Nc6, defending the rook, and we are winning. For example, 32 Bxa5 Qxd7 33 Qxd8 Qxd8 34 Bxd8 34 Nxd8, or 32 Qxc8 Qxd2 33 Qc8 Qxd7.
That is quite a nice tactic though, it works in many other situations, just not here.
Here is a game I played recently. I was specifically happy with a tactic I had found on move 27, Qc8. After running the computer analysis, it called the move a blunder and said Re1 was the best move. It also said that I had gone from winning to losing, when the move had directly caused checkmate. What was my/my opponent's mistake?
https://www.chess.com/live/game/3328824629