{"version":3,"file":"GradientBackgroundAnimation.CSXGGfge.mjs","names":["V","Q","J","Z","a.useRef","a.useCallback","a.useMemo","o","e","r","f","K","c","t","l","p","m","u","d","g","h","k","_","w","b","X","Y","B","S","y","F","H","C","x","v","z","R","D","M","A","I","P","O","T","G","L","q","N","E","U","j","n","$","React.useState","React.useRef","React.useMemo","GrainGradient"],"sources":["https:/ga.jspm.io/npm:@paper-design/shaders@0.0.52/dist/index.js","https:/ga.jspm.io/npm:@paper-design/shaders-react@0.0.52/dist/index.js","https:/framerusercontent.com/modules/hgzeEv1NKQwL7LY43ggB/EJ0Tjb5BUzT5Uiyfq9hY/GradientBackgroundAnimation.js"],"sourcesContent":["const n=\"#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;\\n\\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 float u_pxSize;\\n\\nout vec2 v_objectUV;\\nout vec2 v_objectBoxSize;\\nout vec2 v_objectHelperBox;\\n\\nout vec2 v_responsiveUV;\\nout vec2 v_responsiveBoxSize;\\nout vec2 v_responsiveHelperBox;\\nout vec2 v_responsiveBoxGivenSize;\\n\\nout vec2 v_patternUV;\\nout vec2 v_patternBoxSize;\\nout vec2 v_patternHelperBox;\\n\\nout vec2 v_imageUV;\\n\\n// #define ADD_HELPERS\\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  // Sizing api for graphic objects with fixed ratio\\n  // (currently supports only ratio = 1)\\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  #ifdef ADD_HELPERS\\n  v_objectHelperBox = uv;\\n  v_objectHelperBox *= objectWorldScale;\\n  v_objectHelperBox += boxOrigin * (objectWorldScale - 1.);\\n  #endif\\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\\n\\n  // ===================================================\\n  // Sizing api for graphic objects with either givenBoxSize ratio or canvas ratio.\\n  // Full-screen mode available with u_worldWidth = u_worldHeight = 0\\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  v_responsiveBoxSize = getBoxSize(responsiveRatio, v_responsiveBoxGivenSize).xy;\\n  vec2 responsiveBoxScale = u_resolution.xy / v_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\\n  // ===================================================\\n  // Sizing api for patterns\\n  // (treating graphics as a image u_worldWidth x u_worldHeight size)\\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  #ifdef ADD_HELPERS\\n  v_patternHelperBox = uv;\\n  v_patternHelperBox *= patternBoxScale;\\n  v_patternHelperBox += boxOrigin * (patternBoxScale - 1.);\\n  #endif\\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\\n  // ===================================================\\n  // Sizing api for images\\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  #ifdef ADD_HELPERS\\n  vec2 imageHelperBox = uv;\\n  imageHelperBox *= imageBoxScale;\\n  imageHelperBox += boxOrigin * (imageBoxScale - 1.);\\n  #endif\\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\\n  // ===================================================\\n\\n}\";const o=8294400;class ShaderMount{parentElement;canvasElement;gl;program=null;uniformLocations={};fragmentShader;rafId=null;lastRenderTime=0;currentFrame=0;speed=0;providedUniforms;hasBeenDisposed=false;resolutionChanged=true;textures=new Map;minPixelRatio;maxPixelCount;isSafari=r();uniformCache={};textureUnitMap=new Map;constructor(n,e,t,i,r=0,s=0,l=2,c=o){if(!(n instanceof HTMLElement))throw new Error(\"Paper Shaders: parent element must be an HTMLElement\");this.parentElement=n;if(!document.querySelector(\"style[data-paper-shader]\")){const n=document.createElement(\"style\");n.innerHTML=a;n.setAttribute(\"data-paper-shader\",\"\");document.head.prepend(n)}const u=document.createElement(\"canvas\");this.canvasElement=u;this.parentElement.prepend(u);this.fragmentShader=e;this.providedUniforms=t;this.currentFrame=s;this.minPixelRatio=l;this.maxPixelCount=c;const f=u.getContext(\"webgl2\",i);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();this.setSpeed(r);this.parentElement.setAttribute(\"data-paper-shader\",\"\");this.parentElement.paperShaderMount=this}initProgram=()=>{const o=t(this.gl,n,this.fragmentShader);o&&(this.program=o)};setupPositionAttribute=()=>{const n=this.gl.getAttribLocation(this.program,\"a_position\");const o=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,o);const e=[-1,-1,1,-1,-1,1,-1,1,1,-1,1,1];this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array(e),this.gl.STATIC_DRAW);this.gl.enableVertexAttribArray(n);this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,false,0,0)};setupUniforms=()=>{const n={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((([o,e])=>{n[o]=this.gl.getUniformLocation(this.program,o);if(e instanceof HTMLImageElement){const e=`${o}AspectRatio`;n[e]=this.gl.getUniformLocation(this.program,e)}}));this.uniformLocations=n};renderScale=1;parentWidth=0;parentHeight=0;resizeObserver=null;setupResizeObserver=()=>{this.resizeObserver=new ResizeObserver((([n])=>{if(n?.borderBoxSize[0]){this.parentWidth=n.borderBoxSize[0].inlineSize;this.parentHeight=n.borderBoxSize[0].blockSize}this.handleResize()}));this.resizeObserver.observe(this.parentElement);visualViewport?.addEventListener(\"resize\",this.handleVisualViewportChange);const n=this.parentElement.getBoundingClientRect();this.parentWidth=n.width;this.parentHeight=n.height;this.handleResize()};resizeRafId=null;handleVisualViewportChange=()=>{this.resizeRafId!==null&&cancelAnimationFrame(this.resizeRafId);this.resizeRafId=requestAnimationFrame((()=>{this.resizeRafId=requestAnimationFrame((()=>{this.handleResize()}))}))};handleResize=()=>{this.resizeRafId!==null&&cancelAnimationFrame(this.resizeRafId);const n=visualViewport?.scale??1;const o=window.innerWidth-document.documentElement.clientWidth;const e=visualViewport?visualViewport.scale*visualViewport.width+o:window.innerWidth;const t=Math.round(1e4*window.outerWidth/e)/1e4;const a=this.isSafari?devicePixelRatio:devicePixelRatio/t;const i=Math.max(a,this.minPixelRatio);const r=i*t*n;const s=this.parentWidth*r;const l=this.parentHeight*r;const c=Math.sqrt(this.maxPixelCount)/Math.sqrt(s*l);const u=r*Math.min(1,c);const f=Math.round(this.parentWidth*u);const p=Math.round(this.parentHeight*u);if(this.canvasElement.width!==f||this.canvasElement.height!==p||this.renderScale!==u){this.renderScale=u;this.canvasElement.width=f;this.canvasElement.height=p;this.resolutionChanged=true;this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height);this.render(performance.now())}};render=n=>{if(this.hasBeenDisposed)return;if(this.program===null){console.warn(\"Tried to render before program or gl was initialized\");return}const o=n-this.lastRenderTime;this.lastRenderTime=n;this.speed!==0&&(this.currentFrame+=o*this.speed);this.gl.clear(this.gl.COLOR_BUFFER_BIT);this.gl.useProgram(this.program);this.gl.uniform1f(this.uniformLocations.u_time,this.currentFrame*.001);if(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=false}this.gl.drawArrays(this.gl.TRIANGLES,0,6);this.speed!==0?this.requestRender():this.rafId=null};requestRender=()=>{this.rafId!==null&&cancelAnimationFrame(this.rafId);this.rafId=requestAnimationFrame(this.render)};setTextureUniform=(n,o)=>{if(!o.complete||o.naturalWidth===0)throw new Error(`Paper Shaders: image for uniform ${n} must be fully loaded`);const e=this.textures.get(n);e&&this.gl.deleteTexture(e);this.textureUnitMap.has(n)||this.textureUnitMap.set(n,this.textureUnitMap.size);const t=this.textureUnitMap.get(n);this.gl.activeTexture(this.gl.TEXTURE0+t);const a=this.gl.createTexture();this.gl.bindTexture(this.gl.TEXTURE_2D,a);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,o);const i=this.gl.getError();if(i!==this.gl.NO_ERROR||a===null){console.error(\"Paper Shaders: WebGL error when uploading texture:\",i);return}this.textures.set(n,a);const r=this.uniformLocations[n];if(r){this.gl.uniform1i(r,t);const e=`${n}AspectRatio`;const a=this.uniformLocations[e];if(a){const n=o.naturalWidth/o.naturalHeight;this.gl.uniform1f(a,n)}}};areUniformValuesEqual=(n,o)=>n===o||!(!Array.isArray(n)||!Array.isArray(o)||n.length!==o.length)&&n.every(((n,e)=>this.areUniformValuesEqual(n,o[e])));setUniformValues=n=>{this.gl.useProgram(this.program);Object.entries(n).forEach((([n,o])=>{let e=o;o instanceof HTMLImageElement&&(e=`${o.src.slice(0,200)}|${o.naturalWidth}x${o.naturalHeight}`);if(this.areUniformValuesEqual(this.uniformCache[n],e))return;this.uniformCache[n]=e;const t=this.uniformLocations[n];if(t)if(o instanceof HTMLImageElement)this.setTextureUniform(n,o);else if(Array.isArray(o)){let e=null;let a=null;if(o[0]!==void 0&&Array.isArray(o[0])){const t=o[0].length;if(!o.every((n=>n.length===t))){console.warn(`All child arrays must be the same length for ${n}`);return}e=o.flat();a=t}else{e=o;a=e.length}switch(a){case 2:this.gl.uniform2fv(t,e);break;case 3:this.gl.uniform3fv(t,e);break;case 4:this.gl.uniform4fv(t,e);break;case 9:this.gl.uniformMatrix3fv(t,false,e);break;case 16:this.gl.uniformMatrix4fv(t,false,e);break;default:console.warn(`Unsupported uniform array length: ${a}`)}}else typeof o===\"number\"?this.gl.uniform1f(t,o):typeof o===\"boolean\"?this.gl.uniform1i(t,o?1:0):console.warn(`Unsupported uniform type for ${n}: ${typeof o}`);else console.warn(`Uniform location for ${n} not found`)}))};getCurrentFrame=()=>this.currentFrame;setFrame=n=>{this.currentFrame=n;this.lastRenderTime=performance.now();this.render(performance.now())};setSpeed=(n=1)=>{this.speed=n;if(this.rafId===null&&n!==0){this.lastRenderTime=performance.now();this.rafId=requestAnimationFrame(this.render)}if(this.rafId!==null&&n===0){cancelAnimationFrame(this.rafId);this.rafId=null}};setMaxPixelCount=(n=o)=>{this.maxPixelCount=n;this.handleResize()};setMinPixelRatio=(n=2)=>{this.minPixelRatio=n;this.handleResize()};setUniforms=n=>{this.setUniformValues(n);this.providedUniforms={...this.providedUniforms,...n};this.render(performance.now())};dispose=()=>{this.hasBeenDisposed=true;if(this.rafId!==null){cancelAnimationFrame(this.rafId);this.rafId=null}if(this.gl&&this.program){this.textures.forEach((n=>{this.gl.deleteTexture(n)}));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()}if(this.resizeObserver){this.resizeObserver.disconnect();this.resizeObserver=null}visualViewport?.removeEventListener(\"resize\",this.handleVisualViewportChange);this.uniformLocations={};this.parentElement.paperShaderMount=void 0}}function e(n,o,e){const t=n.createShader(o);if(!t)return null;n.shaderSource(t,e);n.compileShader(t);if(!n.getShaderParameter(t,n.COMPILE_STATUS)){console.error(\"An error occurred compiling the shaders: \"+n.getShaderInfoLog(t));n.deleteShader(t);return null}return t}function t(n,o,t){const a=n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT);const i=a?a.precision:null;if(i&&i<23){o=o.replace(/precision\\s+(lowp|mediump)\\s+float;/g,\"precision highp float;\");t=t.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\")}const r=e(n,n.VERTEX_SHADER,o);const s=e(n,n.FRAGMENT_SHADER,t);if(!r||!s)return null;const l=n.createProgram();if(!l)return null;n.attachShader(l,r);n.attachShader(l,s);n.linkProgram(l);if(!n.getProgramParameter(l,n.LINK_STATUS)){console.error(\"Unable to initialize the shader program: \"+n.getProgramInfoLog(l));n.deleteProgram(l);n.deleteShader(r);n.deleteShader(s);return null}n.detachShader(l,r);n.detachShader(l,s);n.deleteShader(r);n.deleteShader(s);return l}const a=\"@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 i(n){return\"paperShaderMount\"in n}function r(){const n=navigator.userAgent.toLowerCase();return n.includes(\"safari\")&&!n.includes(\"chrome\")&&!n.includes(\"android\")}const s=\"\\nin vec2 v_objectUV;\\nin vec2 v_responsiveUV;\\nin vec2 v_responsiveBoxGivenSize;\\nin vec2 v_patternUV;\\nin vec2 v_imageUV;\";const l=\"\\nin vec2 v_objectBoxSize;\\nin vec2 v_objectHelperBox;\\nin vec2 v_responsiveBoxSize;\\nin vec2 v_responsiveHelperBox;\\nin vec2 v_patternBoxSize;\\nin vec2 v_patternHelperBox;\";const c=\"\\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;\";const u=\"\\n\\n  vec2 uv = gl_FragCoord.xy / u_resolution.xy;\\n  #ifdef USE_PIXELIZATION\\n    float pxSize = u_pxSize * u_pixelRatio;\\n    vec2 pxSizeUv = gl_FragCoord.xy;\\n    pxSizeUv -= .5 * u_resolution;\\n    pxSizeUv /= pxSize;\\n    uv = floor(pxSizeUv) * pxSize / u_resolution.xy;    \\n    uv += .5;\\n  #endif\\n  uv -= .5;\\n\\n  \\n  // ===================================================\\n  // sizing params shared between objects and patterns\\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 * 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  // Sizing api for objects (graphics with fixed ratio)\\n\\n  #ifdef USE_OBJECT_SIZING\\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    vec2 objectBoxSize = vec2(0.);\\n    // fit = none\\n    objectBoxSize.x = fixedRatio * min(fixedRatioBoxGivenSize.x / fixedRatio, fixedRatioBoxGivenSize.y);\\n    if (u_fit == 1.) { // fit = contain\\n      objectBoxSize.x = fixedRatio * min(u_resolution.x / fixedRatio, u_resolution.y);\\n    } else if (u_fit == 2.) {  // fit = cover\\n      objectBoxSize.x = fixedRatio * max(u_resolution.x / fixedRatio, u_resolution.y);\\n    }\\n    objectBoxSize.y = objectBoxSize.x / fixedRatio;\\n    vec2 objectWorldScale = u_resolution.xy / objectBoxSize;\\n  \\n    #ifdef ADD_HELPERS\\n      vec2 objectHelperBox = gl_FragCoord.xy / u_resolution.xy;\\n      objectHelperBox -= .5;\\n      objectHelperBox *= objectWorldScale;\\n      objectHelperBox += boxOrigin * (objectWorldScale - 1.);  \\n    #endif\\n  \\n    vec2 objectUV = uv;\\n    objectUV *= objectWorldScale;\\n    objectUV += boxOrigin * (objectWorldScale - 1.);\\n    objectUV += vec2(-u_offsetX, u_offsetY);\\n    objectUV /= u_scale;\\n    objectUV = graphicRotation * objectUV;\\n  #endif\\n  \\n  // ===================================================\\n \\n  // ===================================================\\n  // Sizing api for patterns (graphics respecting u_worldWidth / u_worldHeight ratio)\\n  \\n  #ifdef USE_PATTERN_SIZING\\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    vec2 patternBoxSize = vec2(0.);\\n    // fit = none\\n    patternBoxSize.x = patternBoxRatio * min(patternBoxGivenSize.x / patternBoxRatio, patternBoxGivenSize.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    #ifdef ADD_HELPERS  \\n      vec2 patternHelperBox = gl_FragCoord.xy / u_resolution.xy;\\n      patternHelperBox -= .5;\\n      patternHelperBox *= patternWorldScale;\\n      patternHelperBox += boxOrigin * (patternWorldScale - 1.);  \\n    #endif\\n  \\n    vec2 patternUV = uv;\\n    patternUV += vec2(-u_offsetX, u_offsetY) / patternWorldScale;\\n    patternUV += boxOrigin;\\n    patternUV -= boxOrigin / patternWorldScale;\\n    patternUV *= u_resolution.xy;\\n    patternUV /= u_pixelRatio;\\n    if (u_fit > 0.) {\\n      patternUV *= (patternWorldNoFitBoxWidth / patternBoxSize.x);\\n    }\\n    patternUV /= u_scale;\\n    patternUV = graphicRotation * patternUV;\\n    patternUV += boxOrigin / patternWorldScale;\\n    patternUV -= boxOrigin;\\n    patternUV += .5;\\n  #endif\\n    \\n  // ===================================================\\n \\n  // ===================================================\\n  // Sizing api for image filters\\n  \\n  #ifdef USE_IMAGE_SIZING\\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    #ifdef ADD_HELPERS\\n      vec2 imageHelperBox = uv;\\n      imageHelperBox *= imageBoxScale;\\n      imageHelperBox += boxOrigin * (imageBoxScale - 1.);\\n    #endif\\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  #endif\\n\";const f=\"\\n  vec2 worldBoxDist = abs(helperBox);\\n  float boxStroke = (step(max(worldBoxDist.x, worldBoxDist.y), .5) - step(max(worldBoxDist.x, worldBoxDist.y), .495));\\n  color.rgb = mix(color.rgb, vec3(1., 0., 0.), boxStroke);\\n  opacity += boxStroke;\\n\\n  vec2 boxOriginCopy = vec2(.5 - u_originX, u_originY - .5);\\n  vec2 boxOriginDist = helperBox + boxOriginCopy;\\n  boxOriginDist.x *= (boxSize.x / boxSize.y);\\n  float boxOriginPoint = 1. - smoothstep(0., .05, length(boxOriginDist));\\n  \\n  vec2 graphicOriginPointDist = helperBox + vec2(-u_offsetX, u_offsetY);\\n  graphicOriginPointDist.x *= (boxSize.x / boxSize.y);\\n  float graphicOriginPoint = 1. - smoothstep(0., .05, length(graphicOriginPointDist));\\n  \\n  color.rgb = mix(color.rgb, vec3(0., 1., 0.), boxOriginPoint);\\n  opacity += boxOriginPoint;\\n  color.rgb = mix(color.rgb, vec3(0., 0., 1.), graphicOriginPoint);\\n  opacity += graphicOriginPoint;\\n\";const p={fit:\"contain\",scale:1,rotation:0,offsetX:0,offsetY:0,originX:.5,originY:.5,worldWidth:0,worldHeight:0};const m={fit:\"none\",scale:1,rotation:0,offsetX:0,offsetY:0,originX:.5,originY:.5,worldWidth:0,worldHeight:0};const v={none:0,contain:1,cover:2};const g=\"\\n#define TWO_PI 6.28318530718\\n#define PI 3.14159265358979323846\\n\";const d=\"\\nvec2 rotate(vec2 uv, float th) {\\n  return mat2(cos(th), sin(th), -sin(th), cos(th)) * uv;\\n}\\n\";const h=\"\\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\";const x=\"\\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\";const _=\"\\n  float randomR(vec2 p) {\\n    vec2 uv = floor(p) / 100. + .5;\\n    return texture(u_noiseTexture, fract(uv)).r;\\n  }\\n\";const A=\"\\n  vec2 randomGB(vec2 p) {\\n    vec2 uv = floor(p) / 100. + .5;\\n    return texture(u_noiseTexture, fract(uv)).gb;\\n  }\\n\";const b=\"\\n  color += 1. / 256. * (fract(sin(dot(.014 * gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453123) - .5);\\n\";const B=\"\\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\";const y=\"\\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\";const w={maxColorCount:10};const C=`#version 300 es\\nprecision mediump float;\\n\\nuniform float u_time;\\n\\nuniform vec4 u_colors[${w.maxColorCount}];\\nuniform float u_colorsCount;\\n\\nuniform float u_distortion;\\nuniform float u_swirl;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\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 shape_uv = v_objectUV;\\n\\n  shape_uv += .5;\\n\\n  float t = .5 * u_time;\\n\\n  float radius = smoothstep(0., 1., length(shape_uv - .5));\\n  float center = 1. - radius;\\n  for (float i = 1.; i <= 2.; i++) {\\n    shape_uv.x += u_distortion * center / i * sin(t + i * .4 * smoothstep(.0, 1., shape_uv.y)) * cos(.2 * t + i * 2.4 * smoothstep(.0, 1., shape_uv.y));\\n    shape_uv.y += u_distortion * center / i * cos(t + i * 2. * smoothstep(.0, 1., shape_uv.x));\\n  }\\n\\n  vec2 uvRotated = shape_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 < ${w.maxColorCount}; i++) {\\n    if (i >= int(u_colorsCount)) break;\\n\\n    vec2 pos = getPosition(i, t);\\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 /= totalWeight;\\n  opacity /= totalWeight;\\n\\n  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const S={maxColorCount:10,maxNoiseIterations:8};const U=`#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[${S.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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${_}\\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(in vec2 n) {\\n  float total = 0.0, amplitude = .4;\\n  for (int i = 0; i < ${S.maxNoiseIterations}; i++) {\\n    if (i >= int(u_noiseIterations)) break;\\n    total += valueNoise(n) * amplitude;\\n    n *= 1.99;\\n    amplitude *= 0.65;\\n  }\\n  return total;\\n}\\n\\nfloat getNoise(vec2 uv, vec2 pUv, float t) {\\n  float noiseLeft = fbm(pUv + .03 * t);\\n  pUv.x = mod(pUv.x, u_noiseScale * TWO_PI);\\n  float noiseRight = fbm(pUv + .03 * t);\\n  return mix(noiseRight, noiseLeft, 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 localTime1 = mod(.1 * t + cycleDuration, 2. * cycleDuration);\\n  float localTime2 = mod(.1 * t, 2. * cycleDuration);\\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  vec2 polar_uv1 = vec2(atg, localTime1 - (.5 * l) + 1. / pow(l, .5));\\n  polar_uv1 *= u_noiseScale;\\n  float noise1 = getNoise(shape_uv, polar_uv1, t);\\n\\n  vec2 polar_uv2 = vec2(atg, localTime2 - (.5 * l) + 1. / pow(l, .5));\\n  polar_uv2 *= u_noiseScale;\\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 = pow(ringShape, 2.) * (u_colorsCount - 1.);\\n  vec4 gradient = u_colors[int(u_colorsCount) - 1];\\n  gradient.rgb *= gradient.a;\\n  for (int i = ${S.maxColorCount} - 2; i >= 0; i--) {\\n    float localT = clamp(mixer - float(int(u_colorsCount) - 1 - 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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const E=`#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\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${d}\\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) * pow(noise, 2.);\\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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const R={maxColorCount:10};const k=`#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[${R.maxColorCount}];\\nuniform float u_colorsCount;\\nuniform float u_stepsPerColor;\\nuniform float u_size;\\nuniform float u_sizeRange;\\nuniform float u_spreading;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\n${_}\\n${A}\\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      minDist = min(minDist, dist);\\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  float t = u_time - 10.;\\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 = 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 < ${R.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`;const V=`#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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${B}\\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 grid = fract(shape_uv / vec2(u_gapX, u_gapY)) + 1e-4;\\n  vec2 grid_idx = floor(shape_uv / vec2(u_gapX, u_gapY));\\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 = smoothstep(baseSize + edgeWidth, baseSize - edgeWidth, dist - strokeWidth);\\n  float shapeInner = 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`;const I={circle:0,diamond:1,square:2,triangle:3};const F={maxColorCount:10};const z=`#version 300 es\\nprecision mediump float;\\n\\nuniform float u_time;\\nuniform float u_scale;\\n\\nuniform vec4 u_colors[${F.maxColorCount}];\\nuniform float u_colorsCount;\\nuniform float u_stepsPerColor;\\nuniform float u_softness;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${B}\\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 < ${F.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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const D={maxColorCount:8,maxBallsCount:20};const Q=`#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[${D.maxColorCount}];\\nuniform float u_colorsCount;\\nuniform float u_size;\\nuniform float u_sizeRange;\\nuniform float u_count;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${_}\\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  float t = .2 * u_time + 500.;\\n\\n  vec3 totalColor = vec3(0.);\\n  float totalShape = 0.;\\n  float totalOpacity = 0.;\\n\\n  for (int i = 0; i < ${D.maxBallsCount}; i++) {\\n    if (i >= int(ceil(u_count))) break;\\n\\n    float idxFract = float(i) / float(${D.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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const M=`#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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n\\nfloat hash11(float p) {\\n  p = fract(p * 0.3183099) + 0.1;\\n  p *= p + 19.19;\\n  return fract(p * p);\\n}\\n\\nfloat 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\\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 hash33(vec3 p) {\\n  p = fract(p * 0.3183099) + 0.1;\\n  p += dot(p, p.yzx + 19.19);\\n  return fract(vec3(p.x * p.y, p.y * p.z, p.z * p.x));\\n}\\n\\nvec3 gradientSafe(vec3 p) {\\n  vec3 h = hash33(p) * 2.0 - 1.;\\n  return normalize(h + 0.001);\\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)) / (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 = clamp(floor(u_octaveCount), 1.0, 8.0);\\n  float persistence = clamp(u_persistence, 0., 1.);\\n  float noise = p_noise(p, int(octCount), persistence, u_lacunarity);\\n\\n  float max_amp = get_max_amp(persistence, octCount);\\n  float noise_normalized = clamp((noise + max_amp) / (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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const T={maxColorCount:5};const N=`#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[${T.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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${A}\\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 < ${T.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`;const G=`#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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\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 res = smoothstep(dc - u_softness - aa, dc + u_softness + aa, 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`;const O={maxColorCount:10};const W=`#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[${O.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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\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  float t = 0.0625 * u_time;\\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) * smoothstep(1., .45, f);\\n    shape += .48 * sign(proportion - .5) * pow(abs(proportion - .5), .5);\\n  } else {\\n    float shapeScaling = 5. * (1. - u_shapeScale);\\n    shape = smoothstep(.45 - shapeScaling, .55 + shapeScaling, 1. - uv.y + .3 * (proportion - .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 < ${O.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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const P={checks:0,stripes:1,edge:2};const H={maxColorCount:5};const L=`#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[${H.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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\n${_}\\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${h}\\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(mod(a, 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 middleShape = pow(u_midIntensity, .3) * smoothstep(midSize, 0.02 * midSize, 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 < ${H.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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const Y=`#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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${B}\\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(l, 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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const j={maxColorCount:10};const J=`#version 300 es\\nprecision mediump float;\\n\\nuniform float u_time;\\n\\nuniform vec4 u_colorBack;\\nuniform vec4 u_colors[${j.maxColorCount}];\\nuniform float u_colorsCount;\\nuniform float u_bandCount;\\nuniform float u_twist;\\nuniform float u_softness;\\nuniform float u_noise;\\nuniform float u_noiseFrequency;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${B}\\n${d}\\n\\nvoid main() {\\n  vec2 shape_uv = v_objectUV;\\n\\n  float l = length(shape_uv);\\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, .4, pow(l, twist));\\n  shape = mix(0., shape, mid);\\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 < ${j.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  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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const X=`#version 300 es\\nprecision mediump float;\\n\\nuniform float u_time;\\nuniform vec2 u_resolution;\\nuniform float u_pixelRatio;\\n\\n${c}\\n\\nuniform vec4 u_colorBack;\\nuniform vec4 u_colorFront;\\nuniform float u_shape;\\nuniform float u_type;\\nuniform float u_pxSize;\\n\\nout vec4 fragColor;\\n\\n${B}\\n${g}\\n${h}\\n${x}\\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](\\n  0,  8,  2, 10,\\n 12,  4, 14,  6,\\n  3, 11,  1,  9,\\n 15,  7, 13,  5\\n);\\n\\nconst int bayer8x8[64] = int[64](\\n   0, 32,  8, 40,  2, 34, 10, 42,\\n  48, 16, 56, 24, 50, 18, 58, 26,\\n  12, 44,  4, 36, 14, 46,  6, 38,\\n  60, 28, 52, 20, 62, 30, 54, 22,\\n   3, 35, 11, 43,  1, 33,  9, 41,\\n  51, 19, 59, 27, 49, 17, 57, 25,\\n  15, 47,  7, 39, 13, 45,  5, 37,\\n  63, 31, 55, 23, 61, 29, 53, 21\\n);\\n\\nfloat getBayerValue(vec2 uv, int size) {\\n  ivec2 pos = ivec2(mod(uv, 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  #define USE_PATTERN_SIZING\\n  #define USE_OBJECT_SIZING\\n  #define USE_PIXELIZATION\\n  // #define ADD_HELPERS\\n\\n  ${u}\\n\\n  vec2 dithering_uv = pxSizeUv;\\n  vec2 ditheringNoise_uv = uv * u_resolution;\\n  vec2 shape_uv = objectUV;\\n  if (u_shape < 3.5) {\\n    shape_uv = patternUV;\\n  }\\n\\n  float shape = 0.;\\n  if (u_shape < 1.5) {\\n    // Simplex noise\\n    shape_uv *= .001;\\n\\n    shape = 0.5 + 0.5 * getSimplexNoise(shape_uv, t);\\n    shape = smoothstep(0.3, 0.9, shape);\\n\\n  } else if (u_shape < 2.5) {\\n    // Warp\\n    shape_uv *= .003;\\n\\n    for (float i = 1.0; i < 6.0; i++) {\\n      shape_uv.x += 0.6 / i * cos(i * 2.5 * shape_uv.y + t);\\n      shape_uv.y += 0.6 / i * cos(i * 1.5 * shape_uv.x + t);\\n    }\\n\\n    shape = .15 / abs(sin(t - shape_uv.y - shape_uv.x));\\n    shape = smoothstep(0.02, 1., shape);\\n\\n  } else if (u_shape < 3.5) {\\n    // Dots\\n    shape_uv *= .05;\\n\\n    float stripeIdx = floor(2. * shape_uv.x / TWO_PI);\\n    float rand = hash11(stripeIdx * 10.);\\n    rand = sign(rand - .5) * pow(.1 + abs(rand), .4);\\n    shape = sin(shape_uv.x) * cos(shape_uv.y - 5. * rand * t);\\n    shape = pow(abs(shape), 6.);\\n\\n  } else if (u_shape < 4.5) {\\n    // Sine wave\\n    shape_uv *= 4.;\\n\\n    float wave = cos(.5 * shape_uv.x - 2. * t) * sin(1.5 * shape_uv.x + t) * (.75 + .25 * cos(3. * t));\\n    shape = 1. - smoothstep(-1., 1., shape_uv.y + wave);\\n\\n  } else if (u_shape < 5.5) {\\n    // Ripple\\n\\n    float dist = length(shape_uv);\\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(shape_uv);\\n    float angle = 6. * atan(shape_uv.y, shape_uv.x) + 4. * t;\\n    float twist = 1.2;\\n    float offset = pow(l, -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    shape_uv *= 2.;\\n\\n    float d = 1. - pow(length(shape_uv), 2.);\\n    vec3 pos = vec3(shape_uv, sqrt(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(ditheringNoise_uv), shape);\\n    } break;\\n    case 2:\\n      dithering = getBayerValue(dithering_uv, 2);\\n      break;\\n    case 3:\\n      dithering = getBayerValue(dithering_uv, 4);\\n      break;\\n    default:\\n      dithering = getBayerValue(dithering_uv, 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  #ifdef ADD_HELPERS\\n    vec2 helperBox = objectHelperBox;\\n    vec2 boxSize = objectBoxSize;\\n    if (u_shape < 3.5) {\\n      helperBox = patternHelperBox;\\n      boxSize = patternBoxSize;\\n    }\\n    ${f}\\n  #endif\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const q={simplex:1,warp:2,dots:3,wave:4,ripple:5,swirl:6,sphere:7};const K={random:1,\"2x2\":2,\"4x4\":3,\"8x8\":4};const Z={maxColorCount:7};const $=`#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[${Z.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\\n${s}\\n${l}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${B}\\n${d}\\n${x}\\n${_}\\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}\\nfloat fbmR(vec2 n) {\\n  float total = 0.;\\n  float amplitude = .2;\\n  for (int i = 0; i < 3; i++) {\\n    n = rotate(n, .3);\\n    total += valueNoiseR(n) * amplitude;\\n    n *= 1.99;\\n    amplitude *= 0.6;\\n  }\\n  return total;\\n}\\n\\n${h}\\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  float t = .1 * u_time;\\n\\n  vec2 shape_uv = vec2(0.);\\n  vec2 grain_uv = vec2(0.);\\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    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    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    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    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(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) * smoothstep(.8, .45, distance1 - n2);\\n    shape += smoothstep(.2, .55, distance2 + n2) * smoothstep(.8, .45, 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(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  float simplex = snoise(grain_uv * .5);\\n  float grainDist = simplex * snoise(grain_uv * .2) - fbmR(.002 * grain_uv + 10.) - fbmR(.003 * grain_uv);\\n  float rawNoise = .75 * simplex - fbmR(rotate(.4 * grain_uv, 2.)) - fbmR(.001 * grain_uv);\\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  vec4 gradient = u_colors[0];\\n  gradient.rgb *= gradient.a;\\n  for (int i = 1; i < ${Z.maxColorCount}; i++) {\\n    if (i > int(u_colorsCount) - 1) 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`;const nn={wave:1,dots:2,truchet:3,corners:4,ripple:5,blob:6,sphere:7};const on=`#version 300 es\\nprecision mediump float;\\n\\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_shape;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\n${B}\\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  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\\nvoid main() {\\n\\n  float t = .1 * u_time;\\n\\n  vec2 uv = v_objectUV;\\n  uv += .5;\\n  uv.y = 1. - uv.y;\\n\\n  float cycleWidth = .5 * u_repetition;\\n\\n  float mask = 1.;\\n  float contOffset = 1.;\\n\\n  if (u_shape < 1.) {\\n\\n    vec2 borderUV = v_responsiveUV + .5;\\n    float ratio = v_responsiveBoxGivenSize.x / v_responsiveBoxGivenSize.y;\\n    vec2 edge = min(borderUV, 1. - borderUV);\\n    vec2 pixel_thickness = 250. / v_responsiveBoxGivenSize;\\n    float maskX = smoothstep(0.0, pixel_thickness.x, edge.x);\\n    float maskY = smoothstep(0.0, pixel_thickness.y, edge.y);\\n    maskX = pow(maskX, .25);\\n    maskY = pow(maskY, .25);\\n    mask = 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    vec2 shapeUV = uv - .5;\\n    shapeUV *= .67;\\n    mask = pow(clamp(3. * length(shapeUV), 0., 1.), 18.);\\n  } else if (u_shape < 3.) {\\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    mask = smoothstep(f, f + .7, r);\\n    mask = pow(mask, 2.);\\n\\n    uv *= .8;\\n    cycleWidth *= 1.6;\\n\\n  } else if (u_shape < 4.) {\\n    vec2 shapeUV = uv - .5;\\n    shapeUV *= 1.3;\\n    mask = 0.;\\n    for (int i = 0; i < 5; i++) {\\n      float fi = float(i);\\n      float speed = 4.5 + 2. * 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      mask += pow(1.0 - clamp(d, 0.0, 1.0), 4.0);\\n    }\\n    mask = 1. - smoothstep(.65, .9, mask);\\n    mask = pow(mask, 4.);\\n  }\\n\\n  float opacity = 1. - smoothstep(.82 - 2. * fwidth(mask), .82, mask);\\n\\n  float ridge = .15 * (smoothstep(.0, .15, uv.y) * smoothstep(.4, .15, uv.y));\\n  ridge += .05 * (smoothstep(.1, .2, 1. - uv.y) * smoothstep(.4, .2, 1. - uv.y));\\n  mask += ridge;\\n\\n  float diagBLtoTR = uv.x - uv.y;\\n  float diagTLtoBR = uv.x + uv.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  mask += (1. - mask) * u_distortion * noise;\\n\\n  direction += diagBLtoTR;\\n\\n  float contour = u_contour * smoothstep(0., contOffset + .01, mask) * smoothstep(contOffset + .01, 0., mask);\\n  direction -= 14. * noise * contour;\\n\\n  bump *= clamp(pow(uv.y, .1), .3, 1.);\\n  direction *= (.1 + (1.1 - mask) * bump);\\n  direction *= smoothstep(1., .2, mask);\\n\\n\\n  direction *= (.5 + .5 * pow(uv.y, 2.));\\n  direction *= cycleWidth;\\n  direction -= t;\\n\\n\\n  float colorDispersion = (1. - bump);\\n  float dispersionRed = colorDispersion;\\n  dispersionRed += bump * noise;\\n  float dispersionBlue = colorDispersion;\\n\\n  dispersionRed *= (u_shiftRed / 20.);\\n  dispersionBlue *= (u_shiftBlue / 20.);\\n\\n  float blur = u_softness / 15. + .3 * contour;\\n\\n  vec3 w = vec3(thin_strip_1_width, thin_strip_2_width, wide_strip_ratio);\\n  w[1] -= .02 * smoothstep(.0, 1., mask + bump);\\n  float stripe_r = mod(direction + dispersionRed, 1.);\\n  float r = getColorChanges(color1.r, color2.r, stripe_r, w, blur + fwidth(stripe_r), bump, u_colorTint.r);\\n  float stripe_g = mod(direction, 1.);\\n  float g = getColorChanges(color1.g, color2.g, stripe_g, w, blur + fwidth(stripe_g), bump, u_colorTint.g);\\n  float stripe_b = mod(direction - dispersionBlue, 1.);\\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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const en={none:0,circle:1,daisy:2,metaballs:3};const tn={maxColorCount:5,maxSpots:4};const an=`#version 300 es\\nprecision lowp float;\\n\\nuniform float u_time;\\n\\nuniform vec4 u_colorBack;\\nuniform vec4 u_colors[${tn.maxColorCount}];\\nuniform float u_colorsCount;\\nuniform float u_roundness;\\nuniform float u_thickness;\\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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n\\nfloat beat(float time) {\\n  float first = pow(sin(time * TWO_PI), 10.);\\n  float second = pow(sin((time - 0.15) * TWO_PI), 10.);\\n\\n  return clamp(first + 0.6 * second, 0.0, 1.0);\\n}\\n\\nfloat roundedBox(vec2 uv, float distance) {\\n  float thickness = .5 * u_thickness;\\n  float borderDistance = abs(distance);\\n  float border = 1. - smoothstep(-u_softness * thickness - 2. * fwidth(borderDistance), .5 * u_softness * thickness, borderDistance - .5 * thickness);\\n  border = pow(border, 2.);\\n\\n  return border;\\n}\\n\\nfloat roundedBoxSmoke(vec2 uv, float distance, float size) {\\n  float borderDistance = abs(distance);\\n  float border = 1. - smoothstep(-.75 * size, .75 * size, borderDistance);\\n  border *= border;\\n  return border;\\n}\\n\\n${A}\\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\\nfloat linearstep(float edge0, float edge1, float x) {\\n  return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\\n}\\n\\nvoid main() {\\n\\n  float t = 1.2 * u_time;\\n\\n  vec2 borderUV = v_responsiveUV;\\n\\n  float angle = atan(borderUV.y, borderUV.x) / TWO_PI;\\n\\n  float pulse = u_pulse * beat(.18 * u_time);\\n\\n  float borderRatio = v_responsiveBoxGivenSize.x / v_responsiveBoxGivenSize.y;\\n  borderUV.x *= borderRatio;\\n  vec2 halfSize = vec2(.5);\\n  halfSize.x *= borderRatio;\\n  float radius = min(.5 * u_roundness, halfSize.x);\\n  vec2 d = abs(borderUV) - halfSize + radius;\\n  float outsideDistance = length(max(d, 0.)) - radius;\\n  float insideDistance = min(max(d.x, d.y), 0.0);\\n  float distance = outsideDistance + insideDistance;\\n\\n  float border = roundedBox(borderUV, distance);\\n\\n  vec2 v0 = borderUV + halfSize;\\n  vec2 v1 = borderUV - vec2(-halfSize.x, halfSize.y);\\n  vec2 v2 = borderUV - vec2(halfSize.x, -halfSize.y);\\n  vec2 v3 = borderUV - halfSize;\\n\\n  float cornerFade = 1. - abs(v0.x - v0.y);\\n  cornerFade = max(cornerFade, 1. - abs(v1.x + v1.y));\\n  cornerFade = max(cornerFade, 1. - abs(v2.x + v2.y));\\n  cornerFade = max(cornerFade, 1. - abs(v3.x - v3.y));\\n  cornerFade = .75 * pow(cornerFade, 20.);\\n\\n  float cornerFadeMask = 0.;\\n  float maskR = (.35 * u_thickness - .25 * radius);\\n  float maskHL = linearstep(halfSize.x - .25 * u_thickness, halfSize.x, borderUV.x);\\n  float maskHR = linearstep(halfSize.x - .25 * u_thickness, halfSize.x, -borderUV.x);\\n  float maskVT = linearstep(halfSize.y - .25 * u_thickness, halfSize.y, -borderUV.y);\\n  float maskVB = linearstep(halfSize.y - .25 * u_thickness, halfSize.y, borderUV.y);\\n  float maskOffset = .25 * (u_thickness + radius);\\n  {\\n    float m = maskHR;\\n    m *= maskVT;\\n    m *= (1. - clamp(length((v0 - maskOffset) / maskR), 0., 1.));\\n    cornerFadeMask += m;\\n  }\\n  {\\n    float m = maskHR;\\n    m *= maskVB;\\n    m *= (1. - clamp(length((v1 - vec2(1., -1.) * maskOffset) / maskR), 0., 1.));\\n    cornerFadeMask += m;\\n  }\\n  {\\n    float m = maskHL;\\n    m *= maskVT;\\n    m *= (1. - clamp(length((v2 - vec2(-1., 1.) * maskOffset) / maskR), 0., 1.));\\n    cornerFadeMask += m;\\n  }\\n  {\\n    float m = maskHL;\\n    m *= maskVB;\\n    m *= (1. - clamp(length((v3 + maskOffset) / maskR), 0., 1.));\\n    cornerFadeMask += m;\\n  }\\n  cornerFade = clamp(cornerFade, 0., 1.);\\n  cornerFade *= cornerFadeMask;\\n  border += cornerFade;\\n\\n  vec2 smokeUV = .2 * 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  smoke *= roundedBoxSmoke(borderUV, distance, u_smoke);\\n  smoke = 30. * pow(smoke, 2.);\\n  smoke += cornerFadeMask;\\n  smoke *= u_smoke;\\n  smoke *= mix(1., pulse, u_pulse);\\n  smoke = clamp(smoke, 0., 1.);\\n\\n  border += smoke;\\n  float borderBounds = 1. - smoothstep(.9, 1., length(v_responsiveUV));\\n  border *= borderBounds;\\n  border = clamp(border, 0., 1.);\\n\\n  vec3 blendColor = vec3(0.);\\n  float blendAlpha = 0.0;\\n  vec3 addColor = vec3(0.);\\n  float addAlpha = 0.0;\\n\\n  float bloom = 4. * u_bloom;\\n  float intensity = 1. + 4. * u_intensity;\\n\\n  for (int colorIdx = 0; colorIdx < ${tn.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 < ${tn.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 = smoothstep(.5 - spotSize, .5, atg1) * smoothstep(.5 + spotSize, .5, 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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}`;const rn={maxColorCount:7};const sn=`#version 300 es\\nprecision lowp float;\\n\\nuniform float u_time;\\nuniform mediump float u_scale;\\n\\nuniform vec4 u_colors[${rn.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\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\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 / u_scale, 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 = smoothstep(1., .97 - .97 * u_fadeIn, panelMap);\\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[${rn.maxColorCount}];\\n  for (int i = 0; i < ${rn.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 / (u_length + 0.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  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const ln={maxColorCount:10};const cn=`#version 300 es\\nprecision mediump float;\\n\\nuniform vec4 u_colors[${ln.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\\nuniform sampler2D u_noiseTexture;\\n\\n${s}\\n${c}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\n${y}\\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\\n  vec2 grainUV = v_objectUV * 120.;\\n  float grain = fiberNoise(grainUV, vec2(0.));\\n  float mixerGrain = .2 * 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 < ${ln.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 power = 4.;\\n    if (u_mixing > .5) {\\n      power = mix(power, .75, 2. * (u_mixing - .5));\\n    }\\n    dist = pow(dist, power);\\n\\n    float w = 1. / (dist + 1e-3);\\n    if (u_mixing < .5) {\\n      w = pow(w, mix(mix(.01, 5., clamp(w, 0., 1.)), 1., 2. * u_mixing));\\n    }\\n    color += colorFraction * w;\\n    opacity += opacityFraction * w;\\n    totalWeight += w;\\n  }\\n\\n  color /= totalWeight;\\n  opacity /= totalWeight;\\n\\n  float rr = fiberNoise(rotate(grainUV, 1.), vec2(3.));\\n  float gg = fiberNoise(rotate(grainUV, 2.) + 10., vec2(-1.));\\n  float bb = fiberNoise(grainUV - 2., vec2(5.));\\n  vec3 grainColor = vec3(rr, gg, bb) - 1.;\\n  color = mix(color, grainColor, .2 * u_grainOverlay);\\n  \\n  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const un={maxColorCount:10};const fn=`#version 300 es\\nprecision mediump float;\\n\\nuniform vec4 u_colorBack;\\nuniform vec4 u_colors[${un.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\\nuniform sampler2D u_noiseTexture;\\n\\n${s}\\n${c}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\n${y}\\n\\nvoid main() {\\n  vec2 uv = 2. * v_objectUV;\\n\\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 = fragAngle - angleRad;\\n  angleDiff = mod(angleDiff + PI, TWO_PI) - PI;\\n  \\n  float halfAngle = acos(clamp(radius / u_focalDistance, 0.0, 1.0));\\n  float isInSector = 1.0 - smoothstep(.6 * PI, halfAngle, abs(angleDiff));\\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 t0 = (-b - sqrtD) / (2.0 * a);\\n    float t1 = (-b + sqrtD) / (2.0 * a);\\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 / (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., pow(u_falloff, 2.)), 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 = smoothstep(radius + outerMask, radius - outerMask, r);\\n  outer = mix(outer, 1., isInSector);\\n  \\n  shape = mix(0., shape, outer);\\n  shape *= smoothstep(radius, radius - .01, r);\\n\\n  float angle = atan(f_to_uv.y, f_to_uv.x);\\n  shape -= pow(u_distortion, 2.) * shape * pow(sin(PI * clamp(length(f_to_uv) - .2 + u_distortionShift, 0., 1.)), 4.) * (sin(u_distortionFreq * angle) + cos(floor(.65 * u_distortionFreq) * angle));\\n\\n  vec2 grainUV = v_objectUV * 120.;\\n  float grain = fiberNoise(grainUV, vec2(0.));\\n  float mixerGrain = .2 * u_grainMixer * (grain - 1.);\\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 < ${un.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 m = 0.;\\n    float mixing = u_mixing * 3.;\\n    if (mixing > 2.) {\\n      float tt = pow(mLinear, 2.);\\n      m = mix(mLinear, tt, .5 * clamp((mixing - 2.), 0., 1.));\\n    } else if (mixing > 1.) {\\n      m = mix(smoothstep(0., 1., mLinear), mLinear, clamp((mixing - 1.), 0., 1.));\\n    } else {\\n      float aa = fwidth(mLinear);\\n      m = smoothstep(.5 - .5 * mixing - aa, .5 + .5 * mixing + aa, mLinear);\\n    }\\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 rr = fiberNoise(rotate(grainUV, 1.), vec2(3.));\\n  float gg = fiberNoise(rotate(grainUV, 2.) + 10., vec2(-1.));\\n  float bb = fiberNoise(grainUV - 2., vec2(5.));\\n  vec3 grainColor = vec3(rr, gg, bb) - 1.;\\n  color = mix(color, grainColor, .2 * u_grainOverlay);\\n  opacity += u_grainOverlay * grain;\\n  \\n  ${b}\\n\\n  fragColor = vec4(color, opacity);\\n}\\n`;const pn=`#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_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_fiberScale;\\nuniform float u_crumples;\\nuniform float u_crumplesScale;\\nuniform float u_folds;\\nuniform float u_foldsNumber;\\nuniform float u_drops;\\nuniform float u_seed;\\nuniform float u_blur;\\n\\nuniform sampler2D u_noiseTexture;\\n\\n${s}\\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  = smoothstep(1., 1. - aax, uv.x);\\n  float bottom = smoothstep(0., aay, uv.y);\\n  float top    = smoothstep(1., 1. - aay, uv.y);\\n\\n  return left * right * bottom * top;\\n}\\n\\n${g}\\n${d}\\n${_}\\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${y}\\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(cl / wsum, .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_foldsNumber) 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\\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 * .1 * u_crumplesScale - u_seed) * 32.;\\n  float crumples = u_crumples * (crumplesShape(crumplesUV + vec2(.05, 0.)) - crumplesShape(crumplesUV));\\n\\n  vec2 fiberUV = 10. * u_fiberScale * 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  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  float blur = u_blur * smoothstep(0., 1., fbm(.17 * patternUV + 10. * u_seed));\\n  normal *= (1. - 2. * blur);\\n  fiber *= (1. - blur);\\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`;const mn=`#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_effectScale;\\nuniform float u_highlights;\\nuniform float u_layering;\\nuniform float u_edges;\\nuniform float u_caustic;\\nuniform float u_waves;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\n${B}\\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  = smoothstep(1., 1. - aax, uv.x);\\n  float bottom = smoothstep(0., aay, uv.y);\\n  float top    = smoothstep(1., 1. - aay, 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 = 10. * u_effectScale * (patternUV * vec2(u_imageAspectRatio, 1.));\\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 = pow(causticNoise, 2.);\\n  \\n  float edgesDistortion = smoothstep(0., .1, imageUV.x);\\n  edgesDistortion *= smoothstep(0., .1, imageUV.y);\\n  edgesDistortion *= (smoothstep(1., 1.1, imageUV.x) + smoothstep(.95, .8, imageUV.x));\\n  edgesDistortion *= smoothstep(1., .9, 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`;const vn=`#version 300 es\\nprecision mediump float;\\n\\nuniform float u_time;\\nuniform vec2 u_resolution;\\nuniform float u_pixelRatio;\\n\\nuniform sampler2D u_image;\\nuniform float u_imageAspectRatio;\\n\\nuniform float u_count;\\nuniform float u_angle;\\nuniform float u_highlights;\\nuniform float u_shape;\\nuniform float u_distortion;\\nuniform float u_distortionShape;\\nuniform float u_shift;\\nuniform float u_blur;\\nuniform float u_marginLeft;\\nuniform float u_marginRight;\\nuniform float u_marginTop;\\nuniform float u_marginBottom;\\n\\n${s}\\n\\nout vec4 fragColor;\\n\\n${g}\\n${d}\\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  = smoothstep(1., 1. - aax, uv.x);\\n  float bottom = smoothstep(0., aay, uv.y);\\n  float top    = smoothstep(1., 1. - aay, uv.y);\\n\\n  return left * right * bottom * top;\\n}\\n\\nconst int MAX_RADIUS = 50;\\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 = texture(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 = texture(tex, uv + offset);\\n    vec4 s2 = texture(tex, uv - offset);\\n\\n    sum += (s1 + s2) * w;\\n    weightSum += 2.0 * w;\\n  }\\n\\n  return sum / weightSum;\\n}\\n\\nvoid main() {\\n  vec2 imageUV = v_imageUV;\\n  \\n  vec2 uv = imageUV;\\n  float frame = getUvFrame(imageUV);\\n  if (frame < .05) discard;\\n\\n  float gridNumber = u_count * u_imageAspectRatio;\\n\\n  vec2 sw = vec2(.005 * u_distortion) * vec2(1., u_imageAspectRatio);\\n  float maskOuter =\\n    smoothstep(u_marginLeft - sw.x, u_marginLeft, imageUV.x + sw.x) *\\n    smoothstep(u_marginRight - sw.x, u_marginRight, 1.0 - imageUV.x + sw.x) *\\n    smoothstep(u_marginTop - sw.y, u_marginTop, imageUV.y + sw.y) *\\n    smoothstep(u_marginBottom - sw.y, u_marginBottom, 1.0 - imageUV.y + sw.y);\\n  float mask =\\n    smoothstep(u_marginLeft, u_marginLeft + sw.x, imageUV.x + sw.x) *\\n    smoothstep(u_marginRight, u_marginRight + sw.x, 1.0 - imageUV.x + sw.x) *\\n    smoothstep(u_marginTop, u_marginTop + sw.y, imageUV.y + sw.y) *\\n    smoothstep(u_marginBottom, u_marginBottom + sw.y, 1.0 - imageUV.y + sw.y);\\n  float stroke = (1. - mask) * maskOuter;\\n\\n  float patternRotation = u_angle * PI / 180.;\\n  uv = rotate(uv - vec2(.5), patternRotation);\\n  uv *= gridNumber;\\n  \\n  float curve = 0.;\\n  if (u_shape > 4.5) {\\n    // pattern\\n    curve = .5 + .5 * sin(1.5 * uv.x) * cos(1.5 * uv.y);\\n  } else if (u_shape > 3.5) {\\n    // zigzag\\n    curve = 10. * abs(fract(.1 * uv.y) - .5);\\n  } else if (u_shape > 2.5) {\\n    // wave\\n    curve = 4. * sin(.23 * uv.y);\\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    curve = .2 * gridNumber / u_imageAspectRatio;\\n  }\\n\\n  vec2 uvOrig = uv;\\n  uv += curve;\\n\\n  vec2 fractUV = fract(uv);\\n  vec2 floorUV = floor(uv);\\n\\n  vec2 fractOrigUV = fract(uvOrig);\\n  vec2 floorOrigUV = floor(uvOrig);\\n\\n  float highlights = smoothstep(.85, .95, fractUV.x);\\n  highlights *= mask;\\n\\n  float xDistortion = 0.;\\n  if (u_distortionShape == 1.) {\\n    xDistortion = -pow(1.5 * fractUV.x, 3.) + (.5 + u_shift);\\n  } else if (u_distortionShape == 2.) {\\n    xDistortion = 2. * pow(fractUV.x, 2.) - (.5 + u_shift);\\n  } else if (u_distortionShape == 3.) {\\n    xDistortion = pow(2. * (fractUV.x - .5), 6.) + .5 - .5 + u_shift;\\n  } else if (u_distortionShape == 4.) {\\n    xDistortion = sin((fractUV.x + .25 + u_shift) * TWO_PI);\\n    xDistortion *= .5;\\n  } else if (u_distortionShape == 5.) {\\n    xDistortion += (.5 + u_shift);\\n    xDistortion -= pow(abs(fractUV.x), .2) * fractUV.x;\\n    xDistortion *= .33;\\n  }\\n\\n  xDistortion *= 3. * u_distortion;\\n\\n  uv = (floorOrigUV + fractOrigUV) / gridNumber;\\n  uv.x += xDistortion / gridNumber;\\n  uv += pow(stroke, 4.);\\n  uv.y = mix(uv.y, .0, .4 * u_highlights * highlights);\\n  \\n  uv = rotate(uv, -patternRotation) + vec2(.5);\\n\\n  uv = mix(imageUV, uv, mask);\\n  float blur = mix(0., u_blur, mask);\\n  \\n  vec4 color = getBlur(u_image, uv, 1. / u_resolution / u_pixelRatio, vec2(0., 1.), blur);\\n\\n  float opacity = color.a;\\n  fragColor = vec4(color.rgb, opacity);\\n}\\n`;const gn={lines:1,linesIrregular:2,wave:3,zigzag:4,pattern:5};const dn={prism:1,lens:2,contour:3,cascade:4,facete:5};const hn=`#version 300 es\\nprecision lowp float;\\n\\nuniform float u_time;\\nuniform mediump vec2 u_resolution;\\nuniform mediump float u_pixelRatio;\\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\\nuniform vec4 u_colorFront;\\nuniform vec4 u_colorBack;\\nuniform vec4 u_colorHighlight;\\n\\nuniform sampler2D u_image;\\nuniform mediump float u_imageAspectRatio;\\n\\nuniform float u_type;\\nuniform float u_pxSize;\\nuniform bool u_originalColors;\\nuniform float u_colorSteps;\\n\\nout vec4 fragColor;\\n\\nfloat getUvFrame(vec2 uv, vec2 px) {\\n  float left   = step(-px.x, uv.x);\\n  float right  = step(uv.x, 1.);\\n  float bottom = step(-px.y, uv.y);\\n  float top    = step(uv.y, 1. + px.y);\\n\\n  return left * right * bottom * top;\\n}\\n\\n${x}\\n\\nconst int bayer2x2[4] = int[4](0, 2, 3, 1);\\nconst int bayer4x4[16] = int[16](\\n  0,  8,  2, 10,\\n 12,  4, 14,  6,\\n  3, 11,  1,  9,\\n 15,  7, 13,  5\\n);\\n\\nconst int bayer8x8[64] = int[64](\\n   0, 32,  8, 40,  2, 34, 10, 42,\\n  48, 16, 56, 24, 50, 18, 58, 26,\\n  12, 44,  4, 36, 14, 46,  6, 38,\\n  60, 28, 52, 20, 62, 30, 54, 22,\\n   3, 35, 11, 43,  1, 33,  9, 41,\\n  51, 19, 59, 27, 49, 17, 57, 25,\\n  15, 47,  7, 39, 13, 45,  5, 37,\\n  63, 31, 55, 23, 61, 29, 53, 21\\n);\\n\\nfloat getBayerValue(vec2 uv, int size) {\\n  ivec2 pos = ivec2(mod(uv, 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  #define USE_IMAGE_SIZING\\n  #define USE_PIXELIZATION\\n  ${u}\\n\\n  vec2 dithering_uv = pxSizeUv;\\n  vec2 ditheringNoise_uv = u_resolution * uv;\\n  vec4 image = texture(u_image, imageUV);\\n  float frame = getUvFrame(imageUV, pxSize / u_resolution.xy);\\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\\n  switch (type) {\\n    case 1: {\\n      dithering = step(hash21(ditheringNoise_uv), lum);\\n    } break;\\n    case 2:\\n      dithering = getBayerValue(dithering_uv, 2);\\n      break;\\n    case 3:\\n      dithering = getBayerValue(dithering_uv, 4);\\n      break;\\n    default:\\n      dithering = getBayerValue(dithering_uv, 8);\\n      break;\\n  }\\n\\n\\n  float steps = max(floor(u_colorSteps), 1.);\\n  float ditherAmount = 1.0 / (steps);\\n  \\n  vec3 color = vec3(0.0);\\n  float opacity = 1.;\\n\\n  dithering -= .5;\\n  float brightness = clamp(lum + dithering * ditherAmount, 0.0, 1.0);\\n  brightness = mix(0.0, brightness, frame);\\n  float quantLum = floor(brightness * steps + 0.5) / steps;\\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 * steps + 0.5) / steps;\\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\\n  fragColor = vec4(color, opacity);\\n}\\n`;const xn={maxColorCount:10};const _n=`#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 float u_imageAspectRatio;\\n\\nuniform vec4 u_colorBack;\\nuniform vec4 u_colors[${xn.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 *= smoothstep(1., 1. - th, uv.y);\\n  frame *= smoothstep(0., th, uv.x);\\n  frame *= smoothstep(1., 1. - th, 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) * sst(.5, .2, 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) * sst(edge, .0, 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) * sst(.9, .8, 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) * sst(.45, .3, 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., sst(.54, .4, 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) * sst(.8, .6, 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) * sst(1., .6, 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 /= sst(1., .85, uv.y);\\n  }\\n\\n  s = clamp(0., 1., s);\\n  return s;\\n}\\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  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  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) * sst(1., .65, 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 < ${xn.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 An(n){const o=document.createElement(\"canvas\");const e=1e3;return new Promise(((t,a)=>{const i=new Image;i.crossOrigin=\"anonymous\";i.addEventListener(\"load\",(()=>{if(typeof n===\"string\"?n.endsWith(\".svg\"):n.type===\"image/svg+xml\"){i.width=e;i.height=e}const r=i.naturalWidth/i.naturalHeight;const s=Math.floor(e*.15);const l=Math.ceil(s*2.5);let c=e;let u=e;r>1?u=Math.floor(e/r):c=Math.floor(e*r);o.width=c+2*l;o.height=u+2*l;const f=o.getContext(\"2d\",{willReadFrequently:true});if(!f)throw new Error(\"Failed to get canvas 2d context\");f.fillStyle=\"white\";f.fillRect(0,0,o.width,o.height);f.filter=\"grayscale(100%) blur(\"+s+\"px)\";f.drawImage(i,l,l,c,u);const p=f.getImageData(0,0,o.width,o.height).data;f.fillRect(0,0,o.width,o.height);f.filter=\"grayscale(100%) blur(\"+Math.round(.12*s)+\"px)\";f.drawImage(i,l,l,c,u);const m=f.getImageData(0,0,o.width,o.height).data;f.fillRect(0,0,o.width,o.height);f.filter=\"grayscale(100%) blur(5px)\";f.drawImage(i,l,l,c,u);const v=f.getImageData(0,0,o.width,o.height).data;let g=f.createImageData(o.width,o.height);const d=o.width*o.height;for(let n=0;n<d;n++){const o=n*4;g.data[o]=v[o];g.data[o+1]=p[o];g.data[o+2]=m[o];g.data[o+3]=255}f.putImageData(g,0,0);o.toBlob((n=>{n?t({blob:n}):a(new Error(\"Failed to create PNG blob\"))}),\"image/png\")}));i.addEventListener(\"error\",(()=>{a(new Error(\"Failed to load image\"))}));i.src=typeof n===\"string\"?n:URL.createObjectURL(n)}))}function bn(n){if(Array.isArray(n))return n.length===4?n:n.length===3?[...n,1]:Un;if(typeof n!==\"string\")return Un;let o,e,t,a=1;if(n.startsWith(\"#\"))[o,e,t,a]=Bn(n);else if(n.startsWith(\"rgb\"))[o,e,t,a]=yn(n);else{if(!n.startsWith(\"hsl\")){console.error(\"Unsupported color format\",n);return Un}[o,e,t,a]=Cn(wn(n))}return[Sn(o,0,1),Sn(e,0,1),Sn(t,0,1),Sn(a,0,1)]}function Bn(n){n=n.replace(/^#/,\"\");n.length===3&&(n=n.split(\"\").map((n=>n+n)).join(\"\"));n.length===6&&(n+=\"ff\");const o=parseInt(n.slice(0,2),16)/255;const e=parseInt(n.slice(2,4),16)/255;const t=parseInt(n.slice(4,6),16)/255;const a=parseInt(n.slice(6,8),16)/255;return[o,e,t,a]}function yn(n){const o=n.match(/^rgba?\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([0-9.]+))?\\s*\\)$/i);return o?[parseInt(o[1]??\"0\")/255,parseInt(o[2]??\"0\")/255,parseInt(o[3]??\"0\")/255,o[4]===void 0?1:parseFloat(o[4])]:[0,0,0,1]}function wn(n){const o=n.match(/^hsla?\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(?:,\\s*([0-9.]+))?\\s*\\)$/i);return o?[parseInt(o[1]??\"0\"),parseInt(o[2]??\"0\"),parseInt(o[3]??\"0\"),o[4]===void 0?1:parseFloat(o[4])]:[0,0,0,1]}function Cn(n){const[o,e,t,a]=n;const i=o/360;const r=e/100;const s=t/100;let l,c,u;if(e===0)l=c=u=s;else{const n=(n,o,e)=>{e<0&&(e+=1);e>1&&(e-=1);return e<1/6?n+6*(o-n)*e:e<.5?o:e<2/3?n+(o-n)*(2/3-e)*6:n};const o=s<.5?s*(1+r):s+r-s*r;const e=2*s-o;l=n(e,o,i+1/3);c=n(e,o,i);u=n(e,o,i-1/3)}return[l,c,u,a]}const Sn=(n,o,e)=>Math.min(Math.max(n,o),e);const Un=[0,0,0,1];function En(){if(typeof window===\"undefined\"){console.warn(\"Paper Shaders: can’t create a texture on the server\");return}const n=\"data:image/png;base64,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\";const o=new Image;o.src=n;return o}export{q as DitheringShapes,K as DitheringTypes,I as DotGridShapes,dn as GlassDistortionShapes,gn as GlassGridShapes,nn as GrainGradientShapes,en as LiquidMetalShapes,v as ShaderFitOptions,ShaderMount,P as WarpPatterns,sn as colorPanelsFragmentShader,rn as colorPanelsMeta,p as defaultObjectSizing,m as defaultPatternSizing,X as ditheringFragmentShader,V as dotGridFragmentShader,k as dotOrbitFragmentShader,R as dotOrbitMeta,vn as flutedGlassFragmentShader,bn as getShaderColorFromString,En as getShaderNoiseTexture,L as godRaysFragmentShader,H as godRaysMeta,$ as grainGradientFragmentShader,Z as grainGradientMeta,_n as heatmapFragmentShader,xn as heatmapMeta,hn as imageDitheringFragmentShader,i as isPaperShaderElement,on as liquidMetalFragmentShader,C as meshGradientFragmentShader,w as meshGradientMeta,Q as metaballsFragmentShader,D as metaballsMeta,E as neuroNoiseFragmentShader,pn as paperTextureFragmentShader,M as perlinNoiseFragmentShader,an as pulsingBorderFragmentShader,tn as pulsingBorderMeta,z as simplexNoiseFragmentShader,F as simplexNoiseMeta,U as smokeRingFragmentShader,S as smokeRingMeta,Y as spiralFragmentShader,cn as staticMeshGradientFragmentShader,ln as staticMeshGradientMeta,fn as staticRadialGradientFragmentShader,un as staticRadialGradientMeta,J as swirlFragmentShader,j as swirlMeta,An as toProcessedHeatmap,N as voronoiFragmentShader,T as voronoiMeta,W as warpFragmentShader,O as warpMeta,mn as waterFragmentShader,G as wavesFragmentShader};\n//# sourceMappingURL=index.js.map\n","import*as a from\"react\";import{forwardRef as o,useState as e,useRef as r,useEffect as s,memo as t,useLayoutEffect as i,useMemo as n}from\"react\";import{ShaderMount as f,defaultObjectSizing as c,ShaderFitOptions as p,getShaderColorFromString as l,meshGradientFragmentShader as m,getShaderNoiseTexture as u,smokeRingFragmentShader as d,defaultPatternSizing as g,neuroNoiseFragmentShader as h,dotOrbitFragmentShader as _,DotGridShapes as w,dotGridFragmentShader as k,simplexNoiseFragmentShader as b,metaballsFragmentShader as X,wavesFragmentShader as Y,perlinNoiseFragmentShader as B,voronoiFragmentShader as S,WarpPatterns as y,warpFragmentShader as W,godRaysFragmentShader as F,spiralFragmentShader as H,swirlFragmentShader as C,DitheringTypes as v,DitheringShapes as x,ditheringFragmentShader as z,GrainGradientShapes as R,grainGradientFragmentShader as D,LiquidMetalShapes as M,liquidMetalFragmentShader as A,pulsingBorderFragmentShader as I,colorPanelsFragmentShader as P,staticMeshGradientFragmentShader as O,staticRadialGradientFragmentShader as T,paperTextureFragmentShader as G,GlassGridShapes as q,GlassDistortionShapes as L,flutedGlassFragmentShader as N,waterFragmentShader as E,imageDitheringFragmentShader as U,toProcessedHeatmap as j,heatmapFragmentShader as $}from\"@paper-design/shaders\";export{colorPanelsMeta,dotOrbitMeta,getShaderColorFromString,godRaysMeta,grainGradientMeta,heatmapMeta,isPaperShaderElement,meshGradientMeta,metaballsMeta,pulsingBorderMeta,simplexNoiseMeta,smokeRingMeta,staticMeshGradientMeta,staticRadialGradientMeta,swirlMeta,voronoiMeta,warpMeta}from\"@paper-design/shaders\";import{jsx as K}from\"react/jsx-runtime\";function J(o){const e=a.useRef(void 0);const r=a.useCallback((a=>{const e=o.map((o=>{if(o!=null){if(typeof o===\"function\"){const e=o;const r=e(a);return typeof r===\"function\"?r:()=>{e(null)}}o.current=a;return()=>{o.current=null}}}));return()=>{e.forEach((a=>a?.()))}}),o);return a.useMemo((()=>o.every((a=>a==null))?null:a=>{if(e.current){e.current();e.current=void 0}a!=null&&(e.current=r(a))}),o)}\"use client\";async function Q(a){const o={};const e=[];const r=a=>{try{if(a.startsWith(\"/\"))return true;new URL(a);return true}catch{return false}};const s=a=>{try{if(a.startsWith(\"/\"))return false;const o=new URL(a,window.location.origin);return o.origin!==window.location.origin}catch{return false}};Object.entries(a).forEach((([a,t])=>{if(typeof t===\"string\"){if(!r(t)){console.warn(`Uniform \"${a}\" has invalid URL \"${t}\". Skipping image loading.`);return}const i=new Promise(((e,r)=>{const i=new Image;s(t)&&(i.crossOrigin=\"anonymous\");i.onload=()=>{o[a]=i;e()};i.onerror=()=>{console.error(`Could not set uniforms. Failed to load image at ${t}`);r()};i.src=t}));e.push(i)}else o[a]=t}));await Promise.all(e);return o}const V=o((function({fragmentShader:a,uniforms:o,webGlContextAttributes:t,speed:i=0,frame:n=0,minPixelRatio:c,maxPixelCount:p,...l},m){const[u,d]=e(false);const g=r(null);const h=r(null);s((()=>{const e=async()=>{const e=await Q(o);if(g.current&&!h.current){h.current=new f(g.current,a,e,t,i,n,c,p);d(true)}};e();return()=>{h.current?.dispose();h.current=null}}),[a,t]);s((()=>{let a=false;const e=async()=>{const e=await Q(o);a||h.current?.setUniforms(e)};e();return()=>{a=true}}),[o,u]);s((()=>{h.current?.setSpeed(i)}),[i,u]);s((()=>{h.current?.setMaxPixelCount(p)}),[p,u]);s((()=>{h.current?.setMinPixelRatio(c)}),[c,u]);s((()=>{h.current?.setFrame(n)}),[n,u]);const _=J([g,m]);return K(\"div\",{ref:_,...l})}));V.displayName=\"ShaderMount\";function Z(a,o){for(const e in a)if(e!==\"colors\"){if(Object.is(a[e],o[e])===false)return false}else{const e=Array.isArray(a.colors);const r=Array.isArray(o.colors);if(!e||!r){if(Object.is(a.colors,o.colors)===false)return false;continue}if(a.colors?.length!==o.colors?.length)return false;if(!a.colors?.every(((a,e)=>a===o.colors?.[e])))return false}return true}const aa={name:\"Default\",params:{...c,speed:1,frame:0,colors:[\"#e0eaff\",\"#241d9a\",\"#f75092\",\"#9f50d3\"],distortion:.8,swirl:.1}};const oa={name:\"Purple\",params:{...c,speed:.6,frame:0,colors:[\"#aaa7d7\",\"#3c2b8e\"],distortion:1,swirl:1}};const ea={name:\"Beach\",params:{...c,speed:.1,frame:0,colors:[\"#bcecf6\",\"#00aaff\",\"#00f7ff\",\"#ffd447\"],distortion:.8,swirl:.35}};const ra={name:\"Ink\",params:{...c,speed:1,frame:0,colors:[\"#ffffff\",\"#000000\"],distortion:1,swirl:.2,rotation:90}};const sa=[aa,ra,oa,ea];const ta=t((function({speed:a=aa.params.speed,frame:o=aa.params.frame,colors:e=aa.params.colors,distortion:r=aa.params.distortion,swirl:s=aa.params.swirl,fit:t=aa.params.fit,rotation:i=aa.params.rotation,scale:n=aa.params.scale,originX:f=aa.params.originX,originY:c=aa.params.originY,offsetX:u=aa.params.offsetX,offsetY:d=aa.params.offsetY,worldWidth:g=aa.params.worldWidth,worldHeight:h=aa.params.worldHeight,..._}){const w={u_colors:e.map(l),u_colorsCount:e.length,u_distortion:r,u_swirl:s,u_fit:p[t],u_rotation:i,u_scale:n,u_offsetX:u,u_offsetY:d,u_originX:f,u_originY:c,u_worldWidth:g,u_worldHeight:h};return K(V,{..._,speed:a,frame:o,fragmentShader:m,uniforms:w})}),Z);const ia={name:\"Default\",params:{...c,speed:.4,frame:0,colorBack:\"#000000\",colors:[\"#ffffff\"],noiseScale:3,noiseIterations:8,radius:.25,thickness:.65,innerShape:.7,scale:.8}};const na={name:\"Solar\",params:{...c,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}};const fa={name:\"Line\",params:{...c,frame:0,colorBack:\"#000000\",colors:[\"#4540a4\",\"#1fe8ff\"],noiseScale:1.1,noiseIterations:2,radius:.38,thickness:.01,innerShape:.88,speed:4}};const ca={name:\"Cloud\",params:{...c,frame:0,colorBack:\"#81ADEC\",colors:[\"#ffffff\"],noiseScale:3,noiseIterations:10,radius:.5,thickness:.65,innerShape:.85,speed:.5,scale:2.5}};const pa=[ia,fa,na,ca];const la=t((function({speed:a=ia.params.speed,frame:o=ia.params.frame,colorBack:e=ia.params.colorBack,colors:r=ia.params.colors,noiseScale:s=ia.params.noiseScale,thickness:t=ia.params.thickness,radius:i=ia.params.radius,innerShape:n=ia.params.innerShape,noiseIterations:f=ia.params.noiseIterations,fit:c=ia.params.fit,scale:m=ia.params.scale,rotation:g=ia.params.rotation,originX:h=ia.params.originX,originY:_=ia.params.originY,offsetX:w=ia.params.offsetX,offsetY:k=ia.params.offsetY,worldWidth:b=ia.params.worldWidth,worldHeight:X=ia.params.worldHeight,...Y}){const B={u_colorBack:l(e),u_colors:r.map(l),u_colorsCount:r.length,u_noiseScale:s,u_thickness:t,u_radius:i,u_innerShape:n,u_noiseIterations:f,u_noiseTexture:u(),u_fit:p[c],u_scale:m,u_rotation:g,u_offsetX:w,u_offsetY:k,u_originX:h,u_originY:_,u_worldWidth:b,u_worldHeight:X};return K(V,{...Y,speed:a,frame:o,fragmentShader:d,uniforms:B})}),Z);const ma={name:\"Default\",params:{...g,speed:1,frame:0,colorFront:\"#ffffff\",colorMid:\"#47a6ff\",colorBack:\"#000000\",brightness:.05,contrast:.3}};const ua={name:\"Sensation\",params:{...g,speed:1,frame:0,colorFront:\"#00c8ff\",colorMid:\"#fbff00\",colorBack:\"#8b42ff\",brightness:.19,contrast:.12,scale:3}};const da={name:\"Bloodstream\",params:{...g,speed:1,frame:0,colorFront:\"#ff0000\",colorMid:\"#ff0000\",colorBack:\"#ffffff\",brightness:.24,contrast:.17,scale:.7}};const ga={name:\"Ghost\",params:{...g,speed:1,frame:0,colorFront:\"#ffffff\",colorMid:\"#000000\",colorBack:\"#ffffff\",brightness:0,contrast:1,scale:.55}};const ha=[ma,ua,da,ga];const _a=t((function({speed:a=ma.params.speed,frame:o=ma.params.frame,colorFront:e=ma.params.colorFront,colorMid:r=ma.params.colorMid,colorBack:s=ma.params.colorBack,brightness:t=ma.params.brightness,contrast:i=ma.params.contrast,fit:n=ma.params.fit,scale:f=ma.params.scale,rotation:c=ma.params.rotation,originX:m=ma.params.originX,originY:u=ma.params.originY,offsetX:d=ma.params.offsetX,offsetY:g=ma.params.offsetY,worldWidth:_=ma.params.worldWidth,worldHeight:w=ma.params.worldHeight,...k}){const b={u_colorFront:l(e),u_colorMid:l(r),u_colorBack:l(s),u_brightness:t,u_contrast:i,u_fit:p[n],u_scale:f,u_rotation:c,u_offsetX:d,u_offsetY:g,u_originX:m,u_originY:u,u_worldWidth:_,u_worldHeight:w};return K(V,{...k,speed:a,frame:o,fragmentShader:h,uniforms:b})}),Z);const wa={name:\"Default\",params:{...g,speed:1.5,frame:0,colorBack:\"#000000\",colors:[\"#ffc96b\",\"#ff6200\",\"#ff2f00\",\"#421100\",\"#1a0000\"],size:1,sizeRange:0,spreading:1,stepsPerColor:4}};const ka={name:\"Shine\",params:{...g,speed:.1,frame:0,colors:[\"#ffffff\",\"#006aff\",\"#fff675\"],colorBack:\"#000000\",stepsPerColor:4,size:.3,sizeRange:.2,spreading:1,scale:.4}};const ba={name:\"Bubbles\",params:{...g,speed:.4,frame:0,colors:[\"#D0D2D5\"],colorBack:\"#989CA4\",stepsPerColor:2,size:.9,sizeRange:.7,spreading:1,scale:1.64}};const Xa={name:\"Hallucinatory\",params:{...g,speed:5,frame:0,colors:[\"#000000\"],colorBack:\"#ffe500\",stepsPerColor:2,size:.65,sizeRange:0,spreading:.3,scale:.5}};const Ya=[wa,ba,ka,Xa];const Ba=t((function({speed:a=wa.params.speed,frame:o=wa.params.frame,colorBack:e=wa.params.colorBack,colors:r=wa.params.colors,size:s=wa.params.size,sizeRange:t=wa.params.sizeRange,spreading:i=wa.params.spreading,stepsPerColor:n=wa.params.stepsPerColor,fit:f=wa.params.fit,scale:c=wa.params.scale,rotation:m=wa.params.rotation,originX:d=wa.params.originX,originY:g=wa.params.originY,offsetX:h=wa.params.offsetX,offsetY:w=wa.params.offsetY,worldWidth:k=wa.params.worldWidth,worldHeight:b=wa.params.worldHeight,...X}){const Y={u_colorBack:l(e),u_colors:r.map(l),u_colorsCount:r.length,u_size:s,u_sizeRange:t,u_spreading:i,u_stepsPerColor:n,u_noiseTexture:u(),u_fit:p[f],u_scale:c,u_rotation:m,u_offsetX:h,u_offsetY:w,u_originX:d,u_originY:g,u_worldWidth:k,u_worldHeight:b};return K(V,{...X,speed:a,frame:o,fragmentShader:_,uniforms:Y})}),Z);const Sa={name:\"Default\",params:{...g,colorBack:\"#000000\",colorFill:\"#ffffff\",colorStroke:\"#ffaa00\",size:2,gapX:32,gapY:32,strokeWidth:0,sizeRange:0,opacityRange:0,shape:\"circle\"}};const ya={name:\"Triangles\",params:{...g,colorBack:\"#ffffff\",colorFill:\"#ffffff\",colorStroke:\"#808080\",size:5,gapX:32,gapY:32,strokeWidth:1,sizeRange:0,opacityRange:0,shape:\"triangle\"}};const Wa={name:\"Tree line\",params:{...g,colorBack:\"#f4fce7\",colorFill:\"#052e19\",colorStroke:\"#000000\",size:8,gapX:20,gapY:90,strokeWidth:0,sizeRange:1,opacityRange:.6,shape:\"circle\"}};const Fa={name:\"Wallpaper\",params:{...g,colorBack:\"#204030\",colorFill:\"#000000\",colorStroke:\"#bd955b\",size:9,gapX:32,gapY:32,strokeWidth:1,sizeRange:0,opacityRange:0,shape:\"diamond\"}};const Ha=[Sa,ya,Wa,Fa];const Ca=t((function({colorBack:a=Sa.params.colorBack,colorFill:o=Sa.params.colorFill,colorStroke:e=Sa.params.colorStroke,size:r=Sa.params.size,gapX:s=Sa.params.gapX,gapY:t=Sa.params.gapY,strokeWidth:i=Sa.params.strokeWidth,sizeRange:n=Sa.params.sizeRange,opacityRange:f=Sa.params.opacityRange,shape:c=Sa.params.shape,fit:m=Sa.params.fit,scale:u=Sa.params.scale,rotation:d=Sa.params.rotation,originX:g=Sa.params.originX,originY:h=Sa.params.originY,offsetX:_=Sa.params.offsetX,offsetY:b=Sa.params.offsetY,worldWidth:X=Sa.params.worldWidth,worldHeight:Y=Sa.params.worldHeight,maxPixelCount:B=20358144,...S}){const y={u_colorBack:l(a),u_colorFill:l(o),u_colorStroke:l(e),u_dotSize:r,u_gapX:s,u_gapY:t,u_strokeWidth:i,u_sizeRange:n,u_opacityRange:f,u_shape:w[c],u_fit:p[m],u_scale:u,u_rotation:d,u_offsetX:_,u_offsetY:b,u_originX:g,u_originY:h,u_worldWidth:X,u_worldHeight:Y};return K(V,{...S,maxPixelCount:B,fragmentShader:k,uniforms:y})}),Z);const va={name:\"Default\",params:{...g,speed:.5,frame:0,colors:[\"#4449CF\",\"#FFD1E0\",\"#F94446\",\"#FFD36B\",\"#FFFFFF\"],stepsPerColor:2,softness:0}};const xa={name:\"Bubblegum\",params:{...g,speed:2,frame:0,colors:[\"#ffffff\",\"#ff9e9e\",\"#5f57ff\",\"#00f7ff\"],stepsPerColor:1,softness:1,scale:1.6}};const za={name:\"Spots\",params:{...g,speed:.6,frame:0,colors:[\"#ff7b00\",\"#f9ffeb\",\"#320d82\"],stepsPerColor:1,softness:0,scale:1}};const Ra={name:\"First contact\",params:{...g,speed:2,frame:0,colors:[\"#e8cce6\",\"#120d22\",\"#442c44\",\"#e6baba\",\"#fff5f5\"],stepsPerColor:2,softness:0,scale:.2}};const Da=[va,za,Ra,xa];const Ma=t((function({speed:a=va.params.speed,frame:o=va.params.frame,colors:e=va.params.colors,stepsPerColor:r=va.params.stepsPerColor,softness:s=va.params.softness,fit:t=va.params.fit,scale:i=va.params.scale,rotation:n=va.params.rotation,originX:f=va.params.originX,originY:c=va.params.originY,offsetX:m=va.params.offsetX,offsetY:u=va.params.offsetY,worldWidth:d=va.params.worldWidth,worldHeight:g=va.params.worldHeight,...h}){const _={u_colors:e.map(l),u_colorsCount:e.length,u_stepsPerColor:r,u_softness:s,u_fit:p[t],u_scale:i,u_rotation:n,u_offsetX:m,u_offsetY:u,u_originX:f,u_originY:c,u_worldWidth:d,u_worldHeight:g};return K(V,{...h,speed:a,frame:o,fragmentShader:b,uniforms:_})}),Z);const Aa={name:\"Default\",params:{...c,scale:1,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#6e33cc\",\"#ff5500\",\"#ffc105\",\"#ffc800\",\"#f585ff\"],count:10,size:.83}};const Ia={name:\"Ink Drops\",params:{...c,scale:1,speed:2,frame:0,colorBack:\"#ffffff00\",colors:[\"#000000\"],count:18,size:.1}};const Pa={name:\"Background\",params:{...c,speed:.5,frame:0,colors:[\"#ae00ff\",\"#00ff95\",\"#ffc105\"],colorBack:\"#2a273f\",count:13,size:.81,scale:4,rotation:0,offsetX:-.3}};const Oa={name:\"Solar\",params:{...c,speed:1,frame:0,colors:[\"#ffc800\",\"#ff5500\",\"#ffc105\"],colorBack:\"#102f84\",count:7,size:.75,scale:1}};const Ta=[Aa,Ia,Oa,Pa];const Ga=t((function({speed:a=Aa.params.speed,frame:o=Aa.params.frame,colorBack:e=Aa.params.colorBack,colors:r=Aa.params.colors,size:s=Aa.params.size,count:t=Aa.params.count,fit:i=Aa.params.fit,rotation:n=Aa.params.rotation,scale:f=Aa.params.scale,originX:c=Aa.params.originX,originY:m=Aa.params.originY,offsetX:d=Aa.params.offsetX,offsetY:g=Aa.params.offsetY,worldWidth:h=Aa.params.worldWidth,worldHeight:_=Aa.params.worldHeight,...w}){const k={u_colorBack:l(e),u_colors:r.map(l),u_colorsCount:r.length,u_size:s,u_count:t,u_noiseTexture:u(),u_fit:p[i],u_rotation:n,u_scale:f,u_offsetX:d,u_offsetY:g,u_originX:c,u_originY:m,u_worldWidth:h,u_worldHeight:_};return K(V,{...w,speed:a,frame:o,fragmentShader:X,uniforms:k})}),Z);const qa={name:\"Default\",params:{...g,scale:.8,colorFront:\"#ffbb00\",colorBack:\"#000000\",shape:0,frequency:.5,amplitude:.5,spacing:1.2,proportion:.1,softness:0}};const La={name:\"Groovy\",params:{...g,scale:5,rotation:90,colorFront:\"#fcfcee\",colorBack:\"#ff896b\",shape:3,frequency:.2,amplitude:.25,spacing:1.17,proportion:.57,softness:0}};const Na={name:\"Tangled up\",params:{...g,scale:.5,rotation:0,colorFront:\"#133a41\",colorBack:\"#c2d8b6\",shape:2.07,frequency:.44,amplitude:.57,spacing:1.05,proportion:.75,softness:0}};const Ea={name:\"Ride the wave\",params:{...g,scale:1.7,rotation:0,colorFront:\"#fdffe6\",colorBack:\"#1f1f1f\",shape:2.25,frequency:.2,amplitude:1,spacing:1.25,proportion:1,softness:0}};const Ua=[qa,La,Na,Ea];const ja=t((function({colorFront:a=qa.params.colorFront,colorBack:o=qa.params.colorBack,shape:e=qa.params.shape,frequency:r=qa.params.frequency,amplitude:s=qa.params.amplitude,spacing:t=qa.params.spacing,proportion:i=qa.params.proportion,softness:n=qa.params.softness,fit:f=qa.params.fit,scale:c=qa.params.scale,rotation:m=qa.params.rotation,offsetX:u=qa.params.offsetX,offsetY:d=qa.params.offsetY,originX:g=qa.params.originX,originY:h=qa.params.originY,worldWidth:_=qa.params.worldWidth,worldHeight:w=qa.params.worldHeight,maxPixelCount:k=20358144,...b}){const X={u_colorFront:l(a),u_colorBack:l(o),u_shape:e,u_frequency:r,u_amplitude:s,u_spacing:t,u_proportion:i,u_softness:n,u_fit:p[f],u_scale:c,u_rotation:m,u_offsetX:u,u_offsetY:d,u_originX:g,u_originY:h,u_worldWidth:_,u_worldHeight:w};return K(V,{...b,fragmentShader:Y,uniforms:X})}),Z);const $a={name:\"Default\",params:{...g,speed:.5,frame:0,colorBack:\"#632ad5\",colorFront:\"#fccff7\",proportion:.35,softness:.1,octaveCount:1,persistence:1,lacunarity:1.5}};const Ka={name:\"Nintendo Water\",params:{...g,scale:5,speed:.4,frame:0,colorBack:\"#2d69d4\",colorFront:\"#d1eefc\",proportion:.42,softness:0,octaveCount:2,persistence:.55,lacunarity:1.8}};const Ja={name:\"Moss\",params:{...g,scale:1/.15,speed:.02,frame:0,colorBack:\"#05ff4a\",colorFront:\"#262626\",proportion:.65,softness:.35,octaveCount:6,persistence:1,lacunarity:2.55}};const Qa={name:\"Worms\",params:{...g,scale:.9,speed:0,frame:0,colorBack:\"#ffffff00\",colorFront:\"#595959\",proportion:.5,softness:0,octaveCount:1,persistence:1,lacunarity:1.5}};const Va=[$a,Ka,Ja,Qa];const Za=t((function({speed:a=$a.params.speed,frame:o=$a.params.frame,colorFront:e=$a.params.colorFront,colorBack:r=$a.params.colorBack,proportion:s=$a.params.proportion,softness:t=$a.params.softness,octaveCount:i=$a.params.octaveCount,persistence:n=$a.params.persistence,lacunarity:f,fit:c=$a.params.fit,worldWidth:m=$a.params.worldWidth,worldHeight:u=$a.params.worldHeight,scale:d=$a.params.scale,rotation:g=$a.params.rotation,originX:h=$a.params.originX,originY:_=$a.params.originY,offsetX:w=$a.params.offsetX,offsetY:k=$a.params.offsetY,...b}){const X={u_colorBack:l(r),u_colorFront:l(e),u_proportion:s,u_softness:t??$a.params.softness,u_octaveCount:i??$a.params.octaveCount,u_persistence:n??$a.params.persistence,u_lacunarity:f??$a.params.lacunarity,u_fit:p[c],u_scale:d,u_rotation:g,u_offsetX:w,u_offsetY:k,u_originX:h,u_originY:_,u_worldWidth:m,u_worldHeight:u};return K(V,{...b,speed:a,frame:o,fragmentShader:B,uniforms:X})}),Z);const ao={name:\"Default\",params:{...g,speed:.5,frame:0,colors:[\"#ff8247\",\"#ffe53d\"],stepsPerColor:3,colorGlow:\"#ffffff\",colorGap:\"#2e0000\",distortion:.4,gap:.04,glow:0,scale:.5}};const oo={name:\"Cells\",params:{...g,scale:.5,speed:.5,frame:0,colors:[\"#ffffff\"],stepsPerColor:1,colorGlow:\"#ffffff\",colorGap:\"#000000\",distortion:.5,gap:.03,glow:.8}};const eo={name:\"Bubbles\",params:{...g,scale:.75,speed:.5,frame:0,colors:[\"#83c9fb\"],stepsPerColor:1,colorGlow:\"#ffffff\",colorGap:\"#ffffff\",distortion:.4,gap:0,glow:1}};const ro={name:\"Lights\",params:{...g,scale:3.3,speed:.5,frame:0,colors:[\"#fffffffc\",\"#bbff00\",\"#00ffff\"],colorGlow:\"#ff00d0\",colorGap:\"#ff00d0\",stepsPerColor:2,distortion:.38,gap:0,glow:1}};const so=[ao,ro,oo,eo];const to=t((function({speed:a=ao.params.speed,frame:o=ao.params.frame,colors:e=ao.params.colors,stepsPerColor:r=ao.params.stepsPerColor,colorGlow:s=ao.params.colorGlow,colorGap:t=ao.params.colorGap,distortion:i=ao.params.distortion,gap:n=ao.params.gap,glow:f=ao.params.glow,fit:c=ao.params.fit,scale:m=ao.params.scale,rotation:d=ao.params.rotation,originX:g=ao.params.originX,originY:h=ao.params.originY,offsetX:_=ao.params.offsetX,offsetY:w=ao.params.offsetY,worldWidth:k=ao.params.worldWidth,worldHeight:b=ao.params.worldHeight,...X}){const Y={u_colors:e.map(l),u_colorsCount:e.length,u_stepsPerColor:r,u_colorGlow:l(s),u_colorGap:l(t),u_distortion:i,u_gap:n,u_glow:f,u_noiseTexture:u(),u_fit:p[c],u_scale:m,u_rotation:d,u_offsetX:_,u_offsetY:w,u_originX:g,u_originY:h,u_worldWidth:k,u_worldHeight:b};return K(V,{...X,speed:a,frame:o,fragmentShader:S,uniforms:Y})}),Z);const io={name:\"Default\",params:{...g,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\"}};const no={name:\"Cauldron Pot\",params:{...g,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\"}};const fo={name:\"Live Ink\",params:{...g,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\"}};const co={name:\"Kelp\",params:{...g,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\"}};const po={name:\"Nectar\",params:{...g,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\"}};const lo={name:\"Passion\",params:{...g,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\"}};const mo=[io,no,fo,co,po,lo];const uo=t((function({speed:a=io.params.speed,frame:o=io.params.frame,colors:e=io.params.colors,proportion:r=io.params.proportion,softness:s=io.params.softness,distortion:t=io.params.distortion,swirl:i=io.params.swirl,swirlIterations:n=io.params.swirlIterations,shapeScale:f=io.params.shapeScale,shape:c=io.params.shape,fit:m=io.params.fit,scale:d=io.params.scale,rotation:g=io.params.rotation,originX:h=io.params.originX,originY:_=io.params.originY,offsetX:w=io.params.offsetX,offsetY:k=io.params.offsetY,worldWidth:b=io.params.worldWidth,worldHeight:X=io.params.worldHeight,...Y}){const B={u_colors:e.map(l),u_colorsCount:e.length,u_proportion:r,u_softness:s,u_distortion:t,u_swirl:i,u_swirlIterations:n,u_shapeScale:f,u_shape:y[c],u_noiseTexture:u(),u_scale:d,u_rotation:g,u_fit:p[m],u_offsetX:w,u_offsetY:k,u_originX:h,u_originY:_,u_worldWidth:b,u_worldHeight:X};return K(V,{...Y,speed:a,frame:o,fragmentShader:W,uniforms:B})}),Z);const go={name:\"Default\",params:{...c,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}};const ho={name:\"Warp\",params:{...c,colorBack:\"#000000\",colorBloom:\"#222288\",colors:[\"#ff47d4\",\"#ff8c00\",\"#ffffff\"],density:.45,spotty:.15,midIntensity:.4,midSize:.33,intensity:.79,bloom:.4,speed:2,frame:0}};const _o={name:\"Linear\",params:{...c,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}};const wo={name:\"Ether\",params:{...c,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}};const ko=[go,ho,_o,wo];const bo=t((function({speed:a=go.params.speed,frame:o=go.params.frame,colorBloom:e=go.params.colorBloom,colorBack:r=go.params.colorBack,colors:s=go.params.colors,density:t=go.params.density,spotty:i=go.params.spotty,midIntensity:n=go.params.midIntensity,midSize:f=go.params.midSize,intensity:c=go.params.intensity,bloom:m=go.params.bloom,fit:d=go.params.fit,scale:g=go.params.scale,rotation:h=go.params.rotation,originX:_=go.params.originX,originY:w=go.params.originY,offsetX:k=go.params.offsetX,offsetY:b=go.params.offsetY,worldWidth:X=go.params.worldWidth,worldHeight:Y=go.params.worldHeight,...B}){const S={u_colorBloom:l(e),u_colorBack:l(r),u_colors:s.map(l),u_colorsCount:s.length,u_density:t,u_spotty:i,u_midIntensity:n,u_midSize:f,u_intensity:c,u_bloom:m,u_noiseTexture:u(),u_fit:p[d],u_scale:g,u_rotation:h,u_offsetX:k,u_offsetY:b,u_originX:_,u_originY:w,u_worldWidth:X,u_worldHeight:Y};return K(V,{...B,speed:a,frame:o,fragmentShader:F,uniforms:S})}),Z);const Xo={name:\"Default\",params:{...g,scale:1.3,colorBack:\"#001429\",colorFront:\"#79D1FF\",density:1,distortion:0,strokeWidth:.5,strokeTaper:0,strokeCap:0,noise:0,noiseFrequency:0,softness:0,speed:1,frame:0}};const Yo={name:\"Droplet\",params:{...g,colorBack:\"#effafe\",colorFront:\"#bf40a0\",density:.9,distortion:0,strokeWidth:.75,strokeTaper:.18,strokeCap:1,noise:.74,noiseFrequency:.33,softness:.02,speed:1,frame:0}};const Bo={name:\"Jungle\",params:{...g,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}};const So={name:\"Swirl\",params:{...g,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}};const yo=[Xo,Bo,Yo,So];const Wo=t((function({speed:a=Xo.params.speed,frame:o=Xo.params.frame,colorBack:e=Xo.params.colorBack,colorFront:r=Xo.params.colorFront,density:s=Xo.params.density,distortion:t=Xo.params.distortion,strokeWidth:i=Xo.params.strokeWidth,strokeTaper:n=Xo.params.strokeTaper,strokeCap:f=Xo.params.strokeCap,noiseFrequency:c=Xo.params.noiseFrequency,noise:m=Xo.params.noise,softness:u=Xo.params.softness,fit:d=Xo.params.fit,rotation:g=Xo.params.rotation,scale:h=Xo.params.scale,originX:_=Xo.params.originX,originY:w=Xo.params.originY,offsetX:k=Xo.params.offsetX,offsetY:b=Xo.params.offsetY,worldWidth:X=Xo.params.worldWidth,worldHeight:Y=Xo.params.worldHeight,...B}){const S={u_colorBack:l(e),u_colorFront:l(r),u_density:s,u_distortion:t,u_strokeWidth:i,u_strokeTaper:n,u_strokeCap:f,u_noiseFrequency:c,u_noise:m,u_softness:u,u_fit:p[d],u_scale:h,u_rotation:g,u_offsetX:k,u_offsetY:b,u_originX:_,u_originY:w,u_worldWidth:X,u_worldHeight:Y};return K(V,{...B,speed:a,frame:o,fragmentShader:H,uniforms:S})}),Z);const Fo={name:\"Default\",params:{...c,speed:.32,frame:0,colorBack:\"#330000\",colors:[\"#ffd1d1\",\"#ff8a8a\",\"#660000\"],bandCount:4,twist:.1,softness:0,noiseFrequency:.4,noise:.2}};const Ho={name:\"Opening\",params:{...c,offsetX:-.4,offsetY:1,speed:.5,frame:0,colorBack:\"#ff8b61\",colors:[\"#fefff0\",\"#ffd8bd\",\"#ff8b61\"],bandCount:2,twist:.3,softness:0,noiseFrequency:0,noise:0,scale:1}};const Co={name:\"007\",params:{...c,speed:1,frame:0,colorBack:\"#E9E7DA\",colors:[\"#000000\",\"#000000\",\"#000000\",\"#000000\",\"#000000\",\"#000000\",\"#000000\",\"#000000\",\"#000000\",\"#000000\"],bandCount:5,twist:.3,softness:0,noiseFrequency:.5,noise:0}};const vo={name:\"Candy\",params:{...c,speed:1,frame:0,colorBack:\"#ffcd66\",colors:[\"#6bbceb\",\"#d7b3ff\",\"#ff9fff\"],bandCount:2,twist:.15,softness:1,noiseFrequency:.5,noise:0}};const xo=[Fo,Co,Ho,vo];const zo=t((function({speed:a=Fo.params.speed,frame:o=Fo.params.frame,colorBack:e=Fo.params.colorBack,colors:r=Fo.params.colors,bandCount:s=Fo.params.bandCount,twist:t=Fo.params.twist,softness:i=Fo.params.softness,noiseFrequency:n=Fo.params.noiseFrequency,noise:f=Fo.params.noise,fit:c=Fo.params.fit,rotation:m=Fo.params.rotation,scale:u=Fo.params.scale,originX:d=Fo.params.originX,originY:g=Fo.params.originY,offsetX:h=Fo.params.offsetX,offsetY:_=Fo.params.offsetY,worldWidth:w=Fo.params.worldWidth,worldHeight:k=Fo.params.worldHeight,...b}){const X={u_colorBack:l(e),u_colors:r.map(l),u_colorsCount:r.length,u_bandCount:s,u_twist:t,u_softness:i,u_noiseFrequency:n,u_noise:f,u_fit:p[c],u_scale:u,u_rotation:m,u_offsetX:h,u_offsetY:_,u_originX:d,u_originY:g,u_worldWidth:w,u_worldHeight:k};return K(V,{...b,speed:a,frame:o,fragmentShader:C,uniforms:X})}),Z);const Ro={name:\"Default\",params:{...g,speed:1,frame:0,scale:.5,colorBack:\"#000000\",colorFront:\"#00b2ff\",shape:\"sphere\",type:\"4x4\",pxSize:2}};const Do={name:\"Sine Wave\",params:{...g,speed:1,frame:0,colorBack:\"#730d54\",colorFront:\"#00becc\",shape:\"wave\",type:\"4x4\",pxSize:11,scale:1.2}};const Mo={name:\"Bugs\",params:{...g,speed:1,frame:0,colorBack:\"#000000\",colorFront:\"#008000\",shape:\"dots\",type:\"random\",pxSize:9}};const Ao={name:\"Ripple\",params:{...c,speed:1,frame:0,colorBack:\"#603520\",colorFront:\"#c67953\",shape:\"ripple\",type:\"2x2\",pxSize:3}};const Io={name:\"Swirl\",params:{...c,speed:1,frame:0,colorBack:\"#00000000\",colorFront:\"#47a8e1\",shape:\"swirl\",type:\"8x8\",pxSize:2}};const Po={name:\"Warp\",params:{...c,speed:1,frame:0,colorBack:\"#301c2a\",colorFront:\"#56ae6c\",shape:\"warp\",type:\"4x4\",pxSize:2.5}};const Oo=[Ro,Po,Do,Ao,Mo,Io];const To=t((function({speed:a=Ro.params.speed,frame:o=Ro.params.frame,colorBack:e=Ro.params.colorBack,colorFront:r=Ro.params.colorFront,shape:s=Ro.params.shape,type:t=Ro.params.type,pxSize:i=Ro.params.pxSize,fit:n=Ro.params.fit,scale:f=Ro.params.scale,rotation:c=Ro.params.rotation,originX:m=Ro.params.originX,originY:u=Ro.params.originY,offsetX:d=Ro.params.offsetX,offsetY:g=Ro.params.offsetY,worldWidth:h=Ro.params.worldWidth,worldHeight:_=Ro.params.worldHeight,...w}){const k={u_colorBack:l(e),u_colorFront:l(r),u_shape:x[s],u_type:v[t],u_pxSize:i,u_fit:p[n],u_scale:f,u_rotation:c,u_offsetX:d,u_offsetY:g,u_originX:m,u_originY:u,u_worldWidth:h,u_worldHeight:_};return K(V,{...w,speed:a,frame:o,fragmentShader:z,uniforms:k})}));const Go={name:\"Default\",params:{...c,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#7300ff\",\"#eba8ff\",\"#00bfff\",\"#2a00ff\"],softness:.5,intensity:.5,noise:.25,shape:\"corners\"}};const qo={name:\"Wave\",params:{...g,speed:1,frame:0,colorBack:\"#000a0f\",colors:[\"#c4730b\",\"#bdad5f\",\"#d8ccc7\"],softness:.7,intensity:.15,noise:.5,shape:\"wave\"}};const Lo={name:\"Dots\",params:{...g,scale:.6,speed:1,frame:0,colorBack:\"#0a0000\",colors:[\"#6f0000\",\"#0080ff\",\"#f2ebc9\",\"#33cc33\"],softness:1,intensity:1,noise:.7,shape:\"dots\"}};const No={name:\"Truchet\",params:{...g,speed:1,frame:0,colorBack:\"#0a0000\",colors:[\"#6f2200\",\"#eabb7c\",\"#39b523\"],softness:0,intensity:.2,noise:1,shape:\"truchet\"}};const Eo={name:\"Ripple\",params:{...c,scale:.5,speed:1,frame:0,colorBack:\"#140a00\",colors:[\"#6f2d00\",\"#88ddae\",\"#2c0b1d\"],softness:.5,intensity:.5,noise:.5,shape:\"ripple\"}};const Uo={name:\"Blob\",params:{...c,scale:1.3,speed:1,frame:0,colorBack:\"#0f0e18\",colors:[\"#3e6172\",\"#a49b74\",\"#568c50\"],softness:0,intensity:.15,noise:.5,shape:\"blob\"}};const jo=[Go,qo,Lo,No,Eo,Uo];const $o=t((function({speed:a=Go.params.speed,frame:o=Go.params.frame,colorBack:e=Go.params.colorBack,colors:r=Go.params.colors,softness:s=Go.params.softness,intensity:t=Go.params.intensity,noise:i=Go.params.noise,shape:n=Go.params.shape,fit:f=Go.params.fit,scale:c=Go.params.scale,rotation:m=Go.params.rotation,originX:d=Go.params.originX,originY:g=Go.params.originY,offsetX:h=Go.params.offsetX,offsetY:_=Go.params.offsetY,worldWidth:w=Go.params.worldWidth,worldHeight:k=Go.params.worldHeight,...b}){const X={u_colorBack:l(e),u_colors:r.map(l),u_colorsCount:r.length,u_softness:s,u_intensity:t,u_noise:i,u_shape:R[n],u_noiseTexture:u(),u_fit:p[f],u_scale:c,u_rotation:m,u_offsetX:h,u_offsetY:_,u_originX:d,u_originY:g,u_worldWidth:w,u_worldHeight:k};return K(V,{...b,speed:a,frame:o,fragmentShader:D,uniforms:X})}));const Ko={name:\"Default\",params:{...c,scale:.6,speed:1,frame:8e3,colorBack:\"#000000\",colorTint:\"#ffffff\",softness:.3,repetition:4,shiftRed:.3,shiftBlue:.3,distortion:.1,contour:1,shape:\"circle\"}};const Jo={name:\"Drops\",params:{...c,speed:1,frame:0,colorBack:\"#ffffff00\",colorTint:\"#ffffff\",softness:.3,repetition:3,shiftRed:.3,shiftBlue:.3,distortion:.3,contour:.88,shape:\"metaballs\"}};const Qo={name:\"Contained\",params:{...c,speed:1,frame:0,colorBack:\"#ffffff00\",colorTint:\"#ffffff\",softness:.3,repetition:3,shiftRed:.3,shiftBlue:.3,distortion:.07,contour:0,shape:\"none\",worldWidth:0,worldHeight:0}};const Vo={name:\"Full Screen\",params:{...c,scale:2.2,speed:1,frame:0,colorBack:\"#00042e\",colorTint:\"#5b4dc7\",softness:.45,repetition:4,shiftRed:-.5,shiftBlue:-1,distortion:.1,contour:1,shape:\"none\"}};const Zo=[Ko,Qo,Jo,Vo];const ae=t((function({colorBack:a=Ko.params.colorBack,colorTint:o=Ko.params.colorTint,speed:e=Ko.params.speed,frame:r=Ko.params.frame,softness:s=Ko.params.softness,repetition:t=Ko.params.repetition,shiftRed:i=Ko.params.shiftRed,shiftBlue:n=Ko.params.shiftBlue,distortion:f=Ko.params.distortion,contour:c=Ko.params.contour,shape:m=Ko.params.shape,fit:u=Ko.params.fit,scale:d=Ko.params.scale,rotation:g=Ko.params.rotation,originX:h=Ko.params.originX,originY:_=Ko.params.originY,offsetX:w=Ko.params.offsetX,offsetY:k=Ko.params.offsetY,worldWidth:b=Ko.params.worldWidth,worldHeight:X=Ko.params.worldHeight,...Y}){const B={u_colorBack:l(a),u_colorTint:l(o),u_softness:s,u_repetition:t,u_shiftRed:i,u_shiftBlue:n,u_distortion:f,u_contour:c,u_shape:M[m],u_fit:p[u],u_scale:d,u_rotation:g,u_offsetX:w,u_offsetY:k,u_originX:h,u_originY:_,u_worldWidth:b,u_worldHeight:X};return K(V,{...Y,speed:e,frame:r,fragmentShader:A,uniforms:B})}),Z);const oe={name:\"Default\",params:{...c,scale:.6,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#0dc1fd\",\"#d915ef\",\"#ff3f2ecc\"],roundness:.25,thickness:.2,softness:.75,intensity:.2,bloom:.45,spots:3,spotSize:.4,pulse:.5,smoke:.35,smokeSize:.6}};const ee={name:\"Circle\",params:{...c,worldWidth:400,worldHeight:400,scale:.6,speed:1,frame:0,colorBack:\"#000000\",colors:[\"#0dc1fd\",\"#d915ef\",\"#ff3f2ecc\"],roundness:1,thickness:.05,softness:.75,intensity:.2,bloom:.45,spots:3,spotSize:.4,pulse:.5,smoke:.35,smokeSize:.6}};const re={name:\"Northern lights\",params:{...c,speed:.18,frame:0,colors:[\"#3426f2\",\"#156ba8\",\"#126964\",\"#0affba\",\"#4733cc\"],colorBack:\"#0c182c\",roundness:0,thickness:1,softness:1,intensity:0,bloom:.5,spots:4,spotSize:0,pulse:0,smoke:.7,smokeSize:.7}};const se={name:\"Solid line\",params:{...c,speed:1,frame:0,colors:[\"#ffade4\",\"#e13381\",\"#fa389f\"],colorBack:\"#00000000\",roundness:0,thickness:.1,softness:0,intensity:0,bloom:.15,spots:4,spotSize:.5,pulse:0,smoke:0,smokeSize:0}};const te=[oe,ee,re,se];const ie=t((function({speed:a=oe.params.speed,frame:o=oe.params.frame,colors:e=oe.params.colors,colorBack:r=oe.params.colorBack,roundness:s=oe.params.roundness,thickness:t=oe.params.thickness,softness:i=oe.params.softness,bloom:n=oe.params.bloom,intensity:f=oe.params.intensity,spots:c=oe.params.spots,spotSize:m=oe.params.spotSize,pulse:d=oe.params.pulse,smoke:g=oe.params.smoke,smokeSize:h=oe.params.smokeSize,fit:_=oe.params.fit,rotation:w=oe.params.rotation,scale:k=oe.params.scale,originX:b=oe.params.originX,originY:X=oe.params.originY,offsetX:Y=oe.params.offsetX,offsetY:B=oe.params.offsetY,worldWidth:S=oe.params.worldWidth,worldHeight:y=oe.params.worldHeight,...W}){const F={u_colorBack:l(r),u_colors:e.map(l),u_colorsCount:e.length,u_roundness:s,u_thickness:t,u_softness:i,u_intensity:f,u_bloom:n,u_spots:c,u_spotSize:m,u_pulse:d,u_smoke:g,u_smokeSize:h,u_noiseTexture:u(),u_fit:p[_],u_rotation:w,u_scale:k,u_offsetX:Y,u_offsetY:B,u_originX:b,u_originY:X,u_worldWidth:S,u_worldHeight:y};return K(V,{...W,speed:a,frame:o,fragmentShader:I,uniforms:F})}),Z);const ne={name:\"Default\",params:{...c,speed:.5,frame:0,colors:[\"#ff9d00\",\"#fd4f30\",\"#809bff\",\"#6d2eff\",\"#333aff\",\"#f15cff\",\"#ffd557\"],colorBack:\"#000000\",angle1:0,angle2:0,length:1.1,edges:true,blur:0,fadeIn:1,fadeOut:.3,gradient:0,density:3,scale:.8}};const fe={name:\"Glass\",params:{...c,rotation:112,speed:1,frame:0,colors:[\"#00cfff\",\"#ff2d55\",\"#34c759\",\"#af52de\"],colorBack:\"#ffffff00\",angle1:.3,angle2:.3,length:1,edges:true,blur:.25,fadeIn:.85,fadeOut:.3,gradient:0,density:1.6}};const ce={name:\"Gradient\",params:{...c,speed:.5,frame:0,colors:[\"#f2ff00\",\"#00000000\",\"#00000000\",\"#5a0283\",\"#005eff\"],colorBack:\"#8ffff2\",angle1:.4,angle2:.4,length:3,edges:false,blur:.5,fadeIn:1,fadeOut:.39,gradient:.78,density:1.65,scale:1.72,rotation:270,offsetX:.18}};const pe={name:\"Opening\",params:{...c,speed:2,frame:0,colors:[\"#00ffff\"],colorBack:\"#570044\",angle1:-1,angle2:-1,length:.52,edges:false,blur:0,fadeIn:0,fadeOut:1,gradient:0,density:2.21,scale:2.32,rotation:360,offsetX:-.3,offsetY:.6}};const le=[ne,fe,ce,pe];const me=t((function({speed:a=ne.params.speed,frame:o=ne.params.frame,colors:e=ne.params.colors,colorBack:r=ne.params.colorBack,angle1:s=ne.params.angle1,angle2:t=ne.params.angle2,length:i=ne.params.length,edges:n=ne.params.edges,blur:f=ne.params.blur,fadeIn:c=ne.params.fadeIn,fadeOut:m=ne.params.fadeOut,density:u=ne.params.density,gradient:d=ne.params.gradient,fit:g=ne.params.fit,scale:h=ne.params.scale,rotation:_=ne.params.rotation,originX:w=ne.params.originX,originY:k=ne.params.originY,offsetX:b=ne.params.offsetX,offsetY:X=ne.params.offsetY,worldWidth:Y=ne.params.worldWidth,worldHeight:B=ne.params.worldHeight,...S}){const y={u_colors:e.map(l),u_colorsCount:e.length,u_colorBack:l(r),u_angle1:s,u_angle2:t,u_length:i,u_edges:n,u_blur:f,u_fadeIn:c,u_fadeOut:m,u_density:u,u_gradient:d,u_fit:p[g],u_scale:h,u_rotation:_,u_offsetX:b,u_offsetY:X,u_originX:w,u_originY:k,u_worldWidth:Y,u_worldHeight:B};return K(V,{...S,speed:a,frame:o,fragmentShader:P,uniforms:y})}),Z);const ue={name:\"Default\",params:{...c,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}};const de={name:\"Sea\",params:{...c,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}};const ge={name:\"1960s\",params:{...c,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}};const he={name:\"Sunset\",params:{...c,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}};const _e=[ue,ge,he,de];const we=t((function({speed:a=ue.params.speed,frame:o=ue.params.frame,colors:e=ue.params.colors,positions:r=ue.params.positions,waveX:s=ue.params.waveX,waveXShift:t=ue.params.waveXShift,waveY:i=ue.params.waveY,waveYShift:n=ue.params.waveYShift,mixing:f=ue.params.mixing,grainMixer:c=ue.params.grainMixer,grainOverlay:m=ue.params.grainOverlay,fit:d=ue.params.fit,rotation:g=ue.params.rotation,scale:h=ue.params.scale,originX:_=ue.params.originX,originY:w=ue.params.originY,offsetX:k=ue.params.offsetX,offsetY:b=ue.params.offsetY,worldWidth:X=ue.params.worldWidth,worldHeight:Y=ue.params.worldHeight,...B}){const S={u_colors:e.map(l),u_colorsCount:e.length,u_positions:r,u_waveX:s,u_waveXShift:t,u_waveY:i,u_waveYShift:n,u_mixing:f,u_grainMixer:c,u_grainOverlay:m,u_noiseTexture:u(),u_fit:p[d],u_rotation:g,u_scale:h,u_offsetX:k,u_offsetY:b,u_originX:_,u_originY:w,u_worldWidth:X,u_worldHeight:Y};return K(V,{...B,speed:a,frame:o,fragmentShader:O,uniforms:S})}),Z);const ke={name:\"Default\",params:{...c,scale:1,speed:0,frame:0,colorBack:\"#000000\",colors:[\"#00bbff\",\"#00ffe1\",\"#ffffff\"],radius:.7,focalDistance:.99,focalAngle:0,falloff:.24,mixing:.35,distortion:0,distortionShift:0,distortionFreq:12,grainMixer:0,grainOverlay:0}};const be={name:\"Cross Section\",params:{...c,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}};const Xe={name:\"Radial\",params:{...c,scale:1,speed:0,frame:0,colorBack:\"#264653\",colors:[\"#9c2b2b\",\"#f4a261\",\"#ffffff\"],radius:1,focalDistance:0,focalAngle:0,falloff:0,mixing:.7,distortion:0,distortionShift:0,distortionFreq:12,grainMixer:0,grainOverlay:0}};const Ye={name:\"Lo-Fi\",params:{...c,speed:0,frame:0,colorBack:\"#2e1f27\",colors:[\"#d72638\",\"#3f88c5\",\"#f49d37\"],radius:1,focalDistance:0,focalAngle:0,falloff:.9,mixing:.5,distortion:0,distortionShift:0,distortionFreq:12,grainMixer:1,grainOverlay:.5}};const Be=[ke,Ye,be,Xe];const Se=t((function({speed:a=ke.params.speed,frame:o=ke.params.frame,colorBack:e=ke.params.colorBack,colors:r=ke.params.colors,radius:s=ke.params.radius,focalDistance:t=ke.params.focalDistance,focalAngle:i=ke.params.focalAngle,falloff:n=ke.params.falloff,grainMixer:f=ke.params.grainMixer,mixing:c=ke.params.mixing,distortion:m=ke.params.distortion,distortionShift:d=ke.params.distortionShift,distortionFreq:g=ke.params.distortionFreq,grainOverlay:h=ke.params.grainOverlay,fit:_=ke.params.fit,rotation:w=ke.params.rotation,scale:k=ke.params.scale,originX:b=ke.params.originX,originY:X=ke.params.originY,offsetX:Y=ke.params.offsetX,offsetY:B=ke.params.offsetY,worldWidth:S=ke.params.worldWidth,worldHeight:y=ke.params.worldHeight,...W}){const F={u_colorBack:l(e),u_colors:r.map(l),u_colorsCount:r.length,u_radius:s,u_focalDistance:t,u_focalAngle:i,u_falloff:n,u_mixing:c,u_distortion:m,u_distortionShift:d,u_distortionFreq:g,u_grainMixer:f,u_grainOverlay:h,u_noiseTexture:u(),u_fit:p[_],u_rotation:w,u_scale:k,u_offsetX:Y,u_offsetY:B,u_originX:b,u_originY:X,u_worldWidth:S,u_worldHeight:y};return K(V,{...W,speed:a,frame:o,fragmentShader:T,uniforms:F})}),Z);const ye={name:\"Default\",params:{...c,fit:\"cover\",scale:.6,speed:0,frame:0,colorFront:\"#9fadbc\",colorBack:\"#ffffff\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",contrast:.3,roughness:.4,fiber:.3,fiberScale:1,crumples:.3,crumplesScale:.6,folds:.65,foldsNumber:5,blur:0,drops:.2,seed:5.8}};const We={name:\"Abstract\",params:{...c,fit:\"cover\",speed:0,frame:0,scale:.6,colorFront:\"#00eeff\",colorBack:\"#ff0a81\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",contrast:.85,roughness:0,fiber:.1,fiberScale:1,crumples:0,crumplesScale:1,folds:1,foldsNumber:3,blur:0,drops:.2,seed:2.2}};const Fe={name:\"Cardboard\",params:{...c,fit:\"cover\",speed:0,frame:0,scale:.6,colorFront:\"#c7b89e\",colorBack:\"#999180\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",contrast:.4,roughness:0,fiber:.35,fiberScale:2,crumples:.7,crumplesScale:.6,folds:0,foldsNumber:1,blur:0,drops:.1,seed:1.6}};const He={name:\"Details\",params:{...c,speed:0,frame:0,fit:\"cover\",scale:3,colorFront:\"#00000000\",colorBack:\"#00000000\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",contrast:0,roughness:1,fiber:.27,fiberScale:2,crumples:1,crumplesScale:3,folds:1,foldsNumber:15,blur:0,drops:0,seed:6}};const Ce=[ye,Fe,We,He];const ve=t((function({speed:a=ye.params.speed,frame:o=ye.params.frame,colorFront:e=ye.params.colorFront,colorBack:r=ye.params.colorBack,image:s=ye.params.image,contrast:t=ye.params.contrast,roughness:i=ye.params.roughness,fiber:n=ye.params.fiber,fiberScale:f=ye.params.fiberScale,crumples:c=ye.params.crumples,crumplesScale:m=ye.params.crumplesScale,foldsNumber:d=ye.params.foldsNumber,folds:g=ye.params.folds,blur:h=ye.params.blur,drops:_=ye.params.drops,seed:w=ye.params.seed,fit:k=ye.params.fit,scale:b=ye.params.scale,rotation:X=ye.params.rotation,originX:Y=ye.params.originX,originY:B=ye.params.originY,offsetX:S=ye.params.offsetX,offsetY:y=ye.params.offsetY,worldWidth:W=ye.params.worldWidth,worldHeight:F=ye.params.worldHeight,...H}){const C=typeof window!==\"undefined\"&&{u_noiseTexture:u()};const v={u_image:s,u_colorFront:l(e),u_colorBack:l(r),u_contrast:t,u_roughness:i,u_fiber:n,u_fiberScale:f,u_crumples:c,u_crumplesScale:m,u_foldsNumber:d,u_folds:g,u_blur:h,u_drops:_,u_seed:w,...C,u_fit:p[k],u_scale:b,u_rotation:X,u_offsetX:S,u_offsetY:y,u_originX:Y,u_originY:B,u_worldWidth:W,u_worldHeight:F};return K(V,{...H,speed:a,frame:o,fragmentShader:G,uniforms:v})}),Z);const xe={name:\"Default\",params:{...c,fit:\"cover\",speed:0,frame:0,image:\"https://shaders.paper.design/images/image-filters/0018.webp\",count:80,angle:0,distortionShape:\"lens\",shape:\"lines\",distortion:.5,shift:0,blur:3,highlights:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0}};const ze={name:\"Waves\",params:{...c,fit:\"cover\",speed:0,frame:0,image:\"https://shaders.paper.design/images/image-filters/0018.webp\",count:20,angle:0,distortionShape:\"contour\",shape:\"wave\",distortion:.3,shift:0,blur:0,highlights:0,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0}};const Re={name:\"Irregular lines\",params:{...c,fit:\"cover\",scale:4,speed:0,frame:0,image:\"https://shaders.paper.design/images/image-filters/0018.webp\",count:32,angle:150,distortionShape:\"facete\",shape:\"linesIrregular\",distortion:1,shift:0,blur:25,highlights:1,marginLeft:0,marginRight:0,marginTop:0,marginBottom:0}};const De={name:\"Folds\",params:{...c,fit:\"cover\",speed:0,frame:0,image:\"https://shaders.paper.design/images/image-filters/0018.webp\",count:50,angle:0,distortionShape:\"cascade\",shape:\"lines\",distortion:.75,shift:0,blur:0,highlights:0,marginLeft:.05,marginRight:.05,marginTop:.2,marginBottom:.2}};const Me=[xe,Re,ze,De];const Ae=t((function({speed:a=xe.params.speed,frame:o=xe.params.frame,image:e=xe.params.image,count:r=xe.params.count,angle:s=xe.params.angle,distortion:t=xe.params.distortion,distortionShape:i=xe.params.distortionShape,shape:n=xe.params.shape,shift:f=xe.params.shift,blur:c=xe.params.blur,marginLeft:l=xe.params.marginLeft,marginRight:m=xe.params.marginRight,marginTop:u=xe.params.marginTop,marginBottom:d=xe.params.marginBottom,highlights:g=xe.params.highlights,fit:h=xe.params.fit,scale:_=xe.params.scale,rotation:w=xe.params.rotation,originX:k=xe.params.originX,originY:b=xe.params.originY,offsetX:X=xe.params.offsetX,offsetY:Y=xe.params.offsetY,worldWidth:B=xe.params.worldWidth,worldHeight:S=xe.params.worldHeight,...y}){const W={u_image:e,u_count:r,u_angle:s,u_distortion:t,u_shift:f,u_blur:c,u_highlights:g,u_distortionShape:L[i],u_shape:q[n],u_marginLeft:l,u_marginRight:m,u_marginTop:u,u_marginBottom:d,u_fit:p[h],u_scale:_,u_rotation:w,u_offsetX:X,u_offsetY:Y,u_originX:k,u_originY:b,u_worldWidth:B,u_worldHeight:S};return K(V,{...y,speed:a,frame:o,fragmentShader:N,uniforms:W})}));const Ie={name:\"Default\",params:{...c,scale:.8,speed:1,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",highlights:.07,layering:.5,edges:.8,waves:.3,caustic:.1,effectScale:1}};const Pe={name:\"Abstract\",params:{...c,fit:\"cover\",scale:3,speed:1,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",highlights:0,layering:0,edges:1,waves:1,caustic:.4,effectScale:4}};const Oe={name:\"Streaming\",params:{...c,fit:\"contain\",scale:.4,speed:2,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",highlights:0,layering:0,edges:0,waves:.5,caustic:0,effectScale:3}};const Te={name:\"Slow-mo\",params:{...c,fit:\"cover\",scale:1,speed:.1,frame:0,colorBack:\"#909090\",colorHighlight:\"#ffffff\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",highlights:.4,layering:0,edges:0,waves:0,caustic:.2,effectScale:2}};const Ge=[Ie,Te,Pe,Oe];const qe=t((function({speed:a=Ie.params.speed,frame:o=Ie.params.frame,colorBack:e=Ie.params.colorBack,colorHighlight:r=Ie.params.colorHighlight,image:s=Ie.params.image,highlights:t=Ie.params.highlights,layering:i=Ie.params.layering,waves:n=Ie.params.waves,edges:f=Ie.params.edges,caustic:c=Ie.params.caustic,effectScale:m=Ie.params.effectScale,fit:u=Ie.params.fit,scale:d=Ie.params.scale,rotation:g=Ie.params.rotation,originX:h=Ie.params.originX,originY:_=Ie.params.originY,offsetX:w=Ie.params.offsetX,offsetY:k=Ie.params.offsetY,worldWidth:b=Ie.params.worldWidth,worldHeight:X=Ie.params.worldHeight,...Y}){const B={u_image:s,u_colorBack:l(e),u_colorHighlight:l(r),u_highlights:t,u_layering:i,u_waves:n,u_edges:f,u_caustic:c,u_effectScale:m,u_fit:p[u],u_rotation:g,u_scale:d,u_offsetX:w,u_offsetY:k,u_originX:h,u_originY:_,u_worldWidth:b,u_worldHeight:X};return K(V,{...Y,speed:a,frame:o,fragmentShader:E,uniforms:B})}),Z);const Le={name:\"Default\",params:{...c,fit:\"cover\",speed:0,frame:0,colorFront:\"#94ffaf\",colorBack:\"#000c38\",colorHighlight:\"#eaff94\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",type:\"8x8\",pxSize:2,colorSteps:2,originalColors:false}};const Ne={name:\"Retro\",params:{...c,speed:0,frame:0,colorFront:\"#eeeeee\",colorBack:\"#5452ff\",colorHighlight:\"#eeeeee\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",type:\"2x2\",pxSize:3,colorSteps:1,originalColors:true}};const Ee={name:\"Noise\",params:{...c,speed:0,frame:0,colorFront:\"#a2997c\",colorBack:\"#000000\",colorHighlight:\"#ededed\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",type:\"random\",pxSize:1,colorSteps:1,originalColors:false}};const Ue={name:\"Natural\",params:{...c,speed:0,frame:0,colorFront:\"#ffffff\",colorBack:\"#000000\",colorHighlight:\"#ffffff\",image:\"https://shaders.paper.design/images/image-filters/0018.webp\",type:\"8x8\",pxSize:2,colorSteps:5,originalColors:true}};const je=[Le,Ee,Ne,Ue];const $e=t((function({speed:a=Le.params.speed,frame:o=Le.params.frame,colorFront:e=Le.params.colorFront,colorBack:r=Le.params.colorBack,colorHighlight:s=Le.params.colorHighlight,image:t=Le.params.image,type:i=Le.params.type,pxSize:n=Le.params.pxSize,colorSteps:f=Le.params.colorSteps,originalColors:c=Le.params.originalColors,fit:m=Le.params.fit,scale:u=Le.params.scale,rotation:d=Le.params.rotation,originX:g=Le.params.originX,originY:h=Le.params.originY,offsetX:_=Le.params.offsetX,offsetY:w=Le.params.offsetY,worldWidth:k=Le.params.worldWidth,worldHeight:b=Le.params.worldHeight,...X}){const Y={u_image:t,u_colorFront:l(e),u_colorBack:l(r),u_colorHighlight:l(s),u_type:v[i],u_pxSize:n,u_colorSteps:f,u_originalColors:c,u_fit:p[m],u_rotation:d,u_scale:u,u_offsetX:_,u_offsetY:w,u_originX:g,u_originY:h,u_worldWidth:k,u_worldHeight:b};return K(V,{...X,speed:a,frame:o,fragmentShader:U,uniforms:Y})}),Z);const Ke=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";const Je=a=>typeof a===\"object\"&&typeof a.then===\"function\";const Qe=[];function Ve(a,o){if(a===o)return true;if(!a||!o)return false;const e=a.length;if(o.length!==e)return false;for(let r=0;r<e;r++)if(a[r]!==o[r])return false;return true}function Ze(a,o=null){o===null&&(o=[a]);for(const a of Qe)if(Ve(o,a.keys)){if(Object.prototype.hasOwnProperty.call(a,\"error\"))throw a.error;if(Object.prototype.hasOwnProperty.call(a,\"response\"))return a.response;throw a.promise}const e={keys:o,promise:(Je(a)?a:a(...o)).then((a=>{e.response=a})).catch((a=>e.error=a))};Qe.push(e);throw e.promise}const ar=(a,o)=>Ze(a,o);const or={name:\"Default\",params:{...c,scale:.75,speed:1,frame:0,image:\"https://shaders.paper.design/images/image-filters/0019.webp\",contour:.5,angle:0,noise:0,innerGlow:.5,outerGlow:.5,colorBack:\"#000000\",colors:[\"#11206a\",\"#1f3ba2\",\"#2f63e7\",\"#6bd7ff\",\"#ffe679\",\"#ff991e\",\"#ff4c00\"]}};const er={name:\"Sepia\",params:{...c,scale:.75,speed:.5,frame:0,image:\"https://shaders.paper.design/images/image-filters/0019.webp\",contour:.5,angle:0,noise:.75,innerGlow:.5,outerGlow:.5,colorBack:\"#000000\",colors:[\"#997F45\",\"#ffffff\"]}};const rr=[or,er];const sr=t((function({speed:a=or.params.speed,frame:o=or.params.frame,contour:r=or.params.contour,angle:s=or.params.angle,noise:t=or.params.noise,innerGlow:f=or.params.innerGlow,outerGlow:c=or.params.outerGlow,colorBack:m=or.params.colorBack,colors:u=or.params.colors,suspendWhenProcessingImage:d=false,fit:g=or.params.fit,image:h=Ke,offsetX:_=or.params.offsetX,offsetY:w=or.params.offsetY,originX:k=or.params.originX,originY:b=or.params.originY,rotation:X=or.params.rotation,scale:Y=or.params.scale,worldHeight:B=or.params.worldHeight,worldWidth:S=or.params.worldWidth,...y}){const W=typeof h===\"string\"?h:h.src;const[F,H]=e(Ke);let C;C=d?ar((()=>j(W).then((a=>URL.createObjectURL(a.blob)))),[W]):F;i((()=>{if(d)return;if(!W){H(Ke);return}let a;let o=true;j(W).then((e=>{if(o){a=URL.createObjectURL(e.blob);H(a)}}));return()=>{o=false;URL.revokeObjectURL(a)}}),[W,d]);const v=n((()=>({u_image:C,u_contour:r,u_angle:s,u_noise:t,u_innerGlow:f,u_outerGlow:c,u_colorBack:l(m),u_colors:u.map(l),u_colorsCount:u.length,u_fit:p[g],u_offsetX:_,u_offsetY:w,u_originX:k,u_originY:b,u_rotation:X,u_scale:Y,u_worldHeight:B,u_worldWidth:S})),[a,o,r,s,t,f,c,u,m,C,g,_,w,k,b,X,Y,B,S]);return K(V,{...y,speed:a,frame:o,fragmentShader:$,uniforms:v})}));\"use client\";export{me as ColorPanels,To as Dithering,Ca as DotGrid,Ba as DotOrbit,Ae as FlutedGlass,bo as GodRays,$o as GrainGradient,sr as Heatmap,$e as ImageDithering,ae as LiquidMetal,ta as MeshGradient,Ga as Metaballs,_a as NeuroNoise,ve as PaperTexture,Za as PerlinNoise,ie as PulsingBorder,V as ShaderMount,Ma as SimplexNoise,la as SmokeRing,Wo as Spiral,we as StaticMeshGradient,Se as StaticRadialGradient,zo as Swirl,to as Voronoi,uo as Warp,qe as Water,ja as Waves,le as colorPanelsPresets,Oo as ditheringPresets,Ha as dotGridPresets,Ya as dotOrbitPresets,Me as flutedGlassPresets,ko as godRaysPresets,jo as grainGradientPresets,rr as heatmapPresets,je as imageDitheringPresets,Zo as liquidMetalPresets,sa as meshGradientPresets,Ta as metaballsPresets,ha as neuroNoisePresets,Ce as paperTexturePresets,Va as perlinNoisePresets,te as pulsingBorderPresets,Da as simplexNoisePresets,pa as smokeRingPresets,yo as spiralPresets,_e as staticMeshGradientPresets,Be as staticRadialGradientPresets,xo as swirlPresets,so as voronoiPresets,mo as warpPresets,Ge as waterPresets,Ua as wavesPresets};\n//# sourceMappingURL=index.js.map\n","\"use client\";import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{GrainGradient}from\"@paper-design/shaders-react\";// ─── Gradient presets ─────────────────────────────────────────────────────────\n// Duplicate \"Aurora\" removed.\nconst gradientStyles={Sunset:[\"hsl(14, 100%, 57%)\",\"hsl(45, 100%, 51%)\",\"hsl(340, 82%, 52%)\"],Ocean:[\"hsl(200, 70%, 50%)\",\"hsl(180, 60%, 55%)\",\"hsl(160, 80%, 45%)\"],Neon:[\"hsl(300, 100%, 60%)\",\"hsl(50, 100%, 55%)\",\"hsl(180, 100%, 50%)\"],PurpleSky:[\"hsl(260, 60%, 55%)\",\"hsl(280, 70%, 60%)\",\"hsl(300, 80%, 50%)\"],Fire:[\"hsl(0, 90%, 60%)\",\"hsl(25, 80%, 55%)\",\"hsl(50, 90%, 50%)\"],Forest:[\"hsl(120, 60%, 40%)\",\"hsl(100, 70%, 50%)\",\"hsl(140, 80%, 45%)\"],Candy:[\"hsl(330, 80%, 60%)\",\"hsl(290, 70%, 65%)\",\"hsl(270, 90%, 55%)\"],Ice:[\"hsl(190, 60%, 70%)\",\"hsl(200, 50%, 60%)\",\"hsl(180, 40%, 55%)\"],Galaxy:[\"hsl(250, 80%, 50%)\",\"hsl(280, 90%, 55%)\",\"hsl(220, 70%, 60%)\"],Tropical:[\"hsl(30, 100%, 60%)\",\"hsl(160, 80%, 50%)\",\"hsl(200, 70%, 55%)\"],Aurora:[\"hsl(150, 90%, 55%)\",\"hsl(180, 80%, 60%)\",\"hsl(200, 70%, 50%)\"],AuroraSand:[\"hsl(50, 90%, 50%)\",\"hsl(150, 90%, 55%)\",\"hsl(180, 80%, 60%)\",\"hsl(200, 70%, 50%)\"],Lava:[\"hsl(0, 95%, 55%)\",\"hsl(10, 90%, 50%)\",\"hsl(20, 80%, 45%)\"],CandyPop:[\"hsl(330, 100%, 65%)\",\"hsl(310, 80%, 60%)\",\"hsl(290, 90%, 55%)\"],DeepSea:[\"hsl(200, 100%, 40%)\",\"hsl(220, 90%, 45%)\",\"hsl(240, 80%, 50%)\"],SunsetBlush:[\"hsl(340, 90%, 60%)\",\"hsl(15, 100%, 55%)\",\"hsl(45, 100%, 50%)\"],Minty:[\"hsl(150, 60%, 70%)\",\"hsl(160, 80%, 65%)\",\"hsl(170, 70%, 60%)\"],SolarFlare:[\"hsl(45, 100%, 60%)\",\"hsl(60, 90%, 55%)\",\"hsl(75, 85%, 50%)\"]};// ─── Debounce helper ──────────────────────────────────────────────────────────\n// Prevents the ResizeObserver firing on every pixel change while resizing.\nfunction useDebounce(value,delay){const[debounced,setDebounced]=React.useState(value);React.useEffect(()=>{const timer=setTimeout(()=>setDebounced(value),delay);return()=>clearTimeout(timer);},[value,delay]);return debounced;}// ─── Component ────────────────────────────────────────────────────────────────\nexport default function GradientBackground({styleType=\"Sunset\",noise=0,speed=0,scale=1,offsetX=0,offsetY=0,width,height}){const containerRef=React.useRef(null);const[rawSize,setRawSize]=React.useState({w:width&&width>0?width:400,h:height&&height>0?height:300});React.useEffect(()=>{if(width>0&&height>0)setRawSize({w:width,h:height});},[width,height]);React.useEffect(()=>{const node=containerRef.current;if(!node)return;const ro=new ResizeObserver(entries=>{for(const entry of entries){const{width:w,height:h}=entry.contentRect;setRawSize({w:Math.max(1,Math.round(w)),h:Math.max(1,Math.round(h))});}});ro.observe(node);return()=>ro.disconnect();},[]);// Debounced size — GrainGradient only updates after 150ms of calm\nconst size=useDebounce(rawSize,150);// Memoised colour lookup\nconst colors=React.useMemo(()=>gradientStyles[styleType]??gradientStyles.Sunset,[styleType]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:width&&width>0?width:\"100%\",height:height&&height>0?height:\"100%\",minWidth:400,minHeight:300,position:\"relative\",overflow:\"hidden\",display:\"block\"},children:/*#__PURE__*/_jsx(GrainGradient,{style:{position:\"absolute\",top:0,left:0,width:`${size.w}px`,height:`${size.h}px`,display:\"block\"},width:size.w,height:size.h,colorBack:\"hsl(0,0%,100%)\",softness:.76,intensity:.45,noise:noise,offsetX:offsetX,offsetY:offsetY,scale:scale,rotation:0,speed:speed,colors:colors})});}// ─── Framer property controls ─────────────────────────────────────────────────\naddPropertyControls(GradientBackground,{styleType:{type:ControlType.Enum,title:\"Style\",options:Object.keys(gradientStyles),defaultValue:\"Sunset\"},noise:{type:ControlType.Number,title:\"Noise\",min:0,max:1,step:.01,defaultValue:0},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:5,step:.01,defaultValue:0},scale:{type:ControlType.Number,title:\"Scale\",min:.1,max:5,step:.01,defaultValue:1},offsetX:{type:ControlType.Number,title:\"Offset X\",min:-1,max:1,step:.01,defaultValue:0},offsetY:{type:ControlType.Number,title:\"Offset Y\",min:-1,max:1,step:.01,defaultValue:0}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientBackground\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientBackgroundAnimation.map"],"mappings":"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"}