var c=document.getElementById('c'),w=window;w.onresize=function(){c.width=w.innerWidth;c.height=w.innerHeight;};w.onresize();var t=c.getContext('2d');var r=function(min,max){return Math.floor(Math.random()*(max-min+1))+min;};var p=function(c,t){this.c=c;this.t=t;this.s();};p.prototype={c:null,t:null,a:0,x:0,y:0,co:{},s:function(){this.a=.2;this.x=r(0,this.c.width);this.y=r(0,this.c.height/3);this.co={r:r(50,255),g:r(50,255),b:r(50,255)};},r:function(){this.a+=.05;this.y+=this.y*.01;this.x+=Math.cos(this.x*Math.PI)*4;this.t.fillStyle='rgba('+this.co.r+','+this.co.g+','+this.co.b+','+this.a+')';this.t.beginPath();this.t.arc(this.x,this.y,this.y/100+r(0,1),0,Math.PI*2,true);this.t.closePath();this.t.fill();if(this.y>=this.c.height||this.y<0||this.x<0||this.x>this.c.width)this.s();}};for(var i=0,pa=[];i<300;i++)pa.push(new p(c,t));setInterval(function(){t.globalAlpha=.1;t.fillStyle='#000';t.fillRect(0,0,c.width,c.height);for(var i=0;i<300;i++)pa[i].r();},20);
dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKSx3PXdpbmRvdzt3Lm9ucmVzaXplPWZ1bmN0aW9uKCl7Yy53aWR0aD13LmlubmVyV2lkdGg7Yy5oZWlnaHQ9dy5pbm5lckhlaWdodDt9O3cub25yZXNpemUoKTt2YXIgdD1jLmdldENvbnRleHQoJzJkJyk7dmFyIHI9ZnVuY3Rpb24obWluLG1heCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoobWF4LW1pbisxKSkrbWluO307dmFyIHA9ZnVuY3Rpb24oYyx0KXt0aGlzLmM9Yzt0aGlzLnQ9dDt0aGlzLnMoKTt9O3AucHJvdG90eXBlPXtjOm51bGwsdDpudWxsLGE6MCx4OjAseTowLGNvOnt9LHM6ZnVuY3Rpb24oKXt0aGlzLmE9LjI7dGhpcy54PXIoMCx0aGlzLmMud2lkdGgpO3RoaXMueT1yKDAsdGhpcy5jLmhlaWdodC8zKTt0aGlzLmNvPXtyOnIoNTAsMjU1KSxnOnIoNTAsMjU1KSxiOnIoNTAsMjU1KX07fSxyOmZ1bmN0aW9uKCl7dGhpcy5hKz0uMDU7dGhpcy55Kz10aGlzLnkqLjAxO3RoaXMueCs9TWF0aC5jb3ModGhpcy54Kk1hdGguUEkpKjQ7dGhpcy50LmZpbGxTdHlsZT0ncmdiYSgnK3RoaXMuY28ucisnLCcrdGhpcy5jby5nKycsJyt0aGlzLmNvLmIrJywnK3RoaXMuYSsnKSc7dGhpcy50LmJlZ2luUGF0aCgpO3RoaXMudC5hcmModGhpcy54LHRoaXMueSx0aGlzLnkvMTAwK3IoMCwxKSwwLE1hdGguUEkqMix0cnVlKTt0aGlzLnQuY2xvc2VQYXRoKCk7dGhpcy50LmZpbGwoKTtpZih0aGlzLnk+PXRoaXMuYy5oZWlnaHR8fHRoaXMueTwwfHx0aGlzLng8MHx8dGhpcy54PnRoaXMuYy53aWR0aCl0aGlzLnMoKTt9fTtmb3IodmFyIGk9MCxwYT1bXTtpPDMwMDtpKyspcGEucHVzaChuZXcgcChjLHQpKTtzZXRJbnRlcnZhbChmdW5jdGlvbigpe3QuZ2xvYmFsQWxwaGE9LjE7dC5maWxsU3R5bGU9JyMwMDAnO3QuZmlsbFJlY3QoMCwwLGMud2lkdGgsYy5oZWlnaHQpO2Zvcih2YXIgaT0wO2k8MzAwO2krKylwYVtpXS5yKCk7fSwyMCk7
Original source not submitted