1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,11304,e=>{"use strict";var n=e.i(43476),a=e.i(71645),t=e.i(80075),o=e.i(56850),u=e.i(21663),l=e.i(53604);let r=e=>{let n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return n?[parseInt(n[1],16)/255,parseInt(n[2],16)/255,parseInt(n[3],16)/255]:[1,1,1]},i=new WeakMap;e.s(["default",0,function(e){let{timeSpeed:v=.25,colorBalance:c=0,warpStrength:f=1,warpFrequency:m=5,warpSpeed:s=2,warpAmplitude:d=50,blendAngle:p=0,blendSoftness:g=.05,rotationAmount:h=500,noiseScale:y=2,grainAmount:C=.1,grainScale:A=2,grainAnimated:S=!1,contrast:x=1.5,gamma:w=1,saturation:b=1,centerX:F=0,centerY:R=0,zoom:W=.9,color1:B="#FF9FFC",color2:G="#5227FF",color3:T="#B497CF",className:O=""}=e,q=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=q.current;if(!e)return;let n=Math.min(window.devicePixelRatio||1,1.75),a=new u.Renderer({webgl:2,alpha:!0,antialias:!1,dpr:n}),r=a.gl,v=r.canvas;v.style.width="100%",v.style.height="100%",v.style.display="block",v.style.backgroundImage="linear-gradient(transparent, transparent)",e.appendChild(v);let c=new l.Triangle(r),f=new o.Program(r,{vertex:"#version 300 es\nin vec2 position;\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}\n",fragment:"#version 300 es\nprecision highp float;\nuniform vec2 iResolution;\nuniform float iTime;\nuniform float uTimeSpeed;\nuniform float uColorBalance;\nuniform float uWarpStrength;\nuniform float uWarpFrequency;\nuniform float uWarpSpeed;\nuniform float uWarpAmplitude;\nuniform float uBlendAngle;\nuniform float uBlendSoftness;\nuniform float uRotationAmount;\nuniform float uNoiseScale;\nuniform float uGrainAmount;\nuniform float uGrainScale;\nuniform float uGrainAnimated;\nuniform float uContrast;\nuniform float uGamma;\nuniform float uSaturation;\nuniform vec2 uCenterOffset;\nuniform float uZoom;\nuniform vec3 uColor1;\nuniform vec3 uColor2;\nuniform vec3 uColor3;\nout vec4 fragColor;\n#define S(a,b,t) smoothstep(a,b,t)\nmat2 Rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);} \nvec2 hash(vec2 p){p=vec2(dot(p,vec2(2127.1,81.17)),dot(p,vec2(1269.5,283.37)));return fract(sin(p)*43758.5453);} \nfloat noise(vec2 p){vec2 i=floor(p),f=fract(p),u=f*f*(3.0-2.0*f);float n=mix(mix(dot(-1.0+2.0*hash(i+vec2(0.0,0.0)),f-vec2(0.0,0.0)),dot(-1.0+2.0*hash(i+vec2(1.0,0.0)),f-vec2(1.0,0.0)),u.x),mix(dot(-1.0+2.0*hash(i+vec2(0.0,1.0)),f-vec2(0.0,1.0)),dot(-1.0+2.0*hash(i+vec2(1.0,1.0)),f-vec2(1.0,1.0)),u.x),u.y);return 0.5+0.5*n;}\nvoid mainImage(out vec4 o, vec2 C){\n float t=iTime*uTimeSpeed;\n vec2 uv=C/iResolution.xy;\n float ratio=iResolution.x/iResolution.y;\n vec2 tuv=uv-0.5+uCenterOffset;\n tuv/=max(uZoom,0.001);\n\n float degree=noise(vec2(t*0.1,tuv.x*tuv.y)*uNoiseScale);\n tuv.y*=1.0/ratio;\n tuv*=Rot(radians((degree-0.5)*uRotationAmount+180.0));\n tuv.y*=ratio;\n\n float frequency=uWarpFrequency;\n float ws=max(uWarpStrength,0.001);\n float amplitude=uWarpAmplitude/ws;\n float warpTime=t*uWarpSpeed;\n tuv.x+=sin(tuv.y*frequency+warpTime)/amplitude;\n tuv.y+=sin(tuv.x*(frequency*1.5)+warpTime)/(amplitude*0.5);\n\n vec3 colLav=uColor1;\n vec3 colOrg=uColor2;\n vec3 colDark=uColor3;\n float b=uColorBalance;\n float s=max(uBlendSoftness,0.0);\n mat2 blendRot=Rot(radians(uBlendAngle));\n float blendX=(tuv*blendRot).x;\n float edge0=-0.3-b-s;\n float edge1=0.2-b+s;\n float v0=0.5-b+s;\n float v1=-0.3-b-s;\n vec3 layer1=mix(colDark,colOrg,S(edge0,edge1,blendX));\n vec3 layer2=mix(colOrg,colLav,S(edge0,edge1,blendX));\n vec3 col=mix(layer1,layer2,S(v0,v1,tuv.y));\n\n vec2 grainUv=uv*max(uGrainScale,0.001);\n if(uGrainAnimated>0.5){grainUv+=vec2(iTime*0.05);} \n float grain=fract(sin(dot(grainUv,vec2(12.9898,78.233)))*43758.5453);\n col+=(grain-0.5)*uGrainAmount;\n\n col=(col-0.5)*uContrast+0.5;\n float luma=dot(col,vec3(0.2126,0.7152,0.0722));\n col=mix(vec3(luma),col,uSaturation);\n col=pow(max(col,0.0),vec3(1.0/max(uGamma,0.001)));\n col=clamp(col,0.0,1.0);\n\n o=vec4(col,1.0);\n}\nvoid main(){\n vec4 o=vec4(0.0);\n mainImage(o,gl_FragCoord.xy);\n fragColor=o;\n}\n",uniforms:{iTime:{value:0},iResolution:{value:new Float32Array([1,1])},uTimeSpeed:{value:.25},uColorBalance:{value:0},uWarpStrength:{value:1},uWarpFrequency:{value:5},uWarpSpeed:{value:2},uWarpAmplitude:{value:50},uBlendAngle:{value:0},uBlendSoftness:{value:.05},uRotationAmount:{value:500},uNoiseScale:{value:2},uGrainAmount:{value:.1},uGrainScale:{value:2},uGrainAnimated:{value:0},uContrast:{value:1.5},uGamma:{value:1},uSaturation:{value:1},uCenterOffset:{value:new Float32Array([0,0])},uZoom:{value:.9},uColor1:{value:new Float32Array([1,1,1])},uColor2:{value:new Float32Array([1,1,1])},uColor3:{value:new Float32Array([1,1,1])}}}),m=new t.Mesh(r,{geometry:c,program:f});i.set(e,{renderer:a,program:f,mesh:m});let s=()=>{let n=e.getBoundingClientRect(),t=Math.max(1,Math.floor(e.offsetWidth||n.width)),o=Math.max(1,Math.floor(e.offsetHeight||n.height));a.setSize(t,o);let u=f.uniforms.iResolution.value;u[0]=r.drawingBufferWidth,u[1]=r.drawingBufferHeight,a.render({scene:m})},d=new ResizeObserver(s);d.observe(e),s();let p=0,g=!0,h=!document.hidden,y=performance.now(),C=0,A=e=>{p=requestAnimationFrame(A);let n=e-C;n<33.333333333333336||(C=e-n%33.333333333333336,f.uniforms.iTime.value=(e-y)*.001,a.render({scene:m}))},S=()=>{g&&h&&0===p&&(p=requestAnimationFrame(A))},x=()=>{0!==p&&(cancelAnimationFrame(p),p=0)},w=new IntersectionObserver(e=>{let[n]=e;(g=n.isIntersecting)?S():x()},{threshold:0});w.observe(e);let b=()=>{(h=!document.hidden)?S():x()};return document.addEventListener("visibilitychange",b),S(),()=>{x(),d.disconnect(),w.disconnect(),document.removeEventListener("visibilitychange",b),i.delete(e);try{var n;null==(n=r.getExtension("WEBGL_lose_context"))||n.loseContext()}catch(e){}try{e.removeChild(v)}catch(e){}}},[]),(0,a.useEffect)(()=>{let e=q.current;if(!e)return;let n=i.get(e);if(!n)return;let{program:a}=n,t=a.uniforms;t.uTimeSpeed.value=v,t.uColorBalance.value=c,t.uWarpStrength.value=f,t.uWarpFrequency.value=m,t.uWarpSpeed.value=s,t.uWarpAmplitude.value=d,t.uBlendAngle.value=p,t.uBlendSoftness.value=g,t.uRotationAmount.value=h,t.uNoiseScale.value=y,t.uGrainAmount.value=C,t.uGrainScale.value=A,t.uGrainAnimated.value=+!!S,t.uContrast.value=x,t.uGamma.value=w,t.uSaturation.value=b,t.uCenterOffset.value=new Float32Array([F,R]),t.uZoom.value=W,t.uColor1.value=new Float32Array(r(B)),t.uC
1olor2.value=new Float32Array(r(G)),t.uColor3.value=new Float32Array(r(T))},[v,c,f,m,s,d,p,g,h,y,C,A,S,x,w,b,F,R,W,B,G,T]),(0,n.jsx)("div",{ref:q,className:"grainient-container ".concat(O).trim()})}])},86832,function(e){e.n(e.i(11304))}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.