Make me an upside-down Christmas tree! Challenge

We all know about normal Christmas trees - but how about an upside-down Christmas tree! This is a fairly easy, Christmas themed challenge. The objective of this challenge is to make me an ASCII upside-down Christmas tree. Here are the rules for this challenge:


Accept an odd, positive integer. You can assume it will always be between 7 and 51.
The base of the tree will be made of the characters:

___
\ /
 |

The top of the tree (the star), will be made up of a single *.
Each line of the tree will be constructed using the format &lt;?&gt; where ? is any number of -s. For example, if making a line of length 5, the line should be &lt;---&gt;. Or if making a line of length 8, the line should be &lt;------&gt;.
Here is how the body of the tree should be constructed: 


Take the odd number n given as input, and create a line of the tree that length. 
Subtract 4 from n and create a line of the tree that length. 
Subtract 2 from n and create a line of the tree that length. 
Decrement n by 2. After that, unless n equals 5, go back to step 2.

The base (see step 2.) the star (see step 3.) and each line of the tree (see steps 4. and 5.) should all be centered using the original odd number input (see step 1.) as the maximum width. 


Examples/Test Cases

odd number inputed: 7
  ___
  \ /
   |
&lt;-----&gt;      line length -&gt; 7
  &lt;-&gt;        line length -&gt; 7 - 4 = 3
 &lt;---&gt;       line length -&gt; 7 - 2 = 5
   *


odd number inputed: 13
     ___
     \ /
      |
&lt;-----------&gt;      line length -&gt; 13
  &lt;-------&gt;        line length -&gt; 13 - 4 = 9
 &lt;---------&gt;       line length -&gt; 13 - 2 = 11
   &lt;-----&gt;         line length -&gt; 11 - 4 = 7
  &lt;-------&gt;        line length -&gt; 11 - 2 = 9
    &lt;---&gt;          line length -&gt; 9 - 4 = 5
   &lt;-----&gt;         line length -&gt; 9 - 2 = 7
     &lt;-&gt;           line length -&gt; 7 - 4 = 3 
    &lt;---&gt;          line length -&gt; 7 - 2 = 5
      *


odd number inputed: 9
   ___
   \ /
    |
&lt;-------&gt;      line length -&gt; 9
  &lt;---&gt;        line length -&gt; 9 - 4 = 5
 &lt;-----&gt;       line length -&gt; 9 - 2 = 7
   &lt;-&gt;         line length -&gt; 7 - 4 = 3
  &lt;---&gt;        line length -&gt; 7 - 2 = 5
    *


odd number inputed: 17
       ___
       \ /
        |
&lt;---------------&gt;      line length -&gt; 17
  &lt;-----------&gt;        line length -&gt; 17 - 4 = 13
 &lt;-------------&gt;       line length -&gt; 17 - 2 = 15
   &lt;---------&gt;         line length -&gt; 15 - 4 = 11
  &lt;-----------&gt;        line length -&gt; 15 - 2 = 13
    &lt;-------&gt;          line length -&gt; 13 - 4 = 9
   &lt;---------&gt;         line length -&gt; 13 - 2 = 11
     &lt;-----&gt;           line length -&gt; 11 - 4 = 7
    &lt;-------&gt;          line length -&gt; 11 - 2 = 9
      &lt;---&gt;            line length -&gt; 9 - 4 = 5
     &lt;-----&gt;           line length -&gt; 9 - 2 = 7
       &lt;-&gt;             line length -&gt; 7 - 4 = 3
      &lt;---&gt;            line length -&gt; 7 - 2 = 5
        *    


Rules


Standard loopholes apply.
This is code-golf, so the shortest answer in bytes wins!
Python 3, 127 121 105 103 100 98 bytes

This is an unnamed lambda function which returns a list of lines:



lambda o:[s.center(o)for s in['___','\ /','|',*[f'&lt;{"-"*(o-i+2-i%2*3)}&gt;'for i in range(4,o)],'*']]


Try it online!

The main part of this answer is (o-i+2-i%2*3), which works out the number of dashes to have on a line. The rest of the answer is simply converting this into the desired ASCII-art.

Many thanks to Mr. Xcoder, for shaving 6 bytes, and discussing golfs with me in chat. 

Thanks also to Lynn for noticing that 3*(i%2) can be i%2*3, 2 bytes shorter!