for(_='tyle~Math.ZZcos(YeightX0,V,VVU"+=.+"50c.fillRect(f)+.5,()*hd[2]+.25))**2+;i--;)d=r[i]forransm=tion.s~/10",S~="hsl), =b.offsetZsin(px"%360+%,perspective,s.background="#*(.5*f(wWidth,hHX,wh=Zsqrt(w*w+h s=b222q=Zrandom,n=3Vi=n,r=[]=3*w/n=document.createElement("div" s=dhX=w/(3*n)width=w/4fff"posi="absolute"top="0b.appendChild(d);(p=[],o=Vi=op.push([q*w,q,q]);f=Vl=func{(i=n,t08*Date.now,s=d,A=(i/n+t)%h*3-2.8,e02*t+i/n*2*ZPI,a=e y=a/3 x=Ya/3)webkitTs.t"matrix3d([x,-yUy,x,-1U1Uw*a+3*w/8,.8+a*.05,A,1].join("))"opacity=A/900+2;(f-005,fx5*Yfy5*b.Origin=*fx+25% (*fy+25)%i=od=p[i],(t(25+*)%)m=wh*0+2,(d[0]-wxwx+.25 (d[1]-hyhy+.25 m,m =(+.005)%1;a((t-20)20%,.1)VVw,h requestAnimaFrame(l)},l;';g=/[^ -TW[-}]/.exec(_);)with(_.split(g))_=join(shift());eval(_)
w=b.offsetWidth
h=b.offsetHeight
wh=Math.sqrt(w*w+h*h)
s=b.style
s.background='#222'
q=Math.random
n=30
i=n
r=[] //rectangles
s.perspective = 3*w/n+'px'
while(i--){ //add divs
d=r[i]=document.createElement("div") //create div
s=d.style //style
s.height=w/(n*3)+'px'
s.width=w/4+'px'
s.background="#fff"
s.position='absolute'
s.top='0'
b.appendChild(d)
}
p=[] //particles
o=500
i=o
while(i--) {
p.push([q()*w,q()*h,q()])
}
f=0
l = function() { //loop
i=n
t=Date.now()*.08
while(i--) {
d=r[i] //get a div
s=d.style //style
z=(i*h/n+t)%h*3-h*2.8 //Depth of the track
e=t*.02+i/n*2*Math.PI //theta
a=Math.sin(e)
y=Math.sin(a/3)
x=Math.cos(a/3)
s.webkitTransform=s.transform="matrix3d("+[x,-y,0,0,y,x,-1,0,0,1,0,0,w/10*a+w*3/8,h*.8+a*h*.05,z,1].join(',')+")"
s.opacity = z/900+2
}
f-=.005
fx=Math.cos(f)*.5+.5
fy=Math.sin(f)*.5+.5
b.style.perspectiveOrigin = (fx*50+25)+"% "+(fy*50+25)+"%"
i=o
while(i--){
d=p[i]
c.fillStyle='hsl('+t/10%360+',50%,'+(25+d[2]*50)+'%)'
m=wh*d[2]/100+2
c.fillRect(
(d[0]-w*(fx*.5+.25))*d[2]*2+w*(fx*.5+.25),
(d[1]-h*(fy*.5+.25))*d[2]*2+h*(fy*.5+.25),
m,m
)
d[2]=(d[2]+0.005)%1
}
c.fillStyle='hsla('+(t/10-20)%360+',50%,20%,.1)'
c.fillRect(0,0,w,h)
requestAnimationFrame(l)
}
l()