1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[330],{7330:function(n,t,e){e.r(t),e.d(t,{default:function(){return m}});var o=e(7437),a=e(2265),r=e(9725),i=e(6777),s=e(7776);function l(n,t,e,o,a,r){let i=3*e;n[i]=o,n[i+1]=a,n[i+2]=r,t[i]=o,t[i+1]=a,t[i+2]=r}let c="\n attribute float aSize;\n attribute float aPhase;\n attribute float aSpeed;\n attribute vec3 aBasePos;\n\n uniform float uTime;\n uniform float uDpr;\n uniform vec3 uCursor;\n uniform float uCursorRadius;\n uniform float uCursorStrength;\n\n varying float vAlpha;\n varying vec3 vPos;\n\n void main() {\n vec3 pos = aBasePos;\n\n // ââ Circular micro-orbits (fluid shimmer) ââ\n float orbitR = 0.008 + aSize * 0.005;\n float spd = uTime * (0.6 + aSpeed * 1.0);\n pos.x += sin(spd + aPhase) * orbitR;\n pos.y += cos(spd + aPhase * 1.3) * orbitR;\n pos.z += sin(spd * 0.6 + aPhase * 0.9) * orbitR * 0.4;\n\n // Exhaust: bigger turbulent orbits\n float vertId = float(gl_VertexID);\n float isExhaust = step(".concat("19100.0",", vertId)\n * (1.0 - step(").concat("23100.0",", vertId));\n float isAmbient = step(").concat("23100.0",", vertId);\n\n if (isExhaust > 0.5) {\n float dist = max(-pos.z - 3.0, 0.0);\n float turbScale = dist * 0.1;\n pos.x += sin(uTime * 3.5 + aPhase * 3.0) * turbScale;\n pos.y += cos(uTime * 3.0 + aPhase * 2.5) * turbScale;\n // Outward expansion\n float expand = dist * 0.03;\n pos.x += normalize(pos.x + 0.001) * expand * sin(uTime * 2.0 + aPhase);\n pos.y += normalize(pos.y + 0.001) * expand * cos(uTime * 1.8 + aPhase);\n }\n if (isAmbient > 0.5) {\n pos.x += sin(uTime * 0.3 + aPhase * 2.0) * 0.015;\n pos.y += cos(uTime * 0.25 + aPhase * 1.5) * 0.015;\n }\n\n // ââ Mouse displacement ââ\n vec4 mvPos = modelViewMatrix * vec4(pos, 1.0);\n vec3 cursor = vec3(uCursor.xy, mvPos.z);\n vec3 diff = mvPos.xyz - cursor;\n float diffLen = length(diff);\n float distFactor = smoothstep(0.0, uCursorRadius, diffLen);\n mvPos.xyz += normalize(diff + vec3(0.0001)) * (1.0 - distFactor) * uCursorStrength;\n\n gl_Position = projectionMatrix * mvPos;\n\n float sz = aSize;\n if (isAmbient > 0.5) sz *= 0.35;\n gl_PointSize = sz * uDpr * (45.0 / -mvPos.z);\n gl_PointSize = max(gl_PointSize, 0.5);\n\n vPos = pos;\n\n // Alpha\n if (isAmbient > 0.5) {\n vAlpha = 0.22 + sin(uTime * 1.5 + aPhase * 6.0) * 0.12;\n } else if (isExhaust > 0.5) {\n float fade = smoothstep(5.2, 3.1, -pos.z);\n vAlpha = fade * 0.85;\n } else {\n // Rocket body: brighter at nose\n float zn = clamp((pos.z + 3.0) / 4.2, 0.0, 1.0);\n vAlpha = 0.65 + zn * 0.35;\n }\n }\n");function h(){let n=(0,a.useRef)(null),{geometry:t,uniforms:e}=(0,a.useMemo)(()=>{let n=new Float32Array(70800),t=new Float32Array(70800),e=0;!function(n,t,e,o){for(let n=0;n<3e3;n++){let o=Math.random(),a=.38*Math.sqrt(1-Math.pow(1-o,2)),r=.9>Math.random()?a*(.93+.07*Math.random()):a*Math.pow(Math.random(),.5),i=Math.random()*Math.PI*2;l(t,e,0+n,r*Math.cos(i),r*Math.sin(i),(1-o)*1.2)}}(0,n,t,0),function(n,t,e,o){for(let n=0;n<7e3;n++){let a=Math.random(),r=.38*(1+.06*Math.sin(a*Math.PI)),i=.88>Math.random()?r*(.92+.08*Math.random()):r*Math.pow(Math.random(),.5),s=Math.random()*Math.PI*2;l(t,e,o+n,i*Math.cos(s),i*Math.sin(s),-(2.4*a))}}(0,n,t,e+=3e3),function(n,t,e,o){for(let n=0;n<1500;n++){let a=Math.random(),r=.3+.12*Math.pow(a,.7),i=.85>Math.random()?r*(.92+.08*Math.random()):r*Math.pow(Math.random(),.5),s=Math.random()*Math.PI*2;l(t,e,o+n,i*Math.cos(s),i*Math.sin(s),-2.4-.6*a)}}(0,n,t,e+=7e3),function(n,t,e,o){let a=Math.floor(875);for(let n=0;n<4;n++){let r=n/4*Math.PI*2+Math.PI/4;for(let i=0;i<a;i++){let s=Math.random(),c=-1.4+-.6000000000000001*s,h=c+(-3+0*s-c)*Math.random(),u=1-.3*s,m=.38+.55*s*u,d=(Math.random()-.5)*.018;l(t,e,o+n*a+i,Math.cos(r)*m+Math.sin(r)*d,Math.sin(r)*m-Math.cos(r)*d,h)}}}(0,n,t,e+=1500),function(n,t,e,o){let a=Math.floor(200);for(let n=0;n<6;n++){let r=n/6*Math.PI*2;for(let i=0;i<a;i++){let s=o+n*a+i,c=-(2.4*Math.random()),h=.38;c>0&&(h=.38*Math.sqrt(1-Math.pow(1-c/1.2,2)));let u=(Math.random()-.5)*.025,m=h*(.98+.02*Math.random());l(t,e,s,m*Math.cos(r+u),m*Math.sin(r+u),c)}}}(0,n,t,e+=3500),function(n,t,e,o){for(let n=0;n<1200;n++){let a=Math.random()*Math.PI*2,r=.8>Math.random()?.4*(.97+.03*Math.random()):.4*(.85+.12*Math.random());l(t,e,o+n,r*Math.cos(a),r*Math.sin(a),-1+(Math.random()-.5)*.15)}}(0,n,t,e+=1200),function(n,t,e,o){for(let n=0;n<500;n++){let a=.06*Math.pow(Math.random(),.8),r=Math.random()*Math.PI*2;l(t,e,o+n,a*Math.cos(r),a*Math.sin(r),1.15+.08*Math.random())}}(0,n,t,e+=1200),function(n,t,e,o){let a=Math.floor(200);for(let n=0;n<3;n++){let r=-2.7-.15*n,i=.22+.07*n;for(let s=0;s<a;s++){let c=Math.random()*Math.PI*2,h=i*(.95+.05*Math.random());l(t,e,o+n*a+s,h*Math.cos(c),h*Math.sin(c),r+(Math.random()-.5)*.02)}}}(0,n,t,e+=500),function(n,t,e,o){let a=Math.floor(10),r=o;for(let n=0;n<5;n++){let i=-.2-.5*n;for(let n=0;n<12;n++){let s=n/12*Math.PI*2;for(let n=0;n<a&&r-o<600;n++){let n=.02*Math.pow(Math.random(),.8),o=s+(Math.random()-.5)*.03;l(t,e,r,.385*Math.cos(o)+n*Math.cos(o),.385*Math.sin(o)+n*Math.sin(o),i+(Math.random()-.5)*.015),r++}}}}(0,n,t,e+=600),function(n,t,e,o){for(let n=0;n<4e3;n++){let a=Math.pow(Math.random(),.45),r=(.05+.5*a)*Math.pow(Math.random(),.55),i=Math.random()*Math.PI*2,s=.06*a;l(t,e,o+n,r*Math.cos(i)+(Math.random()-.5)*s,r*Math.sin(i)+(Math.random()-.5)*s,-3-2.2*a)}}(0,n,t,e+=600),function(n,t,e,o){for(let n=0;n<500;n++){let a=Math.random();l(t,e,o+n,(Math.random()-.5)*(2+3.5*a),(Math.random()-.5)*(1.5+2.5*a),2-8*a)}}(0,n,t,e+=4e3);let o=new Float32Array(23600),a=new Float32Array(23600),r=new Float32Array(23600);for(let n=0;n<23600;n++)a[n]=Math.random()*Math.PI*2,r[n]=Math.random(),n<19100?o[n]=.2+.5*Math.pow(Math.random(),2.5):n<23100?o[n]=.15+.45*Math.pow(Math.random(),2):o[n]=.12+.3*Math.random();let i=new s.BufferGeometry;return i.setAttribute("position",new s.BufferAttribute(n,3)),i.setAttribute("aBasePos",new s.BufferAttribute(t,3)),i.setAttribute("aSize",new s.BufferAttribute(o,1)),i.setAttribute("aPhase",new s.BufferAttribute(a,1)),i.setAttribute("aSpeed",new s.BufferAttribute(r,1)),{geometry:i,uniforms:{uTime:{value:0},uDpr:{value:Math.min(window.devicePixelRatio,2)},uCursor:{value:new s.Vector3(999,999,0)},uCursorRadius:{value:1.5},uCursorStrength:{value:.3}}}},[]);return(0,r.C)(t=>{let{clock:e}=t;n.current&&(n.current.uniforms.uTime.value=e.getElapsedTime())}),(0,o.jsx)("points",{geometry:t,children:(0,o.jsx)("shaderMaterial",{ref:n,uniforms:e,vertexShader:c,fragmentShader:"\n uniform float uTime;
1\n varying float vAlpha;\n varying vec3 vPos;\n\n // ââ 3D Simplex noise for color mixing ââ\n vec4 permute(vec4 x) { return mod(((x*34.0)+1.0)*x, 289.0); }\n vec4 taylorInvSqrt(vec4 r) { return 1.79284291400159 - 0.85373472095314 * r; }\n\n float snoise(vec3 v) {\n const vec2 C = vec2(1.0/6.0, 1.0/3.0);\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n vec3 i = floor(v + dot(v, C.yyy));\n vec3 x0 = v - i + dot(i, C.xxx);\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min(g.xyz, l.zxy);\n vec3 i2 = max(g.xyz, l.zxy);\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy;\n vec3 x3 = x0 - D.yyy;\n i = mod(i, 289.0);\n vec4 p = permute(permute(permute(\n i.z + vec4(0.0, i1.z, i2.z, 1.0))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0))\n + i.x + vec4(0.0, i1.x, i2.x, 1.0));\n float n_ = 1.0/7.0;\n vec3 ns = n_ * D.wyz - D.xzx;\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z);\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_);\n vec4 x2_ = x_ * ns.x + ns.yyyy;\n vec4 y2_ = y_ * ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x2_) - abs(y2_);\n vec4 b0 = vec4(x2_.xy, y2_.xy);\n vec4 b1 = vec4(x2_.zw, y2_.zw);\n vec4 s0 = floor(b0)*2.0 + 1.0;\n vec4 s1 = floor(b1)*2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy;\n vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww;\n vec3 p0 = vec3(a0.xy, h.x);\n vec3 p1 = vec3(a0.zw, h.y);\n vec3 p2 = vec3(a1.xy, h.z);\n vec3 p3 = vec3(a1.zw, h.w);\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2,p2), dot(p3,p3)));\n p0 *= norm.x; p1 *= norm.y; p2 *= norm.z; p3 *= norm.w;\n vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\n m = m * m;\n return 42.0 * dot(m*m, vec4(dot(p0,x0), dot(p1,x1), dot(p2,x2), dot(p3,x3)));\n }\n\n void main() {\n float d = length(gl_PointCoord - vec2(0.5));\n if (d > 0.5) discard;\n\n float core = exp(-d * d * 28.0);\n float glow = exp(-d * d * 8.0);\n float a = mix(glow, core, 0.5);\n\n // ââ 3D noise-driven color mixing ââ\n float n1 = snoise(vPos * 2.0 + vec3(uTime * 0.12, uTime * 0.08, uTime * 0.06));\n float n2 = snoise(vPos * 3.5 + vec3(-uTime * 0.09, uTime * 0.1, -uTime * 0.05));\n float n3 = snoise(vPos * 1.2 + vec3(uTime * 0.04, -uTime * 0.06, uTime * 0.1));\n\n // zkAGI brand colors: sky cobalt, teal, deep cobalt, bright white\n vec3 cyan = vec3(0.298, 0.553, 1.0); // #4C8DFF bright cobalt\n vec3 lilac = vec3(0.0, 0.659, 0.420); // #00A86B institutional teal\n vec3 violet = vec3(0.0, 0.322, 1.0); // #0052FF cobalt signal\n vec3 brightWht = vec3(0.90, 0.94, 1.0); // cool white with blue tinge\n\n float t1 = n1 * 0.5 + 0.5;\n float t2 = n2 * 0.5 + 0.5;\n float t3 = n3 * 0.5 + 0.5;\n\n // Radial distance from axis\n float rDist = length(vPos.xy);\n // Normalized Z: -3 (tail) to +1.2 (nose) â 0..1\n float zn = clamp((vPos.z + 3.0) / 4.2, 0.0, 1.0);\n\n vec3 color;\n\n // Exhaust region â intense, energetic combustion trail\n if (vPos.z < -3.0) {\n vec3 hotCore = brightWht * 1.5 + cyan * 0.8; // white-hot near nozzle\n vec3 midFlame = cyan * 1.6; // bright cyan mid\n vec3 outerFlame = violet * 1.2; // violet at edges\n vec3 tailFade = lilac * 0.6; // fading lilac at end\n\n float exhaustT = clamp((-vPos.z - 3.0) / 2.2, 0.0, 1.0);\n float rExhaust = length(vPos.xy);\n\n // Core-to-edge gradient\n float coreFactor = 1.0 - smoothstep(0.0, 0.3, rExhaust);\n\n // Along-length gradient\n vec3 lengthColor;\n if (exhaustT < 0.2) {\n lengthColor = mix(hotCore, midFlame, exhaustT / 0.2);\n } else if (exhaustT < 0.6) {\n lengthColor = mix(midFlame, outerFlame, (exhaustT - 0.2) / 0.4);\n } else {\n lengthColor = mix(outerFlame, tailFade, (exhaustT - 0.6) / 0.4);\n }\n\n color = mix(lengthColor, hotCore, coreFactor * 0.6);\n\n // Flickering energy\n float flicker = sin(uTime * 8.0 + vPos.z * 12.0 + rExhaust * 20.0) * 0.15 + 1.0;\n float pulse = sin(uTime * 3.0 + vPos.z * 5.0) * 0.1 + 1.0;\n color *= flicker * pulse;\n }\n // Rocket body\n else {\n // Edge particles: purple/violet dominant\n // Core particles: cyan-blue + white dominant\n float edgeFactor = smoothstep(0.2, 0.4, rDist);\n\n vec3 edgeColor = mix(violet, lilac, t1);\n vec3 coreColor = mix(cyan, brightWht, t3 * 0.5 + zn * 0.3);\n\n color = mix(coreColor, edgeColor, edgeFactor * 0.6 + t1 * 0.25);\n\n // Cyan emphasis on contour edges\n float contourCyan = smoothstep(0.32, 0.42, rDist);\n color = mix(color, cyan * 1.2, contourCyan * t2 * 0.4);\n\n // Nose tip cap: intense bright white-cyan glow\n if (vPos.z > 1.1) {\n color = brightWht * 1.6 + cyan * 0.5;\n }\n // Nose: brighter white-cyan\n else {\n color += brightWht * smoothstep(0.65, 1.0, zn) * 0.35;\n }\n\n // Combustion chamber ring: bright contrasting band at z â -1.0\n float combustDist = abs(vPos.z - (-1.0));\n float combustGlow = (1.0 - smoothstep(0.0, 0.1, combustDist)) * smoothstep(0.34, 0.39, rDist);\n // Pulsing bright cyan with white-hot core\n vec3 combustColor = mix(cyan * 2.0, brightWht * 1.8, sin(uTime * 3.0) * 0.2 + 0.5);\n color = mix(color, combustColor, combustGlow * 0.85);\n\n // Engine rings: bright violet/lilac at nozzle\n if (vPos.z < -2.6 && vPos.z > -3.1 && rDist > 0.18 && rDist < 0.38) {\n float ringGlow = smoothstep(0.38, 0.22, rDist) * smoothstep(-3.1, -2.7, vPos.z);\n color = mix(color, lilac * 1.5, ringGlow * 0.5);\n }\n\n // Center stripe: bright cyan core\n float centerStripe = 1.0 - smoothstep(0.0, 0.15, rDist);\n color = mix(color, cyan * 1.3, centerStripe * 0.4);\n\n // Fin regions: deeper purple\n if (rDist > 0.4 && vPos.z < -1.4) {\n color = mix(color, violet * 1.1, 0.35);\n }\n }\n\n // Twinkle\n float twinkle = snoise(vPos * 6.0 + vec3(uTime * 0.7)) * 0.12 + 1.0;\n color *= twinkle * 1.2;\n\n gl_FragColor = vec4(color, a * vAlpha);\n }\n",transparent:!0,depthWrite:!1,blending:s.AdditiveBlending})})}function u(){let n=(0,a.useRef)(null),t=(0,a.useRef)({x:0,y:0,ndcX:999,ndcY:999}),e=(0,a.useRef)(0),{camera:i}=(0,r.A)();return(0,a.useEffect)(()=>{let n=n=>{t.current.x=(n.clientX/window.innerWidth-.5)*.08,t.current.y=(n.clientY/window.innerHeight-.5)*.04,t.current.ndcX=n.clientX/window.innerWidth*2-1,t.current.ndcY=-(n.clientY/window.innerHeight*2)+1};return window.addEventListener("mousemove",n),()=>window.removeEventListener("mousemove",n)},[]),(0,r.C)(o=>{let{clock:a}=o;0===e.current&&(e.current=a.getElapsedTime());let r=a.getElapsedTime()-e.current;if(i.position.x+=(t.current.x-i.position.x)*.012,i.position.y+=(-t.current.y-i.position.y)*.012,i.lookAt(0,0,-1),n.current){let e=.25*Math.sin(.1*r);for(let o of(n.current.position.x=.1+.751805729140895*e,n.current.position.y=-.15+.6593846719714731*e,n.current.children))if(o instanceof s.Points){var l;let n=o.material;if(null===(l=n.uniforms)||void 0===l?void 0:l.uCursor){let e=i.fov,o=i.aspect,a=5*Math.tan(e*Math.PI/180/2),r=a*o;n.uniforms.uCursor.value.set(t.current.ndcX*r,t.current.ndcY*a,0
1)}}}}),(0,o.jsx)("group",{ref:n,rotation:[-.25,.3,-.72],position:[.1,-.15,0],children:(0,o.jsx)(h,{})})}function m(n){let{className:t=""}=n;return(0,o.jsx)("div",{className:t,"aria-hidden":"true",children:(0,o.jsx)(i.Xz,{camera:{position:[0,0,5],fov:40},dpr:[1,2],gl:{antialias:!0,alpha:!0,powerPreference:"high-performance",toneMapping:s.ACESFilmicToneMapping,toneMappingExposure:1.4},style:{background:"transparent"},children:(0,o.jsx)(u,{})})})}}}]);
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.