     .attr(dx: 200)
 
   glare = []
-  glare.push(Crafty.e('2D, Canvas, Color, ViewportRelativeMotion, Tween')
-    .attr(w: 80, h: 80, z: 1000, x: 150, y: 10, alpha: 0.7, originalAlpha: 0.7)
+  glare.push(Crafty.e('2D, Canvas, Color, ViewportRelativeMotion, Tween, Glare')
+    .attr(w: 90, h: 90, z: 900, alpha: 0.4, originalAlpha: 0.4)
+    .color('#FFFFFF')
+    .viewportRelativeMotion(
+      x: 550
+      y: 395
+      speed: 0
+    )
+    .tween({ dy: -340 }, duration)
+    .attr(dx: 185)
+  )
+  glare.push(Crafty.e('2D, Canvas, Color, ViewportRelativeMotion, Tween, Glare')
+    .attr(w: 80, h: 80, z: 1000, alpha: 0.7, originalAlpha: 0.7)
     .color('#B0B0FF')
     .viewportRelativeMotion(
       x: 150

      yMin = Math.max(sun.y, e.y)
      yMax = Math.min(sun.y + sun.h, e.y + e.h)
      h = yMax - yMin
      covered += w * h

    perc = covered / sunArea
    perc = 1 if covered > sunArea
    for e in glare
      e.attr alpha: e.originalAlpha * (1 - perc)

    .tween({ dy: 410 }, duration)
    .attr(dx: -300)
  )
  Crafty.bind 'EnterFrame', ->
    covered = [0]
    sunArea = sun.area()

    for o in sun.hit('2D')
      continue if o.obj is sun
      continue if o.obj.has 'Glare'
      e = o.obj
      xMin = Math.max(sun.x, e.x)
      xMax = Math.min(sun.x + sun.w, e.x + e.w)
