"Gradient Crease" - Subdivision Surface Modifier


I have following problem;
I want the edges marked red to be sharp without getting these weird shading results, but I have no idea how to do this. I’m trying my luck with edge crease right now, but this isn’t really working. I think what would work would be like a gradient from 0 edge crease to 1.
What would your approach be?

There is no vertex creasing at the moment, so it’s impossible as far as I know -you should use ‘traditional’ support loops instead of creasing.