precision highp float; uniform vec2 resolution;
uniform float time,fft;float g=atan(1.
),x=g*2.,f=1./(2.4-fft*.5);vec2 H=vec2(1.,
1.5)*f,j=vec2(1.1,1.6)*f;float k(vec2 b,vec2 c
,vec2 d){b*=f,c*=f;vec2 a=c-b;float e=dot(d-b,a)/ dot(a,
a);return distance(b+a*clamp(e,0.,1.),d);}float y (vec2 a,
float b,vec2 c){a*=f,b*=f;return abs(length(c-a)- b);}float z(
vec2 h,float b,float c,float i,vec2 a){h*=f,i*=f,a -=h,a*=mat2(cos(
b),sin(b),-sin(b),cos(b));float d=c/2.-g*4.,e=mod( atan(a.y,a.x)-d,g*8.
)+d;e=clamp(e,min(0.,c),max(0.,c));return distance( i*vec2(cos(e),sin(e)),a
);}float A(vec2 d,vec2 b){float a=1e+6;;;a=min(a,y( vec2(0.,0.),1.41,b)),b-=d
;; vec2 c=j* vec2(0.,-.17);b-=c,a=min(a,k(
vec2 (0.,1.5 ),vec2( 1.0,1.5),b)),
a=min( a,k( vec2(1.0,1.5),vec2( .19,0.) ,b)),a=min( a,k(vec2(0.,
1.5),vec2 (.2,1.2),b)),c=j*vec2 (1.02, .29),b-=c,a=min(a, k(+vec2(
4e-3,.69), vec2(.61,1.87),b)) ,a=min(a ,z(vec2(.51,.5),2.8,5.1, .54,b))
;return a;} float l(float a, float b, float c){return step(c,sin( time+a
*cos(time*b)));}vec2 B(in vec2 a ){a=(a-.5 )*2.,a*=1.1,a.x*=1.+pow(abs( a.y)/
5.,2.),a.y*=1.+pow(abs(a.x)/4. ,2.),a=a/ 2.+.5,a=a*0.92+.04;return a;} float
C(float b,float c,in float a) {return 1. /(a*sqrt(x))*exp(-((b-c)*(b-c )/(2.
*(a*a))));}vec3 n(float b){ vec2 c=(vec2( 1.)*1.0*1.0)/resolution.xy,d= 1.0*
gl_FragCoord.xy*c;float e =dot(d,vec2(13. ,78.2)),a=fract(sin(e)*43758. +b);
a=C(a,0.001,0.60);return vec3(a)*1.2;}vec3 D(vec2 a,vec3 c,in float b ){a
*=1.-a.yx;float d=pow( abs(a.x*a.y*15.01), .25+b);return c*=vec3( d);}
void main(){vec2 a= (1.0*gl_FragCoord.xy)/ resolution.xy;a =B(a)
;vec2 e=a-vec2(.5 );float o=max(1.0,200.0- pow(abs(
time),1.5)*500. ),p=max(1.,200.-pow(abs(time), 1.5)*200.
);o+=1.*sin (time*10.)*max(0.,.5-pow(abs(time),4.)*.9),p+=sin(time*10.)
*max(0., .5-pow(abs(time),4.)*.2),e.x*=o,e.y*=p,a=e+vec2(.5);float q
=(1.* floor(time*29.97))/29.97;vec3 h=n(q);h+=vec3(0.01,.03,0.6);
float r=clamp(.35+.35*sin(3.5*time+a.y*resolution.y*1.5),
0.,1.),s=pow(abs(r),1.33)*min(time*.75,1.);vec3 b=vec3(0.
)+h*.70+s;vec2 c=(a-.5)*2.;float t=max(resolution.x,
resolution.y)/min(resolution.x,resolution.y);
resolution.x>resolution.y?c.x*=t:c.y
*=t;{float u=mod(time*.75,3.),
d=c.y-u,v=1./(1.+20.*d*d),E=sin(c.y*10.+time)/100.*l(4.,4.,.3)*(1.+cos(time*80.))*v*3.,
F=.01*l(2.,3.,.9)*(sin(time)*sin(time*20.)+(.5+.1*sin(time*200.)*cos(time)));c.x=c.x+E,
c.y=c.y+F;}vec2 G=-j*vec2(2.,1.)/2.;float i=1e+6;i=min(i,A(G,c));vec3 m=vec3(0.0000001)
;float w=0.;w=.012/i,m+=vec3(.01,.3,.6)*w,b=mix(m*b+m*1.5,b*1.2,1.-clamp(time*.5,0.001,
0.777)),b=D(a,b,.12),b=mix(b,b*b,.4);if(a.x<0.||a.x>1.||a.y<0.||a.y>1.)b*=0.00000000001
;gl_FragColor=vec4(b,1.0);}
// A Tribute to the most awesome company in the world!!! Marco Gomez ║ https://mgz.me