Nice progress — the grass/sand read is already clearer without the grid.
On the water transition: the harsh line usually comes from treating shore like a third “terrain” painted by hand. Two things that helped me on similar top-down sets:
1) Split the problem: a soft **shore/corridor band** (sand→shallow water) separate from the deep fill tile — fewer pixels fighting on one tile.
2) Keep the grass outline lighter (you already spotted that) *and* let the shore tile carry a bit of grass fringe so the Y-flip grass doesn’t feel mirrored against sand.
If you want to iterate on shore/path overlays without repainting every edge variant by hand, I built Tile Surgeon for parametric border + corridor tiles (square/iso/hex) → export PNG for Godot/Tiled: https://sprite-surgeon.itch.io/tile-surgeon
Happy to sketch on a screenshot if you drop one — water edge is fixable without covering it with animation alone.


