I've got some general rules about mixing. And then I'll bring in my son, who's got actual training in audio engineering to have a final listen. I may not agree with his decisions, but it's really helpful to have another set of ears.
First and foremost, know what you want the listener to be focusing on at any point in the mix. Most of the time, it's vocals. Assume they can only really hear one thing at any point. Know what that is, and make sure the mix supports that.
If anything is interfering with that focus, figure out how to get it out of the way. The simplest thing to do is remove it from that part of the mix.
Each instrument should be in a specific frequency range. Use EQ to keep them in their lanes. As a rule, it's better to cut a frequency than to boost it.
Just about all instruments should have high pass filters to keep the "mud" in the low register from building up, and to keep the low end open for the bass and drum.
You can have some pretty severe EQ cuts on instruments, because other instruments in the mix are going to be playing in those missing frequencies. Pay attention to how something sounds in the mix, not soloed.
Sometimes I only want an instrument to be noticed at a specific point, like a drum fill. So I'll bump the drums only at that point.
You can also use something like
Trackspacer to automatically carve out space in the spectrum. But this should be in addition to everything else. Use the high and low cut to have it only focus on the frequencies that need clarity, and don't turn it up so high that you get pumping (where you can hear the volume of the other instrument being turned down).
Reverb on a track can make a mix muddy. A good alternative to reverb is delay. Another option is to duck the reverb with the vocal (for example, with Trackspacer), so the reverb doesn't get in the way, but the lovely tails are there at the end of the vocal.
Although you
can use the stereo image to create separation, but it's best if the mix works in mono too.