Why did this guy resign, was there a strategic reason? I have a hobby as an amateur chess player to watch top rated games on lichess.org, my personal favorite online chess platform. Usually after some analysis, I can figure out why players do particular things. However, with this game there really seemed to be no reason for the resignation. Did the player give up for non strategic reasons or am I missing something?

[FEN ""]
[Event "Rated game"]
[Site "http://lichess.org/cg4yGry4"]
[Date "2016.03.25"]
[White "LadyBaba"]
[Black "BlandPassivity"]
[Result "1-0"]
[WhiteElo "2223"]
[BlackElo "2121"]
[PlyCount "39"]
[Variant "Standard"]
[TimeControl "600+0"]
[ECO "A02"]
[Opening "Bird Opening"]
[Termination "Normal"]
[Annotator "lichess.org"]

1. f4 { A02 Bird Opening } d6 2. Nf3 Nf6 3. e3 Nbd7 4. a3 e5 5. fxe5 dxe5 6. Nc3 Be7 7. d4 exd4 8. exd4 O-O 9. Bd3 b6 10. O-O Bb7 11. Qe1 c5 12. Qg3 cxd4 13. Nxd4 Bc5 14. Be3 Re8 15. b4 Bxd4?! { (0.56 → 1.18) Inaccuracy. Best move was Bd6. } (15... Bd6 16. Qxd6 Rxe3 17. Qf4 Re8 18. Rae1 Rxe1 19. Rxe1 Nh5 20. Qe3 g6 21. Ndb5 Ndf6 22. Qe7) 16. Bxd4 Rc8?! { (1.17 → 1.84) Inaccuracy. Best move was Qb8. } (16... Qb8 17. Qh3) 17. Rad1 Qc7 18. Qh4 h6 19. Nb5 Qc6 20. Rf3 { Black resigns } 1-0
White's threats revolve around Nxa7. What can Black do? This is the line given by Ubisoft's Chessmaster:

2r1r1k1/pb1n1pp1/1pq2n1p/1N6/1P1B3Q/P2B1R2/2P3PP/3R2K1 b - - 0 1

1... Ra8 {Directly defending a7} 2. Rg3 {Threatening to take on h6} Kf8 {Breaking the pin} 3. Qf4 Nh5 {This forces white into the sacrificial line that follows} 4. Bxg7+ Nxg7 5. Nd6 {Threatens 6. Qxf7#} Ne5 6. Qxh6 {Sure, Black has a piece for 2 pawns, but White's attack is too strong}