Print a layered cake Challenge

Given an input n, print an ASCII art cake n layers tall, viewed from the side, with two candles on top. Refer to the examples below for details.

Output

&gt;&gt; cake(1)

 _|_|_
|     |
+-----+

&gt;&gt; cake(3)

     _|_|_
    |     |
  +---------+
  |         |
+-------------+
|             |
+-------------+


...and so on.

Rules


Standard loopholes prohibited
Please make an attempt at a clever solution
This is code-golf, so shortest answer in bytes wins. However, the answer will not be selected.


Have fun!
Python 2, 238 chars
i=input()
m=[&quot;+&quot;+&quot;-&quot;*(i*4+1)+&quot;+&quot;,&quot;|&quot;+&quot; &quot;*(i*4+1)+&quot;|&quot;]
for v in range(i,1,-1):
 m+=[&quot; &quot;*(i-v)*2+&quot;+&quot;+&quot;-&quot;*(v*4+1)+&quot;+&quot;,&quot; &quot;*(i-v+1)*2+&quot;|&quot;+&quot; &quot;*((v-1)*4+1)+&quot;|&quot;]
m.pop()
m+=[&quot; &quot;*(i-1)*2+&quot;|&quot;+&quot; &quot;*5+&quot;|&quot;,&quot; &quot;*(i-1)*2+&quot; _|_|_&quot;]
print'\n'.join(m[::-1])

The missing example of Cake 2:
   _|_|_
  |     |
+---------+
|         |
+---------+