Confusion in ethernaut PuzzleWallet Challenge

The PuzzleWallet solution is quite confusing for me
How come calling the proposeAdmin function inside PuzzleProxy contract changes the storage of PuzzleWallet contract. Even if the storage is clashing how is it possible to change the storage of logic contract??
Here is the link to problem and solution as well.
Problem https://ethernaut.openzeppelin.com/level/0xb4B157C7c4b0921065Dded675dFe10759EecaA6D

Solution - https://github.com/t4sk/ethernaut/blob/main/src/24-puzzle-wallet.sol