How to sample from a texture in Blender 3 using geometry nodes?

I’m trying to create a geometry node network that uses a height map to displace the vertices of my mesh along their normal. The geometry nodes available in Blender 3 seem to be almost completely different from the ones in 2.93, so I can’t use any of those tutorials. What nodes would I need to do this?

How it works in Blender 3.1:

  1. Create a UV map
  2. Connect an input to the geonodes input node
  3. select UVmap in the modifiers setting for this input
  4. use the UVmap coordinates in an image texture node
  5. use the normal node to sample the normals and scale them with the image node output
  6. use the result for the offset input in the set position node