You can do this with an offline computer running those bip39 webpages saved locally. Or you can poke around GitHub and find Python scripts that also do this offline.
The address is our generated with the private key and the wallets hd path, see walletsrecovery.org
This is a good question to put on bitcoin.stackexchange.com. That's where I go with hard questions.
Have you read the Bitcoin white paper as well? It might answer some of your questions