"Stair-ify" a string You must write a program or function that creates a &quot;stair-ified&quot; string. Here is how you &quot;stair-ify&quot; a string:
For each character in the string:

If the character is an upper or lowercase vowel, not including 'y', output it then move the rest of the string up a column.

If the character is a space or a tab, output it then move the rest of the string down a colum.

If the character is neither, output it normally.


IO can be in any reasonable format. The input will not contain any newlines. If you want, you can remove any trailing whitespace.
If you choose to return the string, rather than printing it, please also include a short program that will print your string so that it can be visualized. This is not mandatory, nor will it go towards your byte-count. This is just a convenience for users who don't understand golf or esolangs (like me) to be able to verify output or tinker with the code.
Sample IO:
Output for &quot;bcdef ghijkl&quot;:
    f    jkl
bcde  ghi

Output for &quot;Programming Puzzles And Code-Golf&quot;:
                               lf
                            -Go
                  s  nd   de   
         ng   zzle  A   Co       
      mmi   Pu                 
   gra        
Pro

Output for &quot;Abcdefghijklmnopqrstuvwxyz&quot;:
                     vwxyz
               pqrstu
         jklmno
     fghi          
 bcde             
A        

As usual, this is code-golf, so shortest answer in bytes wins.
Pyth, 63 bytes
V_Q aY?}rN0&quot;aeiou&quot;=hZ?}N&quot;     &quot;=tZZ;Jh.mbYKh.MZYjC.b++*d+JNY*dK_YQ
                         ^^^^^
                         |||||
                         |tabs
                        space

The spaces in the middle is actually a single tab character, but StackExchange renders it as four spaces.
Try it online!