I think that besides the opacity mask you are already using some kind of vertical color gradient / opacity gradient on the grass strands?
It’s definitely a play with color, and possibly removing effects of shadow, pp and other variations to keep the color palette in check on the end result.
It’s always been a bit of a struggle in games to match plant color to ground color. In Unreal Engine you can color procedurally based on world position, so one patch of ground automatically gets the same color as the gras above it. You can use the detail texturing tutorial to learn how:
Also, If you wonder about customizing normals for the “fluffy” approach, I wrote about it a while ago. Basically you can use the normals of a sphere instead of the flat normals on individual grass strands.