I tend to create encounters for narrative and completely ignore the PCs abilities in extreme favor of their narrative interests. Not only have I had some of the greatest responses to sessions that ended up with zero combat, I'm long past thinking I can even predict how they'll act and it's one of the main delights in running a game to discover how my players will react to or approach something.
Some stuff is obvious, like cliffs, water, weather, lava, imminent parlay, etc. but what has helped with my pesky flying PC is waiting for them to ask about certain features they can use with their flight and then developing things "on the fly" (pun partially intended). I almost always can give them something they can use, but nothing that makes them OP: "Are the ceilings high enough in here?", "Are there any trees I can perch on?", "Do they have range weapons?" --> Why, yes! Two of them have crossbows. --> "Hmm...okay..."
It's one of those classic learned DM skills that only comes with playing a whole lotta hours and after enough broken encounters. At some point, you're weary of adding another wave of minions (my least favorite balancer) or "name your deus ex machina". You draw a few lines out but not too many and wait for them to start helping you shade and fill in the color.