Bloom the gelatin: Pour the cold water into a small bowl and sprinkle the gelatin evenly over the surface. Let it sit for about 5 minutes until it looks spongy and absorbed. This step is crucial for smooth texture!
Heat the dairy mixture: Combine the heavy cream, milk, sugar, lemon zest, and salt in a medium saucepan. Place over medium heat and stir occasionally until the sugar dissolves completely and the mixture just begins to steam. Don't let it boil!
Add the gelatin: Remove the pan from heat and add the bloomed gelatin. Whisk gently until the gelatin dissolves completely with no lumps remaining. This should take about a minute.
Incorporate the lemon juice: Stir in the fresh lemon juice and vanilla extract. The mixture might look slightly curdled at first, but keep stirring and it will smooth out beautifully.
Strain the mixture: Pour the mixture through a fine-mesh strainer into a large measuring cup or bowl with a spout. This removes the lemon zest and ensures a silky-smooth texture.
Fill the molds: Divide the mixture evenly among six ramekins or serving glasses. You can lightly oil the ramekins first if you plan to unmold them later.
Chill until set: Cover each ramekin with plastic wrap and refrigerate for at least 4 hours, or preferably overnight. The panna cotta should be firm but still have a gentle wobble when you shake it.
Serve: If serving in the ramekins, simply remove the plastic wrap and serve as is. To unmold, run a thin knife around the edge, dip the bottom in warm water for a few seconds, and invert onto a plate.