{"version":3,"file":"MeshGradient.V7PrpEE3.mjs","names":["ke","q","Bo","Uo","Z","Go","Wo","Te","W","te","U","qe","Ze","$e","oo","so","Ae","co","uo","bo","ko","Po","ur.useRef","ur.useCallback","ur.useMemo","ze","c","Xe","Ur","ve","dr","De","wr","Re","He","We","Ie","Ge","Pr","Le","ne","Ne","Ke","Ve","Ue","kr","ea","Kr","oa","sa","aa","yr","pa","fe","la","ua","da","ca","br","Pa","Vr","ya","ba","Ba","ka","Br","za","Xa","Oa","Da","va","Fr","Aa","me","qa","Ta","Ea","ja","Cr","$a","pe","Qa","Za","Ja","xr","to","le","no","fo","io","Yr","go","$r","ho","So","wo","_o","gr","Fo","Co","zo","xo","Mo","Xo","Yo","Mr","Io","Jr","Ao","jo","To","qo","zr","Vo","ce","$o","Qo","Jo","Xr","ss","ue","ts","ns","is","Qr","Zr","us","de","_s","hs","gs","Ss","ds","ee","re","Cs","ge","zs","xs","Ms","Xs","Ys","vr","Is","he","Ts","As","js","Es","qs","Or","$s","_e","Qs","Zs","Js","Dr","tt","it","ft","mt","nt","Rr","gt","Se","_t","St","ht","Hr","Bt","Ft","we","xt","Yt","Ct","Gr","Dt","ae","Gt","Wt","Ht","It","Rt","Wr","Lt","Pe","Ut","Kt","Nt","Ir","ri","oe","oi","ai","si","ei","Ar","pi","ci","ui","li","Be","yi","Fi","be","bi","Bi","ye","xi","Yi","Ci","qr","vi","Di","Fe","Oi","Ce","Gi","Hi","Wi","Ri","jr","Ei","xe","Ki","Ui","Ni","Vi","Li","Tr","en","on","Sr","tn","sn","nn","an","Er","un","gn","Ye","dn","se","Sn","_n","wn","hn","getShaderColorFromString","useState","useRef","Shader"],"sources":["https:/esm.sh/@paper-design/shaders@0.0.80/es2022/shaders.mjs","https:/esm.sh/@paper-design/shaders-react@0.0.80/X-ZXJlYWN0LHJlYWN0LWRvbQ/es2022/shaders-react.mjs","https:/esm.sh/@paper-design/shaders-react@0.0.80?external=react,react-dom","https:/framerusercontent.com/modules/fkyDhLryMYRaAOmXYlL5/qCGSjbIyCCGfwOx4jVDl/MeshGradient.js"],"sourcesContent":["/* esm.sh - @paper-design/shaders@0.0.80 */\nvar Ue=`#version 300 es\nprecision mediump float;\n\nlayout(location = 0) in vec4 a_position;\n\nuniform vec2 u_resolution;\nuniform float u_pixelRatio;\nuniform float u_imageAspectRatio;\nuniform float u_originX;\nuniform float u_originY;\nuniform float u_worldWidth;\nuniform float u_worldHeight;\nuniform float u_fit;\nuniform float u_scale;\nuniform float u_rotation;\nuniform float u_offsetX;\nuniform float u_offsetY;\n\nout vec2 v_objectUV;\nout vec2 v_objectBoxSize;\nout vec2 v_responsiveUV;\nout vec2 v_responsiveBoxGivenSize;\nout vec2 v_patternUV;\nout vec2 v_patternBoxSize;\nout vec2 v_imageUV;\n\nvec3 getBoxSize(float boxRatio, vec2 givenBoxSize) {\n  vec2 box = vec2(0.);\n  // fit = none\n  box.x = boxRatio * min(givenBoxSize.x / boxRatio, givenBoxSize.y);\n  float noFitBoxWidth = box.x;\n  if (u_fit == 1.) { // fit = contain\n    box.x = boxRatio * min(u_resolution.x / boxRatio, u_resolution.y);\n  } else if (u_fit == 2.) { // fit = cover\n    box.x = boxRatio * max(u_resolution.x / boxRatio, u_resolution.y);\n  }\n  box.y = box.x / boxRatio;\n  return vec3(box, noFitBoxWidth);\n}\n\nvoid main() {\n  gl_Position = a_position;\n\n  vec2 uv = gl_Position.xy * .5;\n  vec2 boxOrigin = vec2(.5 - u_originX, u_originY - .5);\n  vec2 givenBoxSize = vec2(u_worldWidth, u_worldHeight);\n  givenBoxSize = max(givenBoxSize, vec2(1.)) * u_pixelRatio;\n  float r = u_rotation * 3.14159265358979323846 / 180.;\n  mat2 graphicRotation = mat2(cos(r), sin(r), -sin(r), cos(r));\n  vec2 graphicOffset = vec2(-u_offsetX, u_offsetY);\n\n\n  // ===================================================\n\n  float fixedRatio = 1.;\n  vec2 fixedRatioBoxGivenSize = vec2(\n  (u_worldWidth == 0.) ? u_resolution.x : givenBoxSize.x,\n  (u_worldHeight == 0.) ? u_resolution.y : givenBoxSize.y\n  );\n\n  v_objectBoxSize = getBoxSize(fixedRatio, fixedRatioBoxGivenSize).xy;\n  vec2 objectWorldScale = u_resolution.xy / v_objectBoxSize;\n\n  v_objectUV = uv;\n  v_objectUV *= objectWorldScale;\n  v_objectUV += boxOrigin * (objectWorldScale - 1.);\n  v_objectUV += graphicOffset;\n  v_objectUV /= u_scale;\n  v_objectUV = graphicRotation * v_objectUV;\n\n  // ===================================================\n\n  v_responsiveBoxGivenSize = vec2(\n  (u_worldWidth == 0.) ? u_resolution.x : givenBoxSize.x,\n  (u_worldHeight == 0.) ? u_resolution.y : givenBoxSize.y\n  );\n  float responsiveRatio = v_responsiveBoxGivenSize.x / v_responsiveBoxGivenSize.y;\n  vec2 responsiveBoxSize = getBoxSize(responsiveRatio, v_responsiveBoxGivenSize).xy;\n  vec2 responsiveBoxScale = u_resolution.xy / responsiveBoxSize;\n\n  #ifdef ADD_HELPERS\n  v_responsiveHelperBox = uv;\n  v_responsiveHelperBox *= responsiveBoxScale;\n  v_responsiveHelperBox += boxOrigin * (responsiveBoxScale - 1.);\n  #endif\n\n  v_responsiveUV = uv;\n  v_responsiveUV *= responsiveBoxScale;\n  v_responsiveUV += boxOrigin * (responsiveBoxScale - 1.);\n  v_responsiveUV += graphicOffset;\n  v_responsiveUV /= u_scale;\n  v_responsiveUV.x *= responsiveRatio;\n  v_responsiveUV = graphicRotation * v_responsiveUV;\n  v_responsiveUV.x /= responsiveRatio;\n\n  // ===================================================\n\n  float patternBoxRatio = givenBoxSize.x / givenBoxSize.y;\n  vec2 patternBoxGivenSize = vec2(\n  (u_worldWidth == 0.) ? u_resolution.x : givenBoxSize.x,\n  (u_worldHeight == 0.) ? u_resolution.y : givenBoxSize.y\n  );\n  patternBoxRatio = patternBoxGivenSize.x / patternBoxGivenSize.y;\n\n  vec3 boxSizeData = getBoxSize(patternBoxRatio, patternBoxGivenSize);\n  v_patternBoxSize = boxSizeData.xy;\n  float patternBoxNoFitBoxWidth = boxSizeData.z;\n  vec2 patternBoxScale = u_resolution.xy / v_patternBoxSize;\n\n  v_patternUV = uv;\n  v_patternUV += graphicOffset / patternBoxScale;\n  v_patternUV += boxOrigin;\n  v_patternUV -= boxOrigin / patternBoxScale;\n  v_patternUV *= u_resolution.xy;\n  v_patternUV /= u_pixelRatio;\n  if (u_fit > 0.) {\n    v_patternUV *= (patternBoxNoFitBoxWidth / v_patternBoxSize.x);\n  }\n  v_patternUV /= u_scale;\n  v_patternUV = graphicRotation * v_patternUV;\n  v_patternUV += boxOrigin / patternBoxScale;\n  v_patternUV -= boxOrigin;\n  // x100 is a default multiplier between vertex and fragmant shaders\n  // we use it to avoid UV presision issues\n  v_patternUV *= .01;\n\n  // ===================================================\n\n  vec2 imageBoxSize;\n  if (u_fit == 1.) { // contain\n    imageBoxSize.x = min(u_resolution.x / u_imageAspectRatio, u_resolution.y) * u_imageAspectRatio;\n  } else if (u_fit == 2.) { // cover\n    imageBoxSize.x = max(u_resolution.x / u_imageAspectRatio, u_resolution.y) * u_imageAspectRatio;\n  } else {\n    imageBoxSize.x = min(10.0, 10.0 / u_imageAspectRatio * u_imageAspectRatio);\n  }\n  imageBoxSize.y = imageBoxSize.x / u_imageAspectRatio;\n  vec2 imageBoxScale = u_resolution.xy / imageBoxSize;\n\n  v_imageUV = uv;\n  v_imageUV *= imageBoxScale;\n  v_imageUV += boxOrigin * (imageBoxScale - 1.);\n  v_imageUV += graphicOffset;\n  v_imageUV /= u_scale;\n  v_imageUV.x *= u_imageAspectRatio;\n  v_imageUV = graphicRotation * v_imageUV;\n  v_imageUV.x /= u_imageAspectRatio;\n\n  v_imageUV += .5;\n  v_imageUV.y = 1. - v_imageUV.y;\n}`;var Ve=1920*1080*4,pe=class{parentElement;canvasElement;gl;program=null;uniformLocations={};fragmentShader;rafId=null;lastRenderTime=0;currentFrame=0;speed=0;currentSpeed=0;providedUniforms;mipmaps=[];hasBeenDisposed=!1;resolutionChanged=!0;textures=new Map;minPixelRatio;maxPixelCount;isSafari=De();uniformCache={};textureUnitMap=new Map;ownerDocument;constructor(e,a,r,u,n=0,c=0,t=2,p=Ve,s=[]){if(e?.nodeType===1)this.parentElement=e;else throw new Error(\"Paper Shaders: parent element must be an HTMLElement\");if(this.ownerDocument=e.ownerDocument,!this.ownerDocument.querySelector(\"style[data-paper-shader]\")){let m=this.ownerDocument.createElement(\"style\");m.innerHTML=ze,m.setAttribute(\"data-paper-shader\",\"\"),this.ownerDocument.head.prepend(m)}let g=this.ownerDocument.createElement(\"canvas\");this.canvasElement=g,this.parentElement.prepend(g),this.fragmentShader=a,this.providedUniforms=r,this.mipmaps=s,this.currentFrame=c,this.minPixelRatio=t,this.maxPixelCount=p;let f=g.getContext(\"webgl2\",u);if(!f)throw new Error(\"Paper Shaders: WebGL is not supported in this browser\");this.gl=f,this.initProgram(),this.setupPositionAttribute(),this.setupUniforms(),this.setUniformValues(this.providedUniforms),this.setupResizeObserver(),visualViewport?.addEventListener(\"resize\",this.handleVisualViewportChange),this.setupIntersectionObserver(),this.setSpeed(n),this.parentElement.setAttribute(\"data-paper-shader\",\"\"),this.parentElement.paperShaderMount=this,this.ownerDocument.addEventListener(\"visibilitychange\",this.handleDocumentVisibilityChange)}initProgram=()=>{let e=Oe(this.gl,Ue,this.fragmentShader);e&&(this.program=e)};setupPositionAttribute=()=>{let e=this.gl.getAttribLocation(this.program,\"a_position\"),a=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,a);let r=[-1,-1,1,-1,-1,1,-1,1,1,-1,1,1];this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array(r),this.gl.STATIC_DRAW),this.gl.enableVertexAttribArray(e),this.gl.vertexAttribPointer(e,2,this.gl.FLOAT,!1,0,0)};setupUniforms=()=>{let e={u_time:this.gl.getUniformLocation(this.program,\"u_time\"),u_pixelRatio:this.gl.getUniformLocation(this.program,\"u_pixelRatio\"),u_resolution:this.gl.getUniformLocation(this.program,\"u_resolution\")};Object.entries(this.providedUniforms).forEach(([a,r])=>{if(e[a]=this.gl.getUniformLocation(this.program,a),r instanceof HTMLImageElement){let u=`${a}AspectRatio`;e[u]=this.gl.getUniformLocation(this.program,u)}}),this.uniformLocations=e};renderScale=1;parentWidth=0;parentHeight=0;parentDevicePixelWidth=0;parentDevicePixelHeight=0;devicePixelsSupported=!1;intersectionObserver=null;isInViewport=!0;resizeObserver=null;setupResizeObserver=()=>{this.resizeObserver=new ResizeObserver(([e])=>{if(e?.borderBoxSize[0]){let a=e.devicePixelContentBoxSize?.[0];a!==void 0&&(this.devicePixelsSupported=!0,this.parentDevicePixelWidth=a.inlineSize,this.parentDevicePixelHeight=a.blockSize),this.parentWidth=e.borderBoxSize[0].inlineSize,this.parentHeight=e.borderBoxSize[0].blockSize}this.handleResize()}),this.resizeObserver.observe(this.parentElement)};setupIntersectionObserver=()=>{let e=this.ownerDocument.defaultView;e?.IntersectionObserver&&(this.intersectionObserver=new e.IntersectionObserver(([a])=>{this.isInViewport=a?.isIntersecting??!0,this.updateCurrentSpeed()}),this.intersectionObserver.observe(this.parentElement))};handleVisualViewportChange=()=>{this.resizeObserver?.disconnect(),this.setupResizeObserver()};handleResize=()=>{let e=0,a=0,r=Math.max(1,window.devicePixelRatio),u=visualViewport?.scale??1;if(this.devicePixelsSupported){let g=Math.max(1,this.minPixelRatio/r);e=this.parentDevicePixelWidth*g*u,a=this.parentDevicePixelHeight*g*u}else{let g=Math.max(r,this.minPixelRatio)*u;if(this.isSafari){let f=Pe(this.ownerDocument);g*=Math.max(1,f)}e=Math.round(this.parentWidth)*g,a=Math.round(this.parentHeight)*g}let n=Math.sqrt(this.maxPixelCount)/Math.sqrt(e*a),c=Math.min(1,n),t=Math.round(e*c),p=Math.round(a*c),s=t/Math.round(this.parentWidth);(this.canvasElement.width!==t||this.canvasElement.height!==p||this.renderScale!==s)&&(this.renderScale=s,this.canvasElement.width=t,this.canvasElement.height=p,this.resolutionChanged=!0,this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height),this.render(performance.now()))};render=e=>{if(this.hasBeenDisposed)return;if(this.program===null){console.warn(\"Tried to render before program or gl was initialized\");return}let a=e-this.lastRenderTime;this.lastRenderTime=e,this.currentSpeed!==0&&(this.currentFrame+=a*this.currentSpeed),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.useProgram(this.program),this.gl.uniform1f(this.uniformLocations.u_time,this.currentFrame*.001),this.resolutionChanged&&(this.gl.uniform2f(this.uniformLocations.u_resolution,this.gl.canvas.width,this.gl.canvas.height),this.gl.uniform1f(this.uniformLocations.u_pixelRatio,this.renderScale),this.resolutionChanged=!1),this.gl.drawArrays(this.gl.TRIANGLES,0,6),this.currentSpeed!==0?this.requestRender():this.rafId=null};requestRender=()=>{this.rafId!==null&&cancelAnimationFrame(this.rafId),this.rafId=requestAnimationFrame(this.render)};setTextureUniform=(e,a)=>{if(!a.complete||a.naturalWidth===0)throw new Error(`Paper Shaders: image for uniform ${e} must be fully loaded`);let r=this.textures.get(e);r&&this.gl.deleteTexture(r),this.textureUnitMap.has(e)||this.textureUnitMap.set(e,this.textureUnitMap.size);let u=this.textureUnitMap.get(e);this.gl.activeTexture(this.gl.TEXTURE0+u);let n=this.gl.createTexture();this.gl.bindTexture(this.gl.TEXTURE_2D,n),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,a),this.mipmaps.includes(e)&&(this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR_MIPMAP_LINEAR));let c=this.gl.getError();if(c!==this.gl.NO_ERROR||n===null){console.error(\"Paper Shaders: WebGL error when uploading texture:\",c);return}this.textures.set(e,n);let t=this.uniformLocations[e];if(t){this.gl.uniform1i(t,u);let p=`${e}AspectRatio`,s=this.uniformLocations[p];if(s){let g=a.naturalWidth/a.naturalHeight;this.gl.uniform1f(s,g)}}};areUniformValuesEqual=(e,a)=>e===a?!0:Array.isArray(e)&&Array.isArray(a)&&e.length===a.length?e.every((r,u)=>this.areUniformValuesEqual(r,a[u])):!1;setUniformValues=e=>{this.gl.useProgram(this.program),Object.entries(e).forEach(([a,r])=>{let u=r;if(r instanceof HTMLImageElement&&(u=`${r.src.slice(0,200)}|${r.naturalWidth}x${r.naturalHeight}`),this.areUniformValuesEqual(this.uniformCache[a],u))return;this.uniformCache[a]=u;let n=this.uniformLocations[a];if(!n){console.warn(`Uniform location for ${a} not found`);return}if(r instanceof HTMLImageElement)this.setTextureUniform(a,r);else if(Array.isArray(r)){let c=null,t=null;if(r[0]!==void 0&&Array.isArray(r[0])){let p=r[0].length;if(r.every(s=>s.length===p))c=r.flat(),t=p;else{console.warn(`All child arrays must be the same length for ${a}`);return}}else c=r,t=c.length;switch(t){case 2:this.gl.uniform2fv(n,c);break;case 3:this.gl.uniform3fv(n,c);break;case 4:this.gl.uniform4fv(n,c);break;case 9:this.gl.uniformMatrix3fv(n,!1,c);break;case 16:this.gl.uniformMatrix4fv(n,!1,c);break;default:console.warn(`Unsupported uniform array length: ${t}`)}}else typeof r==\"number\"?this.gl.uniform1f(n,r):typeof r==\"boolean\"?this.gl.uniform1i(n,r?1:0):console.warn(`Unsupported uniform type for ${a}: ${typeof r}`)})};getCurrentFrame=()=>this.currentFrame;setFrame=e=>{this.currentFrame=e,this.lastRenderTime=performance.now(),this.render(performance.now())};setSpeed=(e=1)=>{this.speed=e,this.updateCurrentSpeed()};updateCurrentSpeed=()=>{this.setCurrentSpeed(this.ownerDocument.hidden||!this.isInViewport?0:this.speed)};setCurrentSpeed=e=>{this.currentSpeed=e,this.rafId===null&&e!==0&&(this.lastRenderTime=performance.now(),this.rafId=requestAnimationFrame(this.render)),this.rafId!==null&&e===0&&(cancelAnimationFrame(this.rafId),this.rafId=null)};setMaxPixelCount=(e=Ve)=>{this.maxPixelCount=e,this.handleResize()};setMinPixelRatio=(e=2)=>{this.minPixelRatio=e,this.handleResize()};setUniforms=e=>{this.setUniformValues(e),this.providedUniforms={...this.providedUniforms,...e},this.render(performance.now())};handleDocumentVisibilityChange=()=>{this.updateCurrentSpeed()};dispose=()=>{this.hasBeenDisposed=!0,this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.gl&&this.program&&(this.textures.forEach(e=>{this.gl.deleteTexture(e)}),this.textures.clear(),this.gl.deleteProgram(this.program),this.program=null,this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,null),this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,null),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,null),this.gl.getError()),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=null),visualViewport?.removeEventListener(\"resize\",this.handleVisualViewportChange),this.ownerDocument.removeEventListener(\"visibilitychange\",this.handleDocumentVisibilityChange),this.uniformLocations={},this.canvasElement.remove(),delete this.parentElement.paperShaderMount}};function ke(o,e,a){let r=o.createShader(e);return r?(o.shaderSource(r,a),o.compileShader(r),o.getShaderParameter(r,o.COMPILE_STATUS)?r:(console.error(\"An error occurred compiling the shaders: \"+o.getShaderInfoLog(r)),o.deleteShader(r),null)):null}function Oe(o,e,a){let r=o.getShaderPrecisionFormat(o.FRAGMENT_SHADER,o.MEDIUM_FLOAT),u=r?r.precision:null;u&&u<23&&(e=e.replace(/precision\\s+(lowp|mediump)\\s+float;/g,\"precision highp float;\"),a=a.replace(/precision\\s+(lowp|mediump)\\s+float/g,\"precision highp float\").replace(/\\b(uniform|varying|attribute)\\s+(lowp|mediump)\\s+(\\w+)/g,\"$1 highp $3\"));let n=ke(o,o.VERTEX_SHADER,e),c=ke(o,o.FRAGMENT_SHADER,a);if(!n||!c)return null;let t=o.createProgram();return t?(o.attachShader(t,n),o.attachShader(t,c),o.linkProgram(t),o.getProgramParameter(t,o.LINK_STATUS)?(o.detachShader(t,n),o.detachShader(t,c),o.deleteShader(n),o.deleteShader(c),t):(console.error(\"Unable to initialize the shader program: \"+o.getProgramInfoLog(t)),o.deleteProgram(t),o.deleteShader(n),o.deleteShader(c),null)):null}var ze=`@layer paper-shaders {\n  :where([data-paper-shader]) {\n    isolation: isolate;\n    position: relative;\n\n    & canvas {\n      contain: strict;\n      display: block;\n      position: absolute;\n      inset: 0;\n      z-index: -1;\n      width: 100%;\n      height: 100%;\n      border-radius: inherit;\n      corner-shape: inherit;\n    }\n  }\n}`;function Ee(o){return\"paperShaderMount\"in o}function De(){let o=navigator.userAgent.toLowerCase();return o.includes(\"safari\")&&!o.includes(\"chrome\")&&!o.includes(\"android\")}function Pe(o){let e=visualViewport?.scale??1,a=visualViewport?.width??window.innerWidth,r=window.innerWidth-o.documentElement.clientWidth,u=e*a+r,n=outerWidth/u,c=Math.round(100*n);return c%5===0?c/100:c===33?1/3:c===67?2/3:c===133?4/3:n}var Ge={fit:\"contain\",scale:1,rotation:0,offsetX:0,offsetY:0,originX:.5,originY:.5,worldWidth:0,worldHeight:0},Te={fit:\"none\",scale:1,rotation:0,offsetX:0,offsetY:0,originX:.5,originY:.5,worldWidth:0,worldHeight:0},Ne={none:0,contain:1,cover:2};var d=`\n#define TWO_PI 6.28318530718\n#define PI 3.14159265358979323846\n`,b=`\nvec2 rotate(vec2 uv, float th) {\n  return mat2(cos(th), sin(th), -sin(th), cos(th)) * uv;\n}\n`,K=`\n  float hash11(float p) {\n    p = fract(p * 0.3183099) + 0.1;\n    p *= p + 19.19;\n    return fract(p * p);\n  }\n`,z=`\n  float hash21(vec2 p) {\n    p = fract(p * vec2(0.3183099, 0.3678794)) + 0.1;\n    p += dot(p, p + 19.19);\n    return fract(p.x * p.y);\n  }\n`;var W=`\n  float randomR(vec2 p) {\n    vec2 uv = floor(p) / 100. + .5;\n    return texture(u_noiseTexture, fract(uv)).r;\n  }\n`,te=`\n  vec2 randomGB(vec2 p) {\n    vec2 uv = floor(p) / 100. + .5;\n    return texture(u_noiseTexture, fract(uv)).gb;\n  }\n`,U=`\n  color += 1. / 256. * (fract(sin(dot(.014 * gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453123) - .5);\n`,G=`\nvec3 permute(vec3 x) { return mod(((x * 34.0) + 1.0) * x, 289.0); }\nfloat snoise(vec2 v) {\n  const vec4 C = vec4(0.211324865405187, 0.366025403784439,\n    -0.577350269189626, 0.024390243902439);\n  vec2 i = floor(v + dot(v, C.yy));\n  vec2 x0 = v - i + dot(i, C.xx);\n  vec2 i1;\n  i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n  vec4 x12 = x0.xyxy + C.xxzz;\n  x12.xy -= i1;\n  i = mod(i, 289.0);\n  vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0))\n    + i.x + vec3(0.0, i1.x, 1.0));\n  vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy),\n      dot(x12.zw, x12.zw)), 0.0);\n  m = m * m;\n  m = m * m;\n  vec3 x = 2.0 * fract(p * C.www) - 1.0;\n  vec3 h = abs(x) - 0.5;\n  vec3 ox = floor(x + 0.5);\n  vec3 a0 = x - ox;\n  m *= 1.79284291400159 - 0.85373472095314 * (a0 * a0 + h * h);\n  vec3 g;\n  g.x = a0.x * x0.x + h.x * x0.y;\n  g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n  return 130.0 * dot(m, g);\n}\n`,Ie=`\nfloat fiberRandom(vec2 p) {\n  vec2 uv = floor(p) / 100.;\n  return texture(u_noiseTexture, fract(uv)).b;\n}\n\nfloat fiberValueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = fiberRandom(i);\n  float b = fiberRandom(i + vec2(1.0, 0.0));\n  float c = fiberRandom(i + vec2(0.0, 1.0));\n  float d = fiberRandom(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nfloat fiberNoiseFbm(in vec2 n, vec2 seedOffset) {\n  float total = 0.0, amplitude = 1.;\n  for (int i = 0; i < 4; i++) {\n    n = rotate(n, .7);\n    total += fiberValueNoise(n + seedOffset) * amplitude;\n    n *= 2.;\n    amplitude *= 0.6;\n  }\n  return total;\n}\n\nfloat fiberNoise(vec2 uv, vec2 seedOffset) {\n  float epsilon = 0.001;\n  float n1 = fiberNoiseFbm(uv + vec2(epsilon, 0.0), seedOffset);\n  float n2 = fiberNoiseFbm(uv - vec2(epsilon, 0.0), seedOffset);\n  float n3 = fiberNoiseFbm(uv + vec2(0.0, epsilon), seedOffset);\n  float n4 = fiberNoiseFbm(uv - vec2(0.0, epsilon), seedOffset);\n  return length(vec2(n1 - n2, n3 - n4)) / (2.0 * epsilon);\n}\n`;var de={maxColorCount:10},Qe=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform vec4 u_colors[${de.maxColorCount}];\nuniform float u_colorsCount;\n\nuniform float u_distortion;\nuniform float u_swirl;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\n\nin vec2 v_objectUV;\nout vec4 fragColor;\n\n${d}\n${b}\n${z}\n\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = hash21(i);\n  float b = hash21(i + vec2(1.0, 0.0));\n  float c = hash21(i + vec2(0.0, 1.0));\n  float d = hash21(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nfloat noise(vec2 n, vec2 seedOffset) {\n  return valueNoise(n + seedOffset);\n}\n\nvec2 getPosition(int i, float t) {\n  float a = float(i) * .37;\n  float b = .6 + fract(float(i) / 3.) * .9;\n  float c = .8 + fract(float(i + 1) / 4.);\n\n  float x = sin(t * b + a);\n  float y = cos(t * c + a * 1.5);\n\n  return .5 + .5 * vec2(x, y);\n}\n\nvoid main() {\n  vec2 uv = v_objectUV;\n  uv += .5;\n  vec2 grainUV = uv * 1000.;\n\n  float grain = noise(grainUV, vec2(0.));\n  float mixerGrain = .4 * u_grainMixer * (grain - .5);\n\n  const float firstFrameOffset = 41.5;\n  float t = .5 * (u_time + firstFrameOffset);\n\n  float radius = smoothstep(0., 1., length(uv - .5));\n  float center = 1. - radius;\n  for (float i = 1.; i <= 2.; i++) {\n    uv.x += u_distortion * center / i * sin(t + i * .4 * smoothstep(.0, 1., uv.y)) * cos(.2 * t + i * 2.4 * smoothstep(.0, 1., uv.y));\n    uv.y += u_distortion * center / i * cos(t + i * 2. * smoothstep(.0, 1., uv.x));\n  }\n\n  vec2 uvRotated = uv;\n  uvRotated -= vec2(.5);\n  float angle = 3. * u_swirl * radius;\n  uvRotated = rotate(uvRotated, -angle);\n  uvRotated += vec2(.5);\n\n  vec3 color = vec3(0.);\n  float opacity = 0.;\n  float totalWeight = 0.;\n\n  for (int i = 0; i < ${de.maxColorCount}; i++) {\n    if (i >= int(u_colorsCount)) break;\n\n    vec2 pos = getPosition(i, t) + mixerGrain;\n    vec3 colorFraction = u_colors[i].rgb * u_colors[i].a;\n    float opacityFraction = u_colors[i].a;\n\n    float dist = length(uvRotated - pos);\n\n    dist = pow(dist, 3.5);\n    float weight = 1. / (dist + 1e-3);\n    color += colorFraction * weight;\n    opacity += opacityFraction * weight;\n    totalWeight += weight;\n  }\n\n  color /= max(1e-4, totalWeight);\n  opacity /= max(1e-4, totalWeight);\n\n  float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));\n  grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);\n  grainOverlay = pow(grainOverlay, 1.3);\n\n  float grainOverlayV = grainOverlay * 2. - 1.;\n  vec3 grainOverlayColor = vec3(step(0., grainOverlayV));\n  float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);\n  grainOverlayStrength = pow(grainOverlayStrength, .8);\n  color = mix(color, grainOverlayColor, .35 * grainOverlayStrength);\n\n  opacity += .5 * grainOverlayStrength;\n  opacity = clamp(opacity, 0., 1.);\n\n  fragColor = vec4(color, opacity);\n}\n`;var ne={maxColorCount:10,maxNoiseIterations:8},We=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform sampler2D u_noiseTexture;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${ne.maxColorCount}];\nuniform float u_colorsCount;\n\nuniform float u_thickness;\nuniform float u_radius;\nuniform float u_innerShape;\nuniform float u_noiseScale;\nuniform float u_noiseIterations;\n\nin vec2 v_objectUV;\n\nout vec4 fragColor;\n\n${d}\n${W}\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = randomR(i);\n  float b = randomR(i + vec2(1.0, 0.0));\n  float c = randomR(i + vec2(0.0, 1.0));\n  float d = randomR(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\nvec2 fbm(vec2 n0, vec2 n1) {\n  vec2 total = vec2(0.0);\n  float amplitude = .4;\n  for (int i = 0; i < ${ne.maxNoiseIterations}; i++) {\n    if (i >= int(u_noiseIterations)) break;\n    total.x += valueNoise(n0) * amplitude;\n    total.y += valueNoise(n1) * amplitude;\n    n0 *= 1.99;\n    n1 *= 1.99;\n    amplitude *= 0.65;\n  }\n  return total;\n}\n\nfloat getNoise(vec2 uv, vec2 pUv, float t) {\n  vec2 pUvLeft = pUv + .03 * t;\n  float period = max(abs(u_noiseScale * TWO_PI), 1e-6);\n  vec2 pUvRight = vec2(fract(pUv.x / period) * period, pUv.y) + .03 * t;\n  vec2 noise = fbm(pUvLeft, pUvRight);\n  return mix(noise.y, noise.x, smoothstep(-.25, .25, uv.x));\n}\n\nfloat getRingShape(vec2 uv) {\n  float radius = u_radius;\n  float thickness = u_thickness;\n\n  float distance = length(uv);\n  float ringValue = 1. - smoothstep(radius, radius + thickness, distance);\n  ringValue *= smoothstep(radius - pow(u_innerShape, 3.) * thickness, radius, distance);\n\n  return ringValue;\n}\n\nvoid main() {\n  vec2 shape_uv = v_objectUV;\n\n  float t = u_time;\n\n  float cycleDuration = 3.;\n  float period2 = 2.0 * cycleDuration;\n  float localTime1 = fract((0.1 * t + cycleDuration) / period2) * period2;\n  float localTime2 = fract((0.1 * t) / period2) * period2;\n  float timeBlend = .5 + .5 * sin(.1 * t * PI / cycleDuration - .5 * PI);\n\n  float atg = atan(shape_uv.y, shape_uv.x) + .001;\n  float l = length(shape_uv);\n  float radialOffset = .5 * l - inversesqrt(max(1e-4, l));\n  vec2 polar_uv1 = vec2(atg, localTime1 - radialOffset) * u_noiseScale;\n  vec2 polar_uv2 = vec2(atg, localTime2 - radialOffset) * u_noiseScale;\n  \n  float noise1 = getNoise(shape_uv, polar_uv1, t);\n  float noise2 = getNoise(shape_uv, polar_uv2, t);\n\n  float noise = mix(noise1, noise2, timeBlend);\n\n  shape_uv *= (.8 + 1.2 * noise);\n\n  float ringShape = getRingShape(shape_uv);\n\n  float mixer = ringShape * ringShape * (u_colorsCount - 1.);\n  int idxLast = int(u_colorsCount) - 1;\n  vec4 gradient = u_colors[idxLast];\n  gradient.rgb *= gradient.a;\n  for (int i = ${ne.maxColorCount} - 2; i >= 0; i--) {\n    float localT = clamp(mixer - float(idxLast - i - 1), 0., 1.);\n    vec4 c = u_colors[i];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, localT);\n  }\n\n  vec3 color = gradient.rgb * ringShape;\n  float opacity = gradient.a * ringShape;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1. - opacity);\n  opacity = opacity + u_colorBack.a * (1. - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var Ye=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\nuniform vec2 u_resolution;\nuniform float u_pixelRatio;\n\nuniform vec4 u_colorFront;\nuniform vec4 u_colorMid;\nuniform vec4 u_colorBack;\nuniform float u_brightness;\nuniform float u_contrast;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${b}\n\nfloat neuroShape(vec2 uv, float t) {\n  vec2 sine_acc = vec2(0.);\n  vec2 res = vec2(0.);\n  float scale = 8.;\n\n  for (int j = 0; j < 15; j++) {\n    uv = rotate(uv, 1.);\n    sine_acc = rotate(sine_acc, 1.);\n    vec2 layer = uv * scale + float(j) + sine_acc - t;\n    sine_acc += sin(layer);\n    res += (.5 + .5 * cos(layer)) / scale;\n    scale *= (1.2);\n  }\n  return res.x + res.y;\n}\n\nvoid main() {\n  vec2 shape_uv = v_patternUV;\n  shape_uv *= .13;\n\n  float t = .5 * u_time;\n\n  float noise = neuroShape(shape_uv, t);\n\n  noise = (1. + u_brightness) * noise * noise;\n  noise = pow(noise, .7 + 6. * u_contrast);\n  noise = min(1.4, noise);\n\n  float blend = smoothstep(0.7, 1.4, noise);\n\n  vec4 frontC = u_colorFront;\n  frontC.rgb *= frontC.a;\n  vec4 midC = u_colorMid;\n  midC.rgb *= midC.a;\n  vec4 blendFront = mix(midC, frontC, blend);\n\n  float safeNoise = max(noise, 0.0);\n  vec3 color = blendFront.rgb * safeNoise;\n  float opacity = clamp(blendFront.a * safeNoise, 0., 1.);\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1. - opacity);\n  opacity = opacity + u_colorBack.a * (1. - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var ge={maxColorCount:10},Le=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform sampler2D u_noiseTexture;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${ge.maxColorCount}];\nuniform float u_colorsCount;\nuniform float u_stepsPerColor;\nuniform float u_size;\nuniform float u_sizeRange;\nuniform float u_spreading;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n${b}\n${W}\n${te}\n\n\nvec3 voronoiShape(vec2 uv, float time) {\n  vec2 i_uv = floor(uv);\n  vec2 f_uv = fract(uv);\n\n  float spreading = .25 * clamp(u_spreading, 0., 1.);\n\n  float minDist = 1.;\n  vec2 randomizer = vec2(0.);\n  for (int y = -1; y <= 1; y++) {\n    for (int x = -1; x <= 1; x++) {\n      vec2 tileOffset = vec2(float(x), float(y));\n      vec2 rand = randomGB(i_uv + tileOffset);\n      vec2 cellCenter = vec2(.5 + 1e-4);\n      cellCenter += spreading * cos(time + TWO_PI * rand);\n      cellCenter -= .5;\n      cellCenter = rotate(cellCenter, randomR(vec2(rand.x, rand.y)) + .1 * time);\n      cellCenter += .5;\n      float dist = length(tileOffset + cellCenter - f_uv);\n      if (dist < minDist) {\n        minDist = dist;\n        randomizer = rand;\n      }\n    }\n  }\n\n  return vec3(minDist, randomizer);\n}\n\nvoid main() {\n\n  vec2 shape_uv = v_patternUV;\n  shape_uv *= 1.5;\n\n  const float firstFrameOffset = -10.;\n  float t = u_time + firstFrameOffset;\n\n  vec3 voronoi = voronoiShape(shape_uv, t) + 1e-4;\n\n  float radius = .25 * clamp(u_size, 0., 1.) - .5 * clamp(u_sizeRange, 0., 1.) * voronoi[2];\n  float dist = voronoi[0];\n  float edgeWidth = fwidth(dist);\n  float dots = 1. - smoothstep(radius - edgeWidth, radius + edgeWidth, dist);\n\n  float shape = voronoi[1];\n\n  float mixer = shape * (u_colorsCount - 1.);\n  mixer = (shape - .5 / u_colorsCount) * u_colorsCount;\n  float steps = max(1., u_stepsPerColor);\n\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n  for (int i = 1; i < ${ge.maxColorCount}; i++) {\n    if (i >= int(u_colorsCount)) break;\n    float localT = clamp(mixer - float(i - 1), 0.0, 1.0);\n    localT = round(localT * steps) / steps;\n    vec4 c = u_colors[i];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, localT);\n  }\n\n  if ((mixer < 0.) || (mixer > (u_colorsCount - 1.))) {\n    float localT = mixer + 1.;\n    if (mixer > (u_colorsCount - 1.)) {\n      localT = mixer - (u_colorsCount - 1.);\n    }\n    localT = round(localT * steps) / steps;\n    vec4 cFst = u_colors[0];\n    cFst.rgb *= cFst.a;\n    vec4 cLast = u_colors[int(u_colorsCount - 1.)];\n    cLast.rgb *= cLast.a;\n    gradient = mix(cLast, cFst, localT);\n  }\n\n  vec3 color = gradient.rgb * dots;\n  float opacity = gradient.a * dots;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1. - opacity);\n  opacity = opacity + u_colorBack.a * (1. - opacity);\n\n  fragColor = vec4(color, opacity);\n}\n`;var He=`#version 300 es\nprecision mediump float;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorFill;\nuniform vec4 u_colorStroke;\nuniform float u_dotSize;\nuniform float u_gapX;\nuniform float u_gapY;\nuniform float u_strokeWidth;\nuniform float u_sizeRange;\nuniform float u_opacityRange;\nuniform float u_shape;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n${G}\n\nfloat polygon(vec2 p, float N, float rot) {\n  float a = atan(p.x, p.y) + rot;\n  float r = TWO_PI / float(N);\n\n  return cos(floor(.5 + a / r) * r - a) * length(p);\n}\n\nvoid main() {\n\n  // x100 is a default multiplier between vertex and fragmant shaders\n  // we use it to avoid UV presision issues\n  vec2 shape_uv = 100. * v_patternUV;\n\n  vec2 gap = max(abs(vec2(u_gapX, u_gapY)), vec2(1e-6));\n  vec2 grid = fract(shape_uv / gap) + 1e-4;\n  vec2 grid_idx = floor(shape_uv / gap);\n  float sizeRandomizer = .5 + .8 * snoise(2. * vec2(grid_idx.x * 100., grid_idx.y));\n  float opacity_randomizer = .5 + .7 * snoise(2. * vec2(grid_idx.y, grid_idx.x));\n\n  vec2 center = vec2(0.5) - 1e-3;\n  vec2 p = (grid - center) * vec2(u_gapX, u_gapY);\n\n  float baseSize = u_dotSize * (1. - sizeRandomizer * u_sizeRange);\n  float strokeWidth = u_strokeWidth * (1. - sizeRandomizer * u_sizeRange);\n\n  float dist;\n  if (u_shape < 0.5) {\n    // Circle\n    dist = length(p);\n  } else if (u_shape < 1.5) {\n    // Diamond\n    strokeWidth *= 1.5;\n    dist = polygon(1.5 * p, 4., .25 * PI);\n  } else if (u_shape < 2.5) {\n    // Square\n    dist = polygon(1.03 * p, 4., 1e-3);\n  } else {\n    // Triangle\n    strokeWidth *= 1.5;\n    p = p * 2. - 1.;\n    p *= .9;\n    p.y = 1. - p.y;\n    p.y -= .75 * baseSize;\n    dist = polygon(p, 3., 1e-3);\n  }\n\n  float edgeWidth = fwidth(dist);\n  float shapeOuter = 1. - smoothstep(baseSize - edgeWidth, baseSize + edgeWidth, dist - strokeWidth);\n  float shapeInner = 1. - smoothstep(baseSize - edgeWidth, baseSize + edgeWidth, dist);\n  float stroke = shapeOuter - shapeInner;\n\n  float dotOpacity = max(0., 1. - opacity_randomizer * u_opacityRange);\n  stroke *= dotOpacity;\n  shapeInner *= dotOpacity;\n\n  stroke *= u_colorStroke.a;\n  shapeInner *= u_colorFill.a;\n\n  vec3 color = vec3(0.);\n  color += stroke * u_colorStroke.rgb;\n  color += shapeInner * u_colorFill.rgb;\n  color += (1. - shapeInner - stroke) * u_colorBack.rgb * u_colorBack.a;\n\n  float opacity = 0.;\n  opacity += stroke;\n  opacity += shapeInner;\n  opacity += (1. - opacity) * u_colorBack.a;\n\n  fragColor = vec4(color, opacity);\n}\n`,Ke={circle:0,diamond:1,square:2,triangle:3};var ve={maxColorCount:10},Xe=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\nuniform float u_scale;\n\nuniform vec4 u_colors[${ve.maxColorCount}];\nuniform float u_colorsCount;\nuniform float u_stepsPerColor;\nuniform float u_softness;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${G}\n\nfloat getNoise(vec2 uv, float t) {\n  float noise = .5 * snoise(uv - vec2(0., .3 * t));\n  noise += .5 * snoise(2. * uv + vec2(0., .32 * t));\n\n  return noise;\n}\n\nfloat steppedSmooth(float m, float steps, float softness) {\n  float stepT = floor(m * steps) / steps;\n  float f = m * steps - floor(m * steps);\n  float fw = steps * fwidth(m);\n  float smoothed = smoothstep(.5 - softness, min(1., .5 + softness + fw), f);\n  return stepT + smoothed / steps;\n}\n\nvoid main() {\n  vec2 shape_uv = v_patternUV;\n  shape_uv *= .1;\n\n  float t = .2 * u_time;\n\n  float shape = .5 + .5 * getNoise(shape_uv, t);\n\n  bool u_extraSides = true;\n\n  float mixer = shape * (u_colorsCount - 1.);\n  if (u_extraSides == true) {\n    mixer = (shape - .5 / u_colorsCount) * u_colorsCount;\n  }\n\n  float steps = max(1., u_stepsPerColor);\n\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n  for (int i = 1; i < ${ve.maxColorCount}; i++) {\n    if (i >= int(u_colorsCount)) break;\n\n    float localM = clamp(mixer - float(i - 1), 0., 1.);\n    localM = steppedSmooth(localM, steps, .5 * u_softness);\n\n    vec4 c = u_colors[i];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, localM);\n  }\n\n  if (u_extraSides == true) {\n    if ((mixer < 0.) || (mixer > (u_colorsCount - 1.))) {\n      float localM = mixer + 1.;\n      if (mixer > (u_colorsCount - 1.)) {\n        localM = mixer - (u_colorsCount - 1.);\n      }\n      localM = steppedSmooth(localM, steps, .5 * u_softness);\n      vec4 cFst = u_colors[0];\n      cFst.rgb *= cFst.a;\n      vec4 cLast = u_colors[int(u_colorsCount - 1.)];\n      cLast.rgb *= cLast.a;\n      gradient = mix(cLast, cFst, localM);\n    }\n  }\n\n  vec3 color = gradient.rgb;\n  float opacity = gradient.a;\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var le={maxColorCount:8,maxBallsCount:20},je=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform sampler2D u_noiseTexture;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${le.maxColorCount}];\nuniform float u_colorsCount;\nuniform float u_size;\nuniform float u_sizeRange;\nuniform float u_count;\n\nin vec2 v_objectUV;\n\nout vec4 fragColor;\n\n${d}\n${W}\nfloat noise(float x) {\n  float i = floor(x);\n  float f = fract(x);\n  float u = f * f * (3.0 - 2.0 * f);\n  vec2 p0 = vec2(i, 0.0);\n  vec2 p1 = vec2(i + 1.0, 0.0);\n  return mix(randomR(p0), randomR(p1), u);\n}\n\nfloat getBallShape(vec2 uv, vec2 c, float p) {\n  float s = .5 * length(uv - c);\n  s = 1. - clamp(s, 0., 1.);\n  s = pow(s, p);\n  return s;\n}\n\nvoid main() {\n  vec2 shape_uv = v_objectUV;\n\n  shape_uv += .5;\n\n  const float firstFrameOffset = 2503.4;\n  float t = .2 * (u_time + firstFrameOffset);\n\n  vec3 totalColor = vec3(0.);\n  float totalShape = 0.;\n  float totalOpacity = 0.;\n\n  for (int i = 0; i < ${le.maxBallsCount}; i++) {\n    if (i >= int(ceil(u_count))) break;\n\n    float idxFract = float(i) / float(${le.maxBallsCount});\n    float angle = TWO_PI * idxFract;\n\n    float speed = 1. - .2 * idxFract;\n    float noiseX = noise(angle * 10. + float(i) + t * speed);\n    float noiseY = noise(angle * 20. + float(i) - t * speed);\n\n    vec2 pos = vec2(.5) + 1e-4 + .9 * (vec2(noiseX, noiseY) - .5);\n\n    int safeIndex = i % int(u_colorsCount + 0.5);\n    vec4 ballColor = u_colors[safeIndex];\n    ballColor.rgb *= ballColor.a;\n\n    float sizeFrac = 1.;\n    if (float(i) > floor(u_count - 1.)) {\n      sizeFrac *= fract(u_count);\n    }\n\n    float shape = getBallShape(shape_uv, pos, 45. - 30. * u_size * sizeFrac);\n    shape *= pow(u_size, .2);\n    shape = smoothstep(0., 1., shape);\n\n    totalColor += ballColor.rgb * shape;\n    totalShape += shape;\n    totalOpacity += ballColor.a * shape;\n  }\n\n  totalColor /= max(totalShape, 1e-4);\n  totalOpacity /= max(totalShape, 1e-4);\n\n  float edge_width = fwidth(totalShape);\n  float finalShape = smoothstep(.4, .4 + edge_width, totalShape);\n\n  vec3 color = totalColor * finalShape;\n  float opacity = totalOpacity * finalShape;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1. - opacity);\n  opacity = opacity + u_colorBack.a * (1. - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var Je=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform vec4 u_colorFront;\nuniform vec4 u_colorBack;\nuniform float u_proportion;\nuniform float u_softness;\nuniform float u_octaveCount;\nuniform float u_persistence;\nuniform float u_lacunarity;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n${K}\n${z}\n\nfloat hash31(vec3 p) {\n  p = fract(p * 0.3183099) + 0.1;\n  p += dot(p, p.yzx + 19.19);\n  return fract(p.x * (p.y + p.z));\n}\n\nvec3 gradientPredefined(float hash) {\n  int idx = int(hash * 12.0) % 12;\n\n  if (idx == 0) return vec3(1, 1, 0);\n  if (idx == 1) return vec3(-1, 1, 0);\n  if (idx == 2) return vec3(1, -1, 0);\n  if (idx == 3) return vec3(-1, -1, 0);\n  if (idx == 4) return vec3(1, 0, 1);\n  if (idx == 5) return vec3(-1, 0, 1);\n  if (idx == 6) return vec3(1, 0, -1);\n  if (idx == 7) return vec3(-1, 0, -1);\n  if (idx == 8) return vec3(0, 1, 1);\n  if (idx == 9) return vec3(0, -1, 1);\n  if (idx == 10) return vec3(0, 1, -1);\n  return vec3(0, -1, -1);// idx == 11\n}\n\nfloat interpolateSafe(float v000, float v001, float v010, float v011,\nfloat v100, float v101, float v110, float v111, vec3 t) {\n  t = clamp(t, 0.0, 1.0);\n\n  float v00 = mix(v000, v100, t.x);\n  float v01 = mix(v001, v101, t.x);\n  float v10 = mix(v010, v110, t.x);\n  float v11 = mix(v011, v111, t.x);\n\n  float v0 = mix(v00, v10, t.y);\n  float v1 = mix(v01, v11, t.y);\n\n  return mix(v0, v1, t.z);\n}\n\nvec3 fade(vec3 t) {\n  return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);\n}\n\nfloat perlinNoise(vec3 position, float seed) {\n  position += vec3(seed * 127.1, seed * 311.7, seed * 74.7);\n\n  vec3 i = floor(position);\n  vec3 f = fract(position);\n  float h000 = hash31(i);\n  float h001 = hash31(i + vec3(0, 0, 1));\n  float h010 = hash31(i + vec3(0, 1, 0));\n  float h011 = hash31(i + vec3(0, 1, 1));\n  float h100 = hash31(i + vec3(1, 0, 0));\n  float h101 = hash31(i + vec3(1, 0, 1));\n  float h110 = hash31(i + vec3(1, 1, 0));\n  float h111 = hash31(i + vec3(1, 1, 1));\n  vec3 g000 = gradientPredefined(h000);\n  vec3 g001 = gradientPredefined(h001);\n  vec3 g010 = gradientPredefined(h010);\n  vec3 g011 = gradientPredefined(h011);\n  vec3 g100 = gradientPredefined(h100);\n  vec3 g101 = gradientPredefined(h101);\n  vec3 g110 = gradientPredefined(h110);\n  vec3 g111 = gradientPredefined(h111);\n  float v000 = dot(g000, f - vec3(0, 0, 0));\n  float v001 = dot(g001, f - vec3(0, 0, 1));\n  float v010 = dot(g010, f - vec3(0, 1, 0));\n  float v011 = dot(g011, f - vec3(0, 1, 1));\n  float v100 = dot(g100, f - vec3(1, 0, 0));\n  float v101 = dot(g101, f - vec3(1, 0, 1));\n  float v110 = dot(g110, f - vec3(1, 1, 0));\n  float v111 = dot(g111, f - vec3(1, 1, 1));\n\n  vec3 u = fade(f);\n  return interpolateSafe(v000, v001, v010, v011, v100, v101, v110, v111, u);\n}\n\nfloat p_noise(vec3 position, int octaveCount, float persistence, float lacunarity) {\n  float value = 0.0;\n  float amplitude = 1.0;\n  float frequency = 10.0;\n  float maxValue = 0.0;\n  octaveCount = clamp(octaveCount, 1, 8);\n\n  for (int i = 0; i < octaveCount; i++) {\n    float seed = float(i) * 0.7319;\n    value += perlinNoise(position * frequency, seed) * amplitude;\n    maxValue += amplitude;\n    amplitude *= persistence;\n    frequency *= lacunarity;\n  }\n  return value;\n}\n\nfloat get_max_amp(float persistence, float octaveCount) {\n  persistence = clamp(persistence * 0.999, 0.0, 0.999);\n  octaveCount = clamp(octaveCount, 1.0, 8.0);\n\n  if (abs(persistence - 1.0) < 0.001) {\n    return octaveCount;\n  }\n\n  return (1.0 - pow(persistence, octaveCount)) / max(1e-4, (1.0 - persistence));\n}\n\nvoid main() {\n  vec2 uv = v_patternUV;\n  uv *= .5;\n\n  float t = .2 * u_time;\n\n  vec3 p = vec3(uv, t);\n\n  float octCount = floor(u_octaveCount);\n  float noise = p_noise(p, int(octCount), u_persistence, u_lacunarity);\n\n  float max_amp = get_max_amp(u_persistence, octCount);\n  float noise_normalized = clamp((noise + max_amp) / max(1e-4, (2. * max_amp)) + (u_proportion - .5), 0.0, 1.0);\n  float sharpness = clamp(u_softness, 0., 1.);\n  float smooth_w = 0.5 * max(fwidth(noise_normalized), 0.001);\n  float res = smoothstep(\n  .5 - .5 * sharpness - smooth_w,\n  .5 + .5 * sharpness + smooth_w,\n  noise_normalized\n  );\n\n  vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n  float fgOpacity = u_colorFront.a;\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  float bgOpacity = u_colorBack.a;\n\n  vec3 color = fgColor * res;\n  float opacity = fgOpacity * res;\n\n  color += bgColor * (1. - opacity);\n  opacity += bgOpacity * (1. - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var he={maxColorCount:5},qe=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform float u_scale;\n\nuniform sampler2D u_noiseTexture;\n\nuniform vec4 u_colors[${he.maxColorCount}];\nuniform float u_colorsCount;\n\nuniform float u_stepsPerColor;\nuniform vec4 u_colorGlow;\nuniform vec4 u_colorGap;\nuniform float u_distortion;\nuniform float u_gap;\nuniform float u_glow;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n${te}\n\nvec4 voronoi(vec2 x, float t) {\n  vec2 ip = floor(x);\n  vec2 fp = fract(x);\n\n  vec2 mg, mr;\n  float md = 8.;\n  float rand = 0.;\n\n  for (int j = -1; j <= 1; j++) {\n    for (int i = -1; i <= 1; i++) {\n      vec2 g = vec2(float(i), float(j));\n      vec2 o = randomGB(ip + g);\n      float raw_hash = o.x;\n      o = .5 + u_distortion * sin(t + TWO_PI * o);\n      vec2 r = g + o - fp;\n      float d = dot(r, r);\n\n      if (d < md) {\n        md = d;\n        mr = r;\n        mg = g;\n        rand = raw_hash;\n      }\n    }\n  }\n\n  md = 8.;\n  for (int j = -2; j <= 2; j++) {\n    for (int i = -2; i <= 2; i++) {\n      vec2 g = mg + vec2(float(i), float(j));\n      vec2 o = randomGB(ip + g);\n      o = .5 + u_distortion * sin(t + TWO_PI * o);\n      vec2 r = g + o - fp;\n      if (dot(mr - r, mr - r) > .00001) {\n        md = min(md, dot(.5 * (mr + r), normalize(r - mr)));\n      }\n    }\n  }\n\n  return vec4(md, mr, rand);\n}\n\nvoid main() {\n  vec2 shape_uv = v_patternUV;\n  shape_uv *= 1.25;\n\n  float t = u_time;\n\n  vec4 voronoiRes = voronoi(shape_uv, t);\n\n  float shape = clamp(voronoiRes.w, 0., 1.);\n  float mixer = shape * (u_colorsCount - 1.);\n  mixer = (shape - .5 / u_colorsCount) * u_colorsCount;\n  float steps = max(1., u_stepsPerColor);\n\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n  for (int i = 1; i < ${he.maxColorCount}; i++) {\n    if (i >= int(u_colorsCount)) break;\n    float localT = clamp(mixer - float(i - 1), 0.0, 1.0);\n    localT = round(localT * steps) / steps;\n    vec4 c = u_colors[i];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, localT);\n  }\n\n  if ((mixer < 0.) || (mixer > (u_colorsCount - 1.))) {\n    float localT = mixer + 1.;\n    if (mixer > (u_colorsCount - 1.)) {\n      localT = mixer - (u_colorsCount - 1.);\n    }\n    localT = round(localT * steps) / steps;\n    vec4 cFst = u_colors[0];\n    cFst.rgb *= cFst.a;\n    vec4 cLast = u_colors[int(u_colorsCount - 1.)];\n    cLast.rgb *= cLast.a;\n    gradient = mix(cLast, cFst, localT);\n  }\n\n  vec3 cellColor = gradient.rgb;\n  float cellOpacity = gradient.a;\n\n  float glows = length(voronoiRes.yz * u_glow);\n  glows = pow(glows, 1.5);\n\n  vec3 color = mix(cellColor, u_colorGlow.rgb * u_colorGlow.a, u_colorGlow.a * glows);\n  float opacity = cellOpacity + u_colorGlow.a * glows;\n\n  float edge = voronoiRes.x;\n  float smoothEdge = .02 / (2. * u_scale) * (1. + .5 * u_gap);\n  edge = smoothstep(u_gap - smoothEdge, u_gap + smoothEdge, edge);\n\n  color = mix(u_colorGap.rgb * u_colorGap.a, color, edge);\n  opacity = mix(u_colorGap.a, opacity, edge);\n\n  fragColor = vec4(color, opacity);\n}\n`;var Ze=`#version 300 es\nprecision mediump float;\n\nuniform vec4 u_colorFront;\nuniform vec4 u_colorBack;\nuniform float u_shape;\nuniform float u_frequency;\nuniform float u_amplitude;\nuniform float u_spacing;\nuniform float u_proportion;\nuniform float u_softness;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n\nvoid main() {\n  vec2 shape_uv = v_patternUV;\n  shape_uv *= 4.;\n\n  float wave = .5 * cos(shape_uv.x * u_frequency * TWO_PI);\n  float zigzag = 2. * abs(fract(shape_uv.x * u_frequency) - .5);\n  float irregular = sin(shape_uv.x * .25 * u_frequency * TWO_PI) * cos(shape_uv.x * u_frequency * TWO_PI);\n  float irregular2 = .75 * (sin(shape_uv.x * u_frequency * TWO_PI) + .5 * cos(shape_uv.x * .5 * u_frequency * TWO_PI));\n\n  float offset = mix(zigzag, wave, smoothstep(0., 1., u_shape));\n  offset = mix(offset, irregular, smoothstep(1., 2., u_shape));\n  offset = mix(offset, irregular2, smoothstep(2., 3., u_shape));\n  offset *= 2. * u_amplitude;\n\n  float spacing = (.001 + u_spacing);\n  float shape = .5 + .5 * sin((shape_uv.y + offset) * PI / spacing);\n\n  float aa = .0001 + fwidth(shape);\n  float dc = 1. - clamp(u_proportion, 0., 1.);\n  float e0 = dc - u_softness - aa;\n  float e1 = dc + u_softness + aa;\n  float res = smoothstep(min(e0, e1), max(e0, e1), shape);\n\n  vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n  float fgOpacity = u_colorFront.a;\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  float bgOpacity = u_colorBack.a;\n\n  vec3 color = fgColor * res;\n  float opacity = fgOpacity * res;\n\n  color += bgColor * (1. - opacity);\n  opacity += bgOpacity * (1. - opacity);\n\n  fragColor = vec4(color, opacity);\n}\n`;var xe={maxColorCount:10},$e=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\nuniform float u_scale;\n\nuniform sampler2D u_noiseTexture;\n\nuniform vec4 u_colors[${xe.maxColorCount}];\nuniform float u_colorsCount;\nuniform float u_proportion;\nuniform float u_softness;\nuniform float u_shape;\nuniform float u_shapeScale;\nuniform float u_distortion;\nuniform float u_swirl;\nuniform float u_swirlIterations;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n${b}\nfloat randomG(vec2 p) {\n  vec2 uv = floor(p) / 100. + .5;\n  return texture(u_noiseTexture, fract(uv)).g;\n}\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = randomG(i);\n  float b = randomG(i + vec2(1.0, 0.0));\n  float c = randomG(i + vec2(0.0, 1.0));\n  float d = randomG(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\n\nvoid main() {\n  vec2 uv = v_patternUV;\n  uv *= .5;\n\n  const float firstFrameOffset = 118.;\n  float t = 0.0625 * (u_time + firstFrameOffset);\n\n  float n1 = valueNoise(uv * 1. + t);\n  float n2 = valueNoise(uv * 2. - t);\n  float angle = n1 * TWO_PI;\n  uv.x += 4. * u_distortion * n2 * cos(angle);\n  uv.y += 4. * u_distortion * n2 * sin(angle);\n\n  float swirl = u_swirl;\n  for (int i = 1; i <= 20; i++) {\n    if (i >= int(u_swirlIterations)) break;\n    float iFloat = float(i);\n    //    swirl *= (1. - smoothstep(.0, .25, length(fwidth(uv))));\n    uv.x += swirl / iFloat * cos(t + iFloat * 1.5 * uv.y);\n    uv.y += swirl / iFloat * cos(t + iFloat * 1. * uv.x);\n  }\n\n  float proportion = clamp(u_proportion, 0., 1.);\n\n  float shape = 0.;\n  if (u_shape < .5) {\n    vec2 checksShape_uv = uv * (.5 + 3.5 * u_shapeScale);\n    shape = .5 + .5 * sin(checksShape_uv.x) * cos(checksShape_uv.y);\n    shape += .48 * sign(proportion - .5) * pow(abs(proportion - .5), .5);\n  } else if (u_shape < 1.5) {\n    vec2 stripesShape_uv = uv * (2. * u_shapeScale);\n    float f = fract(stripesShape_uv.y);\n    shape = smoothstep(.0, .55, f) * (1.0 - smoothstep(.45, 1., f));\n    shape += .48 * sign(proportion - .5) * pow(abs(proportion - .5), .5);\n  } else {\n    float shapeScaling = 5. * (1. - u_shapeScale);\n    float e0 = 0.45 - shapeScaling;\n    float e1 = 0.55 + shapeScaling;\n    shape = smoothstep(min(e0, e1), max(e0, e1), 1.0 - uv.y + 0.3 * (proportion - 0.5));\n  }\n\n  float mixer = shape * (u_colorsCount - 1.);\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n  float aa = fwidth(shape);\n  for (int i = 1; i < ${xe.maxColorCount}; i++) {\n    if (i >= int(u_colorsCount)) break;\n    float m = clamp(mixer - float(i - 1), 0.0, 1.0);\n\n    float localMixerStart = floor(m);\n    float softness = .5 * u_softness + fwidth(m);\n    float smoothed = smoothstep(max(0., .5 - softness - aa), min(1., .5 + softness + aa), m - localMixerStart);\n    float stepped = localMixerStart + smoothed;\n\n    m = mix(stepped, m, u_softness);\n\n    vec4 c = u_colors[i];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, m);\n  }\n\n  vec3 color = gradient.rgb;\n  float opacity = gradient.a;\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`,eo={checks:0,stripes:1,edge:2};var _e={maxColorCount:5},oo=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform sampler2D u_noiseTexture;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorBloom;\nuniform vec4 u_colors[${_e.maxColorCount}];\nuniform float u_colorsCount;\n\nuniform float u_density;\nuniform float u_spotty;\nuniform float u_midSize;\nuniform float u_midIntensity;\nuniform float u_intensity;\nuniform float u_bloom;\n\nin vec2 v_objectUV;\n\nout vec4 fragColor;\n\n${d}\n${b}\n${W}\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = randomR(i);\n  float b = randomR(i + vec2(1.0, 0.0));\n  float c = randomR(i + vec2(0.0, 1.0));\n  float d = randomR(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\n${K}\n\nfloat raysShape(vec2 uv, float r, float freq, float intensity, float radius) {\n  float a = atan(uv.y, uv.x);\n  vec2 left = vec2(a * freq, r);\n  vec2 right = vec2(fract(a / TWO_PI) * TWO_PI * freq, r);\n  float n_left = pow(valueNoise(left), intensity);\n  float n_right = pow(valueNoise(right), intensity);\n  float shape = mix(n_right, n_left, smoothstep(-.15, .15, uv.x));\n  return shape;\n}\n\nvoid main() {\n  vec2 shape_uv = v_objectUV;\n\n  float t = .2 * u_time;\n\n  float radius = length(shape_uv);\n  float spots = 6.5 * abs(u_spotty);\n\n  float intensity = 4. - 3. * clamp(u_intensity, 0., 1.);\n\n  float delta = 1. - smoothstep(0., 1., radius);\n\n  float midSize = 10. * abs(u_midSize);\n  float ms_lo = 0.02 * midSize;\n  float ms_hi = max(midSize, 1e-6);\n  float middleShape = pow(u_midIntensity, 0.3) * (1. - smoothstep(ms_lo, ms_hi, 3.0 * radius));\n  middleShape = pow(middleShape, 5.0);\n\n  vec3 accumColor = vec3(0.0);\n  float accumAlpha = 0.0;\n\n  for (int i = 0; i < ${_e.maxColorCount}; i++) {\n    if (i >= int(u_colorsCount)) break;\n\n    vec2 rotatedUV = rotate(shape_uv, float(i) + 1.0);\n\n    float r1 = radius * (1.0 + 0.4 * float(i)) - 3.0 * t;\n    float r2 = 0.5 * radius * (1.0 + spots) - 2.0 * t;\n    float density = 6. * u_density + step(.5, u_density) * pow(4.5 * (u_density - .5), 4.);\n    float f = mix(1.0, 3.0 + 0.5 * float(i), hash11(float(i) * 15.)) * density;\n\n    float ray = raysShape(rotatedUV, r1, 5.0 * f, intensity, radius);\n    ray *= raysShape(rotatedUV, r2, 4.0 * f, intensity, radius);\n    ray += (1. + 4. * ray) * middleShape;\n    ray = clamp(ray, 0.0, 1.0);\n\n    float srcAlpha = u_colors[i].a * ray;\n    vec3 srcColor = u_colors[i].rgb * srcAlpha;\n\n    vec3 alphaBlendColor = accumColor + (1.0 - accumAlpha) * srcColor;\n    float alphaBlendAlpha = accumAlpha + (1.0 - accumAlpha) * srcAlpha;\n\n    vec3 addBlendColor = accumColor + srcColor;\n    float addBlendAlpha = accumAlpha + srcAlpha;\n\n    accumColor = mix(alphaBlendColor, addBlendColor, u_bloom);\n    accumAlpha = mix(alphaBlendAlpha, addBlendAlpha, u_bloom);\n  }\n\n  float overlayAlpha = u_colorBloom.a;\n  vec3 overlayColor = u_colorBloom.rgb * overlayAlpha;\n\n  vec3 colorWithOverlay = accumColor + accumAlpha * overlayColor;\n  accumColor = mix(accumColor, colorWithOverlay, u_bloom);\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n\n  vec3 color = accumColor + (1. - accumAlpha) * bgColor;\n  float opacity = accumAlpha + (1. - accumAlpha) * u_colorBack.a;\n  color = clamp(color, 0., 1.);\n  opacity = clamp(opacity, 0., 1.);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var to=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorFront;\nuniform float u_density;\nuniform float u_distortion;\nuniform float u_strokeWidth;\nuniform float u_strokeCap;\nuniform float u_strokeTaper;\nuniform float u_noise;\nuniform float u_noiseFrequency;\nuniform float u_softness;\n\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n${G}\n\nvoid main() {\n  vec2 uv = 2. * v_patternUV;\n\n  float t = u_time;\n  float l = length(uv);\n  float density = clamp(u_density, 0., 1.);\n  l = pow(max(l, 1e-6), density);\n  float angle = atan(uv.y, uv.x) - t;\n  float angleNormalised = angle / TWO_PI;\n\n  angleNormalised += .125 * u_noise * snoise(16. * pow(u_noiseFrequency, 3.) * uv);\n\n  float offset = l + angleNormalised;\n  offset -= u_distortion * (sin(4. * l - .5 * t) * cos(PI + l + .5 * t));\n  float stripe = fract(offset);\n\n  float shape = 2. * abs(stripe - .5);\n  float width = 1. - clamp(u_strokeWidth, .005 * u_strokeTaper, 1.);\n\n\n  float wCap = mix(width, (1. - stripe) * (1. - step(.5, stripe)), (1. - clamp(l, 0., 1.)));\n  width = mix(width, wCap, u_strokeCap);\n  width *= (1. - clamp(u_strokeTaper, 0., 1.) * l);\n\n  float fw = fwidth(offset);\n  float fwMult = 4. - 3. * (smoothstep(.05, .4, 2. * u_strokeWidth) * smoothstep(.05, .4, 2. * (1. - u_strokeWidth)));\n  float pixelSize = mix(fwMult * fw, fwidth(shape), clamp(fw, 0., 1.));\n  pixelSize = mix(pixelSize, .002, u_strokeCap * (1. - clamp(l, 0., 1.)));\n\n  float res = smoothstep(width - pixelSize - u_softness, width + pixelSize + u_softness, shape);\n\n  vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n  float fgOpacity = u_colorFront.a;\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  float bgOpacity = u_colorBack.a;\n\n  vec3 color = fgColor * res;\n  float opacity = fgOpacity * res;\n\n  color += bgColor * (1. - opacity);\n  opacity += bgOpacity * (1. - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var ye={maxColorCount:10},ao=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${ye.maxColorCount}];\nuniform float u_colorsCount;\nuniform float u_bandCount;\nuniform float u_twist;\nuniform float u_center;\nuniform float u_proportion;\nuniform float u_softness;\nuniform float u_noise;\nuniform float u_noiseFrequency;\n\nin vec2 v_objectUV;\n\nout vec4 fragColor;\n\n${d}\n${G}\n${b}\n\nvoid main() {\n  vec2 shape_uv = v_objectUV;\n\n  float l = length(shape_uv);\n  l = max(1e-4, l);\n\n  float t = u_time;\n\n  float angle = ceil(u_bandCount) * atan(shape_uv.y, shape_uv.x) + t;\n  float angle_norm = angle / TWO_PI;\n\n  float twist = 3. * clamp(u_twist, 0., 1.);\n  float offset = pow(l, -twist) + angle_norm;\n\n  float shape = fract(offset);\n  shape = 1. - abs(2. * shape - 1.);\n  shape += u_noise * snoise(15. * pow(u_noiseFrequency, 2.) * shape_uv);\n\n  float mid = smoothstep(.2, .2 + .8 * u_center, pow(l, twist));\n  shape = mix(0., shape, mid);\n\n  float proportion = clamp(u_proportion, 0., 1.);\n  float exponent = mix(.25, 1., proportion * 2.);\n  exponent = mix(exponent, 10., max(0., proportion * 2. - 1.));\n  shape = pow(shape, exponent);\n\n  float mixer = shape * u_colorsCount;\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n\n  float outerShape = 0.;\n  for (int i = 1; i < ${ye.maxColorCount+1}; i++) {\n    if (i > int(u_colorsCount)) break;\n\n    float m = clamp(mixer - float(i - 1), 0., 1.);\n    float aa = fwidth(m);\n    m = smoothstep(.5 - .5 * u_softness - aa, .5 + .5 * u_softness + aa, m);\n\n    if (i == 1) {\n      outerShape = m;\n    }\n\n    vec4 c = u_colors[i - 1];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, m);\n  }\n\n  float midAA = .1 * fwidth(pow(l, -twist));\n  float outerMid = smoothstep(.2, .2 + midAA, pow(l, twist));\n  outerShape = mix(0., outerShape, outerMid);\n\n  vec3 color = gradient.rgb * outerShape;\n  float opacity = gradient.a * outerShape;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1.0 - opacity);\n  opacity = opacity + u_colorBack.a * (1.0 - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var io=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform vec2 u_resolution;\nuniform float u_pixelRatio;\nuniform float u_originX;\nuniform float u_originY;\nuniform float u_worldWidth;\nuniform float u_worldHeight;\nuniform float u_fit;\nuniform float u_scale;\nuniform float u_rotation;\nuniform float u_offsetX;\nuniform float u_offsetY;\n\nuniform float u_pxSize;\nuniform vec4 u_colorBack;\nuniform vec4 u_colorFront;\nuniform float u_shape;\nuniform float u_type;\n\nout vec4 fragColor;\n\n${G}\n${d}\n${K}\n${z}\n\nfloat getSimplexNoise(vec2 uv, float t) {\n  float noise = .5 * snoise(uv - vec2(0., .3 * t));\n  noise += .5 * snoise(2. * uv + vec2(0., .32 * t));\n\n  return noise;\n}\n\nconst int bayer2x2[4] = int[4](0, 2, 3, 1);\nconst int bayer4x4[16] = int[16](\n0, 8, 2, 10,\n12, 4, 14, 6,\n3, 11, 1, 9,\n15, 7, 13, 5\n);\n\nconst int bayer8x8[64] = int[64](\n0, 32, 8, 40, 2, 34, 10, 42,\n48, 16, 56, 24, 50, 18, 58, 26,\n12, 44, 4, 36, 14, 46, 6, 38,\n60, 28, 52, 20, 62, 30, 54, 22,\n3, 35, 11, 43, 1, 33, 9, 41,\n51, 19, 59, 27, 49, 17, 57, 25,\n15, 47, 7, 39, 13, 45, 5, 37,\n63, 31, 55, 23, 61, 29, 53, 21\n);\n\nfloat getBayerValue(vec2 uv, int size) {\n  ivec2 pos = ivec2(fract(uv / float(size)) * float(size));\n  int index = pos.y * size + pos.x;\n\n  if (size == 2) {\n    return float(bayer2x2[index]) / 4.0;\n  } else if (size == 4) {\n    return float(bayer4x4[index]) / 16.0;\n  } else if (size == 8) {\n    return float(bayer8x8[index]) / 64.0;\n  }\n  return 0.0;\n}\n\n\nvoid main() {\n  float t = .5 * u_time;\n\n  float pxSize = u_pxSize * u_pixelRatio;\n  vec2 pxSizeUV = gl_FragCoord.xy - .5 * u_resolution;\n  pxSizeUV /= pxSize;\n  vec2 canvasPixelizedUV = (floor(pxSizeUV) + .5) * pxSize;\n  vec2 normalizedUV = canvasPixelizedUV / u_resolution;\n\n  vec2 ditheringNoiseUV = canvasPixelizedUV;\n  vec2 shapeUV = normalizedUV;\n\n  vec2 boxOrigin = vec2(.5 - u_originX, u_originY - .5);\n  vec2 givenBoxSize = vec2(u_worldWidth, u_worldHeight);\n  givenBoxSize = max(givenBoxSize, vec2(1.)) * u_pixelRatio;\n  float r = u_rotation * PI / 180.;\n  mat2 graphicRotation = mat2(cos(r), sin(r), -sin(r), cos(r));\n  vec2 graphicOffset = vec2(-u_offsetX, u_offsetY);\n\n  float patternBoxRatio = givenBoxSize.x / givenBoxSize.y;\n  vec2 boxSize = vec2(\n  (u_worldWidth == 0.) ? u_resolution.x : givenBoxSize.x,\n  (u_worldHeight == 0.) ? u_resolution.y : givenBoxSize.y\n  );\n  \n  if (u_shape > 3.5) {\n    vec2 objectBoxSize = vec2(0.);\n    // fit = none\n    objectBoxSize.x = min(boxSize.x, boxSize.y);\n    if (u_fit == 1.) { // fit = contain\n      objectBoxSize.x = min(u_resolution.x, u_resolution.y);\n    } else if (u_fit == 2.) { // fit = cover\n      objectBoxSize.x = max(u_resolution.x, u_resolution.y);\n    }\n    objectBoxSize.y = objectBoxSize.x;\n    vec2 objectWorldScale = u_resolution.xy / objectBoxSize;\n\n    shapeUV *= objectWorldScale;\n    shapeUV += boxOrigin * (objectWorldScale - 1.);\n    shapeUV += vec2(-u_offsetX, u_offsetY);\n    shapeUV /= u_scale;\n    shapeUV = graphicRotation * shapeUV;\n  } else {\n    vec2 patternBoxSize = vec2(0.);\n    // fit = none\n    patternBoxSize.x = patternBoxRatio * min(boxSize.x / patternBoxRatio, boxSize.y);\n    float patternWorldNoFitBoxWidth = patternBoxSize.x;\n    if (u_fit == 1.) { // fit = contain\n      patternBoxSize.x = patternBoxRatio * min(u_resolution.x / patternBoxRatio, u_resolution.y);\n    } else if (u_fit == 2.) { // fit = cover\n      patternBoxSize.x = patternBoxRatio * max(u_resolution.x / patternBoxRatio, u_resolution.y);\n    }\n    patternBoxSize.y = patternBoxSize.x / patternBoxRatio;\n    vec2 patternWorldScale = u_resolution.xy / patternBoxSize;\n\n    shapeUV += vec2(-u_offsetX, u_offsetY) / patternWorldScale;\n    shapeUV += boxOrigin;\n    shapeUV -= boxOrigin / patternWorldScale;\n    shapeUV *= u_resolution.xy;\n    shapeUV /= u_pixelRatio;\n    if (u_fit > 0.) {\n      shapeUV *= (patternWorldNoFitBoxWidth / patternBoxSize.x);\n    }\n    shapeUV /= u_scale;\n    shapeUV = graphicRotation * shapeUV;\n    shapeUV += boxOrigin / patternWorldScale;\n    shapeUV -= boxOrigin;\n    shapeUV += .5;\n  }\n\n  float shape = 0.;\n  if (u_shape < 1.5) {\n    // Simplex noise\n    shapeUV *= .001;\n\n    shape = 0.5 + 0.5 * getSimplexNoise(shapeUV, t);\n    shape = smoothstep(0.3, 0.9, shape);\n\n  } else if (u_shape < 2.5) {\n    // Warp\n    shapeUV *= .003;\n\n    for (float i = 1.0; i < 6.0; i++) {\n      shapeUV.x += 0.6 / i * cos(i * 2.5 * shapeUV.y + t);\n      shapeUV.y += 0.6 / i * cos(i * 1.5 * shapeUV.x + t);\n    }\n\n    shape = .15 / max(0.001, abs(sin(t - shapeUV.y - shapeUV.x)));\n    shape = smoothstep(0.02, 1., shape);\n\n  } else if (u_shape < 3.5) {\n    // Dots\n    shapeUV *= .05;\n\n    float stripeIdx = floor(2. * shapeUV.x / TWO_PI);\n    float rand = hash11(stripeIdx * 10.);\n    rand = sign(rand - .5) * pow(.1 + abs(rand), .4);\n    shape = sin(shapeUV.x) * cos(shapeUV.y - 5. * rand * t);\n    shape = pow(abs(shape), 6.);\n\n  } else if (u_shape < 4.5) {\n    // Sine wave\n    shapeUV *= 4.;\n\n    float wave = cos(.5 * shapeUV.x - 2. * t) * sin(1.5 * shapeUV.x + t) * (.75 + .25 * cos(3. * t));\n    shape = 1. - smoothstep(-1., 1., shapeUV.y + wave);\n\n  } else if (u_shape < 5.5) {\n    // Ripple\n\n    float dist = length(shapeUV);\n    float waves = sin(pow(dist, 1.7) * 7. - 3. * t) * .5 + .5;\n    shape = waves;\n\n  } else if (u_shape < 6.5) {\n    // Swirl\n\n    float l = length(shapeUV);\n    float angle = 6. * atan(shapeUV.y, shapeUV.x) + 4. * t;\n    float twist = 1.2;\n    float offset = 1. / pow(max(l, 1e-6), twist) + angle / TWO_PI;\n    float mid = smoothstep(0., 1., pow(l, twist));\n    shape = mix(0., fract(offset), mid);\n\n  } else {\n    // Sphere\n    shapeUV *= 2.;\n\n    float d = 1. - pow(length(shapeUV), 2.);\n    vec3 pos = vec3(shapeUV, sqrt(max(0., d)));\n    vec3 lightPos = normalize(vec3(cos(1.5 * t), .8, sin(1.25 * t)));\n    shape = .5 + .5 * dot(lightPos, pos);\n    shape *= step(0., d);\n  }\n\n\n  int type = int(floor(u_type));\n  float dithering = 0.0;\n\n  switch (type) {\n    case 1: {\n      dithering = step(hash21(ditheringNoiseUV), shape);\n    } break;\n    case 2:\n    dithering = getBayerValue(pxSizeUV, 2);\n    break;\n    case 3:\n    dithering = getBayerValue(pxSizeUV, 4);\n    break;\n    default :\n    dithering = getBayerValue(pxSizeUV, 8);\n    break;\n  }\n\n  dithering -= .5;\n  float res = step(.5, shape + dithering);\n\n  vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n  float fgOpacity = u_colorFront.a;\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  float bgOpacity = u_colorBack.a;\n\n  vec3 color = fgColor * res;\n  float opacity = fgOpacity * res;\n\n  color += bgColor * (1. - opacity);\n  opacity += bgOpacity * (1. - opacity);\n\n  fragColor = vec4(color, opacity);\n}\n`,ro={simplex:1,warp:2,dots:3,wave:4,ripple:5,swirl:6,sphere:7},so={random:1,\"2x2\":2,\"4x4\":3,\"8x8\":4};var Ae={maxColorCount:7},no=`#version 300 es\nprecision lowp float;\n\nuniform mediump float u_time;\nuniform mediump vec2 u_resolution;\nuniform mediump float u_pixelRatio;\n\nuniform sampler2D u_noiseTexture;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${Ae.maxColorCount}];\nuniform float u_colorsCount;\nuniform float u_softness;\nuniform float u_intensity;\nuniform float u_noise;\nuniform float u_shape;\n\nuniform mediump float u_originX;\nuniform mediump float u_originY;\nuniform mediump float u_worldWidth;\nuniform mediump float u_worldHeight;\nuniform mediump float u_fit;\n\nuniform mediump float u_scale;\nuniform mediump float u_rotation;\nuniform mediump float u_offsetX;\nuniform mediump float u_offsetY;\n\nin vec2 v_objectUV;\nin vec2 v_patternUV;\nin vec2 v_objectBoxSize;\nin vec2 v_patternBoxSize;\n\nout vec4 fragColor;\n\n${d}\n${G}\n${b}\n${W}\n\nfloat valueNoiseR(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = randomR(i);\n  float b = randomR(i + vec2(1.0, 0.0));\n  float c = randomR(i + vec2(0.0, 1.0));\n  float d = randomR(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\nvec4 fbmR(vec2 n0, vec2 n1, vec2 n2, vec2 n3) {\n  float amplitude = 0.2;\n  vec4 total = vec4(0.);\n  for (int i = 0; i < 3; i++) {\n    n0 = rotate(n0, 0.3);\n    n1 = rotate(n1, 0.3);\n    n2 = rotate(n2, 0.3);\n    n3 = rotate(n3, 0.3);\n    total.x += valueNoiseR(n0) * amplitude;\n    total.y += valueNoiseR(n1) * amplitude;\n    total.z += valueNoiseR(n2) * amplitude;\n    total.z += valueNoiseR(n3) * amplitude;\n    n0 *= 1.99;\n    n1 *= 1.99;\n    n2 *= 1.99;\n    n3 *= 1.99;\n    amplitude *= 0.6;\n  }\n  return total;\n}\n\n${K}\n\nvec2 truchet(vec2 uv, float idx){\n  idx = fract(((idx - .5) * 2.));\n  if (idx > 0.75) {\n    uv = vec2(1.0) - uv;\n  } else if (idx > 0.5) {\n    uv = vec2(1.0 - uv.x, uv.y);\n  } else if (idx > 0.25) {\n    uv = 1.0 - vec2(1.0 - uv.x, uv.y);\n  }\n  return uv;\n}\n\nvoid main() {\n\n  const float firstFrameOffset = 7.;\n  float t = .1 * (u_time + firstFrameOffset);\n\n  vec2 shape_uv = vec2(0.);\n  vec2 grain_uv = vec2(0.);\n\n  float r = u_rotation * PI / 180.;\n  float cr = cos(r);\n  float sr = sin(r);\n  mat2 graphicRotation = mat2(cr, sr, -sr, cr);\n  vec2 graphicOffset = vec2(-u_offsetX, u_offsetY);\n\n  if (u_shape > 3.5) {\n    shape_uv = v_objectUV;\n    grain_uv = shape_uv;\n\n    // apply inverse transform to grain_uv so it respects the originXY\n    grain_uv = transpose(graphicRotation) * grain_uv;\n    grain_uv *= u_scale;\n    grain_uv -= graphicOffset;\n    grain_uv *= v_objectBoxSize;\n    grain_uv *= .7;\n  } else {\n    shape_uv = .5 * v_patternUV;\n    grain_uv = 100. * v_patternUV;\n\n    // apply inverse transform to grain_uv so it respects the originXY\n    grain_uv = transpose(graphicRotation) * grain_uv;\n    grain_uv *= u_scale;\n    if (u_fit > 0.) {\n      vec2 givenBoxSize = vec2(u_worldWidth, u_worldHeight);\n      givenBoxSize = max(givenBoxSize, vec2(1.)) * u_pixelRatio;\n      float patternBoxRatio = givenBoxSize.x / givenBoxSize.y;\n      vec2 patternBoxGivenSize = vec2(\n      (u_worldWidth == 0.) ? u_resolution.x : givenBoxSize.x,\n      (u_worldHeight == 0.) ? u_resolution.y : givenBoxSize.y\n      );\n      patternBoxRatio = patternBoxGivenSize.x / patternBoxGivenSize.y;\n      float patternBoxNoFitBoxWidth = patternBoxRatio * min(patternBoxGivenSize.x / patternBoxRatio, patternBoxGivenSize.y);\n      grain_uv /= (patternBoxNoFitBoxWidth / v_patternBoxSize.x);\n    }\n    vec2 patternBoxScale = u_resolution.xy / v_patternBoxSize;\n    grain_uv -= graphicOffset / patternBoxScale;\n    grain_uv *= 1.6;\n  }\n\n\n  float shape = 0.;\n\n  if (u_shape < 1.5) {\n    // Sine wave\n\n    float wave = cos(.5 * shape_uv.x - 4. * t) * sin(1.5 * shape_uv.x + 2. * t) * (.75 + .25 * cos(6. * t));\n    shape = 1. - smoothstep(-1., 1., shape_uv.y + wave);\n\n  } else if (u_shape < 2.5) {\n    // Grid (dots)\n\n    float stripeIdx = floor(2. * shape_uv.x / TWO_PI);\n    float rand = hash11(stripeIdx * 100.);\n    rand = sign(rand - .5) * pow(4. * abs(rand), .3);\n    shape = sin(shape_uv.x) * cos(shape_uv.y - 5. * rand * t);\n    shape = pow(abs(shape), 4.);\n\n  } else if (u_shape < 3.5) {\n    // Truchet pattern\n\n    float n2 = valueNoiseR(shape_uv * .4 - 3.75 * t);\n    shape_uv.x += 10.;\n    shape_uv *= .6;\n\n    vec2 tile = truchet(fract(shape_uv), randomR(floor(shape_uv)));\n\n    float distance1 = length(tile);\n    float distance2 = length(tile - vec2(1.));\n\n    n2 -= .5;\n    n2 *= .1;\n    shape = smoothstep(.2, .55, distance1 + n2) * (1. - smoothstep(.45, .8, distance1 - n2));\n    shape += smoothstep(.2, .55, distance2 + n2) * (1. - smoothstep(.45, .8, distance2 - n2));\n\n    shape = pow(shape, 1.5);\n\n  } else if (u_shape < 4.5) {\n    // Corners\n\n    shape_uv *= .6;\n    vec2 outer = vec2(.5);\n\n    vec2 bl = smoothstep(vec2(0.), outer, shape_uv + vec2(.1 + .1 * sin(3. * t), .2 - .1 * sin(5.25 * t)));\n    vec2 tr = smoothstep(vec2(0.), outer, 1. - shape_uv);\n    shape = 1. - bl.x * bl.y * tr.x * tr.y;\n\n    shape_uv = -shape_uv;\n    bl = smoothstep(vec2(0.), outer, shape_uv + vec2(.1 + .1 * sin(3. * t), .2 - .1 * cos(5.25 * t)));\n    tr = smoothstep(vec2(0.), outer, 1. - shape_uv);\n    shape -= bl.x * bl.y * tr.x * tr.y;\n\n    shape = 1. - smoothstep(0., 1., shape);\n\n  } else if (u_shape < 5.5) {\n    // Ripple\n\n    shape_uv *= 2.;\n    float dist = length(.4 * shape_uv);\n    float waves = sin(pow(dist, 1.2) * 5. - 3. * t) * .5 + .5;\n    shape = waves;\n\n  } else if (u_shape < 6.5) {\n    // Blob\n\n    t *= 2.;\n\n    vec2 f1_traj = .25 * vec2(1.3 * sin(t), .2 + 1.3 * cos(.6 * t + 4.));\n    vec2 f2_traj = .2 * vec2(1.2 * sin(-t), 1.3 * sin(1.6 * t));\n    vec2 f3_traj = .25 * vec2(1.7 * cos(-.6 * t), cos(-1.6 * t));\n    vec2 f4_traj = .3 * vec2(1.4 * cos(.8 * t), 1.2 * sin(-.6 * t - 3.));\n\n    shape = .5 * pow(1. - clamp(0., 1., length(shape_uv + f1_traj)), 5.);\n    shape += .5 * pow(1. - clamp(0., 1., length(shape_uv + f2_traj)), 5.);\n    shape += .5 * pow(1. - clamp(0., 1., length(shape_uv + f3_traj)), 5.);\n    shape += .5 * pow(1. - clamp(0., 1., length(shape_uv + f4_traj)), 5.);\n\n    shape = smoothstep(.0, .9, shape);\n    float edge = smoothstep(.25, .3, shape);\n    shape = mix(.0, shape, edge);\n\n  } else {\n    // Sphere\n\n    shape_uv *= 2.;\n    float d = 1. - pow(length(shape_uv), 2.);\n    vec3 pos = vec3(shape_uv, sqrt(max(d, 0.)));\n    vec3 lightPos = normalize(vec3(cos(1.5 * t), .8, sin(1.25 * t)));\n    shape = .5 + .5 * dot(lightPos, pos);\n    shape *= step(0., d);\n  }\n\n  float baseNoise = snoise(grain_uv * .5);\n  vec4 fbmVals = fbmR(\n  .002 * grain_uv + 10.,\n  .003 * grain_uv,\n  .001 * grain_uv,\n  rotate(.4 * grain_uv, 2.)\n  );\n  float grainDist = baseNoise * snoise(grain_uv * .2) - fbmVals.x - fbmVals.y;\n  float rawNoise = .75 * baseNoise - fbmVals.w - fbmVals.z;\n  float noise = clamp(rawNoise, 0., 1.);\n\n  shape += u_intensity * 2. / u_colorsCount * (grainDist + .5);\n  shape += u_noise * 10. / u_colorsCount * noise;\n\n  float aa = fwidth(shape);\n\n  shape = clamp(shape - .5 / u_colorsCount, 0., 1.);\n  float totalShape = smoothstep(0., u_softness + 2. * aa, clamp(shape * u_colorsCount, 0., 1.));\n  float mixer = shape * (u_colorsCount - 1.);\n\n  int cntStop = int(u_colorsCount) - 1;\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n  for (int i = 1; i < ${Ae.maxColorCount}; i++) {\n    if (i > cntStop) break;\n\n    float localT = clamp(mixer - float(i - 1), 0., 1.);\n    localT = smoothstep(.5 - .5 * u_softness - aa, .5 + .5 * u_softness + aa, localT);\n\n    vec4 c = u_colors[i];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, localT);\n  }\n\n  vec3 color = gradient.rgb * totalShape;\n  float opacity = gradient.a * totalShape;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1.0 - opacity);\n  opacity = opacity + u_colorBack.a * (1.0 - opacity);\n\n  fragColor = vec4(color, opacity);\n}\n`,lo={wave:1,dots:2,truchet:3,corners:4,ripple:5,blob:6,sphere:7};var ce={maxColorCount:5,maxSpots:4},co=`#version 300 es\nprecision lowp float;\n\nuniform float u_time;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${ce.maxColorCount}];\nuniform float u_colorsCount;\nuniform float u_roundness;\nuniform float u_thickness;\nuniform float u_marginLeft;\nuniform float u_marginRight;\nuniform float u_marginTop;\nuniform float u_marginBottom;\nuniform float u_aspectRatio;\nuniform float u_softness;\nuniform float u_intensity;\nuniform float u_bloom;\nuniform float u_spotSize;\nuniform float u_spots;\nuniform float u_pulse;\nuniform float u_smoke;\nuniform float u_smokeSize;\n\nuniform sampler2D u_noiseTexture;\n\nin vec2 v_responsiveUV;\nin vec2 v_responsiveBoxGivenSize;\nin vec2 v_patternUV;\n\nout vec4 fragColor;\n\n${d}\n\nfloat beat(float time) {\n  float first = pow(abs(sin(time * TWO_PI)), 10.);\n  float second = pow(abs(sin((time - .15) * TWO_PI)), 10.);\n\n  return clamp(first + 0.6 * second, 0.0, 1.0);\n}\n\nfloat sst(float edge0, float edge1, float x) {\n  return smoothstep(edge0, edge1, x);\n}\n\nfloat roundedBox(vec2 uv, vec2 halfSize, float distance, float cornerDistance, float thickness, float softness) {\n  float borderDistance = abs(distance);\n  float aa = 2. * fwidth(distance);\n  float border = 1. - sst(min(mix(thickness, -thickness, softness), thickness + aa), max(mix(thickness, -thickness, softness), thickness + aa), borderDistance);\n  float cornerFadeCircles = 0.;\n  cornerFadeCircles = mix(1., cornerFadeCircles, sst(0., 1., length((uv + halfSize) / thickness)));\n  cornerFadeCircles = mix(1., cornerFadeCircles, sst(0., 1., length((uv - vec2(-halfSize.x, halfSize.y)) / thickness)));\n  cornerFadeCircles = mix(1., cornerFadeCircles, sst(0., 1., length((uv - vec2(halfSize.x, -halfSize.y)) / thickness)));\n  cornerFadeCircles = mix(1., cornerFadeCircles, sst(0., 1., length((uv - halfSize) / thickness)));\n  aa = fwidth(cornerDistance);\n  float cornerFade = sst(0., mix(aa, thickness, softness), cornerDistance);\n  cornerFade *= cornerFadeCircles;\n  border += cornerFade;\n  return border;\n}\n\n${te}\n\nfloat randomG(vec2 p) {\n  vec2 uv = floor(p) / 100. + .5;\n  return texture(u_noiseTexture, fract(uv)).g;\n}\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = randomG(i);\n  float b = randomG(i + vec2(1.0, 0.0));\n  float c = randomG(i + vec2(0.0, 1.0));\n  float d = randomG(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nvoid main() {\n  const float firstFrameOffset = 109.;\n  float t = 1.2 * (u_time + firstFrameOffset);\n\n  vec2 borderUV = v_responsiveUV;\n  float pulse = u_pulse * beat(.18 * u_time);\n\n  float canvasRatio = v_responsiveBoxGivenSize.x / v_responsiveBoxGivenSize.y;\n  vec2 halfSize = vec2(.5);\n  borderUV.x *= max(canvasRatio, 1.);\n  borderUV.y /= min(canvasRatio, 1.);\n  halfSize.x *= max(canvasRatio, 1.);\n  halfSize.y /= min(canvasRatio, 1.);\n\n  float mL = u_marginLeft;\n  float mR = u_marginRight;\n  float mT = u_marginTop;\n  float mB = u_marginBottom;\n  float mX = mL + mR;\n  float mY = mT + mB;\n\n  if (u_aspectRatio > 0.) {\n    float shapeRatio = canvasRatio * (1. - mX) / max(1. - mY, 1e-6);\n    float freeX = shapeRatio > 1. ? (1. - mX) * (1. - 1. / max(abs(shapeRatio), 1e-6)) : 0.;\n    float freeY = shapeRatio < 1. ? (1. - mY) * (1. - shapeRatio) : 0.;\n    mL += freeX * 0.5;\n    mR += freeX * 0.5;\n    mT += freeY * 0.5;\n    mB += freeY * 0.5;\n    mX = mL + mR;\n    mY = mT + mB;\n  }\n\n  float thickness = .5 * u_thickness * min(halfSize.x, halfSize.y);\n\n  halfSize.x *= (1. - mX);\n  halfSize.y *= (1. - mY);\n\n  vec2 centerShift = vec2(\n  (mL - mR) * max(canvasRatio, 1.) * 0.5,\n  (mB - mT) / min(canvasRatio, 1.) * 0.5\n  );\n\n  borderUV -= centerShift;\n  halfSize -= mix(thickness, 0., u_softness);\n\n  float radius = mix(0., min(halfSize.x, halfSize.y), u_roundness);\n  vec2 d = abs(borderUV) - halfSize + radius;\n  float outsideDistance = length(max(d, .0001)) - radius;\n  float insideDistance = min(max(d.x, d.y), .0001);\n  float cornerDistance = abs(min(max(d.x, d.y) - .45 * radius, .0));\n  float distance = outsideDistance + insideDistance;\n\n  float borderThickness = mix(thickness, 3. * thickness, u_softness);\n  float border = roundedBox(borderUV, halfSize, distance, cornerDistance, borderThickness, u_softness);\n  border = pow(border, 1. + u_softness);\n\n  vec2 smokeUV = .3 * u_smokeSize * v_patternUV;\n  float smoke = clamp(3. * valueNoise(2.7 * smokeUV + .5 * t), 0., 1.);\n  smoke -= valueNoise(3.4 * smokeUV - .5 * t);\n  float smokeThickness = thickness + .2;\n  smokeThickness = min(.4, max(smokeThickness, .1));\n  smoke *= roundedBox(borderUV, halfSize, distance, cornerDistance, smokeThickness, 1.);\n  smoke = 30. * smoke * smoke;\n  smoke *= mix(0., .5, pow(u_smoke, 2.));\n  smoke *= mix(1., pulse, u_pulse);\n  smoke = clamp(smoke, 0., 1.);\n  border += smoke;\n\n  border = clamp(border, 0., 1.);\n\n  vec3 blendColor = vec3(0.);\n  float blendAlpha = 0.;\n  vec3 addColor = vec3(0.);\n  float addAlpha = 0.;\n\n  float bloom = 4. * u_bloom;\n  float intensity = 1. + (1. + 4. * u_softness) * u_intensity;\n\n  float angle = atan(borderUV.y, borderUV.x) / TWO_PI;\n\n  for (int colorIdx = 0; colorIdx < ${ce.maxColorCount}; colorIdx++) {\n    if (colorIdx >= int(u_colorsCount)) break;\n    float colorIdxF = float(colorIdx);\n\n    vec3 c = u_colors[colorIdx].rgb * u_colors[colorIdx].a;\n    float a = u_colors[colorIdx].a;\n\n    for (int spotIdx = 0; spotIdx < ${ce.maxSpots}; spotIdx++) {\n      if (spotIdx >= int(u_spots)) break;\n      float spotIdxF = float(spotIdx);\n\n      vec2 randVal = randomGB(vec2(spotIdxF * 10. + 2., 40. + colorIdxF));\n\n      float time = (.1 + .15 * abs(sin(spotIdxF * (2. + colorIdxF)) * cos(spotIdxF * (2. + 2.5 * colorIdxF)))) * t + randVal.x * 3.;\n      time *= mix(1., -1., step(.5, randVal.y));\n\n      float mask = .5 + .5 * mix(\n      sin(t + spotIdxF * (5. - 1.5 * colorIdxF)),\n      cos(t + spotIdxF * (3. + 1.3 * colorIdxF)),\n      step(mod(colorIdxF, 2.), .5)\n      );\n\n      float p = clamp(2. * u_pulse - randVal.x, 0., 1.);\n      mask = mix(mask, pulse, p);\n\n      float atg1 = fract(angle + time);\n      float spotSize = .05 + .6 * pow(u_spotSize, 2.) + .05 * randVal.x;\n      spotSize = mix(spotSize, .1, p);\n      float sector = sst(.5 - spotSize, .5, atg1) * (1. - sst(.5, .5 + spotSize, atg1));\n\n      sector *= mask;\n      sector *= border;\n      sector *= intensity;\n      sector = clamp(sector, 0., 1.);\n\n      vec3 srcColor = c * sector;\n      float srcAlpha = a * sector;\n\n      blendColor += ((1. - blendAlpha) * srcColor);\n      blendAlpha = blendAlpha + (1. - blendAlpha) * srcAlpha;\n      addColor += srcColor;\n      addAlpha += srcAlpha;\n    }\n  }\n\n  vec3 accumColor = mix(blendColor, addColor, bloom);\n  float accumAlpha = mix(blendAlpha, addAlpha, bloom);\n  accumAlpha = clamp(accumAlpha, 0., 1.);\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  vec3 color = accumColor + (1. - accumAlpha) * bgColor;\n  float opacity = accumAlpha + (1. - accumAlpha) * u_colorBack.a;\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}`,uo={auto:0,square:1};var ue={maxColorCount:7},fo=`#version 300 es\nprecision lowp float;\n\nuniform float u_time;\nuniform mediump float u_scale;\n\nuniform vec4 u_colors[${ue.maxColorCount}];\nuniform float u_colorsCount;\nuniform vec4 u_colorBack;\nuniform float u_density;\nuniform float u_angle1;\nuniform float u_angle2;\nuniform float u_length;\nuniform bool u_edges;\nuniform float u_blur;\nuniform float u_fadeIn;\nuniform float u_fadeOut;\nuniform float u_gradient;\n\nin vec2 v_objectUV;\n\nout vec4 fragColor;\n\n${d}\n\nconst float zLimit = .5;\n\nvec2 getPanel(float angle, vec2 uv, float invLength, float aa) {\n  float sinA = sin(angle);\n  float cosA = cos(angle);\n\n  float denom = sinA - uv.y * cosA;\n  if (abs(denom) < .01) return vec2(0.);\n\n  float z = uv.y / denom;\n\n  if (z <= 0. || z > zLimit) return vec2(0.);\n\n  float zRatio = z / zLimit;\n  float panelMap = 1. - zRatio;\n  float x = uv.x * (cosA * z + 1.) * invLength;\n\n  float zOffset = zRatio - .5;\n  float left = -.5 + zOffset * u_angle1;\n  float right = .5 - zOffset * u_angle2;\n  float blurX = aa + 2. * panelMap * u_blur;\n\n  float leftEdge1 = left - blurX;\n  float leftEdge2 = left + .25 * blurX;\n  float rightEdge1 = right - .25 * blurX;\n  float rightEdge2 = right + blurX;\n\n  float panel = smoothstep(leftEdge1, leftEdge2, x) * (1.0 - smoothstep(rightEdge1, rightEdge2, x));\n  panel *= mix(0., panel, smoothstep(0., .01 / max(u_scale, 1e-6), panelMap));\n\n  float midScreen = abs(sinA);\n  if (u_edges == true) {\n    panelMap = mix(.99, panelMap, panel * clamp(panelMap / (.15 * (1. - pow(midScreen, .1))), 0.0, 1.0));\n  } else if (midScreen < .07) {\n    panel *= (midScreen * 15.);\n  }\n\n  return vec2(panel, panelMap);\n}\n\nvec4 blendColor(vec4 colorA, float panelMask, float panelMap) {\n  float fade = 1. - smoothstep(.97 - .97 * u_fadeIn, 1., panelMap);\n\n  fade *= smoothstep(-.2 * (1. - u_fadeOut), u_fadeOut, panelMap);\n\n  vec3 blendedRGB = mix(vec3(0.), colorA.rgb, fade);\n  float blendedAlpha = mix(0., colorA.a, fade);\n\n  return vec4(blendedRGB, blendedAlpha) * panelMask;\n}\n\nvoid main() {\n  vec2 uv = v_objectUV;\n  uv *= 1.25;\n\n  float t = .02 * u_time;\n  t = fract(t);\n  bool reverseTime = (t < 0.5);\n\n  vec3 color = vec3(0.);\n  float opacity = 0.;\n\n  float aa = .005 / u_scale;\n  int colorsCount = int(u_colorsCount);\n\n  vec4 premultipliedColors[${ue.maxColorCount}];\n  for (int i = 0; i < ${ue.maxColorCount}; i++) {\n    if (i >= colorsCount) break;\n    vec4 c = u_colors[i];\n    c.rgb *= c.a;\n    premultipliedColors[i] = c;\n  }\n\n  float invLength = 1.5 / max(u_length, .001);\n\n  float totalColorWeight = 0.;\n  int panelsNumber = 12;\n\n  float densityNormalizer = 1.;\n  if (colorsCount == 4) {\n    panelsNumber = 16;\n    densityNormalizer = 1.34;\n  } else if (colorsCount == 5) {\n    panelsNumber = 20;\n    densityNormalizer = 1.67;\n  } else if (colorsCount == 7) {\n    panelsNumber = 14;\n    densityNormalizer = 1.17;\n  }\n\n  float fPanelsNumber = float(panelsNumber);\n\n  float totalPanelsShape = 0.;\n  float panelGrad = 1. - clamp(u_gradient, 0., 1.);\n\n  for (int set = 0; set < 2; set++) {\n    bool isForward = (set == 0 && !reverseTime) || (set == 1 && reverseTime);\n    if (!isForward) continue;\n\n    for (int i = 0; i <= 20; i++) {\n      if (i >= panelsNumber) break;\n\n      int idx = panelsNumber - 1 - i;\n\n      float offset = float(idx) / fPanelsNumber;\n      if (set == 1) {\n        offset += .5;\n      }\n\n      float densityFract = densityNormalizer * fract(t + offset);\n      float angleNorm = densityFract / u_density;\n      if (densityFract >= .5 || angleNorm >= .3) continue;\n\n      float smoothDensity = clamp((.5 - densityFract) / .1, 0., 1.) * clamp(densityFract / .01, 0., 1.);\n      float smoothAngle = clamp((.3 - angleNorm) / .05, 0., 1.);\n      if (smoothDensity * smoothAngle < .001) continue;\n\n      if (angleNorm > .5) {\n        angleNorm = 0.5;\n      }\n      vec2 panel = getPanel(angleNorm * TWO_PI + PI, uv, invLength, aa);\n      if (panel[0] <= .001) continue;\n      float panelMask = panel[0] * smoothDensity * smoothAngle;\n      float panelMap = panel[1];\n\n      int colorIdx = idx % colorsCount;\n      int nextColorIdx = (idx + 1) % colorsCount;\n\n      vec4 colorA = premultipliedColors[colorIdx];\n      vec4 colorB = premultipliedColors[nextColorIdx];\n\n      colorA = mix(colorA, colorB, max(0., smoothstep(.0, .45, panelMap) - panelGrad));\n      vec4 blended = blendColor(colorA, panelMask, panelMap);\n      color = blended.rgb + color * (1. - blended.a);\n      opacity = blended.a + opacity * (1. - blended.a);\n    }\n\n\n    for (int i = 0; i <= 20; i++) {\n      if (i >= panelsNumber) break;\n\n      int idx = panelsNumber - 1 - i;\n\n      float offset = float(idx) / fPanelsNumber;\n      if (set == 0) {\n        offset += .5;\n      }\n\n      float densityFract = densityNormalizer * fract(-t + offset);\n      float angleNorm = -densityFract / u_density;\n      if (densityFract >= .5 || angleNorm < -.3) continue;\n\n      float smoothDensity = clamp((.5 - densityFract) / .1, 0., 1.) * clamp(densityFract / .01, 0., 1.);\n      float smoothAngle = clamp((angleNorm + .3) / .05, 0., 1.);\n      if (smoothDensity * smoothAngle < .001) continue;\n\n      vec2 panel = getPanel(angleNorm * TWO_PI + PI, uv, invLength, aa);\n      float panelMask = panel[0] * smoothDensity * smoothAngle;\n      if (panelMask <= .001) continue;\n      float panelMap = panel[1];\n\n      int colorIdx = (colorsCount - (idx % colorsCount)) % colorsCount;\n      if (colorIdx < 0) colorIdx += colorsCount;\n      int nextColorIdx = (colorIdx + 1) % colorsCount;\n\n      vec4 colorA = premultipliedColors[colorIdx];\n      vec4 colorB = premultipliedColors[nextColorIdx];\n\n      colorA = mix(colorA, colorB, max(0., smoothstep(.0, .45, panelMap) - panelGrad));\n      vec4 blended = blendColor(colorA, panelMask, panelMap);\n      color = blended.rgb + color * (1. - blended.a);\n      opacity = blended.a + opacity * (1. - blended.a);\n    }\n  }\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1.0 - opacity);\n  opacity = opacity + u_colorBack.a * (1.0 - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`;var be={maxColorCount:10},mo=`#version 300 es\nprecision mediump float;\n\nuniform vec4 u_colors[${be.maxColorCount}];\nuniform float u_colorsCount;\n\nuniform float u_positions;\nuniform float u_waveX;\nuniform float u_waveXShift;\nuniform float u_waveY;\nuniform float u_waveYShift;\nuniform float u_mixing;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\n\nin vec2 v_objectUV;\nout vec4 fragColor;\n\n${d}\n${b}\n${z}\n\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = hash21(i);\n  float b = hash21(i + vec2(1.0, 0.0));\n  float c = hash21(i + vec2(0.0, 1.0));\n  float d = hash21(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nfloat noise(vec2 n, vec2 seedOffset) {\n  return valueNoise(n + seedOffset);\n}\n\nvec2 getPosition(int i, float t) {\n  float a = float(i) * .37;\n  float b = .6 + mod(float(i), 3.) * .3;\n  float c = .8 + mod(float(i + 1), 4.) * 0.25;\n\n  float x = sin(t * b + a);\n  float y = cos(t * c + a * 1.5);\n\n  return .5 + .5 * vec2(x, y);\n}\n\nvoid main() {\n  vec2 uv = v_objectUV;\n  uv += .5;\n  vec2 grainUV = uv * 1000.;\n\n  float grain = noise(grainUV, vec2(0.));\n  float mixerGrain = .4 * u_grainMixer * (grain - .5);\n\n  float radius = smoothstep(0., 1., length(uv - .5));\n  float center = 1. - radius;\n  for (float i = 1.; i <= 2.; i++) {\n    uv.x += u_waveX * center / i * cos(TWO_PI * u_waveXShift + i * 2. * smoothstep(.0, 1., uv.y));\n    uv.y += u_waveY * center / i * cos(TWO_PI * u_waveYShift + i * 2. * smoothstep(.0, 1., uv.x));\n  }\n\n  vec3 color = vec3(0.);\n  float opacity = 0.;\n  float totalWeight = 0.;\n  float positionSeed = 25. + .33 * u_positions;\n\n  for (int i = 0; i < ${be.maxColorCount}; i++) {\n    if (i >= int(u_colorsCount)) break;\n\n    vec2 pos = getPosition(i, positionSeed) + mixerGrain;\n    float dist = length(uv - pos);\n    dist = length(uv - pos);\n\n    vec3 colorFraction = u_colors[i].rgb * u_colors[i].a;\n    float opacityFraction = u_colors[i].a;\n\n    float mixing = pow(u_mixing, .7);\n    float power = mix(2., 1., mixing);\n    dist = pow(dist, power);\n\n    float w = 1. / (dist + 1e-3);\n    float baseSharpness = mix(.0, 8., clamp(w, 0., 1.));\n    float sharpness = mix(baseSharpness, 1., mixing);\n    w = pow(w, sharpness);\n    color += colorFraction * w;\n    opacity += opacityFraction * w;\n    totalWeight += w;\n  }\n\n  color /= max(1e-4, totalWeight);\n  opacity /= max(1e-4, totalWeight);\n\n  float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));\n  grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);\n  grainOverlay = pow(grainOverlay, 1.3);\n\n  float grainOverlayV = grainOverlay * 2. - 1.;\n  vec3 grainOverlayColor = vec3(step(0., grainOverlayV));\n  float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);\n  grainOverlayStrength = pow(grainOverlayStrength, .8);\n  color = mix(color, grainOverlayColor, .35 * grainOverlayStrength);\n\n  opacity += .5 * grainOverlayStrength;\n  opacity = clamp(opacity, 0., 1.);\n\n  fragColor = vec4(color, opacity);\n}\n`;var Ce={maxColorCount:10},po=`#version 300 es\nprecision mediump float;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${Ce.maxColorCount}];\nuniform float u_colorsCount;\n\nuniform float u_radius;\nuniform float u_focalDistance;\nuniform float u_focalAngle;\nuniform float u_falloff;\nuniform float u_mixing;\nuniform float u_distortion;\nuniform float u_distortionShift;\nuniform float u_distortionFreq;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\n\nin vec2 v_objectUV;\nout vec4 fragColor;\n\n${d}\n${b}\n${z}\n\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = hash21(i);\n  float b = hash21(i + vec2(1.0, 0.0));\n  float c = hash21(i + vec2(0.0, 1.0));\n  float d = hash21(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nfloat noise(vec2 n, vec2 seedOffset) {\n  return valueNoise(n + seedOffset);\n}\n\nvec2 getPosition(int i, float t) {\n  float a = float(i) * .37;\n  float b = .6 + mod(float(i), 3.) * .3;\n  float c = .8 + mod(float(i + 1), 4.) * 0.25;\n\n  float x = sin(t * b + a);\n  float y = cos(t * c + a * 1.5);\n\n  return .5 + .5 * vec2(x, y);\n}\n\nvoid main() {\n  vec2 uv = 2. * v_objectUV;\n  vec2 grainUV = uv * 1000.;\n\n  vec2 center = vec2(0.);\n  float angleRad = -radians(u_focalAngle + 90.);\n  vec2 focalPoint = vec2(cos(angleRad), sin(angleRad)) * u_focalDistance;\n  float radius = u_radius;\n\n  vec2 c_to_uv = uv - center;\n  vec2 f_to_uv = uv - focalPoint;\n  vec2 f_to_c = center - focalPoint;\n  float r = length(c_to_uv);\n\n  float fragAngle = atan(c_to_uv.y, c_to_uv.x);\n  float angleDiff = fract((fragAngle - angleRad + PI) / TWO_PI) * TWO_PI - PI;\n\n  float halfAngle = acos(clamp(radius / max(u_focalDistance, 1e-4), 0.0, 1.0));\n  float e0 = 0.6 * PI, e1 = halfAngle;\n  float lo = min(e0, e1), hi = max(e0, e1);\n  float s  = smoothstep(lo, hi, abs(angleDiff));\n  float isInSector = (e1 >= e0) ? (1.0 - s) : s;\n\n  float a = dot(f_to_uv, f_to_uv);\n  float b = -2.0 * dot(f_to_uv, f_to_c);\n  float c = dot(f_to_c, f_to_c) - radius * radius;\n\n  float discriminant = b * b - 4.0 * a * c;\n  float t = 1.0;\n\n  if (discriminant >= 0.0) {\n    float sqrtD = sqrt(discriminant);\n    float div = max(1e-4, 2.0 * a);\n    float t0 = (-b - sqrtD) / div;\n    float t1 = (-b + sqrtD) / div;\n    t = max(t0, t1);\n    if (t < 0.0) t = 0.0;\n  }\n\n  float dist = length(f_to_uv);\n  float normalized = dist / max(1e-4, length(f_to_uv * t));\n  float shape = clamp(normalized, 0.0, 1.0);\n\n  float falloffMapped = mix(.2 + .8 * max(0., u_falloff + 1.), mix(1., 15., u_falloff * u_falloff), step(.0, u_falloff));\n\n  float falloffExp = mix(falloffMapped, 1., shape);\n  shape = pow(shape, falloffExp);\n  shape = 1. - clamp(shape, 0., 1.);\n\n\n  float outerMask = .002;\n  float outer = 1.0 - smoothstep(radius - outerMask, radius + outerMask, r);\n  outer = mix(outer, 1., isInSector);\n\n  shape = mix(0., shape, outer);\n  shape *= 1. - smoothstep(radius - .01, radius, r);\n\n  float angle = atan(f_to_uv.y, f_to_uv.x);\n  shape -= pow(u_distortion, 2.) * shape * pow(abs(sin(PI * clamp(length(f_to_uv) - 0.2 + u_distortionShift, 0.0, 1.0))), 4.0) * (sin(u_distortionFreq * angle) + cos(floor(0.65 * u_distortionFreq) * angle));\n\n  float grain = noise(grainUV, vec2(0.));\n  float mixerGrain = .4 * u_grainMixer * (grain - .5);\n\n  float mixer = shape * u_colorsCount + mixerGrain;\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n\n  float outerShape = 0.;\n  for (int i = 1; i < ${Ce.maxColorCount+1}; i++) {\n    if (i > int(u_colorsCount)) break;\n    float mLinear = clamp(mixer - float(i - 1), 0.0, 1.0);\n\n    float aa = fwidth(mLinear);\n    float width = min(u_mixing, 0.5);\n    float t = clamp((mLinear - (0.5 - width - aa)) / (2. * width + 2. * aa), 0., 1.);\n    float p = mix(2., 1., clamp((u_mixing - 0.5) * 2., 0., 1.));\n    float m = t < 0.5\n      ? 0.5 * pow(2. * t, p)\n      : 1. - 0.5 * pow(2. * (1. - t), p);\n\n    float quadBlend = clamp((u_mixing - 0.5) * 2., 0., 1.);\n    m = mix(m, m * m, 0.5 * quadBlend);\n    \n    if (i == 1) {\n      outerShape = m;\n    }\n\n    vec4 c = u_colors[i - 1];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, m);\n  }\n\n  vec3 color = gradient.rgb * outerShape;\n  float opacity = gradient.a * outerShape;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1.0 - opacity);\n  opacity = opacity + u_colorBack.a * (1.0 - opacity);\n\n  float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));\n  grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);\n  grainOverlay = pow(grainOverlay, 1.3);\n\n  float grainOverlayV = grainOverlay * 2. - 1.;\n  vec3 grainOverlayColor = vec3(step(0., grainOverlayV));\n  float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);\n  grainOverlayStrength = pow(grainOverlayStrength, .8);\n  color = mix(color, grainOverlayColor, .35 * grainOverlayStrength);\n\n  opacity += .5 * grainOverlayStrength;\n  opacity = clamp(opacity, 0., 1.);\n\n  fragColor = vec4(color, opacity);\n}\n`;var go=`#version 300 es\nprecision mediump float;\n\nuniform vec2 u_resolution;\nuniform float u_pixelRatio;\n\nuniform vec4 u_colorFront;\nuniform vec4 u_colorBack;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform float u_contrast;\nuniform float u_roughness;\nuniform float u_fiber;\nuniform float u_fiberSize;\nuniform float u_crumples;\nuniform float u_crumpleSize;\nuniform float u_folds;\nuniform float u_foldCount;\nuniform float u_drops;\nuniform float u_seed;\nuniform float u_fade;\n\nuniform sampler2D u_noiseTexture;\n\nin vec2 v_imageUV;\n\nout vec4 fragColor;\n\nfloat getUvFrame(vec2 uv) {\n  float aax = 2. * fwidth(uv.x);\n  float aay = 2. * fwidth(uv.y);\n\n  float left   = smoothstep(0., aax, uv.x);\n  float right = 1. - smoothstep(1. - aax, 1., uv.x);\n  float bottom = smoothstep(0., aay, uv.y);\n  float top = 1. - smoothstep(1. - aay, 1., uv.y);\n\n  return left * right * bottom * top;\n}\n\n${d}\n${b}\n${W}\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = randomR(i);\n  float b = randomR(i + vec2(1.0, 0.0));\n  float c = randomR(i + vec2(0.0, 1.0));\n  float d = randomR(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\nfloat fbm(vec2 n) {\n  float total = 0.0, amplitude = .4;\n  for (int i = 0; i < 3; i++) {\n    total += valueNoise(n) * amplitude;\n    n *= 1.99;\n    amplitude *= 0.65;\n  }\n  return total;\n}\n\n\nfloat randomG(vec2 p) {\n  vec2 uv = floor(p) / 50. + .5;\n  return texture(u_noiseTexture, fract(uv)).g;\n}\nfloat roughness(vec2 p) {\n  p *= .1;\n  float o = 0.;\n  for (float i = 0.; ++i < 4.; p *= 2.1) {\n    vec4 w = vec4(floor(p), ceil(p));\n    vec2 f = fract(p);\n    o += mix(\n    mix(randomG(w.xy), randomG(w.xw), f.y),\n    mix(randomG(w.zy), randomG(w.zw), f.y),\n    f.x);\n    o += .2 / exp(2. * abs(sin(.2 * p.x + .5 * p.y)));\n  }\n  return o / 3.;\n}\n\n${Ie}\n\nvec2 randomGB(vec2 p) {\n  vec2 uv = floor(p) / 50. + .5;\n  return texture(u_noiseTexture, fract(uv)).gb;\n}\nfloat crumpledNoise(vec2 t, float pw) {\n  vec2 p = floor(t);\n  float wsum = 0.;\n  float cl = 0.;\n  for (int y = -1; y < 2; y += 1) {\n    for (int x = -1; x < 2; x += 1) {\n      vec2 b = vec2(float(x), float(y));\n      vec2 q = b + p;\n      vec2 q2 = q - floor(q / 8.) * 8.;\n      vec2 c = q + randomGB(q2);\n      vec2 r = c - t;\n      float w = pow(smoothstep(0., 1., 1. - abs(r.x)), pw) * pow(smoothstep(0., 1., 1. - abs(r.y)), pw);\n      cl += (.5 + .5 * sin((q2.x + q2.y * 5.) * 8.)) * w;\n      wsum += w;\n    }\n  }\n  return pow(wsum != 0.0 ? cl / wsum : 0.0, .5) * 2.;\n}\nfloat crumplesShape(vec2 uv) {\n  return crumpledNoise(uv * .25, 16.) * crumpledNoise(uv * .5, 2.);\n}\n\n\nvec2 folds(vec2 uv) {\n  vec3 pp = vec3(0.);\n  float l = 9.;\n  for (float i = 0.; i < 15.; i++) {\n    if (i >= u_foldCount) break;\n    vec2 rand = randomGB(vec2(i, i * u_seed));\n    float an = rand.x * TWO_PI;\n    vec2 p = vec2(cos(an), sin(an)) * rand.y;\n    float dist = distance(uv, p);\n    l = min(l, dist);\n\n    if (l == dist) {\n      pp.xy = (uv - p.xy);\n      pp.z = dist;\n    }\n  }\n  return mix(pp.xy, vec2(0.), pow(pp.z, .25));\n}\n\nfloat drops(vec2 uv) {\n  vec2 iDropsUV = floor(uv);\n  vec2 fDropsUV = fract(uv);\n  float dropsMinDist = 1.;\n  for (int j = -1; j <= 1; j++) {\n    for (int i = -1; i <= 1; i++) {\n      vec2 neighbor = vec2(float(i), float(j));\n      vec2 offset = randomGB(iDropsUV + neighbor);\n      offset = .5 + .5 * sin(10. * u_seed + TWO_PI * offset);\n      vec2 pos = neighbor + offset - fDropsUV;\n      float dist = length(pos);\n      dropsMinDist = min(dropsMinDist, dropsMinDist*dist);\n    }\n  }\n  return 1. - smoothstep(.05, .09, pow(dropsMinDist, .5));\n}\n\nfloat lst(float edge0, float edge1, float x) {\n  return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n}\n\nvoid main() {\n\n  vec2 imageUV = v_imageUV;\n  vec2 patternUV = v_imageUV - .5;\n  patternUV = 5. * (patternUV * vec2(u_imageAspectRatio, 1.));\n\n  vec2 roughnessUv = 1.5 * (gl_FragCoord.xy - .5 * u_resolution) / u_pixelRatio;\n  float roughness = roughness(roughnessUv + vec2(1., 0.)) - roughness(roughnessUv - vec2(1., 0.));\n\n  vec2 crumplesUV = fract(patternUV * .02 / u_crumpleSize - u_seed) * 32.;\n  float crumples = u_crumples * (crumplesShape(crumplesUV + vec2(.05, 0.)) - crumplesShape(crumplesUV));\n\n  vec2 fiberUV = 2. / u_fiberSize * patternUV;\n  float fiber = fiberNoise(fiberUV, vec2(0.));\n  fiber = .5 * u_fiber * (fiber - 1.);\n\n  vec2 normal = vec2(0.);\n  vec2 normalImage = vec2(0.);\n\n  vec2 foldsUV = patternUV * .12;\n  foldsUV = rotate(foldsUV, 4. * u_seed);\n  vec2 w = folds(foldsUV);\n  foldsUV = rotate(foldsUV + .007 * cos(u_seed), .01 * sin(u_seed));\n  vec2 w2 = folds(foldsUV);\n\n  float drops = u_drops * drops(patternUV * 2.);\n\n  float fade = u_fade * fbm(.17 * patternUV + 10. * u_seed);\n  fade = clamp(8. * fade * fade * fade, 0., 1.);\n\n  w = mix(w, vec2(0.), fade);\n  w2 = mix(w2, vec2(0.), fade);\n  crumples = mix(crumples, 0., fade);\n  drops = mix(drops, 0., fade);\n  fiber *= mix(1., .5, fade);\n  roughness *= mix(1., .5, fade);\n\n  normal.xy += u_folds * min(5. * u_contrast, 1.) * 4. * max(vec2(0.), w + w2);\n  normalImage.xy += u_folds * 2. * w;\n\n  normal.xy += crumples;\n  normalImage.xy += 1.5 * crumples;\n\n  normal.xy += 3. * drops;\n  normalImage.xy += .2 * drops;\n\n  normal.xy += u_roughness * 1.5 * roughness;\n  normal.xy += fiber;\n\n  normalImage += u_roughness * .75 * roughness;\n  normalImage += .2 * fiber;\n\n  vec3 lightPos = vec3(1., 2., 1.);\n  float res = dot(normalize(vec3(normal, 9.5 - 9. * pow(u_contrast, .1))), normalize(lightPos));\n\n  vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n  float fgOpacity = u_colorFront.a;\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  float bgOpacity = u_colorBack.a;\n\n  imageUV += .02 * normalImage;\n  float frame = getUvFrame(imageUV);\n  vec4 image = texture(u_image, imageUV);\n  image.rgb += .6 * pow(u_contrast, .4) * (res - .7);\n\n  frame *= image.a;\n\n  vec3 color = fgColor * res;\n  float opacity = fgOpacity * res;\n\n  color += bgColor * (1. - opacity);\n  opacity += bgOpacity * (1. - opacity);\n  opacity = mix(opacity, 1., frame);\n\n  color -= .007 * drops;\n\n  color.rgb = mix(color, image.rgb, frame);\n\n  fragColor = vec4(color, opacity);\n}\n`;var vo=`#version 300 es\nprecision mediump float;\n\nuniform float u_time;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorHighlight;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform float u_size;\nuniform float u_highlights;\nuniform float u_layering;\nuniform float u_edges;\nuniform float u_caustic;\nuniform float u_waves;\n\nin vec2 v_imageUV;\n\nout vec4 fragColor;\n\n${d}\n${b}\n${G}\n\nfloat getUvFrame(vec2 uv) {\n  float aax = 2. * fwidth(uv.x);\n  float aay = 2. * fwidth(uv.y);\n\n  float left   = smoothstep(0., aax, uv.x);\n  float right = 1.0 - smoothstep(1. - aax, 1., uv.x);\n  float bottom = smoothstep(0., aay, uv.y);\n  float top = 1.0 - smoothstep(1. - aay, 1., uv.y);\n\n  return left * right * bottom * top;\n}\n\nmat2 rotate2D(float r) {\n  return mat2(cos(r), sin(r), -sin(r), cos(r));\n}\n\nfloat getCausticNoise(vec2 uv, float t, float scale) {\n  vec2 n = vec2(.1);\n  vec2 N = vec2(.1);\n  mat2 m = rotate2D(.5);\n  for (int j = 0; j < 6; j++) {\n    uv *= m;\n    n *= m;\n    vec2 q = uv * scale + float(j) + n + (.5 + .5 * float(j)) * (mod(float(j), 2.) - 1.) * t;\n    n += sin(q);\n    N += cos(q) / scale;\n    scale *= 1.1;\n  }\n  return (N.x + N.y + 1.);\n}\n\nvoid main() {\n  vec2 imageUV = v_imageUV;\n  vec2 patternUV = v_imageUV - .5;\n  patternUV = (patternUV * vec2(u_imageAspectRatio, 1.));\n  patternUV /= (.01 + .09 * u_size);\n\n  float t = u_time;\n\n  float wavesNoise = snoise((.3 + .1 * sin(t)) * .1 * patternUV + vec2(0., .4 * t));\n\n  float causticNoise = getCausticNoise(patternUV + u_waves * vec2(1., -1.) * wavesNoise, 2. * t, 1.5);\n\n  causticNoise += u_layering * getCausticNoise(patternUV + 2. * u_waves * vec2(1., -1.) * wavesNoise, 1.5 * t, 2.);\n  causticNoise = causticNoise * causticNoise;\n\n  float edgesDistortion = smoothstep(0., .1, imageUV.x);\n  edgesDistortion *= smoothstep(0., .1, imageUV.y);\n  edgesDistortion *= (smoothstep(1., 1.1, imageUV.x) + (1.0 - smoothstep(.8, .95, imageUV.x)));\n  edgesDistortion *= (1.0 - smoothstep(.9, 1., imageUV.y));\n  edgesDistortion = mix(edgesDistortion, 1., u_edges);\n\n  float causticNoiseDistortion = .02 * causticNoise * edgesDistortion;\n\n  float wavesDistortion = .1 * u_waves * wavesNoise;\n\n  imageUV += vec2(wavesDistortion, -wavesDistortion);\n  imageUV += (u_caustic * causticNoiseDistortion);\n\n  float frame = getUvFrame(imageUV);\n\n  vec4 image = texture(u_image, imageUV);\n  vec4 backColor = u_colorBack;\n  backColor.rgb *= backColor.a;\n\n  vec3 color = mix(backColor.rgb, image.rgb, image.a * frame);\n  float opacity = backColor.a + image.a * frame;\n\n  causticNoise = max(-.2, causticNoise);\n\n  float hightlight = .025 * u_highlights * causticNoise;\n  hightlight *= u_colorHighlight.a;\n  color = mix(color, u_colorHighlight.rgb, .05 * u_highlights * causticNoise);\n  opacity += hightlight;\n\n  color += hightlight * (.5 + .5 * wavesNoise);\n  opacity += hightlight * (.5 + .5 * wavesNoise);\n\n  opacity = clamp(opacity, 0., 1.);\n\n  fragColor = vec4(color, opacity);\n}\n`;var ho=`#version 300 es\nprecision mediump float;\n\nuniform vec2 u_resolution;\nuniform float u_pixelRatio;\nuniform float u_rotation;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorShadow;\nuniform vec4 u_colorHighlight;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform float u_size;\nuniform float u_shadows;\nuniform float u_angle;\nuniform float u_stretch;\nuniform float u_shape;\nuniform float u_distortion;\nuniform float u_highlights;\nuniform float u_distortionShape;\nuniform float u_shift;\nuniform float u_blur;\nuniform float u_edges;\nuniform float u_marginLeft;\nuniform float u_marginRight;\nuniform float u_marginTop;\nuniform float u_marginBottom;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\n\nin vec2 v_imageUV;\n\nout vec4 fragColor;\n\n${d}\n${b}\n${z}\n\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = hash21(i);\n  float b = hash21(i + vec2(1.0, 0.0));\n  float c = hash21(i + vec2(0.0, 1.0));\n  float d = hash21(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nfloat getUvFrame(vec2 uv, float softness) {\n  float aax = 2. * fwidth(uv.x);\n  float aay = 2. * fwidth(uv.y);\n  float left   = smoothstep(0., aax + softness, uv.x);\n  float right  = 1. - smoothstep(1. - softness - aax, 1., uv.x);\n  float bottom = smoothstep(0., aay + softness, uv.y);\n  float top    = 1. - smoothstep(1. - softness - aay, 1., uv.y);\n  return left * right * bottom * top;\n}\n\nconst int MAX_RADIUS = 50;\nvec4 samplePremultiplied(sampler2D tex, vec2 uv) {\n  vec4 c = texture(tex, uv);\n  c.rgb *= c.a;\n  return c;\n}\nvec4 getBlur(sampler2D tex, vec2 uv, vec2 texelSize, vec2 dir, float sigma) {\n  if (sigma <= .5) return texture(tex, uv);\n  int radius = int(min(float(MAX_RADIUS), ceil(3.0 * sigma)));\n\n  float twoSigma2 = 2.0 * sigma * sigma;\n  float gaussianNorm = 1.0 / sqrt(TWO_PI * sigma * sigma);\n\n  vec4 sum = samplePremultiplied(tex, uv) * gaussianNorm;\n  float weightSum = gaussianNorm;\n\n  for (int i = 1; i <= MAX_RADIUS; i++) {\n    if (i > radius) break;\n\n    float x = float(i);\n    float w = exp(-(x * x) / twoSigma2) * gaussianNorm;\n\n    vec2 offset = dir * texelSize * x;\n    vec4 s1 = samplePremultiplied(tex, uv + offset);\n    vec4 s2 = samplePremultiplied(tex, uv - offset);\n\n    sum += (s1 + s2) * w;\n    weightSum += 2.0 * w;\n  }\n\n  vec4 result = sum / weightSum;\n  if (result.a > 0.) {\n    result.rgb /= result.a;\n  }\n\n  return result;\n}\n\nvec2 rotateAspect(vec2 p, float a, float aspect) {\n  p.x *= aspect;\n  p = rotate(p, a);\n  p.x /= aspect;\n  return p;\n}\n\nfloat smoothFract(float x) {\n  float f = fract(x);\n  float w = fwidth(x);\n\n  float edge = abs(f - 0.5) - 0.5;\n  float band = smoothstep(-w, w, edge);\n\n  return mix(f, 1.0 - f, band);\n}\n\nvoid main() {\n\n  float patternRotation = -u_angle * PI / 180.;\n  float patternSize = mix(200., 5., u_size);\n\n  vec2 uv = v_imageUV;\n\n  vec2 uvMask = gl_FragCoord.xy / u_resolution.xy;\n  vec2 sw = vec2(.005);\n  vec4 margins = vec4(u_marginLeft, u_marginTop, u_marginRight, u_marginBottom);\n  float mask =\n  smoothstep(margins[0], margins[0] + sw.x, uvMask.x + sw.x) *\n  smoothstep(margins[2], margins[2] + sw.x, 1.0 - uvMask.x + sw.x) *\n  smoothstep(margins[1], margins[1] + sw.y, uvMask.y + sw.y) *\n  smoothstep(margins[3], margins[3] + sw.y, 1.0 - uvMask.y + sw.y);\n  float maskOuter =\n  smoothstep(margins[0] - sw.x, margins[0], uvMask.x + sw.x) *\n  smoothstep(margins[2] - sw.x, margins[2], 1.0 - uvMask.x + sw.x) *\n  smoothstep(margins[1] - sw.y, margins[1], uvMask.y + sw.y) *\n  smoothstep(margins[3] - sw.y, margins[3], 1.0 - uvMask.y + sw.y);\n  float maskStroke = maskOuter - mask;\n  float maskInner =\n  smoothstep(margins[0] - 2. * sw.x, margins[0], uvMask.x) *\n  smoothstep(margins[2] - 2. * sw.x, margins[2], 1.0 - uvMask.x) *\n  smoothstep(margins[1] - 2. * sw.y, margins[1], uvMask.y) *\n  smoothstep(margins[3] - 2. * sw.y, margins[3], 1.0 - uvMask.y);\n  float maskStrokeInner = maskInner - mask;\n\n  uv -= .5;\n  uv *= patternSize;\n  uv = rotateAspect(uv, patternRotation, u_imageAspectRatio);\n\n  float curve = 0.;\n  float patternY = uv.y / u_imageAspectRatio;\n  if (u_shape > 4.5) {\n    // pattern\n    curve = .5 + .5 * sin(.5 * PI * uv.x) * cos(.5 * PI * patternY);\n  } else if (u_shape > 3.5) {\n    // zigzag\n    curve = 10. * abs(fract(.1 * patternY) - .5);\n  } else if (u_shape > 2.5) {\n    // wave\n    curve = 4. * sin(.23 * patternY);\n  } else if (u_shape > 1.5) {\n    // lines irregular\n    curve = .5 + .5 * sin(.5 * uv.x) * sin(1.7 * uv.x);\n  } else {\n    // lines\n  }\n\n  vec2 UvToFract = uv + curve;\n  vec2 fractOrigUV = fract(uv);\n  vec2 floorOrigUV = floor(uv);\n\n  float x = smoothFract(UvToFract.x);\n  float xNonSmooth = fract(UvToFract.x) + .0001;\n\n  float highlightsWidth = 2. * max(.001, fwidth(UvToFract.x));\n  highlightsWidth += 2. * maskStrokeInner;\n  float highlights = smoothstep(0., highlightsWidth, xNonSmooth);\n  highlights *= smoothstep(1., 1. - highlightsWidth, xNonSmooth);\n  highlights = 1. - highlights;\n  highlights *= u_highlights;\n  highlights = clamp(highlights, 0., 1.);\n  highlights *= mask;\n\n  float shadows = pow(x, 1.3);\n  float distortion = 0.;\n  float fadeX = 1.;\n  float frameFade = 0.;\n\n  float aa = fwidth(xNonSmooth);\n  aa = max(aa, fwidth(uv.x));\n  aa = max(aa, fwidth(UvToFract.x));\n  aa = max(aa, .0001);\n\n  if (u_distortionShape == 1.) {\n    distortion = -pow(1.5 * x, 3.);\n    distortion += (.5 - u_shift);\n\n    frameFade = pow(1.5 * x, 3.);\n    aa = max(.2, aa);\n    aa += mix(.2, 0., u_size);\n    fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n    distortion = mix(.5, distortion, fadeX);\n  } else if (u_distortionShape == 2.) {\n    distortion = 2. * pow(x, 2.);\n    distortion -= (.5 + u_shift);\n\n    frameFade = pow(abs(x - .5), 4.);\n    aa = max(.2, aa);\n    aa += mix(.2, 0., u_size);\n    fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n    distortion = mix(.5, distortion, fadeX);\n    frameFade = mix(1., frameFade, .5 * fadeX);\n  } else if (u_distortionShape == 3.) {\n    distortion = pow(2. * (xNonSmooth - .5), 6.);\n    distortion -= .25;\n    distortion -= u_shift;\n\n    frameFade = 1. - 2. * pow(abs(x - .4), 2.);\n    aa = .15;\n    aa += mix(.1, 0., u_size);\n    fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n    frameFade = mix(1., frameFade, fadeX);\n\n  } else if (u_distortionShape == 4.) {\n    x = xNonSmooth;\n    distortion = sin((x + .25) * TWO_PI);\n    shadows = .5 + .5 * asin(distortion) / (.5 * PI);\n    distortion *= .5;\n    distortion -= u_shift;\n    frameFade = .5 + .5 * sin(x * TWO_PI);\n  } else if (u_distortionShape == 5.) {\n    distortion -= pow(abs(x), .2) * x;\n    distortion += .33;\n    distortion -= 3. * u_shift;\n    distortion *= .33;\n\n    frameFade = .3 * (smoothstep(.0, 1., x));\n    shadows = pow(x, 2.5);\n\n    aa = max(.1, aa);\n    aa += mix(.1, 0., u_size);\n    fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n    distortion *= fadeX;\n  }\n\n  vec2 dudx = dFdx(v_imageUV);\n  vec2 dudy = dFdy(v_imageUV);\n  vec2 grainUV = v_imageUV - .5;\n  grainUV *= (.8 / vec2(length(dudx), length(dudy)));\n  grainUV += .5;\n  float grain = valueNoise(grainUV);\n  grain = smoothstep(.4, .7, grain);\n  grain *= u_grainMixer;\n  distortion = mix(distortion, 0., grain);\n\n  shadows = min(shadows, 1.);\n  shadows += maskStrokeInner;\n  shadows *= mask;\n  shadows = min(shadows, 1.);\n  shadows *= pow(u_shadows, 2.);\n  shadows = clamp(shadows, 0., 1.);\n\n  distortion *= 3. * u_distortion;\n  frameFade *= u_distortion;\n\n  fractOrigUV.x += distortion;\n  floorOrigUV = rotateAspect(floorOrigUV, -patternRotation, u_imageAspectRatio);\n  fractOrigUV = rotateAspect(fractOrigUV, -patternRotation, u_imageAspectRatio);\n\n  uv = (floorOrigUV + fractOrigUV) / patternSize;\n  uv += pow(maskStroke, 4.);\n\n  uv += vec2(.5);\n\n  uv = mix(v_imageUV, uv, smoothstep(0., .7, mask));\n  float blur = mix(0., 50., u_blur);\n  blur = mix(0., blur, smoothstep(.5, 1., mask));\n\n  float edgeDistortion = mix(.0, .04, u_edges);\n  edgeDistortion += .06 * frameFade * u_edges;\n  edgeDistortion *= mask;\n  float frame = getUvFrame(uv, edgeDistortion);\n\n  float stretch = 1. - smoothstep(0., .5, xNonSmooth) * smoothstep(1., 1. - .5, xNonSmooth);\n  stretch = pow(stretch, 2.);\n  stretch *= mask;\n  stretch *= getUvFrame(uv, .1 + .05 * mask * frameFade);\n  uv.y = mix(uv.y, .5, u_stretch * stretch);\n\n  vec4 image = getBlur(u_image, uv, 1. / u_resolution / u_pixelRatio, vec2(0., 1.), blur);\n  image.rgb *= image.a;\n  vec4 backColor = u_colorBack;\n  backColor.rgb *= backColor.a;\n  vec4 highlightColor = u_colorHighlight;\n  highlightColor.rgb *= highlightColor.a;\n  vec4 shadowColor = u_colorShadow;\n\n  vec3 color = highlightColor.rgb * highlights;\n  float opacity = highlightColor.a * highlights;\n\n  shadows = mix(shadows * shadowColor.a, 0., highlights);\n  color = mix(color, shadowColor.rgb * shadowColor.a, .5 * shadows);\n  color += .5 * pow(shadows, .5) * shadowColor.rgb;\n  opacity += shadows;\n  color = clamp(color, vec3(0.), vec3(1.));\n  opacity = clamp(opacity, 0., 1.);\n\n  color += image.rgb * (1. - opacity) * frame;\n  opacity += image.a * (1. - opacity) * frame;\n\n  color += backColor.rgb * (1. - opacity);\n  opacity += backColor.a * (1. - opacity);\n\n  float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));\n  grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);\n  grainOverlay = pow(grainOverlay, 1.3);\n\n  float grainOverlayV = grainOverlay * 2. - 1.;\n  vec3 grainOverlayColor = vec3(step(0., grainOverlayV));\n  float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);\n  grainOverlayStrength = pow(grainOverlayStrength, .8);\n  grainOverlayStrength *= mask;\n  color = mix(color, grainOverlayColor, .35 * grainOverlayStrength);\n\n  opacity += .5 * grainOverlayStrength;\n  opacity = clamp(opacity, 0., 1.);\n\n  fragColor = vec4(color, opacity);\n}\n`,xo={lines:1,linesIrregular:2,wave:3,zigzag:4,pattern:5},_o={prism:1,lens:2,contour:3,cascade:4,flat:5};var yo=`#version 300 es\nprecision mediump float;\n\nuniform vec2 u_resolution;\nuniform float u_pixelRatio;\nuniform float u_originX;\nuniform float u_originY;\nuniform float u_worldWidth;\nuniform float u_worldHeight;\nuniform float u_fit;\n\nuniform float u_scale;\nuniform float u_rotation;\nuniform float u_offsetX;\nuniform float u_offsetY;\n\nuniform vec4 u_colorFront;\nuniform vec4 u_colorBack;\nuniform vec4 u_colorHighlight;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform float u_type;\nuniform float u_pxSize;\nuniform bool u_originalColors;\nuniform bool u_inverted;\nuniform float u_colorSteps;\n\nout vec4 fragColor;\n\n\n${z}\n${d}\n\nfloat getUvFrame(vec2 uv, vec2 pad) {\n  float aa = 0.0001;\n\n  float left   = smoothstep(-pad.x, -pad.x + aa, uv.x);\n  float right  = smoothstep(1.0 + pad.x, 1.0 + pad.x - aa, uv.x);\n  float bottom = smoothstep(-pad.y, -pad.y + aa, uv.y);\n  float top    = smoothstep(1.0 + pad.y, 1.0 + pad.y - aa, uv.y);\n\n  return left * right * bottom * top;\n}\n\nvec2 getImageUV(vec2 uv) {\n  vec2 boxOrigin = vec2(.5 - u_originX, u_originY - .5);\n  float r = u_rotation * PI / 180.;\n  mat2 graphicRotation = mat2(cos(r), sin(r), -sin(r), cos(r));\n  vec2 graphicOffset = vec2(-u_offsetX, u_offsetY);\n\n  vec2 imageBoxSize;\n  if (u_fit == 1.) { // contain\n    imageBoxSize.x = min(u_resolution.x / u_imageAspectRatio, u_resolution.y) * u_imageAspectRatio;\n  } else if (u_fit == 2.) { // cover\n    imageBoxSize.x = max(u_resolution.x / u_imageAspectRatio, u_resolution.y) * u_imageAspectRatio;\n  } else {\n    imageBoxSize.x = min(10.0, 10.0 / u_imageAspectRatio * u_imageAspectRatio);\n  }\n  imageBoxSize.y = imageBoxSize.x / u_imageAspectRatio;\n  vec2 imageBoxScale = u_resolution.xy / imageBoxSize;\n\n  vec2 imageUV = uv;\n  imageUV *= imageBoxScale;\n  imageUV += boxOrigin * (imageBoxScale - 1.);\n  imageUV += graphicOffset;\n  imageUV /= u_scale;\n  imageUV.x *= u_imageAspectRatio;\n  imageUV = graphicRotation * imageUV;\n  imageUV.x /= u_imageAspectRatio;\n\n  imageUV += .5;\n  imageUV.y = 1. - imageUV.y;\n\n  return imageUV;\n}\n\nconst int bayer2x2[4] = int[4](0, 2, 3, 1);\nconst int bayer4x4[16] = int[16](\n0, 8, 2, 10,\n12, 4, 14, 6,\n3, 11, 1, 9,\n15, 7, 13, 5\n);\n\nconst int bayer8x8[64] = int[64](\n0, 32, 8, 40, 2, 34, 10, 42,\n48, 16, 56, 24, 50, 18, 58, 26,\n12, 44, 4, 36, 14, 46, 6, 38,\n60, 28, 52, 20, 62, 30, 54, 22,\n3, 35, 11, 43, 1, 33, 9, 41,\n51, 19, 59, 27, 49, 17, 57, 25,\n15, 47, 7, 39, 13, 45, 5, 37,\n63, 31, 55, 23, 61, 29, 53, 21\n);\n\nfloat getBayerValue(vec2 uv, int size) {\n  ivec2 pos = ivec2(fract(uv / float(size)) * float(size));\n  int index = pos.y * size + pos.x;\n\n  if (size == 2) {\n    return float(bayer2x2[index]) / 4.0;\n  } else if (size == 4) {\n    return float(bayer4x4[index]) / 16.0;\n  } else if (size == 8) {\n    return float(bayer8x8[index]) / 64.0;\n  }\n  return 0.0;\n}\n\n\nvoid main() {\n\n  float pxSize = u_pxSize * u_pixelRatio;\n  vec2 pxSizeUV = gl_FragCoord.xy - .5 * u_resolution;\n  pxSizeUV /= pxSize;\n  vec2 canvasPixelizedUV = (floor(pxSizeUV) + .5) * pxSize;\n  vec2 normalizedUV = canvasPixelizedUV / u_resolution;\n\n  vec2 imageUV = getImageUV(normalizedUV);\n  vec2 ditheringNoiseUV = canvasPixelizedUV;\n  vec4 image = texture(u_image, imageUV);\n  float frame = getUvFrame(imageUV, pxSize / u_resolution);\n\n  int type = int(floor(u_type));\n  float dithering = 0.0;\n\n  float lum = dot(vec3(.2126, .7152, .0722), image.rgb);\n  lum = u_inverted ? (1. - lum) : lum;\n\n  switch (type) {\n    case 1: {\n      dithering = step(hash21(ditheringNoiseUV), lum);\n    } break;\n    case 2:\n    dithering = getBayerValue(pxSizeUV, 2);\n    break;\n    case 3:\n    dithering = getBayerValue(pxSizeUV, 4);\n    break;\n    default :\n    dithering = getBayerValue(pxSizeUV, 8);\n    break;\n  }\n\n  float colorSteps = max(floor(u_colorSteps), 1.);\n  vec3 color = vec3(0.0);\n  float opacity = 1.;\n\n  dithering -= .5;\n  float brightness = clamp(lum + dithering / colorSteps, 0.0, 1.0);\n  brightness = mix(0.0, brightness, frame);\n  brightness = mix(0.0, brightness, image.a);\n  float quantLum = floor(brightness * colorSteps + 0.5) / colorSteps;\n  quantLum = mix(0.0, quantLum, frame);\n\n  if (u_originalColors == true) {\n    vec3 normColor = image.rgb / max(lum, 0.001);\n    color = normColor * quantLum;\n\n    float quantAlpha = floor(image.a * colorSteps + 0.5) / colorSteps;\n    opacity = mix(quantLum, 1., quantAlpha);\n  } else {\n    vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n    float fgOpacity = u_colorFront.a;\n    vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n    float bgOpacity = u_colorBack.a;\n    vec3 hlColor = u_colorHighlight.rgb * u_colorHighlight.a;\n    float hlOpacity = u_colorHighlight.a;\n\n    fgColor = mix(fgColor, hlColor, step(1.02 - .02 * u_colorSteps, brightness));\n    fgOpacity = mix(fgOpacity, hlOpacity, step(1.02 - .02 * u_colorSteps, brightness));\n\n    color = fgColor * quantLum;\n    opacity = fgOpacity * quantLum;\n    color += bgColor * (1.0 - opacity);\n    opacity += bgOpacity * (1.0 - opacity);\n  }\n\n  fragColor = vec4(color, opacity);\n}\n`;var Fe={maxSamples:50},Ao=`#version 300 es\nprecision mediump float;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\nuniform float u_spread;\nuniform float u_bias;\nuniform float u_angle;\nuniform float u_perspective;\nuniform float u_count;\nuniform float u_dispersion;\nuniform float u_dispersionShift;\nuniform float u_dispersionColor;\nuniform float u_focusCenter;\nuniform float u_focusEdges;\nuniform float u_swirl;\nuniform float u_noise;\nuniform float u_noiseFrequency;\nuniform float u_noiseOffset;\nuniform float u_lensBulge;\nuniform float u_lensCircle;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\nuniform float u_imageX;\nuniform float u_imageY;\n\nin vec2 v_imageUV;\n\nout vec4 fragColor;\n\n${d}\n${z}\n${b}\n\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = hash21(i);\n  float b = hash21(i + vec2(1., 0.));\n  float c = hash21(i + vec2(0., 1.));\n  float d = hash21(i + vec2(1., 1.));\n  vec2 u = f * f * (3. - 2. * f);\n  return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);\n}\n\nfloat getUvFrame(vec2 uv) {\n  vec2 invAA = 1. / clamp(fwidth(uv), 1e-5, .02);\n  vec2 lo = clamp(uv * invAA + .5, 0., 1.);\n  vec2 hi = clamp((1. - uv) * invAA + .5, 0., 1.);\n  return lo.x * hi.x * lo.y * hi.y;\n}\n\nvec4 sampleOverWhite(vec2 uv) {\n  vec4 img = texture(u_image, uv);\n  float cover = img.a * getUvFrame(uv);\n  vec3 colorOverWhite = mix(vec3(1.), img.rgb, cover);\n  return vec4(colorOverWhite, cover);\n}\n\nvec3 hueColor(float hue) {\n  vec3 rgb = clamp(abs(mod(hue * 6. + vec3(0., 4., 2.), 6.) - 3.) - 1., 0., 1.);\n  rgb = rgb * rgb * (3. - 2. * rgb);\n  return rgb;\n}\n                                            \nfloat boxInradius() {\n  return .5 * min(u_imageAspectRatio, 1.);\n}\n\nfloat boxOutradius() {\n  return .5 * length(vec2(u_imageAspectRatio, 1.));\n}\n\nfloat spreadReach() {\n  return .7 * pow(u_spread, 1.3 + 2.7 * u_spread);\n}\n\nfloat innerCircleMask(float radius, float inradius) {\n  return 1. - smoothstep(.5 * inradius, 1.1 * inradius, radius);\n}\n\nfloat dispersionCurve(float t, float biasPow) {\n  float mirroredT = u_bias < 0. ? 1. - t : t;\n  float curved = pow(mirroredT, biasPow);\n  return u_bias < 0. ? 1. - curved : curved;\n}\n\nvec2 getSpread(vec2 fromCenter, float radius, vec2 warpedUV, float edgeAA, float inradius, float outradius, float reach, out float outStrength) {\n  float angleRad = radians(u_angle);\n  vec2 uniformDir = vec2(cos(angleRad), sin(angleRad));\n\n  float invInradius = 1. / inradius;\n  vec2 radialDir = fromCenter * invInradius;\n  float maxLen = (outradius + reach) * invInradius;\n  float radialLen = radius * invInradius;\n  if (radialLen > maxLen) radialDir *= maxLen / radialLen;\n  vec2 spreadDir = mix(uniformDir, radialDir, u_perspective);\n\n  float bandProximity = smoothstep(inradius * .8, inradius, radius);\n  float lensCircleMaxing = bandProximity * u_lensCircle * u_lensCircle * u_lensCircle;\n  spreadDir = mix(spreadDir, radialDir, lensCircleMaxing);\n\n  vec2 warpedAbs = abs(warpedUV - .5);\n  float inner = mix(1., smoothstep(0., mix(inradius, outradius, u_focusCenter), radius), u_focusCenter);\n  float boxDist = max(warpedAbs.x, warpedAbs.y) * 2.;\n  float outer = mix(1., 1. - min(boxDist, 1.), u_focusEdges);\n  float strength = inner * outer;\n\n  strength *= mix(1., mix(.15, .03, max(-u_lensBulge, 0.)), lensCircleMaxing);\n\n  vec2 outside = max(warpedAbs - .5, 0.);\n  float margin = max(reach * length(spreadDir) * (1. - u_lensCircle), edgeAA);\n  strength *= 1. - smoothstep(0., margin, length(outside));\n\n  outStrength = strength;\n  vec2 axis = spreadDir * (reach * strength);\n\n  if (u_noise > 0.) {\n    float turn = (valueNoise(fromCenter * u_noiseFrequency * 18. + u_noiseOffset * 30.) - .5) * 2. * u_noise;\n    float cs = cos(turn), sn = sin(turn);\n    axis = mat2(cs, -sn, sn, cs) * axis;\n  }\n\n  axis.x /= u_imageAspectRatio;\n  return axis;\n}\n\nvec2 lensWarp(vec2 fromCenter, float radius, float inradius, out float bulgeFade) {\n  bulgeFade = 1.;\n  if (u_lensBulge == 0. && u_lensCircle <= 0.) return fromCenter;\n  if (radius < 1e-5) return fromCenter;\n  \n  float r = radius;\n\n  if (u_lensBulge != 0.) {\n    float rn = radius / inradius;\n    float bulge = abs(u_lensBulge) * (u_lensBulge > 0. ? 1.4 : 1.2);\n    if (u_lensBulge > 0.) bulgeFade = 1. - smoothstep(1.45, 1.53, rn * bulge);\n    float map = u_lensBulge > 0.\n      ? tan(min(rn * bulge, 1.53)) / tan(bulge)\n      : atan(rn * tan(bulge)) / bulge;\n    float bulgeScale = map / rn;\n    fromCenter *= bulgeScale;\n    r *= bulgeScale;\n  }\n\n  if (u_lensCircle > 0.) {\n    vec2 dir = fromCenter / max(r, 1e-5);\n    vec2 halfBox = vec2(u_imageAspectRatio, 1.) * .5;\n    float rBox = min(halfBox.x / max(abs(dir.x), 1e-4), halfBox.y / max(abs(dir.y), 1e-4));\n    float band = inradius * mix(.03, .2, .5 * (u_lensBulge + 1.));\n    float innerEdge = inradius - band;\n    float over = smoothstep(0., 1., (r - innerEdge) / band);\n    float g = r + (rBox - inradius) * pow(over, 14.);\n    fromCenter = dir * mix(r, g, u_lensCircle);\n  }\n\n  return fromCenter;\n}\n\nvoid main() {\n  vec2 uv = v_imageUV;\n\n  float invAspect = 1. / u_imageAspectRatio;\n  float inradius = boxInradius();\n  float outradius = boxOutradius();\n  float reach = spreadReach();\n\n  vec2 fromCenter = uv - .5;\n  fromCenter.x *= u_imageAspectRatio;\n  float radius = length(fromCenter);\n\n  float bulgeFade;\n  vec2 warpedFromCenter = lensWarp(fromCenter, radius, inradius, bulgeFade);\n  vec2 baseUV = vec2(warpedFromCenter.x * invAspect, warpedFromCenter.y) + .5;\n\n  vec2 baseDerivative = fwidth(baseUV);\n  float edgeAA = clamp(2. * max(baseDerivative.x, baseDerivative.y), .001, .02);\n\n  float spreadStrength;\n  vec2 spreadAxis = getSpread(fromCenter, radius, baseUV, edgeAA, inradius, outradius, reach, spreadStrength);\n\n  vec2 grainUV = vec2(0.);\n  if (u_grainMixer > 0. || u_grainOverlay > 0.) {\n    vec2 dudx = dFdx(v_imageUV);\n    vec2 dudy = dFdy(v_imageUV);\n    grainUV = (v_imageUV - .5) * (.8 / vec2(length(dudx), length(dudy))) + .5;\n  }\n\n  if (u_grainMixer > 0.) {\n    float grainSeed = valueNoise(grainUV);\n    vec2 jit = fract(grainSeed * vec2(157.31, 113.57)) * 2. - 1.;\n    spreadAxis += jit * .3 * u_grainMixer * length(spreadAxis);\n  }\n\n  float count = floor(u_count);\n  int countInteger = int(count);\n\n  float invCount = 1. / count;\n  float invSpan = 1. / max(count - 1., 1.);\n  float hueBase = u_dispersionColor + .5;\n  float biasPower = 1. + 2. * abs(u_bias);\n  vec2 tapBias = .5 - vec2(u_imageX, u_imageY);\n\n  float centerAmount = clamp(1. - u_dispersionShift, 0., 1.);\n  float edgesAmount = clamp(1. + u_dispersionShift, 0., 1.);\n  float dispersion = u_dispersion * mix(edgesAmount, centerAmount, innerCircleMask(radius, inradius));\n  float dispersionPower = pow(dispersion, .8);\n\n  float warpedRadius = length(warpedFromCenter);\n  float swirlAngle = u_swirl * .4 * PI * spreadStrength * u_spread * min(1., inradius / max(warpedRadius, 1e-4));\n\n  vec3 colorSum = vec3(0.);\n  vec3 weightSum = vec3(0.);\n  float coverSum = 0.;\n\n  for (int i = 0; i < ${Fe.maxSamples}; i++) {\n    if (i >= countInteger) break;\n\n    float layer = float(i);\n    float hue = hueBase + layer * invCount;\n\n    float spread = layer * invSpan;\n    if (u_bias != 0.) spread = dispersionCurve(spread, biasPower);\n\n    // mix(axis, -axis, spread) is axis scaled by the signed position along the fan\n    float fanPos = 1. - 2. * spread;\n    vec2 tapUV = baseUV + spreadAxis * fanPos - .5;\n\n    if (u_swirl != 0.) {\n      tapUV.x *= u_imageAspectRatio;\n      tapUV = rotate(tapUV, swirlAngle * fanPos);\n      tapUV.x *= invAspect;\n    }\n\n    vec4 tap = sampleOverWhite(tapUV + tapBias);\n    vec3 weight = 1. - dispersionPower * hueColor(hue);\n\n    colorSum += tap.rgb * weight;\n    weightSum += weight;\n    coverSum += tap.a;\n  }\n\n  vec3 color = colorSum / max(weightSum, 1e-4);\n  float coverAvg = coverSum * invCount;\n\n  float ground = min(color.r, min(color.g, color.b));\n  float alpha = max(coverAvg, 1. - ground);\n  vec3 premult = max(color - (1. - alpha), 0.);\n  fragColor = vec4(premult, alpha) * bulgeFade;\n\n  if (u_grainOverlay > 0.) {\n    float grain = valueNoise(rotate(grainUV, 1.) + vec2(3.));\n    grain = mix(grain, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);\n    grain = pow(grain, 1.3);\n    float grainV = grain * 2. - 1.;\n    float grainStrength = pow(u_grainOverlay * abs(grainV), .8) * fragColor.a;\n    fragColor.rgb = mix(fragColor.rgb, vec3(step(0., grainV)) * fragColor.a, .35 * grainStrength);\n  }\n}\n`;var Se={maxColorCount:10},bo=`#version 300 es\nprecision highp float;\n\nin mediump vec2 v_imageUV;\nin mediump vec2 v_objectUV;\nout vec4 fragColor;\n\nuniform sampler2D u_image;\nuniform float u_time;\nuniform mediump float u_imageAspectRatio;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[${Se.maxColorCount}];\nuniform float u_colorsCount;\n\nuniform float u_angle;\nuniform float u_noise;\nuniform float u_innerGlow;\nuniform float u_outerGlow;\nuniform float u_contour;\n\n#define TWO_PI 6.28318530718\n#define PI 3.14159265358979323846\n\nfloat getImgFrame(vec2 uv, float th) {\n  float frame = 1.;\n  frame *= smoothstep(0., th, uv.y);\n  frame *= 1. - smoothstep(1. - th, 1., uv.y);\n  frame *= smoothstep(0., th, uv.x);\n  frame *= 1. - smoothstep(1. - th, 1., uv.x);\n  return frame;\n}\n\nfloat circle(vec2 uv, vec2 c, vec2 r) {\n  return 1. - smoothstep(r[0], r[1], length(uv - c));\n}\n\nfloat lst(float edge0, float edge1, float x) {\n  return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n}\n\nfloat sst(float edge0, float edge1, float x) {\n  return smoothstep(edge0, edge1, x);\n}\n\nfloat shadowShape(vec2 uv, float t, float contour) {\n  vec2 scaledUV = uv;\n\n  // base shape tranjectory\n  float posY = mix(-1., 2., t);\n\n  // scaleX when it's moving down\n  scaledUV.y -= .5;\n  float mainCircleScale = sst(0., .8, posY) * lst(1.4, .9, posY);\n  scaledUV *= vec2(1., 1. + 1.5 * mainCircleScale);\n  scaledUV.y += .5;\n\n  // base shape\n  float innerR = .4;\n  float outerR = 1. - .3 * (sst(.1, .2, t) * (1. - sst(.2, .5, t)));\n  float s = circle(scaledUV, vec2(.5, posY - .2), vec2(innerR, outerR));\n  float shapeSizing = sst(.2, .3, t) * sst(.6, .3, t);\n  s = pow(s, 1.4);\n  s *= 1.2;\n\n  // flat gradient to take over the shadow shape\n  float topFlattener = 0.;\n  {\n    float pos = posY - uv.y;\n    float edge = 1.2;\n    topFlattener = lst(-.4, 0., pos) * (1. - sst(.0, edge, pos));\n    topFlattener = pow(topFlattener, 3.);\n    float topFlattenerMixer = (1. - sst(.0, .3, pos));\n    s = mix(topFlattener, s, topFlattenerMixer);\n  }\n\n  // apple right circle\n  {\n    float visibility = sst(.6, .7, t) * (1. - sst(.8, .9, t));\n    float angle = -2. -t * TWO_PI;\n    float rightCircle = circle(uv, vec2(.95 - .2 * cos(angle), .4 - .1 * sin(angle)), vec2(.15, .3));\n    rightCircle *= visibility;\n    s = mix(s, 0., rightCircle);\n  }\n\n  // apple top circle\n  {\n    float topCircle = circle(uv, vec2(.5, .19), vec2(.05, .25));\n    topCircle += 2. * contour * circle(uv, vec2(.5, .19), vec2(.2, .5));\n    float visibility = .55 * sst(.2, .3, t) * (1. - sst(.3, .45, t));\n    topCircle *= visibility;\n    s = mix(s, 0., topCircle);\n  }\n\n  float leafMask = circle(uv, vec2(.53, .13), vec2(.08, .19));\n  leafMask = mix(leafMask, 0., 1. - sst(.4, .54, uv.x));\n  leafMask = mix(0., leafMask, sst(.0, .2, uv.y));\n  leafMask *= (sst(.5, 1.1, posY) * sst(1.5, 1.3, posY));\n  s += leafMask;\n\n  // apple bottom circle\n  {\n    float visibility = sst(.0, .4, t) * (1. - sst(.6, .8, t));\n    s = mix(s, 0., visibility * circle(uv, vec2(.52, .92), vec2(.09, .25)));\n  }\n\n  // random balls that are invisible if apple logo is selected\n  {\n    float pos = sst(.0, .6, t) * (1. - sst(.6, 1., t));\n    s = mix(s, .5, circle(uv, vec2(.0, 1.2 - .5 * pos), vec2(.1, .3)));\n    s = mix(s, .0, circle(uv, vec2(1., .5 + .5 * pos), vec2(.1, .3)));\n\n    s = mix(s, 1., circle(uv, vec2(.95, .2 + .2 * sst(.3, .4, t) * sst(.7, .5, t)), vec2(.07, .22)));\n    s = mix(s, 1., circle(uv, vec2(.95, .2 + .2 * sst(.3, .4, t) * (1. - sst(.5, .7, t))), vec2(.07, .22)));\n    s /= max(1e-4, sst(1., .85, uv.y));\n  }\n\n  s = clamp(0., 1., s);\n  return s;\n}\n\nfloat blurEdge3x3(sampler2D tex, vec2 uv, vec2 dudx, vec2 dudy, float radius, float centerSample) {\n  vec2 texel = 1.0 / vec2(textureSize(tex, 0));\n  vec2 r = radius * texel;\n\n  float w1 = 1.0, w2 = 2.0, w4 = 4.0;\n  float norm = 16.0;\n  float sum = w4 * centerSample;\n\n  sum += w2 * textureGrad(tex, uv + vec2(0.0, -r.y), dudx, dudy).g;\n  sum += w2 * textureGrad(tex, uv + vec2(0.0, r.y), dudx, dudy).g;\n  sum += w2 * textureGrad(tex, uv + vec2(-r.x, 0.0), dudx, dudy).g;\n  sum += w2 * textureGrad(tex, uv + vec2(r.x, 0.0), dudx, dudy).g;\n\n  sum += w1 * textureGrad(tex, uv + vec2(-r.x, -r.y), dudx, dudy).g;\n  sum += w1 * textureGrad(tex, uv + vec2(r.x, -r.y), dudx, dudy).g;\n  sum += w1 * textureGrad(tex, uv + vec2(-r.x, r.y), dudx, dudy).g;\n  sum += w1 * textureGrad(tex, uv + vec2(r.x, r.y), dudx, dudy).g;\n\n  return sum / norm;\n}\n\nvoid main() {\n  vec2 uv = v_objectUV + .5;\n  uv.y = 1. - uv.y;\n\n  vec2 imgUV = v_imageUV;\n  imgUV -= .5;\n  imgUV *= 0.5714285714285714;\n  imgUV += .5;\n  float imgSoftFrame = getImgFrame(imgUV, .03);\n\n  vec4 img = texture(u_image, imgUV);\n  vec2 dudx = dFdx(imgUV);\n  vec2 dudy = dFdy(imgUV);\n\n  if (img.a == 0.) {\n    fragColor = u_colorBack;\n    return;\n  }\n\n  float t = .1 * u_time;\n  t -= .3;\n\n  float tCopy = t + 1. / 3.;\n  float tCopy2 = t + 2. / 3.;\n\n  t = mod(t, 1.);\n  tCopy = mod(tCopy, 1.);\n  tCopy2 = mod(tCopy2, 1.);\n\n  vec2 animationUV = imgUV - vec2(.5);\n  float angle = -u_angle * PI / 180.;\n  float cosA = cos(angle);\n  float sinA = sin(angle);\n  animationUV = vec2(\n  animationUV.x * cosA - animationUV.y * sinA,\n  animationUV.x * sinA + animationUV.y * cosA\n  ) + vec2(.5);\n\n  float shape = img[0];\n\n  img[1] = blurEdge3x3(u_image, imgUV, dudx, dudy, 8., img[1]);\n\n  float outerBlur = 1. - mix(1., img[1], shape);\n  float innerBlur = mix(img[1], 0., shape);\n  float contour = mix(img[2], 0., shape);\n\n  outerBlur *= imgSoftFrame;\n\n  float shadow = shadowShape(animationUV, t, innerBlur);\n  float shadowCopy = shadowShape(animationUV, tCopy, innerBlur);\n  float shadowCopy2 = shadowShape(animationUV, tCopy2, innerBlur);\n\n  float inner = .8 + .8 * innerBlur;\n  inner = mix(inner, 0., shadow);\n  inner = mix(inner, 0., shadowCopy);\n  inner = mix(inner, 0., shadowCopy2);\n\n  inner *= mix(0., 2., u_innerGlow);\n\n  inner += (u_contour * 2.) * contour;\n  inner = min(1., inner);\n  inner *= (1. - shape);\n\n  float outer = 0.;\n  {\n    t *= 3.;\n    t = mod(t - .1, 1.);\n\n    outer = .9 * pow(outerBlur, .8);\n    float y = mod(animationUV.y - t, 1.);\n    float animatedMask = sst(.3, .65, y) * (1. - sst(.65, 1., y));\n    animatedMask = .5 + animatedMask;\n    outer *= animatedMask;\n    outer *= mix(0., 5., pow(u_outerGlow, 2.));\n    outer *= imgSoftFrame;\n  }\n\n  inner = pow(inner, 1.2);\n  float heat = clamp(inner + outer, 0., 1.);\n\n  heat += (.005 + .35 * u_noise) * (fract(sin(dot(uv, vec2(12.9898, 78.233))) * 43758.5453123) - .5);\n\n  float mixer = heat * u_colorsCount;\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n  float outerShape = 0.;\n  for (int i = 1; i < ${Se.maxColorCount+1}; i++) {\n    if (i > int(u_colorsCount)) break;\n    float m = clamp(mixer - float(i - 1), 0., 1.);\n    if (i == 1) {\n      outerShape = m;\n    }\n    vec4 c = u_colors[i - 1];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, m);\n  }\n\n  vec3 color = gradient.rgb * outerShape;\n  float opacity = gradient.a * outerShape;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1.0 - opacity);\n  opacity = opacity + u_colorBack.a * (1.0 - opacity);\n\n  color += .02 * (fract(sin(dot(uv + 1., vec2(12.9898, 78.233))) * 43758.5453123) - .5);\n\n  fragColor = vec4(color, opacity);\n}\n`;function Co(o){let e=document.createElement(\"canvas\"),a=1e3;return new Promise((r,u)=>{let n=new Image;n.crossOrigin=\"anonymous\",n.addEventListener(\"load\",()=>{(typeof o==\"string\"?o.endsWith(\".svg\"):o.type===\"image/svg+xml\")&&(n.width=a,n.height=a);let c=n.naturalWidth/n.naturalHeight,t=Math.floor(a*.15),p=Math.ceil(t*2.5),s=a,g=a;c>1?g=Math.floor(a/c):s=Math.floor(a*c),e.width=s+2*p,e.height=g+2*p;let f=e.getContext(\"2d\",{willReadFrequently:!0});if(!f)throw new Error(\"Failed to get canvas 2d context\");f.fillStyle=\"white\",f.fillRect(0,0,e.width,e.height),f.drawImage(n,p,p,s,g);let{width:m,height:I}=e,v=f.getImageData(0,0,m,I).data,i=m*I,l=new Uint8ClampedArray(i);for(let M=0;M<i;M++){let E=M*4,D=v[E]??0,X=v[E+1]??0,L=v[E+2]??0;l[M]=.299*D+.587*X+.114*L|0}let A=t,w=Math.max(1,Math.round(.12*t)),V=5,F=we(l,m,I,A,3),C=we(l,m,I,w,3),x=we(l,m,I,V,1),R=f.createImageData(m,I),Y=R.data;for(let M=0;M<i;M++){let E=M*4;Y[E]=x[M]??0,Y[E+1]=F[M]??0,Y[E+2]=C[M]??0,Y[E+3]=255}f.putImageData(R,0,0),e.toBlob(M=>{if(!M){u(new Error(\"Failed to create PNG blob\"));return}r({blob:M})},\"image/png\")}),n.addEventListener(\"error\",()=>{u(new Error(\"Failed to load image\"))}),n.src=typeof o==\"string\"?o:URL.createObjectURL(o)})}function Re(o,e,a,r){if(r<=0)return o.slice();let u=new Uint8ClampedArray(e*a),n=new Uint32Array(e*a);for(let c=0;c<a;c++){let t=0;for(let p=0;p<e;p++){let s=c*e+p,g=o[s]??0;t+=g,n[s]=t+(c>0?n[s-e]??0:0)}}for(let c=0;c<a;c++){let t=Math.max(0,c-r),p=Math.min(a-1,c+r);for(let s=0;s<e;s++){let g=Math.max(0,s-r),f=Math.min(e-1,s+r),m=p*e+f,I=p*e+(g-1),P=(t-1)*e+f,v=(t-1)*e+(g-1),i=n[m]??0,l=g>0?n[I]??0:0,A=t>0?n[P]??0:0,w=g>0&&t>0?n[v]??0:0,V=i-l-A+w,F=(f-g+1)*(p-t+1);u[c*e+s]=Math.round(V/F)}}return u}function we(o,e,a,r,u){if(r<=0||u<=1)return Re(o,e,a,r);let n=o,c=o;for(let t=0;t<u;t++)c=Re(n,e,a,r),n=c;return c}var wo=`#version 300 es\nprecision mediump float;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform vec2 u_resolution;\nuniform float u_time;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorTint;\n\nuniform float u_softness;\nuniform float u_repetition;\nuniform float u_shiftRed;\nuniform float u_shiftBlue;\nuniform float u_distortion;\nuniform float u_contour;\nuniform float u_angle;\n\nuniform float u_shape;\nuniform bool u_isImage;\n\nin vec2 v_objectUV;\nin vec2 v_responsiveUV;\nin vec2 v_responsiveBoxGivenSize;\nin vec2 v_imageUV;\n\nout vec4 fragColor;\n\n${d}\n${b}\n${G}\n\nfloat getColorChanges(float c1, float c2, float stripe_p, vec3 w, float blur, float bump, float tint) {\n\n  float ch = mix(c2, c1, smoothstep(.0, 2. * blur, stripe_p));\n\n  float border = w[0];\n  ch = mix(ch, c2, smoothstep(border, border + 2. * blur, stripe_p));\n\n  if (u_isImage == true) {\n    bump = smoothstep(.2, .8, bump);\n  }\n  border = w[0] + .4 * (1. - bump) * w[1];\n  ch = mix(ch, c1, smoothstep(border, border + 2. * blur, stripe_p));\n\n  border = w[0] + .5 * (1. - bump) * w[1];\n  ch = mix(ch, c2, smoothstep(border, border + 2. * blur, stripe_p));\n\n  border = w[0] + w[1];\n  ch = mix(ch, c1, smoothstep(border, border + 2. * blur, stripe_p));\n\n  float gradient_t = (stripe_p - w[0] - w[1]) / w[2];\n  float gradient = mix(c1, c2, smoothstep(0., 1., gradient_t));\n  ch = mix(ch, gradient, smoothstep(border, border + .5 * blur, stripe_p));\n\n  // Tint color is applied with color burn blending\n  ch = mix(ch, 1. - min(1., (1. - ch) / max(tint, 0.0001)), u_colorTint.a);\n  return ch;\n}\n\nfloat getImgFrame(vec2 uv, float th) {\n  float frame = 1.;\n  frame *= smoothstep(0., th, uv.y);\n  frame *= 1.0 - smoothstep(1. - th, 1., uv.y);\n  frame *= smoothstep(0., th, uv.x);\n  frame *= 1.0 - smoothstep(1. - th, 1., uv.x);\n  return frame;\n}\n\nfloat blurEdge3x3(sampler2D tex, vec2 uv, vec2 dudx, vec2 dudy, float radius, float centerSample) {\n  vec2 texel = 1.0 / vec2(textureSize(tex, 0));\n  vec2 r = radius * texel;\n\n  float w1 = 1.0, w2 = 2.0, w4 = 4.0;\n  float norm = 16.0;\n  float sum = w4 * centerSample;\n\n  sum += w2 * textureGrad(tex, uv + vec2(0.0, -r.y), dudx, dudy).r;\n  sum += w2 * textureGrad(tex, uv + vec2(0.0, r.y), dudx, dudy).r;\n  sum += w2 * textureGrad(tex, uv + vec2(-r.x, 0.0), dudx, dudy).r;\n  sum += w2 * textureGrad(tex, uv + vec2(r.x, 0.0), dudx, dudy).r;\n\n  sum += w1 * textureGrad(tex, uv + vec2(-r.x, -r.y), dudx, dudy).r;\n  sum += w1 * textureGrad(tex, uv + vec2(r.x, -r.y), dudx, dudy).r;\n  sum += w1 * textureGrad(tex, uv + vec2(-r.x, r.y), dudx, dudy).r;\n  sum += w1 * textureGrad(tex, uv + vec2(r.x, r.y), dudx, dudy).r;\n\n  return sum / norm;\n}\n\nfloat lst(float edge0, float edge1, float x) {\n  return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n}\n\nvoid main() {\n\n  const float firstFrameOffset = 2.8;\n  float t = .3 * (u_time + firstFrameOffset);\n\n  vec2 uv = v_imageUV;\n  vec2 dudx = dFdx(v_imageUV);\n  vec2 dudy = dFdy(v_imageUV);\n  vec4 img = textureGrad(u_image, uv, dudx, dudy);\n\n  if (u_isImage == false) {\n    uv = v_objectUV + .5;\n    uv.y = 1. - uv.y;\n  }\n\n  float cycleWidth = u_repetition;\n  float edge = 0.;\n  float contOffset = 1.;\n\n  vec2 rotatedUV = uv - vec2(.5);\n  float angle = (-u_angle + 70.) * PI / 180.;\n  float cosA = cos(angle);\n  float sinA = sin(angle);\n  rotatedUV = vec2(\n  rotatedUV.x * cosA - rotatedUV.y * sinA,\n  rotatedUV.x * sinA + rotatedUV.y * cosA\n  ) + vec2(.5);\n\n  if (u_isImage == true) {\n    float edgeRaw = img.r;\n    edge = blurEdge3x3(u_image, uv, dudx, dudy, 6., edgeRaw);\n    edge = pow(edge, 1.6);\n    edge *= mix(0.0, 1.0, smoothstep(0.0, 0.4, u_contour));\n  } else {\n    if (u_shape < 1.) {\n      // full-fill on canvas\n      vec2 borderUV = v_responsiveUV + .5;\n      float ratio = v_responsiveBoxGivenSize.x / v_responsiveBoxGivenSize.y;\n      vec2 mask = min(borderUV, 1. - borderUV);\n      vec2 pixel_thickness = min(250. / v_responsiveBoxGivenSize, vec2(.5));\n      float maskX = smoothstep(0.0, pixel_thickness.x, mask.x);\n      float maskY = smoothstep(0.0, pixel_thickness.y, mask.y);\n      maskX = pow(maskX, .25);\n      maskY = pow(maskY, .25);\n      edge = clamp(1. - maskX * maskY, 0., 1.);\n\n      uv = v_responsiveUV;\n      if (ratio > 1.) {\n        uv.y /= ratio;\n      } else {\n        uv.x *= ratio;\n      }\n      uv += .5;\n      uv.y = 1. - uv.y;\n\n      cycleWidth *= 2.;\n      contOffset = 1.5;\n\n    } else if (u_shape < 2.) {\n      // circle\n      vec2 shapeUV = uv - .5;\n      shapeUV *= .67;\n      edge = pow(clamp(3. * length(shapeUV), 0., 1.), 18.);\n    } else if (u_shape < 3.) {\n      // daisy\n      vec2 shapeUV = uv - .5;\n      shapeUV *= 1.68;\n\n      float r = length(shapeUV) * 2.;\n      float a = atan(shapeUV.y, shapeUV.x) + .2;\n      r *= (1. + .05 * sin(3. * a + 2. * t));\n      float f = abs(cos(a * 3.));\n      edge = smoothstep(f, f + .7, r);\n      edge *= edge;\n\n      uv *= .8;\n      cycleWidth *= 1.6;\n\n    } else if (u_shape < 4.) {\n      // diamond\n      vec2 shapeUV = uv - .5;\n      shapeUV = rotate(shapeUV, .25 * PI);\n      shapeUV *= 1.42;\n      shapeUV += .5;\n      vec2 mask = min(shapeUV, 1. - shapeUV);\n      vec2 pixel_thickness = vec2(.15);\n      float maskX = smoothstep(0.0, pixel_thickness.x, mask.x);\n      float maskY = smoothstep(0.0, pixel_thickness.y, mask.y);\n      maskX = pow(maskX, .25);\n      maskY = pow(maskY, .25);\n      edge = clamp(1. - maskX * maskY, 0., 1.);\n    } else if (u_shape < 5.) {\n      // metaballs\n      vec2 shapeUV = uv - .5;\n      shapeUV *= 1.3;\n      edge = 0.;\n      for (int i = 0; i < 5; i++) {\n        float fi = float(i);\n        float speed = 1.5 + 2./3. * sin(fi * 12.345);\n        float angle = -fi * 1.5;\n        vec2 dir1 = vec2(cos(angle), sin(angle));\n        vec2 dir2 = vec2(cos(angle + 1.57), sin(angle + 1.));\n        vec2 traj = .4 * (dir1 * sin(t * speed + fi * 1.23) + dir2 * cos(t * (speed * 0.7) + fi * 2.17));\n        float d = length(shapeUV + traj);\n        edge += pow(1.0 - clamp(d, 0.0, 1.0), 4.0);\n      }\n      edge = 1. - smoothstep(.65, .9, edge);\n      edge = pow(edge, 4.);\n    }\n\n    edge = mix(smoothstep(.9 - 2. * fwidth(edge), .9, edge), edge, smoothstep(0.0, 0.4, u_contour));\n\n  }\n\n  float opacity = 0.;\n  if (u_isImage == true) {\n    opacity = img.g;\n    float frame = getImgFrame(v_imageUV, 0.);\n    opacity *= frame;\n  } else {\n    opacity = 1. - smoothstep(.9 - 2. * fwidth(edge), .9, edge);\n    if (u_shape < 2.) {\n      edge = 1.2 * edge;\n    } else if (u_shape < 5.) {\n      edge = 1.8 * pow(edge, 1.5);\n    }\n  }\n\n  float diagBLtoTR = rotatedUV.x - rotatedUV.y;\n  float diagTLtoBR = rotatedUV.x + rotatedUV.y;\n\n  vec3 color = vec3(0.);\n  vec3 color1 = vec3(.98, 0.98, 1.);\n  vec3 color2 = vec3(.1, .1, .1 + .1 * smoothstep(.7, 1.3, diagTLtoBR));\n\n  vec2 grad_uv = uv - .5;\n\n  float dist = length(grad_uv + vec2(0., .2 * diagBLtoTR));\n  grad_uv = rotate(grad_uv, (.25 - .2 * diagBLtoTR) * PI);\n  float direction = grad_uv.x;\n\n  float bump = pow(1.8 * dist, 1.2);\n  bump = 1. - bump;\n  bump *= pow(uv.y, .3);\n\n\n  float thin_strip_1_ratio = .12 / cycleWidth * (1. - .4 * bump);\n  float thin_strip_2_ratio = .07 / cycleWidth * (1. + .4 * bump);\n  float wide_strip_ratio = (1. - thin_strip_1_ratio - thin_strip_2_ratio);\n\n  float thin_strip_1_width = cycleWidth * thin_strip_1_ratio;\n  float thin_strip_2_width = cycleWidth * thin_strip_2_ratio;\n\n  float noise = snoise(uv - t);\n\n  edge += (1. - edge) * u_distortion * noise;\n\n  direction += diagBLtoTR;\n  float contour = 0.;\n  direction -= 2. * noise * diagBLtoTR * (smoothstep(0., 1., edge) * (1.0 - smoothstep(0., 1., edge)));\n  direction *= mix(1., 1. - edge, smoothstep(.5, 1., u_contour));\n  direction -= 1.7 * edge * smoothstep(.5, 1., u_contour);\n  direction += .2 * pow(u_contour, 4.) * (1.0 - smoothstep(0., 1., edge));\n\n  bump *= clamp(pow(uv.y, .1), .3, 1.);\n  direction *= (.1 + (1.1 - edge) * bump);\n\n  direction *= (.4 + .6 * (1.0 - smoothstep(.5, 1., edge)));\n  direction += .18 * (smoothstep(.1, .2, uv.y) * (1.0 - smoothstep(.2, .4, uv.y)));\n  direction += .03 * (smoothstep(.1, .2, 1. - uv.y) * (1.0 - smoothstep(.2, .4, 1. - uv.y)));\n\n  direction *= (.5 + .5 * pow(uv.y, 2.));\n  direction *= cycleWidth;\n  direction -= t;\n\n\n  float colorDispersion = (1. - bump);\n  colorDispersion = clamp(colorDispersion, 0., 1.);\n  float dispersionRed = colorDispersion;\n  dispersionRed += .03 * bump * noise;\n  dispersionRed += 5. * (smoothstep(-.1, .2, uv.y) * (1.0 - smoothstep(.1, .5, uv.y))) * (smoothstep(.4, .6, bump) * (1.0 - smoothstep(.4, 1., bump)));\n  dispersionRed -= diagBLtoTR;\n\n  float dispersionBlue = colorDispersion;\n  dispersionBlue *= 1.3;\n  dispersionBlue += (smoothstep(0., .4, uv.y) * (1.0 - smoothstep(.1, .8, uv.y))) * (smoothstep(.4, .6, bump) * (1.0 - smoothstep(.4, .8, bump)));\n  dispersionBlue -= .2 * edge;\n\n  dispersionRed *= (u_shiftRed / 20.);\n  dispersionBlue *= (u_shiftBlue / 20.);\n\n  float blur = 0.;\n  float rExtraBlur = 0.;\n  float gExtraBlur = 0.;\n  if (u_isImage == true) {\n    float softness = 0.05 * u_softness;\n    blur = softness + .5 * smoothstep(1., 10., u_repetition) * smoothstep(.0, 1., edge);\n    float smallCanvasT = 1.0 - smoothstep(100., 500., min(u_resolution.x, u_resolution.y));\n    blur += smallCanvasT * smoothstep(.0, 1., edge);\n    rExtraBlur = softness * (0.05 + .1 * (u_shiftRed / 20.) * bump);\n    gExtraBlur = softness * 0.05 / max(0.001, abs(1. - diagBLtoTR));\n  } else {\n    blur = u_softness / 15. + .3 * contour;\n  }\n\n  vec3 w = vec3(thin_strip_1_width, thin_strip_2_width, wide_strip_ratio);\n  w[1] -= .02 * smoothstep(.0, 1., edge + bump);\n  float stripe_r = fract(direction + dispersionRed);\n  float r = getColorChanges(color1.r, color2.r, stripe_r, w, blur + fwidth(stripe_r) + rExtraBlur, bump, u_colorTint.r);\n  float stripe_g = fract(direction);\n  float g = getColorChanges(color1.g, color2.g, stripe_g, w, blur + fwidth(stripe_g) + gExtraBlur, bump, u_colorTint.g);\n  float stripe_b = fract(direction - dispersionBlue);\n  float b = getColorChanges(color1.b, color2.b, stripe_b, w, blur + fwidth(stripe_b), bump, u_colorTint.b);\n\n  color = vec3(r, g, b);\n  color *= opacity;\n\n  vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n  color = color + bgColor * (1. - opacity);\n  opacity = opacity + u_colorBack.a * (1. - opacity);\n\n  ${U}\n\n  fragColor = vec4(color, opacity);\n}\n`,q={measurePerformance:!1,workingSize:512,iterations:40};function So(o){let e=document.createElement(\"canvas\"),a=e.getContext(\"2d\"),r=typeof o==\"string\"&&o.startsWith(\"blob:\");return new Promise((u,n)=>{if(!o||!a){n(new Error(\"Invalid file or canvas context\"));return}let c=r&&fetch(o).then(s=>s.headers.get(\"Content-Type\")),t=new Image;t.crossOrigin=\"anonymous\";let p=performance.now();t.onload=async()=>{let s,g=await c;g?s=g===\"image/svg+xml\":typeof o==\"string\"?s=o.endsWith(\".svg\")||o.startsWith(\"data:image/svg+xml\"):s=o.type===\"image/svg+xml\";let f=t.width||t.naturalWidth,m=t.height||t.naturalHeight;if(s){let _=f/m;f>m?(f=4096,m=4096/_):(m=4096,f=4096*_),t.width=f,t.height=m}let I=Math.min(f,m),v=q.workingSize/I,i=Math.round(f*v),l=Math.round(m*v);q.measurePerformance&&(console.log(\"[Processing Mode]\"),console.log(`  Original: ${f}\\xD7${m}`),console.log(`  Working: ${i}\\xD7${l} (${(v*100).toFixed(1)}% scale)`),v<1&&console.log(`  Speedup: ~${Math.round(1/(v*v))}\\xD7`)),e.width=f,e.height=m;let A=document.createElement(\"canvas\");A.width=i,A.height=l;let w=A.getContext(\"2d\");w.drawImage(t,0,0,i,l);let V=performance.now(),C=w.getImageData(0,0,i,l).data,x=new Uint8Array(i*l),R=new Uint8Array(i*l),Y=0;for(let h=0,_=0;h<C.length;h+=4,_++){let O=C[h+3]===0?0:1;x[_]=O,Y+=O}let M=[],E=[];for(let h=0;h<l;h++)for(let _=0;_<i;_++){let S=h*i+_;if(!x[S])continue;let O=!1;_===0||_===i-1||h===0||h===l-1?O=!0:O=!x[S-1]||!x[S+1]||!x[S-i]||!x[S+i]||!x[S-i-1]||!x[S-i+1]||!x[S+i-1]||!x[S+i+1],O?(R[S]=1,M.push(S)):E.push(S)}q.measurePerformance&&(console.log(`[Mask Building] Time: ${(performance.now()-V).toFixed(2)}ms`),console.log(`  Shape pixels: ${Y} / ${i*l} (${(Y/(i*l)*100).toFixed(1)}%)`),console.log(`  Interior pixels: ${E.length}`),console.log(`  Boundary pixels: ${M.length}`));let D=Bo(x,R,new Uint32Array(E),new Uint32Array(M),i,l),X=performance.now(),L=Uo(D,x,R,i,l);q.measurePerformance&&console.log(`[Poisson Solve] Time: ${(performance.now()-X).toFixed(2)}ms`);let j=0,H;for(let h=0;h<E.length;h++){let _=E[h];L[_]>j&&(j=L[_])}let $=document.createElement(\"canvas\");$.width=i,$.height=l;let ie=$.getContext(\"2d\"),Q=ie.createImageData(i,l);for(let h=0;h<l;h++)for(let _=0;_<i;_++){let S=h*i+_,O=S*4;if(!x[S])Q.data[O]=255,Q.data[O+1]=255,Q.data[O+2]=255,Q.data[O+3]=0;else{let oe=255*(1-L[S]/j);Q.data[O]=oe,Q.data[O+1]=oe,Q.data[O+2]=oe,Q.data[O+3]=255}}ie.putImageData(Q,0,0),a.imageSmoothingEnabled=!0,a.imageSmoothingQuality=\"high\",a.drawImage($,0,0,i,l,0,0,f,m);let T=a.getImageData(0,0,f,m),ee=document.createElement(\"canvas\");ee.width=f,ee.height=m;let J=ee.getContext(\"2d\");J.drawImage(t,0,0,f,m);let re=J.getImageData(0,0,f,m);for(let h=0;h<T.data.length;h+=4){let _=re.data[h+3],S=T.data[h+3];_===0?(T.data[h]=255,T.data[h+1]=0):(T.data[h]=S===0?0:T.data[h],T.data[h+1]=_),T.data[h+2]=255,T.data[h+3]=255}a.putImageData(T,0,0),H=T,e.toBlob(h=>{if(!h){n(new Error(\"Failed to create PNG blob\"));return}if(q.measurePerformance){let _=performance.now()-p;if(console.log(`[Total Processing Time] ${_.toFixed(2)}ms`),v<1){let S=_*Math.pow(f*m/(i*l),1.5);console.log(`[Estimated time at full resolution] ~${S.toFixed(0)}ms`),console.log(`[Time saved] ~${(S-_).toFixed(0)}ms (${Math.round(S/_)}\\xD7 faster)`)}}u({imageData:H,pngBlob:h})},\"image/png\")},t.onerror=()=>n(new Error(\"Failed to load image\")),t.src=typeof o==\"string\"?o:URL.createObjectURL(o)})}function Bo(o,e,a,r,u,n){let c=a.length,t=new Int32Array(c*4);for(let p=0;p<c;p++){let s=a[p],g=s%u,f=Math.floor(s/u);t[p*4+0]=g<u-1&&o[s+1]?s+1:-1,t[p*4+1]=g>0&&o[s-1]?s-1:-1,t[p*4+2]=f>0&&o[s-u]?s-u:-1,t[p*4+3]=f<n-1&&o[s+u]?s+u:-1}return{interiorPixels:a,boundaryPixels:r,pixelCount:c,neighborIndices:t}}function Uo(o,e,a,r,u){let n=q.iterations,c=.01,t=new Float32Array(r*u),{interiorPixels:p,neighborIndices:s,pixelCount:g}=o,f=performance.now(),m=1.9,I=[],P=[];for(let v=0;v<g;v++){let i=p[v],l=i%r,A=Math.floor(i/r);(l+A)%2===0?I.push(v):P.push(v)}for(let v=0;v<n;v++){for(let i of I){let l=p[i],A=s[i*4+0],w=s[i*4+1],V=s[i*4+2],F=s[i*4+3],C=0;A>=0&&(C+=t[A]),w>=0&&(C+=t[w]),V>=0&&(C+=t[V]),F>=0&&(C+=t[F]);let x=(c+C)/4;t[l]=m*x+(1-m)*t[l]}for(let i of P){let l=p[i],A=s[i*4+0],w=s[i*4+1],V=s[i*4+2],F=s[i*4+3],C=0;A>=0&&(C+=t[A]),w>=0&&(C+=t[w]),V>=0&&(C+=t[V]),F>=0&&(C+=t[F]);let x=(c+C)/4;t[l]=m*x+(1-m)*t[l]}}if(q.measurePerformance){let v=performance.now()-f;console.log(`[Optimized Poisson Solver (SOR \\u03C9=${m})]`),console.log(`  Working size: ${r}\\xD7${u}`),console.log(`  Iterations: ${n}`),console.log(`  Time: ${v.toFixed(2)}ms`),console.log(`  Interior pixels processed: ${g}`),console.log(`  Speed: ${(n*g/(v*1e3)).toFixed(2)} Mpixels/sec`)}return t}var Vo={none:0,circle:1,daisy:2,diamond:3,metaballs:4};var ko=`#version 300 es\nprecision mediump float;\n\nuniform float u_rotation;\n\nuniform float u_time;\n\nuniform vec4 u_colorFront;\nuniform vec4 u_colorBack;\nuniform float u_radius;\nuniform float u_contrast;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform float u_size;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\nuniform float u_grainSize;\nuniform float u_grid;\nuniform bool u_originalColors;\nuniform bool u_inverted;\nuniform float u_type;\n\nin vec2 v_imageUV;\n\nout vec4 fragColor;\n\n${d}\n${b}\n${z}\n\nfloat valueNoise(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  float a = hash21(i);\n  float b = hash21(i + vec2(1.0, 0.0));\n  float c = hash21(i + vec2(0.0, 1.0));\n  float d = hash21(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  float x1 = mix(a, b, u.x);\n  float x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nfloat lst(float edge0, float edge1, float x) {\n  return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n}\n\nfloat sst(float edge0, float edge1, float x) {\n  return smoothstep(edge0, edge1, x);\n}\n\nfloat getCircle(vec2 uv, float r, float baseR) {\n  r = mix(.25 * baseR, 0., r);\n  float d = length(uv - .5);\n  float aa = fwidth(d);\n  return 1. - smoothstep(r - aa, r + aa, d);\n}\n\nfloat getCell(vec2 uv) {\n  float insideX = step(0.0, uv.x) * (1.0 - step(1.0, uv.x));\n  float insideY = step(0.0, uv.y) * (1.0 - step(1.0, uv.y));\n  return insideX * insideY;\n}\n\nfloat getCircleWithHole(vec2 uv, float r, float baseR) {\n  float cell = getCell(uv);\n\n  r = mix(.75 * baseR, 0., r);\n  float rMod = mod(r, .5);\n\n  float d = length(uv - .5);\n  float aa = fwidth(d);\n  float circle = 1. - smoothstep(rMod - aa, rMod + aa, d);\n  if (r < .5) {\n    return circle;\n  } else {\n    return cell - circle;\n  }\n}\n\nfloat getGooeyBall(vec2 uv, float r, float baseR) {\n  float d = length(uv - .5);\n  float sizeRadius = .3;\n  if (u_grid == 1.) {\n    sizeRadius = .42;\n  }\n  sizeRadius = mix(sizeRadius * baseR, 0., r);\n  d = 1. - sst(0., sizeRadius, d);\n\n  d = pow(d, 2. + baseR);\n  return d;\n}\n\nfloat getSoftBall(vec2 uv, float r, float baseR) {\n  float d = length(uv - .5);\n  float sizeRadius = clamp(baseR, 0., 1.);\n  sizeRadius = mix(.5 * sizeRadius, 0., r);\n  d = 1. - lst(0., sizeRadius, d);\n  float powRadius = 1. - lst(0., 2., baseR);\n  d = pow(d, 4. + 3. * powRadius);\n  return d;\n}\n\nfloat getUvFrame(vec2 uv, vec2 pad) {\n  float aa = 0.0001;\n\n  float left   = smoothstep(-pad.x, -pad.x + aa, uv.x);\n  float right  = smoothstep(1.0 + pad.x, 1.0 + pad.x - aa, uv.x);\n  float bottom = smoothstep(-pad.y, -pad.y + aa, uv.y);\n  float top    = smoothstep(1.0 + pad.y, 1.0 + pad.y - aa, uv.y);\n\n  return left * right * bottom * top;\n}\n\nfloat sigmoid(float x, float k) {\n  return 1.0 / (1.0 + exp(-k * (x - 0.5)));\n}\n\nfloat getLumAtPx(vec2 uv, float contrast) {\n  vec4 tex = texture(u_image, uv);\n  vec3 color = vec3(\n  sigmoid(tex.r, contrast),\n  sigmoid(tex.g, contrast),\n  sigmoid(tex.b, contrast)\n  );\n  float lum = dot(vec3(0.2126, 0.7152, 0.0722), color);\n  lum = mix(1., lum, tex.a);\n  lum = u_inverted ? (1. - lum) : lum;\n  return lum;\n}\n\nfloat getLumBall(vec2 p, vec2 pad, vec2 inCellOffset, float contrast, float baseR, float stepSize, out vec4 ballColor) {\n  p += inCellOffset;\n  vec2 uv_i = floor(p);\n  vec2 uv_f = fract(p);\n  vec2 samplingUV = (uv_i + .5 - inCellOffset) * pad + vec2(.5);\n  float outOfFrame = getUvFrame(samplingUV, pad * stepSize);\n\n  float lum = getLumAtPx(samplingUV, contrast);\n  ballColor = texture(u_image, samplingUV);\n  ballColor.rgb *= ballColor.a;\n  ballColor *= outOfFrame;\n\n  float ball = 0.;\n  if (u_type == 0.) {\n    // classic\n    ball = getCircle(uv_f, lum, baseR);\n  } else if (u_type == 1.) {\n    // gooey\n    ball = getGooeyBall(uv_f, lum, baseR);\n  } else if (u_type == 2.) {\n    // holes\n    ball = getCircleWithHole(uv_f, lum, baseR);\n  } else if (u_type == 3.) {\n    // soft\n    ball = getSoftBall(uv_f, lum, baseR);\n  }\n\n  return ball * outOfFrame;\n}\n\n\nvoid main() {\n\n  float stepMultiplier = 1.;\n  if (u_type == 0.) {\n    // classic\n    stepMultiplier = 2.;\n  } else if (u_type == 1. || u_type == 3.) {\n    // gooey & soft\n    stepMultiplier = 6.;\n  }\n\n  float cellsPerSide = mix(300., 7., pow(u_size, .7));\n  cellsPerSide /= stepMultiplier;\n  float cellSizeY = 1. / cellsPerSide;\n  vec2 pad = cellSizeY * vec2(1. / u_imageAspectRatio, 1.);\n  if (u_type == 1. && u_grid == 1.) {\n    // gooey diagonal grid works differently\n    pad *= .7;\n  }\n\n  vec2 uv = v_imageUV;\n  uv -= vec2(.5);\n  uv /= pad;\n\n  float contrast = mix(0., 15., pow(u_contrast, 1.5));\n  float baseRadius = u_radius;\n  if (u_originalColors == true) {\n    contrast = mix(.1, 4., pow(u_contrast, 2.));\n    baseRadius = 2. * pow(.5 * u_radius, .3);\n  }\n\n  float totalShape = 0.;\n  vec3 totalColor = vec3(0.);\n  float totalOpacity = 0.;\n\n  vec4 ballColor;\n  float shape;\n  float stepSize = 1. / stepMultiplier;\n  for (float x = -0.5; x < 0.5; x += stepSize) {\n    for (float y = -0.5; y < 0.5; y += stepSize) {\n      vec2 offset = vec2(x, y);\n\n      if (u_grid == 1.) {\n        float rowIndex = floor((y + .5) / stepSize);\n        float colIndex = floor((x + .5) / stepSize);\n        if (stepSize == 1.) {\n          rowIndex = floor(uv.y + y + 1.);\n          if (u_type == 1.) {\n            colIndex = floor(uv.x + x + 1.);\n          }\n        }\n        if (u_type == 1.) {\n          if (mod(rowIndex + colIndex, 2.) == 1.) {\n            continue;\n          }\n        } else {\n          if (mod(rowIndex, 2.) == 1.) {\n            offset.x += .5 * stepSize;\n          }\n        }\n      }\n\n      shape = getLumBall(uv, pad, offset, contrast, baseRadius, stepSize, ballColor);\n      totalColor   += ballColor.rgb * shape;\n      totalShape   += shape;\n      totalOpacity += shape;\n    }\n  }\n\n  const float eps = 1e-4;\n\n  totalColor /= max(totalShape, eps);\n  totalOpacity /= max(totalShape, eps);\n\n  float finalShape = 0.;\n  if (u_type == 0.) {\n    finalShape = min(1., totalShape);\n  } else if (u_type == 1.) {\n    float aa = fwidth(totalShape);\n    float th = .5;\n    finalShape = smoothstep(th - aa, th + aa, totalShape);\n  } else if (u_type == 2.) {\n    finalShape = min(1., totalShape);\n  } else if (u_type == 3.) {\n    finalShape = totalShape;\n  }\n\n  vec2 grainSize = mix(2000., 200., u_grainSize) * vec2(1., 1. / u_imageAspectRatio);\n  vec2 grainUV = v_imageUV - .5;\n  grainUV *= grainSize;\n  grainUV += .5;\n  float grain = valueNoise(grainUV);\n  grain = smoothstep(.55, .7 + .2 * u_grainMixer, grain);\n  grain *= u_grainMixer;\n  finalShape = mix(finalShape, 0., grain);\n\n  vec3 color = vec3(0.);\n  float opacity = 0.;\n\n  if (u_originalColors == true) {\n    color = totalColor * finalShape;\n    opacity = totalOpacity * finalShape;\n\n    vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n    color = color + bgColor * (1. - opacity);\n    opacity = opacity + u_colorBack.a * (1. - opacity);\n  } else {\n    vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n    float fgOpacity = u_colorFront.a;\n    vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n    float bgOpacity = u_colorBack.a;\n\n    color = fgColor * finalShape;\n    opacity = fgOpacity * finalShape;\n    color += bgColor * (1. - opacity);\n    opacity += bgOpacity * (1. - opacity);\n  }\n\n  float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));\n  grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);\n  grainOverlay = pow(grainOverlay, 1.3);\n\n  float grainOverlayV = grainOverlay * 2. - 1.;\n  vec3 grainOverlayColor = vec3(step(0., grainOverlayV));\n  float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);\n  grainOverlayStrength = pow(grainOverlayStrength, .8);\n  color = mix(color, grainOverlayColor, .5 * grainOverlayStrength);\n\n  opacity += .5 * grainOverlayStrength;\n  opacity = clamp(opacity, 0., 1.);\n\n  fragColor = vec4(color, opacity);\n}\n`,Io={classic:0,gooey:1,holes:2,soft:3},Fo={square:0,hex:1};var Ro=`#version 300 es\nprecision mediump float;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorC;\nuniform vec4 u_colorM;\nuniform vec4 u_colorY;\nuniform vec4 u_colorK;\nuniform float u_size;\nuniform float u_minDot;\nuniform float u_contrast;\nuniform float u_grainSize;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\nuniform float u_gridNoise;\nuniform float u_softness;\nuniform float u_floodC;\nuniform float u_floodM;\nuniform float u_floodY;\nuniform float u_floodK;\nuniform float u_gainC;\nuniform float u_gainM;\nuniform float u_gainY;\nuniform float u_gainK;\nuniform float u_type;\nuniform sampler2D u_noiseTexture;\n\nin vec2 v_imageUV;\nout vec4 fragColor;\n\nconst float shiftC = -.5;\nconst float shiftM = -.25;\nconst float shiftY = .2;\nconst float shiftK = 0.;\n\n// Precomputed sin/cos for rotation angles (15\\xB0, 75\\xB0, 0\\xB0, 45\\xB0)\nconst float cosC = 0.9659258;  const float sinC = 0.2588190;   // 15\\xB0\nconst float cosM = 0.2588190;  const float sinM = 0.9659258;   // 75\\xB0\nconst float cosY = 1.0;        const float sinY = 0.0;         // 0\\xB0\nconst float cosK = 0.7071068;  const float sinK = 0.7071068;   // 45\\xB0\n\n${d}\n\nvec2 randomRG(vec2 p) {\n  vec2 uv = floor(p) / 100. + .5;\n  return texture(u_noiseTexture, fract(uv)).rg;\n}\nvec3 hash23(vec2 p) {\n  vec3 p3 = fract(vec3(p.xyx) * vec3(0.3183099, 0.3678794, 0.3141592)) + 0.1;\n  p3 += dot(p3, p3.yzx + 19.19);\n  return fract(vec3(p3.x * p3.y, p3.y * p3.z, p3.z * p3.x));\n}\n\nfloat sst(float edge0, float edge1, float x) {\n  return smoothstep(edge0, edge1, x);\n}\n\nvec3 valueNoise3(vec2 st) {\n  vec2 i = floor(st);\n  vec2 f = fract(st);\n  vec3 a = hash23(i);\n  vec3 b = hash23(i + vec2(1.0, 0.0));\n  vec3 c = hash23(i + vec2(0.0, 1.0));\n  vec3 d = hash23(i + vec2(1.0, 1.0));\n  vec2 u = f * f * (3.0 - 2.0 * f);\n  vec3 x1 = mix(a, b, u.x);\n  vec3 x2 = mix(c, d, u.x);\n  return mix(x1, x2, u.y);\n}\n\nfloat getUvFrame(vec2 uv, vec2 pad) {\n  float left   = smoothstep(-pad.x, 0., uv.x);\n  float right  = smoothstep(1. + pad.x, 1., uv.x);\n  float bottom = smoothstep(-pad.y, 0., uv.y);\n  float top    = smoothstep(1. + pad.y, 1., uv.y);\n\n  return left * right * bottom * top;\n}\n\nvec4 RGBAtoCMYK(vec4 rgba) {\n  float k = 1. - max(max(rgba.r, rgba.g), rgba.b);\n  float denom = 1. - k;\n  vec3 cmy = vec3(0.);\n  if (denom > 1e-5) {\n    cmy = (1. - rgba.rgb - vec3(k)) / denom;\n  }\n  return vec4(cmy, k) * rgba.a;\n}\n\nvec3 applyContrast(vec3 rgb) {\n  return clamp((rgb - 0.5) * u_contrast + 0.5, 0.0, 1.0);\n}\n\n// Single-component CMYK extractors with contrast built-in, alpha-aware\nfloat getCyan(vec4 rgba) {\n  vec3 c = clamp((rgba.rgb - 0.5) * u_contrast + 0.5, 0.0, 1.0);\n  float maxRGB = max(max(c.r, c.g), c.b);\n  return (maxRGB > 1e-5 ? (maxRGB - c.r) / maxRGB : 0.) * rgba.a;\n}\nfloat getMagenta(vec4 rgba) {\n  vec3 c = clamp((rgba.rgb - 0.5) * u_contrast + 0.5, 0.0, 1.0);\n  float maxRGB = max(max(c.r, c.g), c.b);\n  return (maxRGB > 1e-5 ? (maxRGB - c.g) / maxRGB : 0.) * rgba.a;\n}\nfloat getYellow(vec4 rgba) {\n  vec3 c = clamp((rgba.rgb - 0.5) * u_contrast + 0.5, 0.0, 1.0);\n  float maxRGB = max(max(c.r, c.g), c.b);\n  return (maxRGB > 1e-5 ? (maxRGB - c.b) / maxRGB : 0.) * rgba.a;\n}\nfloat getBlack(vec4 rgba) {\n  vec3 c = clamp((rgba.rgb - 0.5) * u_contrast + 0.5, 0.0, 1.0);\n  return (1. - max(max(c.r, c.g), c.b)) * rgba.a;\n}\n\nvec2 cellCenterPos(vec2 uv, vec2 cellOffset, float channelIdx) {\n  vec2 cellCenter = floor(uv) + .5 + cellOffset;\n  return cellCenter + (randomRG(cellCenter + channelIdx * 50.) - .5) * u_gridNoise;\n}\n\nvec2 gridToImageUV(vec2 cellCenter, float cosA, float sinA, float shift, vec2 pad) {\n  vec2 uvGrid = mat2(cosA, -sinA, sinA, cosA) * (cellCenter - shift);\n  return uvGrid * pad + 0.5;\n}\n\nvoid colorMask(vec2 pos, vec2 cellCenter, float rad, float transparency, float grain, float channelAddon, float channelgain, float generalComp, bool isJoined, inout float outMask) {\n  float dist = length(pos - cellCenter);\n\n  float radius = rad;\n  radius *= (1. + generalComp);\n  radius += (.15 + channelgain * radius);\n  radius = max(0., radius);\n  radius = mix(0., radius, transparency);\n  radius += channelAddon;\n  radius *= (1. - grain);\n\n  float mask = 1. - sst(0., radius, dist);\n  if (isJoined) {\n    // ink or sharp (joined)\n    mask = pow(mask, 1.2);\n  } else {\n    // dots (separate)\n    mask = sst(.5 - .5 * u_softness, .51 + .49 * u_softness, mask);\n  }\n\n  mask *= mix(1., mix(.5, 1., 1.5 * radius), u_softness);\n  outMask += mask;\n}\n\nvec3 applyInk(vec3 paper, vec3 inkColor, float cov) {\n  vec3 inkEffect = mix(vec3(1.0), inkColor, clamp(cov, 0.0, 1.0));\n  return paper * inkEffect;\n}\n\nvoid main() {\n  vec2 uv = v_imageUV;\n\n  float cellsPerSide = mix(400.0, 7.0, pow(u_size, 0.7));\n  float cellSizeY = 1.0 / cellsPerSide;\n  vec2 pad = cellSizeY * vec2(1.0 / u_imageAspectRatio, 1.0);\n  vec2 uvGrid = (uv - .5) / pad;\n  float insideImageBox = getUvFrame(uv, pad);\n\n  float generalComp = .1 * u_softness + .1 * u_gridNoise + .1 * (1. - step(0.5, u_type)) * (1.5 - u_softness);\n\n  vec2 uvC = mat2(cosC, sinC, -sinC, cosC) * uvGrid + shiftC;\n  vec2 uvM = mat2(cosM, sinM, -sinM, cosM) * uvGrid + shiftM;\n  vec2 uvY = mat2(cosY, sinY, -sinY, cosY) * uvGrid + shiftY;\n  vec2 uvK = mat2(cosK, sinK, -sinK, cosK) * uvGrid + shiftK;\n\n  vec2 grainSize = mix(2000., 200., u_grainSize) * vec2(1., 1. / u_imageAspectRatio);\n  vec2 grainUV = (v_imageUV - .5) * grainSize + .5;\n  vec3 noiseValues = valueNoise3(grainUV);\n  float grain = sst(.55, 1., noiseValues.r);\n  grain *= u_grainMixer;\n\n  vec4 outMask = vec4(0.);\n  bool isJoined = u_type > 0.5;\n\n  if (u_type < 1.5) {\n    // dots or ink: per-cell color sampling\n    for (int dy = -1; dy <= 1; dy++) {\n      for (int dx = -1; dx <= 1; dx++) {\n        vec2 cellOffset = vec2(float(dx), float(dy));\n\n        vec2 cellCenterC = cellCenterPos(uvC, cellOffset, 0.);\n        vec4 texC = texture(u_image, gridToImageUV(cellCenterC, cosC, sinC, shiftC, pad));\n        colorMask(uvC, cellCenterC, getCyan(texC), insideImageBox * texC.a, grain, u_floodC, u_gainC, generalComp, isJoined, outMask[0]);\n\n        vec2 cellCenterM = cellCenterPos(uvM, cellOffset, 1.);\n        vec4 texM = texture(u_image, gridToImageUV(cellCenterM, cosM, sinM, shiftM, pad));\n        colorMask(uvM, cellCenterM, getMagenta(texM), insideImageBox * texM.a, grain, u_floodM, u_gainM, generalComp, isJoined, outMask[1]);\n\n        vec2 cellCenterY = cellCenterPos(uvY, cellOffset, 2.);\n        vec4 texY = texture(u_image, gridToImageUV(cellCenterY, cosY, sinY, shiftY, pad));\n        colorMask(uvY, cellCenterY, getYellow(texY), insideImageBox * texY.a, grain, u_floodY, u_gainY, generalComp, isJoined, outMask[2]);\n\n        vec2 cellCenterK = cellCenterPos(uvK, cellOffset, 3.);\n        vec4 texK = texture(u_image, gridToImageUV(cellCenterK, cosK, sinK, shiftK, pad));\n        colorMask(uvK, cellCenterK, getBlack(texK), insideImageBox * texK.a, grain, u_floodK, u_gainK, generalComp, isJoined, outMask[3]);\n      }\n    }\n  } else {\n    // sharp: direct px color sampling\n    vec4 tex = texture(u_image, uv);\n    tex.rgb = applyContrast(tex.rgb);\n    insideImageBox *= tex.a;\n    vec4 cmykOriginal = RGBAtoCMYK(tex);\n    for (int dy = -1; dy <= 1; dy++) {\n      for (int dx = -1; dx <= 1; dx++) {\n        vec2 cellOffset = vec2(float(dx), float(dy));\n\n        colorMask(uvC, cellCenterPos(uvC, cellOffset, 0.), cmykOriginal.x, insideImageBox, grain, u_floodC, u_gainC, generalComp, isJoined, outMask[0]);\n        colorMask(uvM, cellCenterPos(uvM, cellOffset, 1.), cmykOriginal.y, insideImageBox, grain, u_floodM, u_gainM, generalComp, isJoined, outMask[1]);\n        colorMask(uvY, cellCenterPos(uvY, cellOffset, 2.), cmykOriginal.z, insideImageBox, grain, u_floodY, u_gainY, generalComp, isJoined, outMask[2]);\n        colorMask(uvK, cellCenterPos(uvK, cellOffset, 3.), cmykOriginal.w, insideImageBox, grain, u_floodK, u_gainK, generalComp, isJoined, outMask[3]);\n      }\n    }\n  }\n\n  float shape;\n\n  float C = outMask[0];\n  float M = outMask[1];\n  float Y = outMask[2];\n  float K = outMask[3];\n\n  if (isJoined) {\n    // ink or sharp: apply threshold for joined dots\n    float th = .5;\n    float sLeft = th * u_softness;\n    float sRight = (1. - th) * u_softness + .01;\n    C = smoothstep(th - sLeft - fwidth(C), th + sRight, C);\n    M = smoothstep(th - sLeft - fwidth(M), th + sRight, M);\n    Y = smoothstep(th - sLeft - fwidth(Y), th + sRight, Y);\n    K = smoothstep(th - sLeft - fwidth(K), th + sRight, K);\n  }\n\n  C *= u_colorC.a;\n  M *= u_colorM.a;\n  Y *= u_colorY.a;\n  K *= u_colorK.a;\n\n  vec3 ink = vec3(1.);\n  ink = applyInk(ink, u_colorK.rgb, K);\n  ink = applyInk(ink, u_colorC.rgb, C);\n  ink = applyInk(ink, u_colorM.rgb, M);\n  ink = applyInk(ink, u_colorY.rgb, Y);\n\n  shape = clamp(max(max(C, M), max(Y, K)), 0., 1.);\n\n  vec3 color = u_colorBack.rgb * u_colorBack.a;\n\n  float opacity = u_colorBack.a;\n  color = mix(color, ink, shape);\n  opacity += shape;\n  opacity = clamp(opacity, 0., 1.);\n\n  float grainOverlay = mix(noiseValues.g, noiseValues.b, .5);\n  grainOverlay = pow(grainOverlay, 1.3);\n\n  float grainOverlayV = grainOverlay * 2. - 1.;\n  vec3 grainOverlayColor = vec3(step(0., grainOverlayV));\n  float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);\n  grainOverlayStrength = pow(grainOverlayStrength, .8);\n  color = mix(color, grainOverlayColor, .5 * grainOverlayStrength);\n\n  opacity += .5 * grainOverlayStrength;\n  opacity = clamp(opacity, 0., 1.);\n\n  fragColor = vec4(color, opacity);\n}\n`,Mo={dots:0,ink:1,sharp:2};var Be={maxColorCount:6},Oo=`#version 300 es\nprecision mediump float;\n\nin mediump vec2 v_imageUV;\nin mediump vec2 v_objectUV;\nin mediump vec2 v_responsiveUV;\nin mediump vec2 v_responsiveBoxGivenSize;\nout vec4 fragColor;\n\n// Image\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\n// Canvas\nuniform vec2 u_resolution;\nuniform float u_time;\n\n// Colors\nuniform vec4 u_colors[${Be.maxColorCount}];\nuniform float u_colorsCount;\nuniform vec4 u_colorBack;\nuniform vec4 u_colorInner;\n\n// Effect controls\nuniform float u_innerDistortion;\nuniform float u_outerDistortion;\nuniform float u_outerGlow;\nuniform float u_innerGlow;\nuniform float u_offset;\nuniform float u_angle;\nuniform float u_size;\n\n// Shape controls\nuniform float u_shape;\nuniform bool u_isImage;\n\n${d}\n${b}\n\n// 9x9 Gaussian blur on R and G channels\nvec2 gaussBlur9x9RG(sampler2D tex, vec2 uv, vec2 dudx, vec2 dudy, float radius) {\n  vec2 texel = 1.0 / vec2(textureSize(tex, 0));\n  vec2 r = max(radius, 0.0) * texel;\n  // Pascal's row 8: sum = 256, 2D norm = 65536\n  const float k[9] = float[9](1.0, 8.0, 28.0, 56.0, 70.0, 56.0, 28.0, 8.0, 1.0);\n  vec2 sum = vec2(0.0);\n\n  for (int j = -4; j <= 4; ++j) {\n    float wy = k[j + 4];\n    for (int i = -4; i <= 4; ++i) {\n      float w = k[i + 4] * wy;\n      vec2 off = vec2(float(i) * r.x, float(j) * r.y);\n      sum += w * texture(tex, uv + off).rg;\n    }\n  }\n\n  return sum / 65536.0;\n}\n\nfloat sst(float a, float b, float x) {\n  return smoothstep(a, b, x);\n}\n\nvoid main() {\n  float time = u_time;\n\n  float roundness = 0.;\n  float imgAlpha = 0.;\n\n  if (u_isImage == true) {\n    // Image sampling (UV scaled inward to account for padding)\n    vec2 imageUV = v_imageUV;\n    imageUV -= .5;\n    imageUV *= .95;\n    imageUV += .5;\n\n    vec2 dudx = dFdx(v_imageUV);\n    vec2 dudy = dFdy(v_imageUV);\n\n    // Blurred image: x = roundness, y = alpha\n    vec2 blurred = gaussBlur9x9RG(u_image, imageUV, dudx, dudy, 10.);\n    roundness = 1. - blurred.x;\n    vec2 texelA = 1.0 / vec2(textureSize(u_image, 0));\n    const float k3[3] = float[3](1.0, 2.0, 1.0);\n    for (int j = -1; j <= 1; ++j) {\n      for (int i = -1; i <= 1; ++i) {\n        imgAlpha += k3[i + 1] * k3[j + 1] * texture(u_image, imageUV + vec2(float(i) * texelA.x, float(j) * texelA.y)).g;\n      }\n    }\n    imgAlpha /= 16.0;\n  } else {\n    vec2 uv = v_objectUV + .5;\n    uv.y = 1. - uv.y;\n    float edge = 0.;\n\n    if (u_shape < 1.) {\n      // full-fill on canvas\n      vec2 borderUV = v_responsiveUV + .5;\n      vec2 mask = min(borderUV, 1. - borderUV);\n      vec2 pixel_thickness = min(250. / v_responsiveBoxGivenSize, vec2(.5));\n      float maskX = smoothstep(0.0, pixel_thickness.x, mask.x);\n      float maskY = smoothstep(0.0, pixel_thickness.y, mask.y);\n      maskX = pow(maskX, .25);\n      maskY = pow(maskY, .25);\n      edge = clamp(1. - maskX * maskY, 0., 1.);\n    } else if (u_shape < 2.) {\n      // circle\n      vec2 shapeUV = uv - .5;\n      shapeUV *= .67;\n      edge = pow(clamp(3. * length(shapeUV), 0., 1.), 18.);\n    } else if (u_shape < 3.) {\n      // daisy\n      vec2 shapeUV = uv - .5;\n      shapeUV *= 1.68;\n\n      float r = length(shapeUV) * 2.;\n      float a = atan(shapeUV.y, shapeUV.x) + .2;\n      r *= (1. + .05 * sin(3. * a + 2. * time));\n      float f = abs(cos(a * 3.));\n      edge = smoothstep(f, f + .7, r);\n      edge *= edge;\n    } else if (u_shape < 4.) {\n      // diamond\n      vec2 shapeUV = uv - .5;\n      shapeUV = rotate(shapeUV, .25 * PI);\n      shapeUV *= 1.42;\n      shapeUV += .5;\n      vec2 mask = min(shapeUV, 1. - shapeUV);\n      vec2 pixel_thickness = vec2(.15);\n      float maskX = smoothstep(0.0, pixel_thickness.x, mask.x);\n      float maskY = smoothstep(0.0, pixel_thickness.y, mask.y);\n      maskX = pow(maskX, .25);\n      maskY = pow(maskY, .25);\n      edge = clamp(1. - maskX * maskY, 0., 1.);\n    } else if (u_shape < 5.) {\n      // metaballs\n      vec2 shapeUV = uv - .5;\n      shapeUV *= 1.3;\n      edge = 0.;\n      for (int i = 0; i < 5; i++) {\n        float fi = float(i);\n        float speed = 1.5 + 2./3. * sin(fi * 12.345);\n        float angle = -fi * 1.5;\n        vec2 dir1 = vec2(cos(angle), sin(angle));\n        vec2 dir2 = vec2(cos(angle + 1.57), sin(angle + 1.));\n        vec2 traj = .4 * (dir1 * sin(time * speed + fi * 1.23) + dir2 * cos(time * (speed * 0.7) + fi * 2.17));\n        float d = length(shapeUV + traj);\n        edge += pow(1.0 - clamp(d, 0.0, 1.0), 4.0);\n      }\n      edge = 1. - smoothstep(.65, .9, edge);\n      edge = pow(edge, 4.);\n    }\n\n    imgAlpha = 1. - smoothstep(.9 - 2. * fwidth(edge), .9, edge);\n    roundness = 1. - edge;\n  }\n\n// Smoke UV setup\n  vec2 smokeUV = v_objectUV;\n  smokeUV = rotate(smokeUV, u_angle * PI / 180.);\n  smokeUV *= mix(4., 1., u_size);\n\n  // Two swirl paths: inner (shape-masked) and outer (free), each with independent distortion\n  vec2 innerUV = smokeUV;\n  vec2 outerUV = smokeUV;\n\n  // Vertical displacement \\u2014 applied independently to inner and outer\n  innerUV.y += u_innerDistortion * (1. - sst(0., 1., length(.4 * innerUV)));\n  innerUV.y -= .4 * u_innerDistortion;\n  innerUV.y += .7 * u_offset * roundness;\n\n  outerUV.y += u_outerDistortion * (1. - sst(0., 1., length(.4 * outerUV)));\n  outerUV.y -= .4 * u_outerDistortion;\n\n  float innerSwirl = u_innerDistortion * roundness;\n  float outerSwirl = u_outerDistortion;\n\n  for (int i = 1; i < 5; i++) {\n    float fi = float(i);\n\n    float stretchIn = max(length(dFdx(innerUV)), length(dFdy(innerUV)));\n    float dampenIn = 1. / (1. + stretchIn * 8.);\n    float sIn = innerSwirl * dampenIn;\n    innerUV.x += sIn / fi * cos(time + fi * 2.9 * innerUV.y);\n    innerUV.y += sIn / fi * cos(time + fi * 1.5 * innerUV.x);\n\n    float stretchOut = max(length(dFdx(outerUV)), length(dFdy(outerUV)));\n    float dampenOut = 1. / (1. + stretchOut * 8.);\n    float sOut = outerSwirl * dampenOut;\n    outerUV.x += sOut / fi * cos(time + fi * 2.9 * outerUV.y);\n    outerUV.y += sOut / fi * cos(time + fi * 1.5 * outerUV.x);\n  }\n\n  // Smoke shapes from swirl fields\n  float innerShape = exp(-1.5 * dot(innerUV, innerUV));\n  float outerShape = exp(-1.5 * dot(outerUV, outerUV));\n\n  // Visibility masks\n  float outerMask = pow(u_outerGlow, 2.) * (1. - imgAlpha);\n  float innerMask = (.01 + .99 * u_innerGlow) * imgAlpha;\n\n  innerShape *= innerMask;\n  outerShape *= outerMask;\n\n  // Color gradient\n  float mixer = (innerShape + outerShape) * u_colorsCount;\n  vec4 gradient = u_colors[0];\n  gradient.rgb *= gradient.a;\n\n  float smokeMask = 0.;\n  for (int i = 1; i < ${Be.maxColorCount+1}; i++) {\n    if (i > int(u_colorsCount)) break;\n\n    float m = sst(0., 1., clamp(mixer - float(i - 1), 0., 1.));\n    if (i == 1) smokeMask = m;\n\n    vec4 c = u_colors[i - 1];\n    c.rgb *= c.a;\n    gradient = mix(gradient, c, m);\n  }\n\n  // Compositing (premultiplied alpha, front-to-back)\n  vec3 color = gradient.rgb * smokeMask;\n  float opacity = gradient.a * smokeMask;\n\n  float innerOpacity = u_colorInner.a * imgAlpha;\n  vec3 innerColor = u_colorInner.rgb * innerOpacity;\n  color += innerColor * (1.0 - opacity);\n  opacity += innerOpacity * (1.0 - opacity);\n\n  vec3 backColor = u_colorBack.rgb * u_colorBack.a;\n  color += backColor * (1.0 - opacity);\n  opacity += u_colorBack.a * (1.0 - opacity);\n\n  fragColor = vec4(color, opacity);\n}\n`,Z={measurePerformance:!1,workingSize:512,iterations:32};function zo(o){let e=document.createElement(\"canvas\"),a=e.getContext(\"2d\"),r=typeof o==\"string\"&&o.startsWith(\"blob:\");return new Promise((u,n)=>{if(!o||!a){n(new Error(\"Invalid file or canvas context\"));return}let c=r&&fetch(o).then(s=>s.headers.get(\"Content-Type\")),t=new Image;t.crossOrigin=\"anonymous\";let p=performance.now();t.onload=async()=>{let s,g=await c;g?s=g===\"image/svg+xml\":typeof o==\"string\"?s=o.endsWith(\".svg\")||o.startsWith(\"data:image/svg+xml\"):s=o.type===\"image/svg+xml\";let f=t.width||t.naturalWidth,m=t.height||t.naturalHeight;if(s){let B=f/m;f>m?(f=4096,m=4096/B):(m=4096,f=4096*B),t.width=f,t.height=m}let I=Math.min(f,m),v=Z.workingSize/I,i=Math.round(f*v),l=Math.round(m*v);Z.measurePerformance&&(console.log(\"[Processing Mode]\"),console.log(`  Original: ${f}\\xD7${m}`),console.log(`  Working: ${i}\\xD7${l} (${(v*100).toFixed(1)}% scale)`),v<1&&console.log(`  Speedup: ~${Math.round(1/(v*v))}\\xD7`)),e.width=f,e.height=m;let A=.025,w=Math.ceil(i*A),V=Math.ceil(l*A),F=i-2*w,C=l-2*V,x=document.createElement(\"canvas\");x.width=i,x.height=l;let R=x.getContext(\"2d\");R.drawImage(t,w,V,F,C);let Y=performance.now(),E=R.getImageData(0,0,i,l).data,D=new Uint8Array(i*l),X=new Uint8Array(i*l),L=0;for(let y=0,B=0;y<E.length;y+=4,B++){let N=E[y+3]===0?0:1;D[B]=N,L+=N}let j=[],H=[];for(let y=0;y<l;y++)for(let B=0;B<i;B++){let k=y*i+B;if(!D[k])continue;let N=!1;B===0||B===i-1||y===0||y===l-1?N=!0:N=!D[k-1]||!D[k+1]||!D[k-i]||!D[k+i]||!D[k-i-1]||!D[k-i+1]||!D[k+i-1]||!D[k+i+1],N?(X[k]=1,j.push(k)):H.push(k)}Z.measurePerformance&&(console.log(`[Mask Building] Time: ${(performance.now()-Y).toFixed(2)}ms`),console.log(`  Shape pixels: ${L} / ${i*l} (${(L/(i*l)*100).toFixed(1)}%)`),console.log(`  Interior pixels: ${H.length}`),console.log(`  Boundary pixels: ${j.length}`));let $=Eo(D,X,new Uint32Array(H),new Uint32Array(j),i,l),ie=performance.now(),Q=Do($,D,X,i,l);Z.measurePerformance&&console.log(`[Poisson Solve] Time: ${(performance.now()-ie).toFixed(2)}ms`);let T=0,ee;for(let y=0;y<H.length;y++){let B=H[y];Q[B]>T&&(T=Q[B])}let J=document.createElement(\"canvas\");J.width=i,J.height=l;let re=J.getContext(\"2d\"),h=re.createImageData(i,l);for(let y=0;y<l;y++)for(let B=0;B<i;B++){let k=y*i+B,N=k*4;if(!D[k])h.data[N]=255,h.data[N+1]=255,h.data[N+2]=255,h.data[N+3]=0;else{let me=255*(1-Q[k]/T);h.data[N]=me,h.data[N+1]=me,h.data[N+2]=me,h.data[N+3]=255}}re.putImageData(h,0,0),a.imageSmoothingEnabled=!0,a.imageSmoothingQuality=\"high\",a.drawImage(J,0,0,i,l,0,0,f,m);let _=a.getImageData(0,0,f,m),S=Math.ceil(f*A),O=Math.ceil(m*A),se=document.createElement(\"canvas\");se.width=f,se.height=m;let oe=se.getContext(\"2d\");oe.drawImage(t,S,O,f-2*S,m-2*O);let Me=oe.getImageData(0,0,f,m);for(let y=0;y<_.data.length;y+=4){let B=Me.data[y+3],k=_.data[y+3];B===0?(_.data[y]=255,_.data[y+1]=0):(_.data[y]=k===0?0:_.data[y],_.data[y+1]=B),_.data[y+2]=255,_.data[y+3]=255}a.putImageData(_,0,0),ee=_,e.toBlob(y=>{if(!y){n(new Error(\"Failed to create PNG blob\"));return}if(Z.measurePerformance){let B=performance.now()-p;if(console.log(`[Total Processing Time] ${B.toFixed(2)}ms`),v<1){let k=B*Math.pow(f*m/(i*l),1.5);console.log(`[Estimated time at full resolution] ~${k.toFixed(0)}ms`),console.log(`[Time saved] ~${(k-B).toFixed(0)}ms (${Math.round(k/B)}\\xD7 faster)`)}}u({imageData:ee,pngBlob:y})},\"image/png\")},t.onerror=()=>n(new Error(\"Failed to load image\")),t.src=typeof o==\"string\"?o:URL.createObjectURL(o)})}function Eo(o,e,a,r,u,n){let c=a.length,t=new Int32Array(c*4);for(let p=0;p<c;p++){let s=a[p],g=s%u,f=Math.floor(s/u);t[p*4+0]=g<u-1&&o[s+1]?s+1:-1,t[p*4+1]=g>0&&o[s-1]?s-1:-1,t[p*4+2]=f>0&&o[s-u]?s-u:-1,t[p*4+3]=f<n-1&&o[s+u]?s+u:-1}return{interiorPixels:a,boundaryPixels:r,pixelCount:c,neighborIndices:t}}function Do(o,e,a,r,u){let n=Z.iterations,c=.01,t=new Float32Array(r*u),{interiorPixels:p,neighborIndices:s,pixelCount:g}=o,f=performance.now(),m=1.9,I=[],P=[];for(let i=0;i<g;i++){let l=p[i],A=l%r,w=Math.floor(l/r);(A+w)%2===0?I.push(i):P.push(i)}for(let i=0;i<n;i++){for(let l of I){let A=p[l],w=s[l*4+0],V=s[l*4+1],F=s[l*4+2],C=s[l*4+3],x=0;w>=0&&(x+=t[w]),V>=0&&(x+=t[V]),F>=0&&(x+=t[F]),C>=0&&(x+=t[C]);let R=(c+x)/4;t[A]=m*R+(1-m)*t[A]}for(let l of P){let A=p[l],w=s[l*4+0],V=s[l*4+1],F=s[l*4+2],C=s[l*4+3],x=0;w>=0&&(x+=t[w]),V>=0&&(x+=t[V]),F>=0&&(x+=t[F]),C>=0&&(x+=t[C]);let R=(c+x)/4;t[A]=m*R+(1-m)*t[A]}}let v=new Float32Array(r*u);for(let i=0;i<3;i++){v.set(t);for(let l=0;l<g;l++){let A=p[l],w=s[l*4+0],V=s[l*4+1],F=s[l*4+2],C=s[l*4+3],x=0,R=0;w>=0&&(x+=v[w],R++),V>=0&&(x+=v[V],R++),F>=0&&(x+=v[F],R++),C>=0&&(x+=v[C],R++),t[A]=R>0?(v[A]+x/R)*.5:v[A]}}if(Z.measurePerformance){let i=performance.now()-f;console.log(`[Optimized Poisson Solver (SOR \\u03C9=${m})]`),console.log(`  Working size: ${r}\\xD7${u}`),console.log(`  Iterations: ${n}`),console.log(`  Time: ${i.toFixed(2)}ms`),console.log(`  Interior pixels processed: ${g}`),console.log(`  Speed: ${(n*g/(i*1e3)).toFixed(2)} Mpixels/sec`)}return t}var Po={none:0,circle:1,daisy:2,diamond:3,metaballs:4};function Go(o){if(Array.isArray(o))return o.length===4?o:o.length===3?[...o,1]:ae;if(typeof o!=\"string\")return ae;let e,a,r,u=1;if(o.startsWith(\"#\"))[e,a,r,u]=To(o);else if(o.startsWith(\"rgb\")){let n=No(o);if(n===null)return ae;[e,a,r,u]=n}else if(o.startsWith(\"hsl\")){let n=Qo(o);if(n===null)return ae;[e,a,r,u]=Wo(n)}else return console.error(\"Unsupported color format\",o),ae;return[fe(e,0,1),fe(a,0,1),fe(r,0,1),fe(u,0,1)]}function To(o){if(o=o.replace(/^#/,\"\"),(o.length===3||o.length===4)&&(o=o.split(\"\").map(n=>n+n).join(\"\")),o.length===6&&(o=o+\"ff\"),!/^[0-9a-f]{8}$/i.test(o))return console.warn(\"Invalid hex color\"),ae;let e=parseInt(o.slice(0,2),16)/255,a=parseInt(o.slice(2,4),16)/255,r=parseInt(o.slice(4,6),16)/255,u=parseInt(o.slice(6,8),16)/255;return[e,a,r,u]}function No(o){let e=o.match(/^rgba?\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([0-9.]+))?\\s*\\)$/i);return e?[parseInt(e[1]??\"0\")/255,parseInt(e[2]??\"0\")/255,parseInt(e[3]??\"0\")/255,e[4]===void 0?1:parseFloat(e[4])]:null}function Qo(o){let e=o.match(/^hsla?\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(?:,\\s*([0-9.]+))?\\s*\\)$/i);return e?[parseInt(e[1]??\"0\"),parseInt(e[2]??\"0\"),parseInt(e[3]??\"0\"),e[4]===void 0?1:parseFloat(e[4])]:null}function Wo(o){let[e,a,r,u]=o,n=e/360,c=a/100,t=r/100,p,s,g;if(a===0)p=s=g=t;else{let f=(P,v,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<.16666666666666666?P+(v-P)*6*i:i<.5?v:i<.6666666666666666?P+(v-P)*(.6666666666666666-i)*6:P),m=t<.5?t*(1+c):t+c-t*c,I=2*t-m;p=f(I,m,n+1/3),s=f(I,m,n),g=f(I,m,n-1/3)}return[p,s,g,u]}var fe=(o,e,a)=>Math.min(Math.max(o,e),a),ae=[.5,.5,.5,1];function Yo(){if(typeof window>\"u\")return;let o=new Image;return o.src=Lo,o}var Lo=\"data:image/png;base64,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\";var Ho=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";export{ro as DitheringShapes,so as DitheringTypes,Ke as DotGridShapes,Po as GemSmokeShapes,_o as GlassDistortionShapes,xo as GlassGridShapes,lo as GrainGradientShapes,Mo as HalftoneCmykTypes,Fo as HalftoneDotsGrids,Io as HalftoneDotsTypes,Vo as LiquidMetalShapes,uo as PulsingBorderAspectRatios,Ne as ShaderFitOptions,pe as ShaderMount,eo as WarpPatterns,fo as colorPanelsFragmentShader,ue as colorPanelsMeta,Ge as defaultObjectSizing,Te as defaultPatternSizing,io as ditheringFragmentShader,He as dotGridFragmentShader,Le as dotOrbitFragmentShader,ge as dotOrbitMeta,Ho as emptyPixel,ho as flutedGlassFragmentShader,Oo as gemSmokeFragmentShader,Be as gemSmokeMeta,Go as getShaderColorFromString,Yo as getShaderNoiseTexture,oo as godRaysFragmentShader,_e as godRaysMeta,no as grainGradientFragmentShader,Ae as grainGradientMeta,Ro as halftoneCmykFragmentShader,ko as halftoneDotsFragmentShader,bo as heatmapFragmentShader,Se as heatmapMeta,yo as imageDitheringFragmentShader,Ee as isPaperShaderElement,Ao as lensDistortionFragmentShader,Fe as lensDistortionMeta,wo as liquidMetalFragmentShader,Qe as meshGradientFragmentShader,de as meshGradientMeta,je as metaballsFragmentShader,le as metaballsMeta,Ye as neuroNoiseFragmentShader,go as paperTextureFragmentShader,Je as perlinNoiseFragmentShader,co as pulsingBorderFragmentShader,ce as pulsingBorderMeta,Xe as simplexNoiseFragmentShader,ve as simplexNoiseMeta,We as smokeRingFragmentShader,ne as smokeRingMeta,to as spiralFragmentShader,mo as staticMeshGradientFragmentShader,be as staticMeshGradientMeta,po as staticRadialGradientFragmentShader,Ce as staticRadialGradientMeta,ao as swirlFragmentShader,ye as swirlMeta,zo as toProcessedGemSmoke,Co as toProcessedHeatmap,So as toProcessedLiquidMetal,qe as voronoiFragmentShader,he as voronoiMeta,$e as warpFragmentShader,xe as warpMeta,vo as waterFragmentShader,Ze as wavesFragmentShader};\n//# sourceMappingURL=shaders.mjs.map","/* esm.sh - @paper-design/shaders-react@0.0.80 */\n\"use client\";import{useEffect as dr,useRef as Ur,forwardRef as ze,useState as Xe}from\"react\";import{ShaderMount as ve,emptyPixel as Oe}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import*as ur from\"react\";function te(m){let r=ur.useRef(void 0),o=ur.useCallback(e=>{let i=m.map(a=>{if(a!=null){if(typeof a==\"function\"){let s=a,t=s(e);return typeof t==\"function\"?t:()=>{s(null)}}return a.current=e,()=>{a.current=null}}});return()=>{i.forEach(a=>a?.())}},m);return ur.useMemo(()=>m.every(e=>e==null)?null:e=>{r.current&&(r.current(),r.current=void 0),e!=null&&(r.current=o(e))},m)}function Nr(m){if(m.naturalWidth<1024&&m.naturalHeight<1024){if(m.naturalWidth<1||m.naturalHeight<1)return;let r=m.naturalWidth/m.naturalHeight;m.width=Math.round(r>1?1024*r:1024),m.height=Math.round(r>1?1024:1024/r)}}import{jsx as De}from\"react/jsx-runtime\";async function ie(m){let r={},o=[],e=a=>{try{return a.startsWith(\"/\")||new URL(a),!0}catch{return!1}},i=a=>{try{return a.startsWith(\"/\")?!1:new URL(a,window.location.origin).origin!==window.location.origin}catch{return!1}};return Object.entries(m).forEach(([a,s])=>{if(typeof s==\"string\"){let t=s||Oe;if(!e(t)){console.warn(`Uniform \"${a}\" has invalid URL \"${t}\". Skipping image loading.`);return}let c=new Promise((u,d)=>{let n=new Image;i(t)&&(n.crossOrigin=\"anonymous\"),n.onload=()=>{Nr(n),r[a]=n,u()},n.onerror=()=>{console.error(`Could not set uniforms. Failed to load image at ${t}`),d()},n.src=t});o.push(c)}else if(s instanceof HTMLImageElement){let t=s.decode().then(()=>{Nr(s),r[a]=s});o.push(t)}else r[a]=s}),await Promise.all(o),r}var S=ze(function({fragmentShader:r,uniforms:o,webGlContextAttributes:e,speed:i=0,frame:a=0,width:s,height:t,minPixelRatio:c,maxPixelCount:u,mipmaps:d,style:n,..._},h){let[l,g]=Xe(!1),f=Ur(null),p=Ur(null),w=Ur(e);dr(()=>((async()=>{let B=await ie(o);f.current&&!p.current&&(p.current=new ve(f.current,r,B,w.current,i,a,c,u,d),g(!0))})(),()=>{p.current?.dispose(),p.current=null}),[r]),dr(()=>{let y=!1;return(async()=>{let b=await ie(o);y||p.current?.setUniforms(b)})(),()=>{y=!0}},[o,l]),dr(()=>{p.current?.setSpeed(i)},[i,l]),dr(()=>{p.current?.setMaxPixelCount(u)},[u,l]),dr(()=>{p.current?.setMinPixelRatio(c)},[c,l]),dr(()=>{p.current?.setFrame(a)},[a,l]);let P=te([f,h]);return De(\"div\",{ref:P,style:s!==void 0||t!==void 0?{width:typeof s==\"string\"&&isNaN(+s)===!1?+s:s,height:typeof t==\"string\"&&isNaN(+t)===!1?+t:t,...n}:n,..._})});S.displayName=\"ShaderMount\";import{memo as Re}from\"react\";function k(m,r){if(Object.keys(m).length!==Object.keys(r).length)return!1;for(let o in m){if(o===\"colors\"){let e=Array.isArray(m.colors),i=Array.isArray(r.colors);if(!e||!i){if(Object.is(m.colors,r.colors)===!1)return!1;continue}if(m.colors?.length!==r.colors?.length||!m.colors?.every((a,s)=>a===r.colors?.[s]))return!1;continue}if(Object.is(m[o],r[o])===!1)return!1}return!0}import{defaultObjectSizing as wr,getShaderColorFromString as He,meshGradientFragmentShader as Ge,ShaderFitOptions as We}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Ie}from\"react/jsx-runtime\";var sr={name:\"Default\",params:{...wr,speed:1,frame:0,colors:[\"#e0eaff\",\"#241d9a\",\"#f75092\",\"#9f50d3\"],distortion:.8,swirl:.1,grainMixer:0,grainOverlay:0}},Ae={name:\"Purple\",params:{...wr,speed:.6,frame:0,colors:[\"#aaa7d7\",\"#3c2b8e\"],distortion:1,swirl:1,grainMixer:0,grainOverlay:0}},qe={name:\"Beach\",params:{...wr,speed:.1,frame:0,colors:[\"#bcecf6\",\"#00aaff\",\"#00f7ff\",\"#ffd447\"],distortion:.8,swirl:.35,grainMixer:0,grainOverlay:0}},je={name:\"Ink\",params:{...wr,speed:1,frame:0,colors:[\"#ffffff\",\"#000000\"],distortion:1,swirl:.2,rotation:90,grainMixer:0,grainOverlay:0}},Te=[sr,je,Ae,qe],Ee=Re(function({speed:r=sr.params.speed,frame:o=sr.params.frame,colors:e=sr.params.colors,distortion:i=sr.params.distortion,swirl:a=sr.params.swirl,grainMixer:s=sr.params.grainMixer,grainOverlay:t=sr.params.grainOverlay,fit:c=sr.params.fit,rotation:u=sr.params.rotation,scale:d=sr.params.scale,originX:n=sr.params.originX,originY:_=sr.params.originY,offsetX:h=sr.params.offsetX,offsetY:l=sr.params.offsetY,worldWidth:g=sr.params.worldWidth,worldHeight:f=sr.params.worldHeight,...p}){let w={u_colors:e.map(He),u_colorsCount:e.length,u_distortion:i,u_swirl:a,u_grainMixer:s,u_grainOverlay:t,u_fit:We[c],u_rotation:u,u_scale:d,u_offsetX:h,u_offsetY:l,u_originX:n,u_originY:_,u_worldWidth:g,u_worldHeight:f};return Ie(S,{...p,speed:r,frame:o,fragmentShader:Ge,uniforms:w})},k);import{memo as Le}from\"react\";import{defaultObjectSizing as Pr,getShaderColorFromString as ne,getShaderNoiseTexture as Ne,smokeRingFragmentShader as Ue,ShaderFitOptions as Ke}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Ve}from\"react/jsx-runtime\";var $={name:\"Default\",params:{...Pr,speed:.5,frame:0,colorBack:\"#000000\",colors:[\"#ffffff\"],noiseScale:3,noiseIterations:8,radius:.25,thickness:.65,innerShape:.7,scale:.8}},$e={name:\"Solar\",params:{...Pr,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#ffffff\",\"#ffca0a\",\"#fc6203\",\"#fc620366\"],noiseScale:2,noiseIterations:3,radius:.4,thickness:.8,innerShape:4,scale:2,offsetY:1}},Je={name:\"Line\",params:{...Pr,frame:0,colorBack:\"#000000\",colors:[\"#4540a4\",\"#1fe8ff\"],noiseScale:1.1,noiseIterations:2,radius:.38,thickness:.01,innerShape:.88,speed:4}},Qe={name:\"Cloud\",params:{...Pr,frame:0,colorBack:\"#81ADEC\",colors:[\"#ffffff\"],noiseScale:3,noiseIterations:10,radius:.5,thickness:.65,innerShape:.85,speed:.5,scale:2.5}},Ze=[$,Je,$e,Qe],ra=Le(function({speed:r=$.params.speed,frame:o=$.params.frame,colorBack:e=$.params.colorBack,colors:i=$.params.colors,noiseScale:a=$.params.noiseScale,thickness:s=$.params.thickness,radius:t=$.params.radius,innerShape:c=$.params.innerShape,noiseIterations:u=$.params.noiseIterations,fit:d=$.params.fit,scale:n=$.params.scale,rotation:_=$.params.rotation,originX:h=$.params.originX,originY:l=$.params.originY,offsetX:g=$.params.offsetX,offsetY:f=$.params.offsetY,worldWidth:p=$.params.worldWidth,worldHeight:w=$.params.worldHeight,...P}){let y={u_colorBack:ne(e),u_colors:i.map(ne),u_colorsCount:i.length,u_noiseScale:a,u_thickness:s,u_radius:t,u_innerShape:c,u_noiseIterations:u,u_noiseTexture:Ne(),u_fit:Ke[d],u_scale:n,u_rotation:_,u_offsetX:g,u_offsetY:f,u_originX:h,u_originY:l,u_worldWidth:p,u_worldHeight:w};return Ve(S,{...P,speed:r,frame:o,fragmentShader:Ue,uniforms:y})},k);import{memo as ea}from\"react\";import{defaultPatternSizing as kr,getShaderColorFromString as Kr,neuroNoiseFragmentShader as aa,ShaderFitOptions as oa}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as sa}from\"react/jsx-runtime\";var tr={name:\"Default\",params:{...kr,speed:1,frame:0,colorFront:\"#ffffff\",colorMid:\"#47a6ff\",colorBack:\"#000000\",brightness:.05,contrast:.3}},ta={name:\"Sensation\",params:{...kr,speed:1,frame:0,colorFront:\"#00c8ff\",colorMid:\"#fbff00\",colorBack:\"#8b42ff\",brightness:.19,contrast:.12,scale:3}},ia={name:\"Bloodstream\",params:{...kr,speed:1,frame:0,colorFront:\"#ff0000\",colorMid:\"#ff0000\",colorBack:\"#ffffff\",brightness:.24,contrast:.17,scale:.7}},na={name:\"Ghost\",params:{...kr,speed:1,frame:0,colorFront:\"#ffffff\",colorMid:\"#000000\",colorBack:\"#ffffff\",brightness:0,contrast:1,scale:.55}},fa=[tr,ta,ia,na],ma=ea(function({speed:r=tr.params.speed,frame:o=tr.params.frame,colorFront:e=tr.params.colorFront,colorMid:i=tr.params.colorMid,colorBack:a=tr.params.colorBack,brightness:s=tr.params.brightness,contrast:t=tr.params.contrast,fit:c=tr.params.fit,scale:u=tr.params.scale,rotation:d=tr.params.rotation,originX:n=tr.params.originX,originY:_=tr.params.originY,offsetX:h=tr.params.offsetX,offsetY:l=tr.params.offsetY,worldWidth:g=tr.params.worldWidth,worldHeight:f=tr.params.worldHeight,...p}){let w={u_colorFront:Kr(e),u_colorMid:Kr(i),u_colorBack:Kr(a),u_brightness:s,u_contrast:t,u_fit:oa[c],u_scale:u,u_rotation:d,u_offsetX:h,u_offsetY:l,u_originX:n,u_originY:_,u_worldWidth:g,u_worldHeight:f};return sa(S,{...p,speed:r,frame:o,fragmentShader:aa,uniforms:w})},k);import{memo as pa}from\"react\";import{getShaderColorFromString as fe,getShaderNoiseTexture as la,dotOrbitFragmentShader as ca,ShaderFitOptions as ua,defaultPatternSizing as yr}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as da}from\"react/jsx-runtime\";var Z={name:\"Default\",params:{...yr,speed:1.5,frame:0,colorBack:\"#000000\",colors:[\"#ffc96b\",\"#ff6200\",\"#ff2f00\",\"#421100\",\"#1a0000\"],size:1,sizeRange:0,spreading:1,stepsPerColor:4}},ga={name:\"Shine\",params:{...yr,speed:.1,frame:0,colors:[\"#ffffff\",\"#006aff\",\"#fff675\"],colorBack:\"#000000\",stepsPerColor:4,size:.3,sizeRange:.2,spreading:1,scale:.4}},ha={name:\"Bubbles\",params:{...yr,speed:.4,frame:0,colors:[\"#D0D2D5\"],colorBack:\"#989CA4\",stepsPerColor:2,size:.9,sizeRange:.7,spreading:1,scale:1.64}},_a={name:\"Hallucinatory\",params:{...yr,speed:5,frame:0,colors:[\"#000000\"],colorBack:\"#ffe500\",stepsPerColor:2,size:.65,sizeRange:0,spreading:.3,scale:.5}},Sa=[Z,ha,ga,_a],wa=pa(function({speed:r=Z.params.speed,frame:o=Z.params.frame,colorBack:e=Z.params.colorBack,colors:i=Z.params.colors,size:a=Z.params.size,sizeRange:s=Z.params.sizeRange,spreading:t=Z.params.spreading,stepsPerColor:c=Z.params.stepsPerColor,fit:u=Z.params.fit,scale:d=Z.params.scale,rotation:n=Z.params.rotation,originX:_=Z.params.originX,originY:h=Z.params.originY,offsetX:l=Z.params.offsetX,offsetY:g=Z.params.offsetY,worldWidth:f=Z.params.worldWidth,worldHeight:p=Z.params.worldHeight,...w}){let P={u_colorBack:fe(e),u_colors:i.map(fe),u_colorsCount:i.length,u_size:a,u_sizeRange:s,u_spreading:t,u_stepsPerColor:c,u_noiseTexture:la(),u_fit:ua[u],u_scale:d,u_rotation:n,u_offsetX:l,u_offsetY:g,u_originX:_,u_originY:h,u_worldWidth:f,u_worldHeight:p};return da(S,{...w,speed:r,frame:o,fragmentShader:ca,uniforms:P})},k);import{memo as Pa}from\"react\";import{getShaderColorFromString as Vr,dotGridFragmentShader as ka,DotGridShapes as ya,ShaderFitOptions as ba,defaultPatternSizing as br}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Ba}from\"react/jsx-runtime\";var E={name:\"Default\",params:{...br,colorBack:\"#000000\",colorFill:\"#ffffff\",colorStroke:\"#ffaa00\",size:2,gapX:32,gapY:32,strokeWidth:0,sizeRange:0,opacityRange:0,shape:\"circle\"}},Fa={name:\"Triangles\",params:{...br,colorBack:\"#ffffff\",colorFill:\"#ffffff\",colorStroke:\"#808080\",size:5,gapX:32,gapY:32,strokeWidth:1,sizeRange:0,opacityRange:0,shape:\"triangle\"}},Ca={name:\"Tree line\",params:{...br,colorBack:\"#f4fce7\",colorFill:\"#052e19\",colorStroke:\"#000000\",size:8,gapX:20,gapY:90,strokeWidth:0,sizeRange:1,opacityRange:.6,shape:\"circle\"}},xa={name:\"Wallpaper\",params:{...br,colorBack:\"#204030\",colorFill:\"#000000\",colorStroke:\"#bd955b\",size:9,gapX:32,gapY:32,strokeWidth:1,sizeRange:0,opacityRange:0,shape:\"diamond\"}},Ya=[E,Fa,Ca,xa],Ma=Pa(function({colorBack:r=E.params.colorBack,colorFill:o=E.params.colorFill,colorStroke:e=E.params.colorStroke,size:i=E.params.size,gapX:a=E.params.gapX,gapY:s=E.params.gapY,strokeWidth:t=E.params.strokeWidth,sizeRange:c=E.params.sizeRange,opacityRange:u=E.params.opacityRange,shape:d=E.params.shape,fit:n=E.params.fit,scale:_=E.params.scale,rotation:h=E.params.rotation,originX:l=E.params.originX,originY:g=E.params.originY,offsetX:f=E.params.offsetX,offsetY:p=E.params.offsetY,worldWidth:w=E.params.worldWidth,worldHeight:P=E.params.worldHeight,maxPixelCount:y=6016*3384,...B}){let b={u_colorBack:Vr(r),u_colorFill:Vr(o),u_colorStroke:Vr(e),u_dotSize:i,u_gapX:a,u_gapY:s,u_strokeWidth:t,u_sizeRange:c,u_opacityRange:u,u_shape:ya[d],u_fit:ba[n],u_scale:_,u_rotation:h,u_offsetX:f,u_offsetY:p,u_originX:l,u_originY:g,u_worldWidth:w,u_worldHeight:P};return Ba(S,{...B,maxPixelCount:y,fragmentShader:ka,uniforms:b})},k);import{memo as za}from\"react\";import{getShaderColorFromString as Xa,simplexNoiseFragmentShader as va,ShaderFitOptions as Oa,defaultPatternSizing as Br}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Da}from\"react/jsx-runtime\";var mr={name:\"Default\",params:{...Br,scale:.6,speed:.5,frame:0,colors:[\"#4449CF\",\"#FFD1E0\",\"#F94446\",\"#FFD36B\",\"#FFFFFF\"],stepsPerColor:2,softness:0}},Ra={name:\"Bubblegum\",params:{...Br,speed:2,frame:0,colors:[\"#ffffff\",\"#ff9e9e\",\"#5f57ff\",\"#00f7ff\"],stepsPerColor:1,softness:1,scale:1.6}},Ha={name:\"Spots\",params:{...Br,speed:.6,frame:0,colors:[\"#ff7b00\",\"#f9ffeb\",\"#320d82\"],stepsPerColor:1,softness:0,scale:1}},Ga={name:\"First contact\",params:{...Br,speed:2,frame:0,colors:[\"#e8cce6\",\"#120d22\",\"#442c44\",\"#e6baba\",\"#fff5f5\"],stepsPerColor:2,softness:0,scale:.2}},Wa=[mr,Ha,Ga,Ra],Ia=za(function({speed:r=mr.params.speed,frame:o=mr.params.frame,colors:e=mr.params.colors,stepsPerColor:i=mr.params.stepsPerColor,softness:a=mr.params.softness,fit:s=mr.params.fit,scale:t=mr.params.scale,rotation:c=mr.params.rotation,originX:u=mr.params.originX,originY:d=mr.params.originY,offsetX:n=mr.params.offsetX,offsetY:_=mr.params.offsetY,worldWidth:h=mr.params.worldWidth,worldHeight:l=mr.params.worldHeight,...g}){let f={u_colors:e.map(Xa),u_colorsCount:e.length,u_stepsPerColor:i,u_softness:a,u_fit:Oa[s],u_scale:t,u_rotation:c,u_offsetX:n,u_offsetY:_,u_originX:u,u_originY:d,u_worldWidth:h,u_worldHeight:l};return Da(S,{...g,speed:r,frame:o,fragmentShader:va,uniforms:f})},k);import{memo as Aa}from\"react\";import{defaultObjectSizing as Fr,getShaderColorFromString as me,getShaderNoiseTexture as qa,metaballsFragmentShader as ja,ShaderFitOptions as Ta}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Ea}from\"react/jsx-runtime\";var fr={name:\"Default\",params:{...Fr,scale:1,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#6e33cc\",\"#ff5500\",\"#ffc105\",\"#ffc800\",\"#f585ff\"],count:10,size:.83}},La={name:\"Ink Drops\",params:{...Fr,scale:1,speed:2,frame:0,colorBack:\"#ffffff00\",colors:[\"#000000\"],count:18,size:.1}},Na={name:\"Background\",params:{...Fr,speed:.5,frame:0,colors:[\"#ae00ff\",\"#00ff95\",\"#ffc105\"],colorBack:\"#2a273f\",count:13,size:.81,scale:4,rotation:0,offsetX:-.3}},Ua={name:\"Solar\",params:{...Fr,speed:1,frame:0,colors:[\"#ffc800\",\"#ff5500\",\"#ffc105\"],colorBack:\"#102f84\",count:7,size:.75,scale:1}},Ka=[fr,La,Ua,Na],Va=Aa(function({speed:r=fr.params.speed,frame:o=fr.params.frame,colorBack:e=fr.params.colorBack,colors:i=fr.params.colors,size:a=fr.params.size,count:s=fr.params.count,fit:t=fr.params.fit,rotation:c=fr.params.rotation,scale:u=fr.params.scale,originX:d=fr.params.originX,originY:n=fr.params.originY,offsetX:_=fr.params.offsetX,offsetY:h=fr.params.offsetY,worldWidth:l=fr.params.worldWidth,worldHeight:g=fr.params.worldHeight,...f}){let p={u_colorBack:me(e),u_colors:i.map(me),u_colorsCount:i.length,u_size:a,u_count:s,u_noiseTexture:qa(),u_fit:Ta[t],u_rotation:c,u_scale:u,u_offsetX:_,u_offsetY:h,u_originX:d,u_originY:n,u_worldWidth:l,u_worldHeight:g};return Ea(S,{...f,speed:r,frame:o,fragmentShader:ja,uniforms:p})},k);import{memo as $a}from\"react\";import{defaultPatternSizing as Cr,getShaderColorFromString as pe,wavesFragmentShader as Ja,ShaderFitOptions as Qa}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Za}from\"react/jsx-runtime\";var rr={name:\"Default\",params:{...Cr,scale:.6,colorFront:\"#ffbb00\",colorBack:\"#000000\",shape:0,frequency:.5,amplitude:.5,spacing:1.2,proportion:.1,softness:0}},ro={name:\"Groovy\",params:{...Cr,scale:5,rotation:90,colorFront:\"#fcfcee\",colorBack:\"#ff896b\",shape:3,frequency:.2,amplitude:.25,spacing:1.17,proportion:.57,softness:0}},eo={name:\"Tangled up\",params:{...Cr,scale:.5,rotation:0,colorFront:\"#133a41\",colorBack:\"#c2d8b6\",shape:2.07,frequency:.44,amplitude:.57,spacing:1.05,proportion:.75,softness:0}},ao={name:\"Ride the wave\",params:{...Cr,scale:1.7,rotation:0,colorFront:\"#fdffe6\",colorBack:\"#1f1f1f\",shape:2.25,frequency:.2,amplitude:1,spacing:1.25,proportion:1,softness:0}},oo=[rr,ro,eo,ao],so=$a(function({colorFront:r=rr.params.colorFront,colorBack:o=rr.params.colorBack,shape:e=rr.params.shape,frequency:i=rr.params.frequency,amplitude:a=rr.params.amplitude,spacing:s=rr.params.spacing,proportion:t=rr.params.proportion,softness:c=rr.params.softness,fit:u=rr.params.fit,scale:d=rr.params.scale,rotation:n=rr.params.rotation,offsetX:_=rr.params.offsetX,offsetY:h=rr.params.offsetY,originX:l=rr.params.originX,originY:g=rr.params.originY,worldWidth:f=rr.params.worldWidth,worldHeight:p=rr.params.worldHeight,maxPixelCount:w=6016*3384,...P}){let y={u_colorFront:pe(r),u_colorBack:pe(o),u_shape:e,u_frequency:i,u_amplitude:a,u_spacing:s,u_proportion:t,u_softness:c,u_fit:Qa[u],u_scale:d,u_rotation:n,u_offsetX:_,u_offsetY:h,u_originX:l,u_originY:g,u_worldWidth:f,u_worldHeight:p};return Za(S,{...P,fragmentShader:Ja,uniforms:y})},k);import{memo as to}from\"react\";import{defaultPatternSizing as xr,getShaderColorFromString as le,perlinNoiseFragmentShader as io,ShaderFitOptions as no}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as fo}from\"react/jsx-runtime\";var W={name:\"Default\",params:{...xr,speed:.5,frame:0,colorBack:\"#632ad5\",colorFront:\"#fccff7\",proportion:.35,softness:.1,octaveCount:1,persistence:1,lacunarity:1.5}},mo={name:\"Nintendo Water\",params:{...xr,scale:1/.2,speed:.4,frame:0,colorBack:\"#2d69d4\",colorFront:\"#d1eefc\",proportion:.42,softness:0,octaveCount:2,persistence:.55,lacunarity:1.8}},po={name:\"Moss\",params:{...xr,scale:1/.15,speed:.02,frame:0,colorBack:\"#05ff4a\",colorFront:\"#262626\",proportion:.65,softness:.35,octaveCount:6,persistence:1,lacunarity:2.55}},lo={name:\"Worms\",params:{...xr,scale:.9,speed:0,frame:0,colorBack:\"#ffffff00\",colorFront:\"#595959\",proportion:.5,softness:0,octaveCount:1,persistence:1,lacunarity:1.5}},co=[W,mo,po,lo],uo=to(function({speed:r=W.params.speed,frame:o=W.params.frame,colorFront:e=W.params.colorFront,colorBack:i=W.params.colorBack,proportion:a=W.params.proportion,softness:s=W.params.softness,octaveCount:t=W.params.octaveCount,persistence:c=W.params.persistence,lacunarity:u,fit:d=W.params.fit,worldWidth:n=W.params.worldWidth,worldHeight:_=W.params.worldHeight,scale:h=W.params.scale,rotation:l=W.params.rotation,originX:g=W.params.originX,originY:f=W.params.originY,offsetX:p=W.params.offsetX,offsetY:w=W.params.offsetY,...P}){let y={u_colorBack:le(i),u_colorFront:le(e),u_proportion:a,u_softness:s??W.params.softness,u_octaveCount:t??W.params.octaveCount,u_persistence:c??W.params.persistence,u_lacunarity:u??W.params.lacunarity,u_fit:no[d],u_scale:h,u_rotation:l,u_offsetX:p,u_offsetY:w,u_originX:g,u_originY:f,u_worldWidth:n,u_worldHeight:_};return fo(S,{...P,speed:r,frame:o,fragmentShader:io,uniforms:y})},k);import{memo as go}from\"react\";import{defaultPatternSizing as Yr,getShaderColorFromString as $r,getShaderNoiseTexture as ho,voronoiFragmentShader as _o,ShaderFitOptions as So}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as wo}from\"react/jsx-runtime\";var J={name:\"Default\",params:{...Yr,speed:.5,frame:0,colors:[\"#ff8247\",\"#ffe53d\"],stepsPerColor:3,colorGlow:\"#ffffff\",colorGap:\"#2e0000\",distortion:.4,gap:.04,glow:0,scale:.5}},Po={name:\"Cells\",params:{...Yr,scale:.5,speed:.5,frame:0,colors:[\"#ffffff\"],stepsPerColor:1,colorGlow:\"#ffffff\",colorGap:\"#000000\",distortion:.5,gap:.03,glow:.8}},ko={name:\"Bubbles\",params:{...Yr,scale:.75,speed:.5,frame:0,colors:[\"#83c9fb\"],stepsPerColor:1,colorGlow:\"#ffffff\",colorGap:\"#ffffff\",distortion:.4,gap:0,glow:1}},yo={name:\"Lights\",params:{...Yr,scale:3.3,speed:.5,frame:0,colors:[\"#fffffffc\",\"#bbff00\",\"#00ffff\"],colorGlow:\"#ff00d0\",colorGap:\"#ff00d0\",stepsPerColor:2,distortion:.38,gap:0,glow:1}},bo=[J,yo,Po,ko],Bo=go(function({speed:r=J.params.speed,frame:o=J.params.frame,colors:e=J.params.colors,stepsPerColor:i=J.params.stepsPerColor,colorGlow:a=J.params.colorGlow,colorGap:s=J.params.colorGap,distortion:t=J.params.distortion,gap:c=J.params.gap,glow:u=J.params.glow,fit:d=J.params.fit,scale:n=J.params.scale,rotation:_=J.params.rotation,originX:h=J.params.originX,originY:l=J.params.originY,offsetX:g=J.params.offsetX,offsetY:f=J.params.offsetY,worldWidth:p=J.params.worldWidth,worldHeight:w=J.params.worldHeight,...P}){let y={u_colors:e.map($r),u_colorsCount:e.length,u_stepsPerColor:i,u_colorGlow:$r(a),u_colorGap:$r(s),u_distortion:t,u_gap:c,u_glow:u,u_noiseTexture:ho(),u_fit:So[d],u_scale:n,u_rotation:_,u_offsetX:g,u_offsetY:f,u_originX:h,u_originY:l,u_worldWidth:p,u_worldHeight:w};return wo(S,{...P,speed:r,frame:o,fragmentShader:_o,uniforms:y})},k);import{memo as Fo}from\"react\";import{defaultPatternSizing as gr,getShaderColorFromString as Co,getShaderNoiseTexture as xo,warpFragmentShader as Yo,ShaderFitOptions as Mo,WarpPatterns as zo}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Xo}from\"react/jsx-runtime\";var L={name:\"Default\",params:{...gr,rotation:0,speed:1,frame:0,colors:[\"#121212\",\"#9470ff\",\"#121212\",\"#8838ff\"],proportion:.45,softness:1,distortion:.25,swirl:.8,swirlIterations:10,shapeScale:.1,shape:\"checks\"}},vo={name:\"Cauldron Pot\",params:{...gr,scale:.9,rotation:160,speed:10,frame:0,colors:[\"#a7e58b\",\"#324472\",\"#0a180d\"],proportion:.64,softness:1.5,distortion:.2,swirl:.86,swirlIterations:7,shapeScale:.6,shape:\"edge\"}},Oo={name:\"Live Ink\",params:{...gr,scale:1.2,rotation:44,offsetY:-.3,speed:2.5,frame:0,colors:[\"#111314\",\"#9faeab\",\"#f3fee7\",\"#f3fee7\"],proportion:.05,softness:0,distortion:.25,swirl:.8,swirlIterations:10,shapeScale:.28,shape:\"checks\"}},Do={name:\"Kelp\",params:{...gr,scale:.8,rotation:50,speed:20,frame:0,colors:[\"#dbff8f\",\"#404f3e\",\"#091316\"],proportion:.67,softness:0,distortion:0,swirl:.2,swirlIterations:3,shapeScale:1,shape:\"stripes\"}},Ro={name:\"Nectar\",params:{...gr,scale:2,offsetY:.6,rotation:0,speed:4.2,frame:0,colors:[\"#151310\",\"#d3a86b\",\"#f0edea\"],proportion:.24,softness:1,distortion:.21,swirl:.57,swirlIterations:10,shapeScale:.75,shape:\"edge\"}},Ho={name:\"Passion\",params:{...gr,scale:2.5,rotation:1.35,speed:3,frame:0,colors:[\"#3b1515\",\"#954751\",\"#ffc085\"],proportion:.5,softness:1,distortion:.09,swirl:.9,swirlIterations:6,shapeScale:.25,shape:\"checks\"}},Go=[L,vo,Oo,Do,Ro,Ho],Wo=Fo(function({speed:r=L.params.speed,frame:o=L.params.frame,colors:e=L.params.colors,proportion:i=L.params.proportion,softness:a=L.params.softness,distortion:s=L.params.distortion,swirl:t=L.params.swirl,swirlIterations:c=L.params.swirlIterations,shapeScale:u=L.params.shapeScale,shape:d=L.params.shape,fit:n=L.params.fit,scale:_=L.params.scale,rotation:h=L.params.rotation,originX:l=L.params.originX,originY:g=L.params.originY,offsetX:f=L.params.offsetX,offsetY:p=L.params.offsetY,worldWidth:w=L.params.worldWidth,worldHeight:P=L.params.worldHeight,...y}){let B={u_colors:e.map(Co),u_colorsCount:e.length,u_proportion:i,u_softness:a,u_distortion:s,u_swirl:t,u_swirlIterations:c,u_shapeScale:u,u_shape:zo[d],u_noiseTexture:xo(),u_scale:_,u_rotation:h,u_fit:Mo[n],u_offsetX:f,u_offsetY:p,u_originX:l,u_originY:g,u_worldWidth:w,u_worldHeight:P};return Xo(S,{...y,speed:r,frame:o,fragmentShader:Yo,uniforms:B})},k);import{memo as Io}from\"react\";import{defaultObjectSizing as Mr,getShaderNoiseTexture as Ao,getShaderColorFromString as Jr,godRaysFragmentShader as qo,ShaderFitOptions as jo}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as To}from\"react/jsx-runtime\";var q={name:\"Default\",params:{...Mr,offsetX:0,offsetY:-.55,colorBack:\"#000000\",colorBloom:\"#0000ff\",colors:[\"#a600ff6e\",\"#6200fff0\",\"#ffffff\",\"#33fff5\"],density:.3,spotty:.3,midIntensity:.4,midSize:.2,intensity:.8,bloom:.4,speed:.75,frame:0}},Eo={name:\"Warp\",params:{...Mr,colorBack:\"#000000\",colorBloom:\"#222288\",colors:[\"#ff47d4\",\"#ff8c00\",\"#ffffff\"],density:.45,spotty:.15,midIntensity:.4,midSize:.33,intensity:.79,bloom:.4,speed:2,frame:0}},Lo={name:\"Linear\",params:{...Mr,offsetX:.2,offsetY:-.8,colorBack:\"#000000\",colorBloom:\"#eeeeee\",colors:[\"#ffffff1f\",\"#ffffff3d\",\"#ffffff29\"],density:.41,spotty:.25,midSize:.1,midIntensity:.75,intensity:.79,bloom:1,speed:.5,frame:0}},No={name:\"Ether\",params:{...Mr,offsetX:-.6,colorBack:\"#090f1d\",colorBloom:\"#ffffff\",colors:[\"#148effa6\",\"#c4dffebe\",\"#232a47\"],density:.03,spotty:.77,midSize:.1,midIntensity:.6,intensity:.6,bloom:.6,speed:1,frame:0}},Uo=[q,Eo,Lo,No],Ko=Io(function({speed:r=q.params.speed,frame:o=q.params.frame,colorBloom:e=q.params.colorBloom,colorBack:i=q.params.colorBack,colors:a=q.params.colors,density:s=q.params.density,spotty:t=q.params.spotty,midIntensity:c=q.params.midIntensity,midSize:u=q.params.midSize,intensity:d=q.params.intensity,bloom:n=q.params.bloom,fit:_=q.params.fit,scale:h=q.params.scale,rotation:l=q.params.rotation,originX:g=q.params.originX,originY:f=q.params.originY,offsetX:p=q.params.offsetX,offsetY:w=q.params.offsetY,worldWidth:P=q.params.worldWidth,worldHeight:y=q.params.worldHeight,...B}){let b={u_colorBloom:Jr(e),u_colorBack:Jr(i),u_colors:a.map(Jr),u_colorsCount:a.length,u_density:s,u_spotty:t,u_midIntensity:c,u_midSize:u,u_intensity:d,u_bloom:n,u_noiseTexture:Ao(),u_fit:jo[_],u_scale:h,u_rotation:l,u_offsetX:p,u_offsetY:w,u_originX:g,u_originY:f,u_worldWidth:P,u_worldHeight:y};return To(S,{...B,speed:r,frame:o,fragmentShader:qo,uniforms:b})},k);import{memo as Vo}from\"react\";import{defaultPatternSizing as zr,getShaderColorFromString as ce,ShaderFitOptions as $o,spiralFragmentShader as Jo}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Qo}from\"react/jsx-runtime\";var I={name:\"Default\",params:{...zr,scale:1,colorBack:\"#001429\",colorFront:\"#79D1FF\",density:1,distortion:0,strokeWidth:.5,strokeTaper:0,strokeCap:0,noise:0,noiseFrequency:0,softness:0,speed:1,frame:0}},Zo={name:\"Droplet\",params:{...zr,colorBack:\"#effafe\",colorFront:\"#bf40a0\",density:.9,distortion:0,strokeWidth:.75,strokeTaper:.18,strokeCap:1,noise:.74,noiseFrequency:.33,softness:.02,speed:1,frame:0}},rs={name:\"Jungle\",params:{...zr,scale:1.3,density:.5,colorBack:\"#a0ef2a\",colorFront:\"#288b18\",distortion:0,strokeWidth:.5,strokeTaper:0,strokeCap:0,noise:1,noiseFrequency:.25,softness:0,speed:.75,frame:0}},es={name:\"Swirl\",params:{...zr,scale:.45,colorBack:\"#b3e6d9\",colorFront:\"#1a2b4d\",density:.2,distortion:0,strokeWidth:.5,strokeTaper:0,strokeCap:0,noise:0,noiseFrequency:.3,softness:.5,speed:1,frame:0}},as=[I,rs,Zo,es],os=Vo(function({speed:r=I.params.speed,frame:o=I.params.frame,colorBack:e=I.params.colorBack,colorFront:i=I.params.colorFront,density:a=I.params.density,distortion:s=I.params.distortion,strokeWidth:t=I.params.strokeWidth,strokeTaper:c=I.params.strokeTaper,strokeCap:u=I.params.strokeCap,noiseFrequency:d=I.params.noiseFrequency,noise:n=I.params.noise,softness:_=I.params.softness,fit:h=I.params.fit,rotation:l=I.params.rotation,scale:g=I.params.scale,originX:f=I.params.originX,originY:p=I.params.originY,offsetX:w=I.params.offsetX,offsetY:P=I.params.offsetY,worldWidth:y=I.params.worldWidth,worldHeight:B=I.params.worldHeight,...b}){let M={u_colorBack:ce(e),u_colorFront:ce(i),u_density:a,u_distortion:s,u_strokeWidth:t,u_strokeTaper:c,u_strokeCap:u,u_noiseFrequency:d,u_noise:n,u_softness:_,u_fit:$o[h],u_scale:g,u_rotation:l,u_offsetX:w,u_offsetY:P,u_originX:f,u_originY:p,u_worldWidth:y,u_worldHeight:B};return Qo(S,{...b,speed:r,frame:o,fragmentShader:Jo,uniforms:M})},k);import{memo as ss}from\"react\";import{defaultObjectSizing as Xr,getShaderColorFromString as ue,ShaderFitOptions as ts,swirlFragmentShader as is}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as ns}from\"react/jsx-runtime\";var j={name:\"Default\",params:{...Xr,speed:.32,frame:0,colorBack:\"#330000\",colors:[\"#ffd1d1\",\"#ff8a8a\",\"#660000\"],bandCount:4,twist:.1,center:.2,proportion:.5,softness:0,noiseFrequency:.4,noise:.2}},fs={name:\"Opening\",params:{...Xr,offsetX:-.4,offsetY:1,speed:.5,frame:0,colorBack:\"#ff8b61\",colors:[\"#fefff0\",\"#ffd8bd\",\"#ff8b61\"],bandCount:2,twist:.3,center:.2,proportion:.5,softness:0,noiseFrequency:0,noise:0,scale:1}},ms={name:\"007\",params:{...Xr,speed:1,frame:0,colorBack:\"#E9E7DA\",colors:[\"#000000\"],bandCount:5,twist:.3,center:0,proportion:0,softness:0,noiseFrequency:.5,noise:0}},ps={name:\"Candy\",params:{...Xr,speed:1,frame:0,colorBack:\"#ffcd66\",colors:[\"#6bbceb\",\"#d7b3ff\",\"#ff9fff\"],bandCount:2,twist:.15,center:.2,proportion:.5,softness:1,noiseFrequency:.5,noise:0}},ls=[j,ms,fs,ps],cs=ss(function({speed:r=j.params.speed,frame:o=j.params.frame,colorBack:e=j.params.colorBack,colors:i=j.params.colors,bandCount:a=j.params.bandCount,twist:s=j.params.twist,center:t=j.params.center,proportion:c=j.params.proportion,softness:u=j.params.softness,noiseFrequency:d=j.params.noiseFrequency,noise:n=j.params.noise,fit:_=j.params.fit,rotation:h=j.params.rotation,scale:l=j.params.scale,originX:g=j.params.originX,originY:f=j.params.originY,offsetX:p=j.params.offsetX,offsetY:w=j.params.offsetY,worldWidth:P=j.params.worldWidth,worldHeight:y=j.params.worldHeight,...B}){let b={u_colorBack:ue(e),u_colors:i.map(ue),u_colorsCount:i.length,u_bandCount:a,u_twist:s,u_center:t,u_proportion:c,u_softness:u,u_noiseFrequency:d,u_noise:n,u_fit:ts[_],u_scale:l,u_rotation:h,u_offsetX:p,u_offsetY:w,u_originX:g,u_originY:f,u_worldWidth:P,u_worldHeight:y};return ns(S,{...B,speed:r,frame:o,fragmentShader:is,uniforms:b})},k);import{memo as us}from\"react\";import{getShaderColorFromString as de,ditheringFragmentShader as ds,ShaderFitOptions as gs,defaultPatternSizing as Qr,defaultObjectSizing as Zr,DitheringTypes as hs}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{DitheringShapes as _s}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Ss}from\"react/jsx-runtime\";var ir={name:\"Default\",params:{...Qr,speed:1,frame:0,scale:.6,colorBack:\"#000000\",colorFront:\"#00b2ff\",shape:\"sphere\",type:\"4x4\",size:2}},ws={name:\"Sine Wave\",params:{...Qr,speed:1,frame:0,colorBack:\"#730d54\",colorFront:\"#00becc\",shape:\"wave\",type:\"4x4\",size:11,scale:1.2}},Ps={name:\"Bugs\",params:{...Qr,speed:1,frame:0,colorBack:\"#000000\",colorFront:\"#008000\",shape:\"dots\",type:\"random\",size:9}},ks={name:\"Ripple\",params:{...Zr,speed:1,frame:0,colorBack:\"#603520\",colorFront:\"#c67953\",shape:\"ripple\",type:\"2x2\",size:3}},ys={name:\"Swirl\",params:{...Zr,speed:1,frame:0,colorBack:\"#00000000\",colorFront:\"#47a8e1\",shape:\"swirl\",type:\"8x8\",size:2}},bs={name:\"Warp\",params:{...Zr,speed:1,frame:0,colorBack:\"#301c2a\",colorFront:\"#56ae6c\",shape:\"warp\",type:\"4x4\",size:2.5}},Bs=[ir,bs,ws,ks,Ps,ys],Fs=us(function({speed:r=ir.params.speed,frame:o=ir.params.frame,colorBack:e=ir.params.colorBack,colorFront:i=ir.params.colorFront,shape:a=ir.params.shape,type:s=ir.params.type,pxSize:t,size:c=t===void 0?ir.params.size:t,fit:u=ir.params.fit,scale:d=ir.params.scale,rotation:n=ir.params.rotation,originX:_=ir.params.originX,originY:h=ir.params.originY,offsetX:l=ir.params.offsetX,offsetY:g=ir.params.offsetY,worldWidth:f=ir.params.worldWidth,worldHeight:p=ir.params.worldHeight,...w}){let P={u_colorBack:de(e),u_colorFront:de(i),u_shape:_s[a],u_type:hs[s],u_pxSize:c,u_fit:gs[u],u_scale:d,u_rotation:n,u_offsetX:l,u_offsetY:g,u_originX:_,u_originY:h,u_worldWidth:f,u_worldHeight:p};return Ss(S,{...w,speed:r,frame:o,fragmentShader:ds,uniforms:P})});import{memo as Cs}from\"react\";import{getShaderColorFromString as ge,getShaderNoiseTexture as xs,grainGradientFragmentShader as Ys,ShaderFitOptions as Ms,defaultPatternSizing as re,defaultObjectSizing as ee,GrainGradientShapes as zs}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Xs}from\"react/jsx-runtime\";var er={name:\"Default\",params:{...ee,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#7300ff\",\"#eba8ff\",\"#00bfff\",\"#2a00ff\"],softness:.5,intensity:.5,noise:.25,shape:\"corners\"}},vs={name:\"Wave\",params:{...re,speed:1,frame:0,colorBack:\"#000a0f\",colors:[\"#c4730b\",\"#bdad5f\",\"#d8ccc7\"],softness:.7,intensity:.15,noise:.5,shape:\"wave\"}},Os={name:\"Dots\",params:{...re,scale:.6,speed:1,frame:0,colorBack:\"#0a0000\",colors:[\"#6f0000\",\"#0080ff\",\"#f2ebc9\",\"#33cc33\"],softness:1,intensity:1,noise:.7,shape:\"dots\"}},Ds={name:\"Truchet\",params:{...re,speed:1,frame:0,colorBack:\"#0a0000\",colors:[\"#6f2200\",\"#eabb7c\",\"#39b523\"],softness:0,intensity:.2,noise:1,shape:\"truchet\"}},Rs={name:\"Ripple\",params:{...ee,scale:.5,speed:1,frame:0,colorBack:\"#140a00\",colors:[\"#6f2d00\",\"#88ddae\",\"#2c0b1d\"],softness:.5,intensity:.5,noise:.5,shape:\"ripple\"}},Hs={name:\"Blob\",params:{...ee,scale:1.3,speed:1,frame:0,colorBack:\"#0f0e18\",colors:[\"#3e6172\",\"#a49b74\",\"#568c50\"],softness:0,intensity:.15,noise:.5,shape:\"blob\"}},Gs=[er,vs,Os,Ds,Rs,Hs],Ws=Cs(function({speed:r=er.params.speed,frame:o=er.params.frame,colorBack:e=er.params.colorBack,colors:i=er.params.colors,softness:a=er.params.softness,intensity:s=er.params.intensity,noise:t=er.params.noise,shape:c=er.params.shape,fit:u=er.params.fit,scale:d=er.params.scale,rotation:n=er.params.rotation,originX:_=er.params.originX,originY:h=er.params.originY,offsetX:l=er.params.offsetX,offsetY:g=er.params.offsetY,worldWidth:f=er.params.worldWidth,worldHeight:p=er.params.worldHeight,...w}){let P={u_colorBack:ge(e),u_colors:i.map(ge),u_colorsCount:i.length,u_softness:a,u_intensity:s,u_noise:t,u_shape:zs[c],u_noiseTexture:xs(),u_fit:Ms[u],u_scale:d,u_rotation:n,u_offsetX:l,u_offsetY:g,u_originX:_,u_originY:h,u_worldWidth:f,u_worldHeight:p};return Xs(S,{...w,speed:r,frame:o,fragmentShader:Ys,uniforms:P})});import{memo as Is}from\"react\";import{defaultObjectSizing as vr,getShaderColorFromString as he,getShaderNoiseTexture as As,pulsingBorderFragmentShader as qs,ShaderFitOptions as js}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{PulsingBorderAspectRatios as Ts}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Es}from\"react/jsx-runtime\";var Y={name:\"Default\",params:{...vr,speed:1,frame:0,scale:.6,colorBack:\"#000000\",colors:[\"#0dc1fd\",\"#d915ef\",\"#ff3f2ecc\"],roundness:.25,thickness:.1,margin:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0,aspectRatio:\"auto\",softness:.75,intensity:.2,bloom:.25,spots:5,spotSize:.5,pulse:.25,smoke:.3,smokeSize:.6}},Ls={name:\"Circle\",params:{...vr,aspectRatio:\"square\",scale:.6,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#0dc1fd\",\"#d915ef\",\"#ff3f2ecc\"],roundness:1,margin:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0,thickness:0,softness:.75,intensity:.2,bloom:.45,spots:3,spotSize:.4,pulse:.5,smoke:1,smokeSize:0}},Ns={name:\"Northern lights\",params:{...vr,speed:.18,scale:1.1,frame:0,colors:[\"#4c4794\",\"#774a7d\",\"#12694a\",\"#0aff78\",\"#4733cc\"],colorBack:\"#0c182c\",roundness:0,thickness:1,softness:1,margin:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0,aspectRatio:\"auto\",intensity:.1,bloom:.2,spots:4,spotSize:.25,pulse:0,smoke:.32,smokeSize:.5}},Us={name:\"Solid line\",params:{...vr,speed:1,frame:0,colors:[\"#81ADEC\"],colorBack:\"#00000000\",roundness:0,thickness:.05,margin:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0,aspectRatio:\"auto\",softness:0,intensity:0,bloom:.15,spots:4,spotSize:1,pulse:0,smoke:0,smokeSize:0}},Ks=[Y,Ls,Ns,Us],Vs=Is(function({speed:r=Y.params.speed,frame:o=Y.params.frame,colors:e=Y.params.colors,colorBack:i=Y.params.colorBack,roundness:a=Y.params.roundness,thickness:s=Y.params.thickness,aspectRatio:t=Y.params.aspectRatio,softness:c=Y.params.softness,bloom:u=Y.params.bloom,intensity:d=Y.params.intensity,spots:n=Y.params.spots,spotSize:_=Y.params.spotSize,pulse:h=Y.params.pulse,smoke:l=Y.params.smoke,smokeSize:g=Y.params.smokeSize,margin:f,marginLeft:p=f??Y.params.marginLeft,marginRight:w=f??Y.params.marginRight,marginTop:P=f??Y.params.marginTop,marginBottom:y=f??Y.params.marginBottom,fit:B=Y.params.fit,rotation:b=Y.params.rotation,scale:M=Y.params.scale,originX:D=Y.params.originX,originY:z=Y.params.originY,offsetX:G=Y.params.offsetX,offsetY:K=Y.params.offsetY,worldWidth:V=Y.params.worldWidth,worldHeight:ar=Y.params.worldHeight,...nr}){let or={u_colorBack:he(i),u_colors:e.map(he),u_colorsCount:e.length,u_roundness:a,u_thickness:s,u_marginLeft:p,u_marginRight:w,u_marginTop:P,u_marginBottom:y,u_aspectRatio:Ts[t],u_softness:c,u_intensity:d,u_bloom:u,u_spots:n,u_spotSize:_,u_pulse:h,u_smoke:l,u_smokeSize:g,u_noiseTexture:As(),u_fit:js[B],u_rotation:b,u_scale:M,u_offsetX:G,u_offsetY:K,u_originX:D,u_originY:z,u_worldWidth:V,u_worldHeight:ar};return Es(S,{...nr,speed:r,frame:o,fragmentShader:qs,uniforms:or})},k);import{memo as $s}from\"react\";import{getShaderColorFromString as _e,colorPanelsFragmentShader as Js,ShaderFitOptions as Qs,defaultObjectSizing as Or}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Zs}from\"react/jsx-runtime\";var R={name:\"Default\",params:{...Or,speed:.5,frame:0,colors:[\"#ff9d00\",\"#fd4f30\",\"#809bff\",\"#6d2eff\",\"#333aff\",\"#f15cff\",\"#ffd557\"],colorBack:\"#000000\",angle1:0,angle2:0,length:1.1,edges:!1,blur:0,fadeIn:1,fadeOut:.3,gradient:0,density:3,scale:.8}},rt={name:\"Glass\",params:{...Or,rotation:112,speed:1,frame:0,colors:[\"#00cfff\",\"#ff2d55\",\"#34c759\",\"#af52de\"],colorBack:\"#ffffff00\",angle1:.3,angle2:.3,length:1,edges:!0,blur:.25,fadeIn:.85,fadeOut:.3,gradient:0,density:1.6}},et={name:\"Gradient\",params:{...Or,speed:.5,frame:0,colors:[\"#f2ff00\",\"#00000000\",\"#00000000\",\"#5a0283\",\"#005eff\"],colorBack:\"#8ffff2\",angle1:.4,angle2:.4,length:3,edges:!1,blur:.5,fadeIn:1,fadeOut:.39,gradient:.78,density:1.65,scale:1.72,rotation:270,offsetX:.18}},at={name:\"Opening\",params:{...Or,speed:2,frame:0,colors:[\"#00ffff\"],colorBack:\"#570044\",angle1:-1,angle2:-1,length:.52,edges:!1,blur:0,fadeIn:0,fadeOut:1,gradient:0,density:2.21,scale:2.32,rotation:360,offsetX:-.3,offsetY:.6}},ot=[R,rt,et,at],st=$s(function({speed:r=R.params.speed,frame:o=R.params.frame,colors:e=R.params.colors,colorBack:i=R.params.colorBack,angle1:a=R.params.angle1,angle2:s=R.params.angle2,length:t=R.params.length,edges:c=R.params.edges,blur:u=R.params.blur,fadeIn:d=R.params.fadeIn,fadeOut:n=R.params.fadeOut,density:_=R.params.density,gradient:h=R.params.gradient,fit:l=R.params.fit,scale:g=R.params.scale,rotation:f=R.params.rotation,originX:p=R.params.originX,originY:w=R.params.originY,offsetX:P=R.params.offsetX,offsetY:y=R.params.offsetY,worldWidth:B=R.params.worldWidth,worldHeight:b=R.params.worldHeight,...M}){let D={u_colors:e.map(_e),u_colorsCount:e.length,u_colorBack:_e(i),u_angle1:a,u_angle2:s,u_length:t,u_edges:c,u_blur:u,u_fadeIn:d,u_fadeOut:n,u_density:_,u_gradient:h,u_fit:Qs[l],u_scale:g,u_rotation:f,u_offsetX:P,u_offsetY:y,u_originX:p,u_originY:w,u_worldWidth:B,u_worldHeight:b};return Zs(S,{...M,speed:r,frame:o,fragmentShader:Js,uniforms:D})},k);import{memo as tt}from\"react\";import{defaultObjectSizing as Dr,getShaderColorFromString as it,staticMeshGradientFragmentShader as nt,ShaderFitOptions as ft}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as mt}from\"react/jsx-runtime\";var T={name:\"Default\",params:{...Dr,rotation:270,speed:0,frame:0,colors:[\"#ffad0a\",\"#6200ff\",\"#e2a3ff\",\"#ff99fd\"],positions:2,waveX:1,waveXShift:.6,waveY:1,waveYShift:.21,mixing:.93,grainMixer:0,grainOverlay:0}},pt={name:\"Sea\",params:{...Dr,speed:0,frame:0,colors:[\"#013b65\",\"#03738c\",\"#a3d3ff\",\"#f2faef\"],positions:0,waveX:.53,waveXShift:0,waveY:.95,waveYShift:.64,mixing:.5,grainMixer:0,grainOverlay:0}},lt={name:\"1960s\",params:{...Dr,speed:0,frame:0,colors:[\"#000000\",\"#082400\",\"#b1aa91\",\"#8e8c15\"],positions:42,waveX:.45,waveXShift:0,waveY:1,waveYShift:0,mixing:0,grainMixer:.37,grainOverlay:.78}},ct={name:\"Sunset\",params:{...Dr,speed:0,frame:0,colors:[\"#264653\",\"#9c2b2b\",\"#f4a261\",\"#ffffff\"],positions:0,waveX:.6,waveXShift:.7,waveY:.7,waveYShift:.7,mixing:.5,grainMixer:0,grainOverlay:0}},ut=[T,lt,ct,pt],dt=tt(function({speed:r=T.params.speed,frame:o=T.params.frame,colors:e=T.params.colors,positions:i=T.params.positions,waveX:a=T.params.waveX,waveXShift:s=T.params.waveXShift,waveY:t=T.params.waveY,waveYShift:c=T.params.waveYShift,mixing:u=T.params.mixing,grainMixer:d=T.params.grainMixer,grainOverlay:n=T.params.grainOverlay,fit:_=T.params.fit,rotation:h=T.params.rotation,scale:l=T.params.scale,originX:g=T.params.originX,originY:f=T.params.originY,offsetX:p=T.params.offsetX,offsetY:w=T.params.offsetY,worldWidth:P=T.params.worldWidth,worldHeight:y=T.params.worldHeight,...B}){let b={u_colors:e.map(it),u_colorsCount:e.length,u_positions:i,u_waveX:a,u_waveXShift:s,u_waveY:t,u_waveYShift:c,u_mixing:u,u_grainMixer:d,u_grainOverlay:n,u_fit:ft[_],u_rotation:h,u_scale:l,u_offsetX:p,u_offsetY:w,u_originX:g,u_originY:f,u_worldWidth:P,u_worldHeight:y};return mt(S,{...B,speed:r,frame:o,fragmentShader:nt,uniforms:b})},k);import{memo as gt}from\"react\";import{defaultObjectSizing as Rr,getShaderColorFromString as Se,staticRadialGradientFragmentShader as ht,ShaderFitOptions as _t}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as St}from\"react/jsx-runtime\";var v={name:\"Default\",params:{...Rr,scale:1,speed:0,frame:0,colorBack:\"#000000\",colors:[\"#00bbff\",\"#00ffe1\",\"#ffffff\"],radius:.8,focalDistance:.99,focalAngle:0,falloff:.24,mixing:.5,distortion:0,distortionShift:0,distortionFreq:12,grainMixer:0,grainOverlay:0}},wt={name:\"Cross Section\",params:{...Rr,scale:1,speed:0,frame:0,colorBack:\"#3d348b\",colors:[\"#7678ed\",\"#f7b801\",\"#f18701\",\"#37a066\"],radius:1,focalDistance:0,focalAngle:0,falloff:0,mixing:0,distortion:1,distortionShift:0,distortionFreq:12,grainMixer:0,grainOverlay:0}},Pt={name:\"Radial\",params:{...Rr,scale:1,speed:0,frame:0,colorBack:\"#264653\",colors:[\"#9c2b2b\",\"#f4a261\",\"#ffffff\"],radius:1,focalDistance:0,focalAngle:0,falloff:0,mixing:1,distortion:0,distortionShift:0,distortionFreq:12,grainMixer:0,grainOverlay:0}},kt={name:\"Lo-Fi\",params:{...Rr,speed:0,frame:0,colorBack:\"#2e1f27\",colors:[\"#d72638\",\"#3f88c5\",\"#f49d37\"],radius:1,focalDistance:0,focalAngle:0,falloff:.9,mixing:.7,distortion:0,distortionShift:0,distortionFreq:12,grainMixer:1,grainOverlay:.5}},yt=[v,kt,wt,Pt],bt=gt(function({speed:r=v.params.speed,frame:o=v.params.frame,colorBack:e=v.params.colorBack,colors:i=v.params.colors,radius:a=v.params.radius,focalDistance:s=v.params.focalDistance,focalAngle:t=v.params.focalAngle,falloff:c=v.params.falloff,grainMixer:u=v.params.grainMixer,mixing:d=v.params.mixing,distortion:n=v.params.distortion,distortionShift:_=v.params.distortionShift,distortionFreq:h=v.params.distortionFreq,grainOverlay:l=v.params.grainOverlay,fit:g=v.params.fit,rotation:f=v.params.rotation,scale:p=v.params.scale,originX:w=v.params.originX,originY:P=v.params.originY,offsetX:y=v.params.offsetX,offsetY:B=v.params.offsetY,worldWidth:b=v.params.worldWidth,worldHeight:M=v.params.worldHeight,...D}){let z={u_colorBack:Se(e),u_colors:i.map(Se),u_colorsCount:i.length,u_radius:a,u_focalDistance:s,u_focalAngle:t,u_falloff:c,u_mixing:d,u_distortion:n,u_distortionShift:_,u_distortionFreq:h,u_grainMixer:u,u_grainOverlay:l,u_fit:_t[g],u_rotation:f,u_scale:p,u_offsetX:y,u_offsetY:B,u_originX:w,u_originY:P,u_worldWidth:b,u_worldHeight:M};return St(S,{...D,speed:r,frame:o,fragmentShader:ht,uniforms:z})},k);import{memo as Bt}from\"react\";import{defaultObjectSizing as Hr,getShaderColorFromString as we,getShaderNoiseTexture as Ft,paperTextureFragmentShader as Ct,ShaderFitOptions as xt}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Yt}from\"react/jsx-runtime\";var X={name:\"Default\",params:{...Hr,fit:\"cover\",scale:.6,speed:0,frame:0,colorFront:\"#9fadbc\",colorBack:\"#ffffff\",contrast:.3,roughness:.4,fiber:.3,fiberSize:.2,crumples:.3,crumpleSize:.35,folds:.65,foldCount:5,fade:0,drops:.2,seed:5.8}},Mt={name:\"Abstract\",params:{...Hr,fit:\"cover\",speed:0,frame:0,scale:.6,colorFront:\"#00eeff\",colorBack:\"#ff0a81\",contrast:.85,roughness:0,fiber:.1,fiberSize:.2,crumples:0,crumpleSize:.3,folds:1,foldCount:3,fade:0,drops:.2,seed:2.2}},zt={name:\"Cardboard\",params:{...Hr,fit:\"cover\",speed:0,frame:0,scale:.6,colorFront:\"#c7b89e\",colorBack:\"#999180\",contrast:.4,roughness:0,fiber:.35,fiberSize:.14,crumples:.7,crumpleSize:.1,folds:0,foldCount:1,fade:0,drops:.1,seed:1.6}},Xt={name:\"Details\",params:{...Hr,speed:0,frame:0,fit:\"cover\",scale:3,colorFront:\"#00000000\",colorBack:\"#00000000\",contrast:0,roughness:1,fiber:.27,fiberSize:.22,crumples:1,crumpleSize:.5,folds:1,foldCount:15,fade:0,drops:0,seed:6}},vt=[X,zt,Mt,Xt],Ot=Bt(function({speed:r=X.params.speed,frame:o=X.params.frame,colorFront:e=X.params.colorFront,colorBack:i=X.params.colorBack,image:a=\"\",contrast:s=X.params.contrast,roughness:t=X.params.roughness,fiber:c=X.params.fiber,crumples:u=X.params.crumples,folds:d=X.params.folds,drops:n=X.params.drops,seed:_=X.params.seed,fiberScale:h,fiberSize:l=h===void 0?X.params.fiberSize:.2/h,crumplesScale:g,crumpleSize:f=g===void 0?X.params.crumpleSize:.2/g,blur:p,fade:w=p===void 0?X.params.fade:p,foldsNumber:P,foldCount:y=P===void 0?X.params.foldCount:P,fit:B=X.params.fit,scale:b=X.params.scale,rotation:M=X.params.rotation,originX:D=X.params.originX,originY:z=X.params.originY,offsetX:G=X.params.offsetX,offsetY:K=X.params.offsetY,worldWidth:V=X.params.worldWidth,worldHeight:ar=X.params.worldHeight,...nr}){let or=typeof window<\"u\"&&{u_noiseTexture:Ft()},pr={u_image:a,u_colorFront:we(e),u_colorBack:we(i),u_contrast:s,u_roughness:t,u_fiber:c,u_fiberSize:l,u_crumples:u,u_crumpleSize:f,u_foldCount:y,u_folds:d,u_fade:w,u_drops:n,u_seed:_,...or,u_fit:xt[B],u_scale:b,u_rotation:M,u_offsetX:G,u_offsetY:K,u_originX:D,u_originY:z,u_worldWidth:V,u_worldHeight:ar};return Yt(S,{...nr,speed:r,frame:o,fragmentShader:Ct,mipmaps:[\"u_image\"],uniforms:pr})},k);import{memo as Dt}from\"react\";import{flutedGlassFragmentShader as Rt,ShaderFitOptions as Ht,defaultObjectSizing as Gr,GlassDistortionShapes as Gt,GlassGridShapes as Wt,getShaderColorFromString as ae}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as It}from\"react/jsx-runtime\";var C={name:\"Default\",params:{...Gr,fit:\"cover\",speed:0,frame:0,colorBack:\"#00000000\",colorShadow:\"#000000\",colorHighlight:\"#ffffff\",shadows:.25,size:.5,angle:0,distortionShape:\"prism\",highlights:.1,shape:\"lines\",distortion:.5,shift:0,blur:0,edges:.25,stretch:0,margin:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0,grainMixer:0,grainOverlay:0}},At={name:\"Waves\",params:{...Gr,fit:\"cover\",scale:1.2,speed:0,frame:0,colorBack:\"#00000000\",colorShadow:\"#000000\",colorHighlight:\"#ffffff\",shadows:0,size:.9,angle:0,distortionShape:\"contour\",highlights:0,shape:\"wave\",distortion:.5,shift:0,blur:.1,edges:.5,stretch:1,margin:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0,grainMixer:0,grainOverlay:.05}},qt={name:\"Abstract\",params:{...Gr,fit:\"cover\",scale:4,speed:0,frame:0,colorBack:\"#00000000\",colorShadow:\"#000000\",colorHighlight:\"#ffffff\",shadows:0,size:.7,angle:30,distortionShape:\"flat\",highlights:0,shape:\"linesIrregular\",distortion:1,shift:0,blur:1,edges:.5,stretch:1,margin:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0,grainMixer:.1,grainOverlay:.1}},jt={name:\"Folds\",params:{...Gr,fit:\"cover\",speed:0,frame:0,colorBack:\"#00000000\",colorShadow:\"#000000\",colorHighlight:\"#ffffff\",shadows:.4,size:.4,angle:0,distortionShape:\"cascade\",highlights:0,shape:\"lines\",distortion:.75,shift:0,blur:.25,edges:.5,stretch:0,margin:.1,marginLeft:.1,marginRight:.1,marginTop:.1,marginBottom:.1,grainMixer:0,grainOverlay:0}},Tt=[C,qt,At,jt],Et=Dt(function({speed:r=C.params.speed,frame:o=C.params.frame,colorBack:e=C.params.colorBack,colorShadow:i=C.params.colorShadow,colorHighlight:a=C.params.colorHighlight,image:s=\"\",shadows:t=C.params.shadows,angle:c=C.params.angle,distortion:u=C.params.distortion,distortionShape:d=C.params.distortionShape,highlights:n=C.params.highlights,shape:_=C.params.shape,shift:h=C.params.shift,blur:l=C.params.blur,edges:g=C.params.edges,margin:f,marginLeft:p=f??C.params.marginLeft,marginRight:w=f??C.params.marginRight,marginTop:P=f??C.params.marginTop,marginBottom:y=f??C.params.marginBottom,grainMixer:B=C.params.grainMixer,grainOverlay:b=C.params.grainOverlay,stretch:M=C.params.stretch,count:D,size:z=D===void 0?C.params.size:Math.pow(1/(D*1.6),1/6)/.7-.5,fit:G=C.params.fit,scale:K=C.params.scale,rotation:V=C.params.rotation,originX:ar=C.params.originX,originY:nr=C.params.originY,offsetX:or=C.params.offsetX,offsetY:pr=C.params.offsetY,worldWidth:cr=C.params.worldWidth,worldHeight:_r=C.params.worldHeight,...Lr}){let Me={u_image:s,u_colorBack:ae(e),u_colorShadow:ae(i),u_colorHighlight:ae(a),u_shadows:t,u_size:z,u_angle:c,u_distortion:u,u_shift:h,u_blur:l,u_edges:g,u_stretch:M,u_distortionShape:Gt[d],u_highlights:n,u_shape:Wt[_],u_marginLeft:p,u_marginRight:w,u_marginTop:P,u_marginBottom:y,u_grainMixer:B,u_grainOverlay:b,u_fit:Ht[G],u_scale:K,u_rotation:V,u_offsetX:or,u_offsetY:pr,u_originX:ar,u_originY:nr,u_worldWidth:cr,u_worldHeight:_r};return It(S,{...Lr,speed:r,frame:o,fragmentShader:Rt,mipmaps:[\"u_image\"],uniforms:Me})});import\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{memo as Lt}from\"react\";import{waterFragmentShader as Nt,getShaderColorFromString as Pe,ShaderFitOptions as Ut,defaultObjectSizing as Wr}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Kt}from\"react/jsx-runtime\";var N={name:\"Default\",params:{...Wr,scale:.8,speed:1,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",highlights:.07,layering:.5,edges:.8,waves:.3,caustic:.1,size:1}},Vt={name:\"Abstract\",params:{...Wr,fit:\"cover\",scale:3,speed:1,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",highlights:0,layering:0,edges:1,waves:1,caustic:.4,size:.15}},$t={name:\"Streaming\",params:{...Wr,fit:\"contain\",scale:.4,speed:2,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",highlights:0,layering:0,edges:0,waves:.5,caustic:0,size:.5}},Jt={name:\"Slow-mo\",params:{...Wr,fit:\"cover\",scale:1,speed:.1,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",highlights:.4,layering:0,edges:0,waves:0,caustic:.2,size:.7}},Qt=[N,Jt,Vt,$t],Zt=Lt(function({speed:r=N.params.speed,frame:o=N.params.frame,colorBack:e=N.params.colorBack,colorHighlight:i=N.params.colorHighlight,image:a=\"\",highlights:s=N.params.highlights,layering:t=N.params.layering,waves:c=N.params.waves,edges:u=N.params.edges,caustic:d=N.params.caustic,effectScale:n,size:_=n===void 0?N.params.size:10/9/n-1/9,fit:h=N.params.fit,scale:l=N.params.scale,rotation:g=N.params.rotation,originX:f=N.params.originX,originY:p=N.params.originY,offsetX:w=N.params.offsetX,offsetY:P=N.params.offsetY,worldWidth:y=N.params.worldWidth,worldHeight:B=N.params.worldHeight,...b}){let M={u_image:a,u_colorBack:Pe(e),u_colorHighlight:Pe(i),u_highlights:s,u_layering:t,u_waves:c,u_edges:u,u_caustic:d,u_size:_,u_fit:Ut[h],u_rotation:g,u_scale:l,u_offsetX:w,u_offsetY:P,u_originX:f,u_originY:p,u_worldWidth:y,u_worldHeight:B};return Kt(S,{...b,speed:r,frame:o,fragmentShader:Nt,mipmaps:[\"u_image\"],uniforms:M})},k);import{memo as ri}from\"react\";import{imageDitheringFragmentShader as ei,getShaderColorFromString as oe,ShaderFitOptions as ai,defaultObjectSizing as Ir,DitheringTypes as oi}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as si}from\"react/jsx-runtime\";var U={name:\"Default\",params:{...Ir,fit:\"cover\",speed:0,frame:0,colorFront:\"#94ffaf\",colorBack:\"#000c38\",colorHighlight:\"#eaff94\",type:\"8x8\",size:2,colorSteps:2,originalColors:!1,inverted:!1}},ti={name:\"Retro\",params:{...Ir,fit:\"cover\",speed:0,frame:0,colorFront:\"#eeeeee\",colorBack:\"#5452ff\",colorHighlight:\"#eeeeee\",type:\"2x2\",size:3,colorSteps:1,originalColors:!0,inverted:!1}},ii={name:\"Noise\",params:{...Ir,fit:\"cover\",speed:0,frame:0,colorFront:\"#a2997c\",colorBack:\"#000000\",colorHighlight:\"#ededed\",type:\"random\",size:1,colorSteps:1,originalColors:!1,inverted:!1}},ni={name:\"Natural\",params:{...Ir,fit:\"cover\",speed:0,frame:0,colorFront:\"#ffffff\",colorBack:\"#000000\",colorHighlight:\"#ffffff\",type:\"8x8\",size:2,colorSteps:5,originalColors:!0,inverted:!1}},fi=[U,ii,ti,ni],mi=ri(function({speed:r=U.params.speed,frame:o=U.params.frame,colorFront:e=U.params.colorFront,colorBack:i=U.params.colorBack,colorHighlight:a=U.params.colorHighlight,image:s=\"\",type:t=U.params.type,colorSteps:c=U.params.colorSteps,originalColors:u=U.params.originalColors,inverted:d=U.params.inverted,pxSize:n,size:_=n===void 0?U.params.size:n,fit:h=U.params.fit,scale:l=U.params.scale,rotation:g=U.params.rotation,originX:f=U.params.originX,originY:p=U.params.originY,offsetX:w=U.params.offsetX,offsetY:P=U.params.offsetY,worldWidth:y=U.params.worldWidth,worldHeight:B=U.params.worldHeight,...b}){let M={u_image:s,u_colorFront:oe(e),u_colorBack:oe(i),u_colorHighlight:oe(a),u_type:oi[t],u_pxSize:_,u_colorSteps:c,u_originalColors:u,u_inverted:d,u_fit:ai[h],u_rotation:g,u_scale:l,u_offsetX:w,u_offsetY:P,u_originX:f,u_originY:p,u_worldWidth:y,u_worldHeight:B};return si(S,{...b,speed:r,frame:o,fragmentShader:ei,uniforms:M})},k);import{memo as pi}from\"react\";import{lensDistortionFragmentShader as li,ShaderFitOptions as ci,defaultObjectSizing as Ar}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as ui}from\"react/jsx-runtime\";var x={name:\"Default\",params:{...Ar,scale:1,fit:\"contain\",speed:0,frame:0,spread:.6,bias:1,angle:0,perspective:.1,count:35,dispersion:1,dispersionShift:0,dispersionColor:.6,focusCenter:.8,focusEdges:1,swirl:.35,noise:0,noiseFrequency:.25,noiseOffset:0,lensBulge:0,lensCircle:0,grainMixer:0,grainOverlay:0,imageX:0,imageY:0}},di={name:\"Fisheye\",params:{...Ar,scale:1,fit:\"contain\",speed:0,frame:0,spread:.7,bias:1,angle:0,perspective:.75,count:15,dispersion:1,dispersionShift:0,dispersionColor:.7,focusCenter:.9,focusEdges:1,swirl:1,noise:0,noiseFrequency:.25,noiseOffset:0,lensBulge:.95,lensCircle:1,grainMixer:.5,grainOverlay:0,imageX:0,imageY:0}},gi={name:\"Duotone\",params:{...Ar,fit:\"contain\",speed:0,frame:0,spread:.1,bias:0,angle:0,perspective:0,count:2,dispersion:1,dispersionShift:0,dispersionColor:.1,focusCenter:0,focusEdges:0,swirl:0,noise:0,noiseFrequency:.25,noiseOffset:0,lensBulge:0,lensCircle:0,grainMixer:.1,grainOverlay:.3,imageX:0,imageY:0}},hi={name:\"Smoke\",params:{...Ar,scale:1,fit:\"contain\",speed:0,frame:0,spread:.65,bias:-1,angle:0,perspective:.4,count:50,dispersion:0,dispersionShift:0,dispersionColor:.31,focusCenter:0,focusEdges:.6,swirl:0,noise:1,noiseFrequency:.35,noiseOffset:.3,lensBulge:0,lensCircle:0,grainMixer:0,grainOverlay:0,imageX:0,imageY:0}},_i=[x,di,gi,hi],Si=pi(function({speed:r=x.params.speed,frame:o=x.params.frame,image:e=\"\",spread:i=x.params.spread,bias:a=x.params.bias,angle:s=x.params.angle,perspective:t=x.params.perspective,count:c=x.params.count,dispersion:u=x.params.dispersion,dispersionShift:d=x.params.dispersionShift,dispersionColor:n=x.params.dispersionColor,focusCenter:_=x.params.focusCenter,focusEdges:h=x.params.focusEdges,swirl:l=x.params.swirl,noise:g=x.params.noise,noiseFrequency:f=x.params.noiseFrequency,noiseOffset:p=x.params.noiseOffset,lensBulge:w=x.params.lensBulge,lensCircle:P=x.params.lensCircle,grainMixer:y=x.params.grainMixer,grainOverlay:B=x.params.grainOverlay,imageX:b=x.params.imageX,imageY:M=x.params.imageY,fit:D=x.params.fit,scale:z=x.params.scale,rotation:G=x.params.rotation,originX:K=x.params.originX,originY:V=x.params.originY,offsetX:ar=x.params.offsetX,offsetY:nr=x.params.offsetY,worldWidth:or=x.params.worldWidth,worldHeight:pr=x.params.worldHeight,...cr}){let _r={u_image:e,u_spread:i,u_bias:a,u_angle:s,u_perspective:t,u_count:c,u_dispersion:u,u_dispersionShift:d,u_dispersionColor:n,u_focusCenter:_,u_focusEdges:h,u_swirl:l,u_noise:g,u_noiseFrequency:f,u_noiseOffset:p,u_lensBulge:w,u_lensCircle:P,u_grainMixer:y,u_grainOverlay:B,u_imageX:b,u_imageY:M,u_fit:ci[D],u_rotation:G,u_scale:z,u_offsetX:ar,u_offsetY:nr,u_originX:K,u_originY:V,u_worldWidth:or,u_worldHeight:pr};return ui(S,{...cr,speed:r,frame:o,fragmentShader:li,mipmaps:[\"u_image\"],uniforms:_r})},k);import{memo as yi,useLayoutEffect as bi,useMemo as Bi,useState as Fi}from\"react\";import{getShaderColorFromString as ye,heatmapFragmentShader as Ci,ShaderFitOptions as xi,defaultObjectSizing as Be,toProcessedHeatmap as be}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";var lr=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";var wi=m=>typeof m==\"object\"&&typeof m.then==\"function\",ke=[];function Pi(m,r){if(m===r)return!0;if(!m||!r)return!1;let o=m.length;if(r.length!==o)return!1;for(let e=0;e<o;e++)if(m[e]!==r[e])return!1;return!0}function ki(m,r=null){r===null&&(r=[m]);for(let e of ke)if(Pi(r,e.keys)){if(Object.prototype.hasOwnProperty.call(e,\"error\"))throw e.error;if(Object.prototype.hasOwnProperty.call(e,\"response\"))return e.response;throw e.promise}let o={keys:r,promise:(wi(m)?m:m(...r)).then(e=>{o.response=e}).catch(e=>o.error=e)};throw ke.push(o),o.promise}var hr=(m,r)=>ki(m,r);import{jsx as Yi}from\"react/jsx-runtime\";var Q={name:\"Default\",params:{...Be,scale:.75,speed:1,frame:0,contour:.5,angle:0,noise:0,innerGlow:.5,outerGlow:.5,colorBack:\"#000000\",colors:[\"#11206a\",\"#1f3ba2\",\"#2f63e7\",\"#6bd7ff\",\"#ffe679\",\"#ff991e\",\"#ff4c00\"]}},Mi={name:\"Sepia\",params:{...Be,scale:.75,speed:.5,frame:0,contour:.5,angle:0,noise:.75,innerGlow:.5,outerGlow:.5,colorBack:\"#000000\",colors:[\"#997F45\",\"#ffffff\"]}},zi=[Q,Mi],Xi=yi(function({speed:r=Q.params.speed,frame:o=Q.params.frame,image:e=\"\",contour:i=Q.params.contour,angle:a=Q.params.angle,noise:s=Q.params.noise,innerGlow:t=Q.params.innerGlow,outerGlow:c=Q.params.outerGlow,colorBack:u=Q.params.colorBack,colors:d=Q.params.colors,suspendWhenProcessingImage:n=!1,fit:_=Q.params.fit,offsetX:h=Q.params.offsetX,offsetY:l=Q.params.offsetY,originX:g=Q.params.originX,originY:f=Q.params.originY,rotation:p=Q.params.rotation,scale:w=Q.params.scale,worldHeight:P=Q.params.worldHeight,worldWidth:y=Q.params.worldWidth,...B}){let b=typeof e==\"string\"?e:e.src,[M,D]=Fi(lr),z;n&&typeof window<\"u\"?z=hr(()=>be(b).then(K=>URL.createObjectURL(K.blob)),[b,\"heatmap\"]):z=M,bi(()=>{if(n)return;if(!b){D(lr);return}let K,V=!0;return be(b).then(ar=>{V&&(K=URL.createObjectURL(ar.blob),D(K))}),()=>{V=!1}},[b,n]);let G=Bi(()=>({u_image:z,u_contour:i,u_angle:a,u_noise:s,u_innerGlow:t,u_outerGlow:c,u_colorBack:ye(u),u_colors:d.map(ye),u_colorsCount:d.length,u_fit:xi[_],u_offsetX:h,u_offsetY:l,u_originX:g,u_originY:f,u_rotation:p,u_scale:w,u_worldHeight:P,u_worldWidth:y}),[r,o,i,a,s,t,c,d,u,z,_,h,l,g,f,p,w,P,y]);return Yi(S,{...B,speed:r,frame:o,fragmentShader:Ci,mipmaps:[\"u_image\"],uniforms:G})},k);import{memo as vi,useLayoutEffect as Oi,useState as Di}from\"react\";import{liquidMetalFragmentShader as Ri,ShaderFitOptions as Hi,defaultObjectSizing as qr,toProcessedLiquidMetal as Fe,getShaderColorFromString as Ce,LiquidMetalShapes as Gi}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Wi}from\"react/jsx-runtime\";var A={name:\"Default\",params:{...qr,scale:.6,speed:1,frame:0,colorBack:\"#AAAAAC\",colorTint:\"#ffffff\",distortion:.07,repetition:2,shiftRed:.3,shiftBlue:.3,contour:.4,softness:.1,angle:70,shape:\"diamond\"}},Ii={name:\"Noir\",params:{...qr,scale:.6,speed:1,frame:0,colorBack:\"#000000\",colorTint:\"#606060\",softness:.45,repetition:1.5,shiftRed:0,shiftBlue:0,distortion:0,contour:0,angle:90,shape:\"diamond\"}},Ai={name:\"Backdrop\",params:{...qr,speed:1,frame:0,scale:1,colorBack:\"#AAAAAC\",colorTint:\"#ffffff\",softness:.05,repetition:1.5,shiftRed:.3,shiftBlue:.3,distortion:.1,contour:.4,shape:\"none\",angle:90,worldWidth:0,worldHeight:0}},qi={name:\"Stripes\",params:{...qr,speed:1,frame:0,scale:.6,colorBack:\"#000000\",colorTint:\"#2c5d72\",softness:.8,repetition:6,shiftRed:1,shiftBlue:-1,distortion:.4,contour:.4,shape:\"circle\",angle:0}},ji=[A,Ii,Ai,qi],Ti=vi(function({colorBack:r=A.params.colorBack,colorTint:o=A.params.colorTint,speed:e=A.params.speed,frame:i=A.params.frame,image:a=\"\",contour:s=A.params.contour,distortion:t=A.params.distortion,softness:c=A.params.softness,repetition:u=A.params.repetition,shiftRed:d=A.params.shiftRed,shiftBlue:n=A.params.shiftBlue,angle:_=A.params.angle,shape:h=A.params.shape,suspendWhenProcessingImage:l=!1,fit:g=A.params.fit,scale:f=A.params.scale,rotation:p=A.params.rotation,originX:w=A.params.originX,originY:P=A.params.originY,offsetX:y=A.params.offsetX,offsetY:B=A.params.offsetY,worldWidth:b=A.params.worldWidth,worldHeight:M=A.params.worldHeight,...D}){let z=typeof a==\"string\"?a:a.src,[G,K]=Di(lr),V;l&&typeof window<\"u\"&&z?V=hr(()=>Fe(z).then(nr=>URL.createObjectURL(nr.pngBlob)),[z,\"liquid-metal\"]):V=G,Oi(()=>{if(l)return;if(!z){K(lr);return}let nr,or=!0;return Fe(z).then(pr=>{or&&(nr=URL.createObjectURL(pr.pngBlob),K(nr))}),()=>{or=!1}},[z,l]);let ar={u_colorBack:Ce(r),u_colorTint:Ce(o),u_image:V,u_contour:s,u_distortion:t,u_softness:c,u_repetition:u,u_shiftRed:d,u_shiftBlue:n,u_angle:_,u_isImage:!!a,u_shape:Gi[h],u_fit:Hi[g],u_scale:f,u_rotation:p,u_offsetX:y,u_offsetY:B,u_originX:w,u_originY:P,u_worldWidth:b,u_worldHeight:M};return Wi(S,{...D,speed:e,frame:i,fragmentShader:Ri,mipmaps:[\"u_image\"],uniforms:ar})});import{memo as Ei}from\"react\";import{halftoneDotsFragmentShader as Li,getShaderColorFromString as xe,ShaderFitOptions as Ni,defaultObjectSizing as jr,HalftoneDotsTypes as Ui,HalftoneDotsGrids as Ki}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as Vi}from\"react/jsx-runtime\";var O={name:\"Default\",params:{...jr,fit:\"cover\",speed:0,frame:0,colorBack:\"#f2f1e8\",colorFront:\"#2b2b2b\",size:.5,radius:1.25,contrast:.4,originalColors:!1,inverted:!1,grainMixer:.2,grainOverlay:.2,grainSize:.5,grid:\"hex\",type:\"gooey\"}},$i={name:\"LED screen\",params:{...jr,fit:\"cover\",speed:0,frame:0,colorBack:\"#000000\",colorFront:\"#29ff7b\",size:.5,radius:1.5,contrast:.3,originalColors:!1,inverted:!1,grainMixer:0,grainOverlay:0,grainSize:.5,grid:\"square\",type:\"soft\"}},Ji={name:\"Mosaic\",params:{...jr,fit:\"cover\",speed:0,frame:0,colorBack:\"#000000\",colorFront:\"#b2aeae\",size:.6,radius:2,contrast:.01,originalColors:!0,inverted:!1,grainMixer:0,grainOverlay:0,grainSize:.5,grid:\"hex\",type:\"classic\"}},Qi={name:\"Round and square\",params:{...jr,fit:\"cover\",speed:0,frame:0,colorBack:\"#141414\",colorFront:\"#ff8000\",size:.8,radius:1,contrast:1,originalColors:!1,inverted:!0,grainMixer:.05,grainOverlay:.3,grainSize:.5,grid:\"square\",type:\"holes\"}},Zi=[O,$i,Ji,Qi],rn=Ei(function({speed:r=O.params.speed,frame:o=O.params.frame,colorFront:e=O.params.colorFront,colorBack:i=O.params.colorBack,image:a=\"\",size:s=O.params.size,radius:t=O.params.radius,contrast:c=O.params.contrast,originalColors:u=O.params.originalColors,inverted:d=O.params.inverted,grainMixer:n=O.params.grainMixer,grainOverlay:_=O.params.grainOverlay,grainSize:h=O.params.grainSize,grid:l=O.params.grid,type:g=O.params.type,fit:f=O.params.fit,scale:p=O.params.scale,rotation:w=O.params.rotation,originX:P=O.params.originX,originY:y=O.params.originY,offsetX:B=O.params.offsetX,offsetY:b=O.params.offsetY,worldWidth:M=O.params.worldWidth,worldHeight:D=O.params.worldHeight,...z}){let G={u_image:a,u_colorFront:xe(e),u_colorBack:xe(i),u_size:s,u_radius:t,u_contrast:c,u_originalColors:u,u_inverted:d,u_grainMixer:n,u_grainOverlay:_,u_grainSize:h,u_grid:Ki[l],u_type:Ui[g],u_fit:Ni[f],u_rotation:w,u_scale:p,u_offsetX:B,u_offsetY:b,u_originX:P,u_originY:y,u_worldWidth:M,u_worldHeight:D};return Vi(S,{...z,speed:r,frame:o,fragmentShader:Li,uniforms:G})},k);import{memo as en}from\"react\";import{halftoneCmykFragmentShader as an,getShaderColorFromString as Sr,getShaderNoiseTexture as on,ShaderFitOptions as sn,defaultObjectSizing as Tr,HalftoneCmykTypes as tn}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as nn}from\"react/jsx-runtime\";var F={name:\"Default\",params:{...Tr,scale:1,fit:\"cover\",speed:0,frame:0,colorBack:\"#fbfaf5\",colorC:\"#00b4ff\",colorM:\"#fc519f\",colorY:\"#ffd800\",colorK:\"#231f20\",size:.2,contrast:1,softness:1,grainSize:.5,grainMixer:0,grainOverlay:0,gridNoise:.2,floodC:.15,floodM:0,floodY:0,floodK:0,gainC:.3,gainM:0,gainY:.2,gainK:0,type:\"ink\"}},fn={name:\"Drops\",params:{...Tr,scale:1,fit:\"cover\",speed:0,frame:0,colorBack:\"#eeefd7\",colorC:\"#00b2ff\",colorM:\"#fc4f4f\",colorY:\"#ffd900\",colorK:\"#231f20\",size:.88,contrast:1.15,softness:0,grainSize:.01,grainMixer:.05,grainOverlay:.25,gridNoise:.5,floodC:.15,floodM:0,floodY:0,floodK:0,gainC:1,gainM:.44,gainY:-1,gainK:0,type:\"ink\"}},mn={name:\"Newspaper\",params:{...Tr,scale:1,fit:\"cover\",speed:0,frame:0,colorBack:\"#f2f1e8\",colorC:\"#7a7a75\",colorM:\"#7a7a75\",colorY:\"#7a7a75\",colorK:\"#231f20\",size:.01,contrast:2,softness:.2,grainSize:0,grainMixer:0,grainOverlay:.2,gridNoise:.6,floodC:0,floodM:0,floodY:0,floodK:.1,gainC:-.17,gainM:-.45,gainY:-.45,gainK:0,type:\"dots\"}},pn={name:\"Vintage\",params:{...Tr,scale:1,fit:\"cover\",speed:0,frame:0,colorBack:\"#fffaf0\",colorC:\"#59afc5\",colorM:\"#d8697c\",colorY:\"#fad85c\",colorK:\"#2d2824\",size:.2,contrast:1.25,softness:.4,grainSize:.5,grainMixer:.15,grainOverlay:.1,gridNoise:.45,floodC:.15,floodM:0,floodY:0,floodK:0,gainC:.3,gainM:0,gainY:.2,gainK:0,type:\"sharp\"}},ln=[F,fn,mn,pn],cn=en(function({speed:r=F.params.speed,frame:o=F.params.frame,colorBack:e=F.params.colorBack,colorC:i=F.params.colorC,colorM:a=F.params.colorM,colorY:s=F.params.colorY,colorK:t=F.params.colorK,image:c=\"\",size:u=F.params.size,contrast:d=F.params.contrast,softness:n=F.params.softness,grainSize:_=F.params.grainSize,grainMixer:h=F.params.grainMixer,grainOverlay:l=F.params.grainOverlay,gridNoise:g=F.params.gridNoise,floodC:f=F.params.floodC,floodM:p=F.params.floodM,floodY:w=F.params.floodY,floodK:P=F.params.floodK,gainC:y=F.params.gainC,gainM:B=F.params.gainM,gainY:b=F.params.gainY,gainK:M=F.params.gainK,type:D=F.params.type,fit:z=F.params.fit,scale:G=F.params.scale,rotation:K=F.params.rotation,originX:V=F.params.originX,originY:ar=F.params.originY,offsetX:nr=F.params.offsetX,offsetY:or=F.params.offsetY,worldWidth:pr=F.params.worldWidth,worldHeight:cr=F.params.worldHeight,..._r}){let Lr={u_image:c,u_noiseTexture:on(),u_colorBack:Sr(e),u_colorC:Sr(i),u_colorM:Sr(a),u_colorY:Sr(s),u_colorK:Sr(t),u_size:u,u_contrast:d,u_softness:n,u_grainSize:_,u_grainMixer:h,u_grainOverlay:l,u_gridNoise:g,u_floodC:f,u_floodM:p,u_floodY:w,u_floodK:P,u_gainC:y,u_gainM:B,u_gainY:b,u_gainK:M,u_type:tn[D],u_fit:sn[z],u_rotation:K,u_scale:G,u_offsetX:nr,u_offsetY:or,u_originX:V,u_originY:ar,u_worldWidth:pr,u_worldHeight:cr};return nn(S,{..._r,speed:r,frame:o,fragmentShader:an,uniforms:Lr})},k);import{memo as un,useLayoutEffect as dn,useState as gn}from\"react\";import{gemSmokeFragmentShader as hn,ShaderFitOptions as _n,defaultObjectSizing as Er,toProcessedGemSmoke as Ye,getShaderColorFromString as se,GemSmokeShapes as Sn}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{jsx as wn}from\"react/jsx-runtime\";var H={name:\"Default\",params:{...Er,scale:.6,speed:1,frame:0,colorBack:\"#f0efea\",colorInner:\"#fafaf5\",colors:[\"#333333\",\"#e7e6df\"],outerGlow:.55,innerGlow:1,innerDistortion:.8,outerDistortion:.6,offset:0,angle:0,size:.8,shape:\"diamond\"}},Pn={name:\"Fluorescent\",params:{...Er,scale:.6,speed:1,frame:0,colorBack:\"#000000\",colorInner:\"#000000\",colors:[\"#2fb64c\",\"#cdff61\",\"#ffffff\"],outerGlow:0,innerGlow:1,innerDistortion:1,outerDistortion:.8,offset:0,angle:0,size:.8,shape:\"diamond\"}},kn={name:\"Fire\",params:{...Er,scale:.6,speed:1,frame:0,colorBack:\"#000000\",colorInner:\"#000000\",colors:[\"#fe5b16\",\"#f7ff61\",\"#ffffff\"],outerGlow:1,innerGlow:.65,innerDistortion:.6,outerDistortion:.8,offset:0,angle:0,size:.8,shape:\"diamond\"}},yn={name:\"Infrared\",params:{...Er,scale:.6,speed:.5,frame:0,colorBack:\"#cd28dc\",colorInner:\"#00000000\",colors:[\"#ff9900\",\"#fff67a\",\"#dcff52\",\"#00ffbb\",\"#0077ff\"],outerGlow:1,innerGlow:1,innerDistortion:1,outerDistortion:1,offset:.2,angle:0,size:1,shape:\"diamond\"}},bn=[H,kn,Pn,yn],Bn=un(function({colorBack:r=H.params.colorBack,colors:o=H.params.colors,speed:e=H.params.speed,frame:i=H.params.frame,image:a=\"\",innerDistortion:s=H.params.innerDistortion,outerDistortion:t=H.params.outerDistortion,outerGlow:c=H.params.outerGlow,innerGlow:u=H.params.innerGlow,colorInner:d=H.params.colorInner,offset:n=H.params.offset,angle:_=H.params.angle,size:h=H.params.size,shape:l=H.params.shape,suspendWhenProcessingImage:g=!1,fit:f=H.params.fit,scale:p=H.params.scale,rotation:w=H.params.rotation,originX:P=H.params.originX,originY:y=H.params.originY,offsetX:B=H.params.offsetX,offsetY:b=H.params.offsetY,worldWidth:M=H.params.worldWidth,worldHeight:D=H.params.worldHeight,...z}){let G=typeof a==\"string\"?a:a.src,[K,V]=gn(lr),ar;g&&typeof window<\"u\"&&G?ar=hr(()=>Ye(G).then(or=>URL.createObjectURL(or.pngBlob)),[G,\"gemSmoke\"]):ar=K,dn(()=>{if(g)return;if(!G){V(lr);return}let or,pr=!0;return Ye(G).then(cr=>{pr&&(or=URL.createObjectURL(cr.pngBlob),V(or))}),()=>{pr=!1}},[G,g]);let nr={u_colors:o.map(se),u_colorsCount:o.length,u_colorBack:se(r),u_image:ar,u_innerDistortion:s,u_outerDistortion:t,u_outerGlow:c,u_innerGlow:u,u_colorInner:se(d),u_offset:n,u_angle:_,u_size:h,u_isImage:!!a,u_shape:Sn[l],u_fit:_n[f],u_scale:p,u_rotation:w,u_offsetX:B,u_offsetY:b,u_originX:P,u_originY:y,u_worldWidth:M,u_worldHeight:D};return wn(S,{...z,speed:e,frame:i,fragmentShader:hn,mipmaps:[\"u_image\"],uniforms:nr})},k);import{isPaperShaderElement as Al,getShaderColorFromString as ql}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";import{colorPanelsMeta as Tl,dotOrbitMeta as El,godRaysMeta as Ll,grainGradientMeta as Nl,meshGradientMeta as Ul,metaballsMeta as Kl,pulsingBorderMeta as Vl,simplexNoiseMeta as $l,smokeRingMeta as Jl,swirlMeta as Ql,voronoiMeta as Zl,warpMeta as r0,heatmapMeta as e0,lensDistortionMeta as a0,staticMeshGradientMeta as o0,staticRadialGradientMeta as s0}from\"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";export{st as ColorPanels,Fs as Dithering,Ma as DotGrid,wa as DotOrbit,Et as FlutedGlass,Bn as GemSmoke,Ko as GodRays,Ws as GrainGradient,cn as HalftoneCmyk,rn as HalftoneDots,Xi as Heatmap,mi as ImageDithering,Si as LensDistortion,Ti as LiquidMetal,Ee as MeshGradient,Va as Metaballs,ma as NeuroNoise,Ot as PaperTexture,uo as PerlinNoise,Vs as PulsingBorder,S as ShaderMount,Ia as SimplexNoise,ra as SmokeRing,os as Spiral,dt as StaticMeshGradient,bt as StaticRadialGradient,cs as Swirl,Bo as Voronoi,Wo as Warp,Zt as Water,so as Waves,Tl as colorPanelsMeta,ot as colorPanelsPresets,Bs as ditheringPresets,Ya as dotGridPresets,El as dotOrbitMeta,Sa as dotOrbitPresets,Tt as flutedGlassPresets,bn as gemSmokePresets,ql as getShaderColorFromString,Ll as godRaysMeta,Uo as godRaysPresets,Nl as grainGradientMeta,Gs as grainGradientPresets,ln as halftoneCmykPresets,Zi as halftoneDotsPresets,e0 as heatmapMeta,zi as heatmapPresets,fi as imageDitheringPresets,Al as isPaperShaderElement,a0 as lensDistortionMeta,_i as lensDistortionPresets,ji as liquidMetalPresets,Ul as meshGradientMeta,Te as meshGradientPresets,Kl as metaballsMeta,Ka as metaballsPresets,fa as neuroNoisePresets,vt as paperTexturePresets,co as perlinNoisePresets,Vl as pulsingBorderMeta,Ks as pulsingBorderPresets,$l as simplexNoiseMeta,Wa as simplexNoisePresets,Jl as smokeRingMeta,Ze as smokeRingPresets,as as spiralPresets,o0 as staticMeshGradientMeta,ut as staticMeshGradientPresets,s0 as staticRadialGradientMeta,yt as staticRadialGradientPresets,Ql as swirlMeta,ls as swirlPresets,Zl as voronoiMeta,bo as voronoiPresets,r0 as warpMeta,Go as warpPresets,Qt as waterPresets,oo as wavesPresets};\n//# sourceMappingURL=shaders-react.mjs.map","/* esm.sh - @paper-design/shaders-react@0.0.80 */\nimport \"/@paper-design/shaders@0.0.80/es2022/shaders.mjs\";\nexport * from \"/@paper-design/shaders-react@0.0.80/X-ZXJlYWN0LHJlYWN0LWRvbQ/es2022/shaders-react.mjs\";\n","// Hosted wrapper: Mesh Gradient — GENERATED by generator/generate.ts from\n// @paper-design/shaders-react@0.0.80; do not edit by hand (change generator/\n// registry.ts or mined.json inputs and re-run). Published as a code file in\n// the private PAPER-SHADERS Framer project and inserted cross-project by\n// pinned module URL; NOT part of the plugin bundle. Wrapper shape canvas-\n// verified on Mesh Gradient 2026-07-07 (docs/reference.md runbook).\n//\n// Ranges come from the vanilla package's dist .d.ts uniform doc comments via\n// generator/mined.json (the OQ2 method); curation (sizing subset, steps,\n// dropped params) from generator/registry.ts.\n//\n// Params tweening (plan B4, the differentiator): Paper's setters snap and\n// Framer does not interpolate custom control values between variants, so the\n// wrapper lerps its own params — any prop change (variant switch, interaction)\n// animates inside the shader. Uniforms update in place per frame, which Paper\n// shaders handle cheaply. Numbers and colors lerp; the curve comes from a\n// native Transition control. Snaps for static renderers (canvas/export) and\n// prefers-reduced-motion.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useRef,useState}from\"react\";// OQ1 ANSWER (2026-07-07, verified in the PAPER-SHADERS project): Framer code\n// files reject version-suffixed npm specifiers (TS2307) and silently never\n// build bare specifiers other than react/react-dom/framer/framer-motion.\n// Arbitrary packages come in as URL imports, kept VERBATIM in the compiled\n// module and resolved by the browser. This esm.sh form pins the exact package\n// version in the URL (so a pinned insertURL is frozen forever) and\n// externalizes react/react-dom to bare specifiers, which Framer's runtime\n// resolves to ITS React instance — no dual-React hook crash. Full findings +\n// runbook: docs/reference.md. Fallback if esm.sh ever misbehaves: vendor the\n// shader source into this project (Apache-2.0 permits it).\n// @ts-ignore -- URL imports carry no type declarations\nimport{MeshGradient as Shader,getShaderColorFromString}from\"https://esm.sh/@paper-design/shaders-react@0.0.80?external=react,react-dom\";const NUMBER_PARAMS=[\"distortion\",\"swirl\",\"grainMixer\",\"grainOverlay\",\"speed\",\"scale\",\"rotation\"];const EASINGS={linear:t=>t,easeIn:t=>t*t*t,easeOut:t=>1-Math.pow(1-t,3),easeInOut:t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2};// Framer's Transition control emits bezier arrays for custom curves.\nfunction cubicBezier(x1,y1,x2,y2){const cx=3*x1;const bx=3*(x2-x1)-cx;const ax=1-cx-bx;const cy=3*y1;const by=3*(y2-y1)-cy;const ay=1-cy-by;const xAt=t=>((ax*t+bx)*t+cx)*t;const dxAt=t=>(3*ax*t+2*bx)*t+cx;return x=>{let t=x;for(let i=0;i<5;i++){const dx=xAt(t)-x;const d=dxAt(t);if(Math.abs(dx)<1e-4||d===0)break;t-=dx/d;}t=Math.max(0,Math.min(1,t));return((ay*t+by)*t+cy)*t;};}// Transition control value → duration (ms) + easing. Physics springs\n// (stiffness/damping) have no closed duration; approximated with a fixed\n// ease-out — revisit if it reads wrong (generator note in docs/plan.md B4).\nfunction resolveTransition(transition){if(!transition||typeof transition!==\"object\"){return{duration:600,ease:EASINGS.easeInOut};}const type=transition.type;if(type===\"tween\"){const duration=(typeof transition.duration===\"number\"?transition.duration:.6)*1e3;const e=transition.ease;const ease=Array.isArray(e)?cubicBezier(Number(e[0]),Number(e[1]),Number(e[2]),Number(e[3])):typeof e===\"string\"&&EASINGS[e]||EASINGS.easeInOut;return{duration,ease};}if(type===\"spring\"){if(typeof transition.duration===\"number\"){return{duration:transition.duration*1e3,ease:EASINGS.easeOut};}return{duration:500,ease:EASINGS.easeOut};}return{duration:600,ease:EASINGS.easeInOut};}function toRgba(color){return getShaderColorFromString(color);}function lerpRgbaString(from,to,p){const r=Math.round((from[0]+(to[0]-from[0])*p)*255);const g=Math.round((from[1]+(to[1]-from[1])*p)*255);const b=Math.round((from[2]+(to[2]-from[2])*p)*255);const a=from[3]+(to[3]-from[3])*p;return`rgba(${r}, ${g}, ${b}, ${Number(a.toFixed(4))})`;}/* ---- the tween hook ---- */// Animates from the currently-rendered params to `target` whenever target\n// changes. Mid-flight retargeting starts from the in-flight values, so rapid\n// variant toggles stay smooth. Rotation lerps numerically (350°→10° travels\n// backwards through 180° — shortest-path wrapping is a generator TODO).\nfunction useTweenedParams(target,transition){const[current,setCurrent]=useState(target);const currentRef=useRef(target);const rafRef=useRef(0);const mountedRef=useRef(false);const isStatic=useIsStaticRenderer();const targetKey=JSON.stringify(target);useEffect(()=>{cancelAnimationFrame(rafRef.current);if(!mountedRef.current){// First run: currentRef already IS the target — nothing to animate.\nmountedRef.current=true;return undefined;}const reduced=typeof window!==\"undefined\"&&window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches===true;const{duration,ease}=resolveTransition(transition);if(isStatic||reduced||duration<=0){currentRef.current=target;setCurrent(target);return undefined;}const from=currentRef.current;const fromColors=from.colors.map(toRgba);const toColors=target.colors.map(toRgba);const start=performance.now();const frame=now=>{const t=Math.min(1,(now-start)/duration);if(t>=1){// Land exactly on the raw control values.\ncurrentRef.current=target;setCurrent(target);return;}const p=ease(t);// Length changes morph too (B4 polish, requested 2026-07-08): the\n// in-flight array holds max(from, to) entries — growing entries fade\n// in from the last from-color, dying entries fade toward the last\n// surviving target color — and the t=1 branch above snaps the array\n// to the exact target length. Both arrays non-empty is guaranteed\n// mid-flight only when the control has entries; empty sides snap.\nconst frameColors=fromColors.length>0&&toColors.length>0?Array.from({length:Math.max(fromColors.length,toColors.length)},(_,i)=>lerpRgbaString(fromColors[Math.min(i,fromColors.length-1)],toColors[Math.min(i,toColors.length-1)],p)):target.colors;const next={...target,colors:frameColors};for(const k of NUMBER_PARAMS){next[k]=from[k]+(target[k]-from[k])*p;}currentRef.current=next;setCurrent(next);rafRef.current=requestAnimationFrame(frame);};rafRef.current=requestAnimationFrame(frame);return()=>cancelAnimationFrame(rafRef.current);},[targetKey,isStatic]);return current;}// ORDER MATTERS: @framerDisableUnlink is a valueless flag annotation and\n// Framer's parser greedily eats the NEXT line as its value — placed before a\n// layout annotation it swallows it and the component inserts 0px wide. It must\n// stay LAST, right before the closing */ (inherited Unicorn fix).\n/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n * @framerDisableUnlink\n */export default function MeshGradient(props){const{colors=[\"#e0eaff\",\"#241d9a\",\"#f75092\",\"#9f50d3\"],distortion=.8,swirl=.1,grainMixer=0,grainOverlay=0,speed=1,scale=1,rotation=0,transition,style}=props;const params=useTweenedParams({colors,distortion,swirl,grainMixer,grainOverlay,speed,scale,rotation},transition);return /*#__PURE__*/_jsx(Shader,{colors:params.colors,distortion:params.distortion,swirl:params.swirl,grainMixer:params.grainMixer,grainOverlay:params.grainOverlay,speed:params.speed,scale:params.scale,rotation:params.rotation,// ShaderMount renders a <div> and container-fills it; spreading\n// Framer's style last lets the frame's sizing win.\nstyle:{width:\"100%\",height:\"100%\",...style}});}MeshGradient.displayName=\"Mesh Gradient\";addPropertyControls(MeshGradient,{colors:{type:ControlType.Array,title:\"Colors\",control:{type:ControlType.Color},// maxColorCount from meshGradientMeta; the shader ignores extras.\nmaxCount:10,defaultValue:[\"#e0eaff\",\"#241d9a\",\"#f75092\",\"#9f50d3\"]},distortion:{type:ControlType.Number,title:\"Distortion\",min:0,max:1,step:.01,defaultValue:.8},swirl:{type:ControlType.Number,title:\"Swirl\",min:0,max:1,step:.01,defaultValue:.1},grainMixer:{type:ControlType.Number,title:\"Grain mixer\",min:0,max:1,step:.01,defaultValue:0},grainOverlay:{type:ControlType.Number,title:\"Grain overlay\",min:0,max:1,step:.01,defaultValue:0},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:2,step:.01,defaultValue:1},scale:{type:ControlType.Number,title:\"Scale\",min:.01,max:4,step:.01,defaultValue:1},rotation:{type:ControlType.Number,title:\"Rotation\",min:0,max:360,step:1,unit:\"\\xb0\",defaultValue:0},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"tween\",duration:.6,ease:\"easeInOut\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MeshGradient\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MeshGradient.map"],"mappings":"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"}