1) It runs very well without a network connection, you just can't access the online features. I've written my own syncing logic to make sure a user can experience the game for days or even months without having a network connection, and then have all their progress saved when they connect.
2) It works very well on low bandwidth connections. The puzzles are represented as strings and there are no remote images loaded.
3) For features that make sense in this game (sharing, IAP, haptics, notifications), it supports native functionality flawlessly. It is very easy to write native modules for RN, and there are may great npm packages that implement commonly needed native functionality.