Here is the use case: A uses B's public key to encrypt a message and sent it to B. In later stages, a new member C joins and B would like to let C be able to see this encrypted message (i.e., give the decryption ability to C) without sharing his/her private key or letting A encrypt the message again using C's public key. It is in this question. A useful solution in that question is proxy re-encryption. In that case, B will generate a re-encryption key using B's private key and C's public key and send it to a proxy. The proxy will re-encrypt the encrypted message using the re-encryption key and send it to C. Then C can use his/her private key to decrypt the re-encrypted message to get the original one.
The main question is, after the encrypted message that was encrypted using B's public key earlier is re-encrypted using the re-encryption key generated from B's private key and C's public key, how can C use his/her private key to decrypt the re-encrypted message to get the original one? What makes this happen?
Could anyone please give a gentle introduction on how this proxy re-encryption works? I know there are many papers about it and I have tried to understand them but still cannot make anything of them (e.g., Lecture 17: Re-encryption, the most gentle material I found but still cannot understand...). Could anyone introduce it in a layman perspective, maybe via a working example? Introductions like these would be of great help.
Sorry if this question is too shallow here, but I really need such introductions because I am not a cryptography guy while I need to use this concept and need to understand basic principles of it. Thank you!