1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87650,t=>{"use strict";let e,i,s;var r=t.i(87433),n=t.i(44440),a=t.i(67881),h=t.i(36147);function o(t){let e=t[0],i=t[1],s=t[2];return Math.sqrt(e*e+i*i+s*s)}function l(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function u(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t}function c(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t}function d(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t}function f(t){let e=t[0],i=t[1],s=t[2];return e*e+i*i+s*s}function p(t,e){let i=e[0],s=e[1],r=e[2],n=i*i+s*s+r*r;return n>0&&(n=1/Math.sqrt(n)),t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}function m(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function g(t,e,i){let s=e[0],r=e[1],n=e[2],a=i[0],h=i[1],o=i[2];return t[0]=r*o-n*h,t[1]=n*a-s*o,t[2]=s*h-r*a,t}let x=(e=[0,0,0],i=[0,0,0],function(t,s){l(e,t),l(i,s),p(e,e),p(i,i);let r=m(e,i);return r>1?0:r<-1?Math.PI:Math.acos(r)});class y extends Array{constructor(t=0,e=t,i=t){return super(t,e,i),this}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this[0]=t}set y(t){this[1]=t}set z(t){this[2]=t}set(t,e=t,i=t){return t.length?this.copy(t):(this[0]=t,this[1]=e,this[2]=i,this)}copy(t){return l(this,t),this}add(t,e){return e?u(this,t,e):u(this,this,t),this}sub(t,e){return e?c(this,t,e):c(this,this,t),this}multiply(t){if(t.length)this[0]=this[0]*t[0],this[1]=this[1]*t[1],this[2]=this[2]*t[2];else d(this,this,t);return this}divide(t){if(t.length)this[0]=this[0]/t[0],this[1]=this[1]/t[1],this[2]=this[2]/t[2];else d(this,this,1/t);return this}inverse(t=this){return this[0]=1/t[0],this[1]=1/t[1],this[2]=1/t[2],this}len(){return o(this)}distance(t){let e,i,s;if(!t)return o(this);return e=t[0]-this[0],Math.sqrt(e*e+(i=t[1]-this[1])*i+(s=t[2]-this[2])*s)}squaredLen(){return f(this)}squaredDistance(t){let e,i,s;if(!t)return f(this);return e=t[0]-this[0],e*e+(i=t[1]-this[1])*i+(s=t[2]-this[2])*s}negate(t=this){return this[0]=-t[0],this[1]=-t[1],this[2]=-t[2],this}cross(t,e){return e?g(this,t,e):g(this,this,t),this}scale(t){return d(this,this,t),this}normalize(){return p(this,this),this}dot(t){return m(this,t)}equals(t){return this[0]===t[0]&&this[1]===t[1]&&this[2]===t[2]}applyMatrix3(t){let e,i,s;return e=this[0],i=this[1],s=this[2],this[0]=e*t[0]+i*t[3]+s*t[6],this[1]=e*t[1]+i*t[4]+s*t[7],this[2]=e*t[2]+i*t[5]+s*t[8],this}applyMatrix4(t){let e,i,s,r;return e=this[0],i=this[1],s=this[2],r=(r=t[3]*e+t[7]*i+t[11]*s+t[15])||1,this[0]=(t[0]*e+t[4]*i+t[8]*s+t[12])/r,this[1]=(t[1]*e+t[5]*i+t[9]*s+t[13])/r,this[2]=(t[2]*e+t[6]*i+t[10]*s+t[14])/r,this}scaleRotateMatrix4(t){let e,i,s,r;return e=this[0],i=this[1],s=this[2],r=(r=t[3]*e+t[7]*i+t[11]*s+t[15])||1,this[0]=(t[0]*e+t[4]*i+t[8]*s)/r,this[1]=(t[1]*e+t[5]*i+t[9]*s)/r,this[2]=(t[2]*e+t[6]*i+t[10]*s)/r,this}applyQuaternion(t){let e,i,s,r,n,a,h,o,l,u,c,d,f,p;return e=this[0],i=this[1],s=this[2],r=t[0],n=t[1],a=t[2],h=t[3],o=n*s-a*i,l=a*e-r*s,u=r*i-n*e,c=n*u-a*l,d=a*o-r*u,f=r*l-n*o,o*=p=2*h,l*=p,u*=p,c*=2,d*=2,f*=2,this[0]=e+o+c,this[1]=i+l+d,this[2]=s+u+f,this}angle(t){return x(this,t)}lerp(t,e){let i,s,r;return i=this[0],s=this[1],r=this[2],this[0]=i+e*(t[0]-i),this[1]=s+e*(t[1]-s),this[2]=r+e*(t[2]-r),this}smoothLerp(t,e,i){let s,r,n,a;return s=Math.exp(-e*i),r=this[0],n=this[1],a=this[2],this[0]=t[0]+(r-t[0])*s,this[1]=t[1]+(n-t[1])*s,this[2]=t[2]+(a-t[2])*s,this}clone(){return new y(this[0],this[1],this[2])}fromArray(t,e=0){return this[0]=t[e],this[1]=t[e+1],this[2]=t[e+2],this}toArray(t=[],e=0){return t[e]=this[0],t[e+1]=this[1],t[e+2]=this[2],t}transformDirection(t){let e=this[0],i=this[1],s=this[2];return this[0]=t[0]*e+t[4]*i+t[8]*s,this[1]=t[1]*e+t[5]*i+t[9]*s,this[2]=t[2]*e+t[6]*i+t[10]*s,this.normalize()}}let v=new y,b=1;class w{constructor({canvas:t=document.createElement("canvas"),width:e=300,height:i=150,dpr:s=1,alpha:r=!1,depth:n=!0,stencil:a=!1,antialias:h=!1,premultipliedAlpha:o=!1,preserveDrawingBuffer:l=!1,powerPreference:u="default",autoClear:c=!0,webgl:d=2}={}){const f={alpha:r,depth:n,stencil:a,antialias:h,premultipliedAlpha:o,preserveDrawingBuffer:l,powerPreference:u};this.dpr=s,this.alpha=r,this.color=!0,this.depth=n,this.stencil=a,this.premultipliedAlpha=o,this.autoClear=c,this.id=b++,2===d&&(this.gl=t.getContext("webgl2",f)),this.isWebgl2=!!this.gl,this.gl||(this.gl=t.getContext("webgl",f)),this.gl||console.error("unable to create webgl context"),this.gl.renderer=this,this.setSize(e,i),this.state={},this.state.blendFunc={src:this.gl.ONE,dst:this.gl.ZERO},this.state.blendEquation={modeRGB:this.gl.FUNC_ADD},this.state.cullFace=!1,this.state.frontFace=this.gl.CCW,this.state.depthMask=!0,this.state.depthFunc=this.gl.LEQUAL,this.state.premultiplyAlpha=!1,this.state.flipY=!1,this.state.unpackAlignment=4,this.state.framebuffer=null,this.state.viewport={x:0,y:0,width:null,height:null},this.state.textureUnits=[],this.state.activeTextureUnit=0,this.state.boundBuffer=null,this.state.uniformLocations=new Map,this.state.currentProgram=null,this.extensions={},this.isWebgl2?(this.getExtension("EXT_color_buffer_float"),this.getExtension("OES_texture_float_linear")):(this.getExtension("OES_texture_float"),this.getExtension("OES_texture_float_linear"),this.getExtension("OES_texture_half_float"),this.getExtension("OES_texture_half_float_linear"),this.getExtension("OES_element_index_uint"),this.getExtension("OES_standard_derivatives"),this.getExtension("EXT_sRGB"),this.getExtension("WEBGL_depth_texture"),this.getExtension("WEBGL_draw_buffers")),this.getExtension("WEBGL_compressed_texture_astc"),this.getExtension("EXT_texture_compression_bptc"),this.getExtension("WEBGL_compressed_texture_s3tc"),this.getExtension("WEBGL_compressed_texture_etc1"),this.getExtension("WEBGL_compressed_texture_pvrtc"),this.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),this.vertexAttribDivisor=this.getExtension("ANGLE_instanced_arrays","vertexAttribDivisor","vertexAttribDivisorANGLE"),this.drawArraysInstanced=this.getExtension("ANGLE_instanced_arrays","drawArraysInstanced","drawArraysInstancedANGLE"),this.drawElementsInstanced=this.getExtension("ANGLE_instanced_arrays","drawElementsInstanced","drawElementsInstancedANGLE"),this.createVertexArray=this.getExtension("OES_vertex_array_object","createVertexArray","createVertexArrayOES"),this.bindVertexArray=this.getExtension("OES_vertex_array_object","bindVertexArray","bindVertexArrayOES"),this.deleteVertexArray=this.getExtension("OES_vertex_array_object","deleteVertexArray","deleteVertexArrayOES"),this.drawBuffers=this.getExtension("WEBGL_draw_buffers","drawBuffers","drawBuffersWEBGL"),this.parameters={},this.parameters.maxTextureUnits=this.gl.getParameter(this.gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),this.parameters.maxAnisotropy=this.getExtension("EXT_texture_filter_anisotropic")?this.gl.getParameter(this.getExtension("EXT_texture_filter_anisotropic").MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}setSize(t,e){this.width=t,this.height=e,this.gl.canvas.width=t*this.dpr,this.gl.canvas.height=e*this.dpr,this.gl.canvas.style&&Object.assign(this.gl.canvas.style,{width:t+"px",height:e+"px"})}setViewport(t,e,i=0,s=0){(this.state.viewport.width!==t||this.state.viewport.height!==e)&&(this.state.viewport.width=t,this.state.viewport.height=e,this.state.viewport.x=i,this.state.viewport.y=s,this.gl.viewport(i,s,t,e))}setScissor(t,e,i=0,s=0){this.gl.scissor(i,s,t,e)}enable(t){!0!==this.state[t]&&(this.gl.enable(t),this.state[t]=!0)}disable(t){!1!==this.state[t]&&(this.gl.disable(t),this.state[t]=!1)}setBlendFunc(t,e,i,s){(this.state.blendFunc.src!==t||this.state.blendFunc.dst!==e||this.state.blendFunc.srcAlpha!==i||this.state.blendFunc.dstAlpha!==s)&&(this.state.blendFunc.src=t,this.state.blendFunc.dst=e,this.state.blendFunc.srcAlpha=i,this.state.blendFunc.dstAlpha=s,void 0!==i?this.gl.blendFuncSeparate(t,e,i,s):this.gl.blendFunc(t,e))}setBlendEquation(t,e){t=t||this.gl.FUNC_ADD,(this.state.blendEquation.modeRGB!==t||this.state.blendEquation.modeAlpha!==e)&&(this.state.blendEquation.modeRGB=t,this.state.blendEquation.modeAlpha=e,void 0!==e?this.gl.blendEquationSeparate(t,e):this.gl.blendEquation(t))}setCullFace(t){this.state.cullFace!==t&&(this.state.cullFace=t,this.gl.cullFace(t))}setFrontFace(t){this.state.frontFace!==t&&(this.state.frontFace=t,this.gl.frontFace(t))}setDepthMask(t){this.state.depthMask!==t&&(this.state.depthMask=t,this.gl.depthMask(t))}setDepthFunc(t){this.state.depthFunc!==t&&(this.state.depthFunc=t,this.gl.depthFunc(t))}setStencilMask(t){this.state.stencilMask!==t&&(this.state.stencilMask=t,this.gl.stencilMask(t))}setStencilFunc(t,e,i){(this.state.stencilFunc!==t||this.state.stencilRef!==e||this.state.stencilFuncMask!==i)&&(this.state.stencilFunc=t||this.gl.ALWAYS,this.state.stencilRef=e||0,this.state.stencilFuncMask=i||0,this.gl.stencilFunc(t||this.gl.ALWAYS,e||0,i||0))}setStencilOp(t,e,i){(this.state.stencilFail!==t||this.state.stencilDepthFail!==e||this.state.stencilDepthPass!==i)&&(this.state.stencilFail=t,this.state.stencilDepthFail=e,this.state.stencilDepthPass=i,this.gl.stencilOp(t,e,i))}activeTexture(t){this.state.activeTextureUnit!==t&&(this.state.activeTextureUnit=t,this.gl.activeTexture(this.gl.TEXTURE0+t))}bindFramebuffer({target:t=this.gl.FRAMEBUFFER,buffer:e=null}={}){this.state.framebuffer!==e&&(this.state.framebuffer=e,this.gl.bindFramebuffer(t,e))}getExtension(t,e,i){return e&&this.gl[e]?this.gl[e].bind(this.gl):(this.extensions[t]||(this.extensions[t]=this.gl.getExtension(t)),e)?this.extensions[t]?this.extensions[t][i].bind(this.extensions[t]):null:this.extensions[t]}sortOpaque(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program.id!==e.program.id?t.program.id-e.program.id:t.zDepth!==e.zDepth?t.zDepth-e.zDepth:e.id-t.id}
1sortTransparent(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.zDepth!==e.zDepth?e.zDepth-t.zDepth:e.id-t.id}sortUI(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program.id!==e.program.id?t.program.id-e.program.id:e.id-t.id}getRenderList({scene:t,camera:e,frustumCull:i,sort:s}){let r=[];if(e&&i&&e.updateFrustum(),t.traverse(t=>!t.visible||(t.draw?void((!i||!t.frustumCulled||!e||e.frustumIntersectsMesh(t))&&r.push(t)):void 0)),s){let t=[],i=[],s=[];r.forEach(r=>{r.program.transparent?r.program.depthTest?i.push(r):s.push(r):t.push(r),r.zDepth=0,0===r.renderOrder&&r.program.depthTest&&e&&(r.worldMatrix.getTranslation(v),v.applyMatrix4(e.projectionViewMatrix),r.zDepth=v.z)}),t.sort(this.sortOpaque),i.sort(this.sortTransparent),s.sort(this.sortUI),r=t.concat(i,s)}return r}render({scene:t,camera:e,target:i=null,update:s=!0,sort:r=!0,frustumCull:n=!0,clear:a}){null===i?(this.bindFramebuffer(),this.setViewport(this.width*this.dpr,this.height*this.dpr)):(this.bindFramebuffer(i),this.setViewport(i.width,i.height)),(a||this.autoClear&&!1!==a)&&(this.depth&&(!i||i.depth)&&(this.enable(this.gl.DEPTH_TEST),this.setDepthMask(!0)),(this.stencil||!i||i.stencil)&&(this.enable(this.gl.STENCIL_TEST),this.setStencilMask(255)),this.gl.clear((this.color?this.gl.COLOR_BUFFER_BIT:0)|(this.depth?this.gl.DEPTH_BUFFER_BIT:0)|(this.stencil?this.gl.STENCIL_BUFFER_BIT:0))),s&&t.updateMatrixWorld(),e&&e.updateMatrixWorld(),this.getRenderList({scene:t,camera:e,frustumCull:n,sort:r}).forEach(t=>{t.draw({camera:e})})}}let E=1,M={};class A{constructor(t,{vertex:e,fragment:i,uniforms:s={},transparent:r=!1,cullFace:n=t.BACK,frontFace:a=t.CCW,depthTest:h=!0,depthWrite:o=!0,depthFunc:l=t.LEQUAL}={}){t.canvas||console.error("gl not passed as first argument to Program"),this.gl=t,this.uniforms=s,this.id=E++,e||console.warn("vertex shader not supplied"),i||console.warn("fragment shader not supplied"),this.transparent=r,this.cullFace=n,this.frontFace=a,this.depthTest=h,this.depthWrite=o,this.depthFunc=l,this.blendFunc={},this.blendEquation={},this.stencilFunc={},this.stencilOp={},this.transparent&&!this.blendFunc.src&&(this.gl.renderer.premultipliedAlpha?this.setBlendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA):this.setBlendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA)),this.vertexShader=t.createShader(t.VERTEX_SHADER),this.fragmentShader=t.createShader(t.FRAGMENT_SHADER),this.program=t.createProgram(),t.attachShader(this.program,this.vertexShader),t.attachShader(this.program,this.fragmentShader),this.setShaders({vertex:e,fragment:i})}setShaders({vertex:t,fragment:e}){if(t&&(this.gl.shaderSource(this.vertexShader,t),this.gl.compileShader(this.vertexShader),""!==this.gl.getShaderInfoLog(this.vertexShader)&&console.warn(`${this.gl.getShaderInfoLog(this.vertexShader)} 2Vertex Shader 3${_(t)}`)),e&&(this.gl.shaderSource(this.fragmentShader,e),this.gl.compileShader(this.fragmentShader),""!==this.gl.getShaderInfoLog(this.fragmentShader)&&console.warn(`${this.gl.getShaderInfoLog(this.fragmentShader)} 4Fragment Shader 5${_(e)}`)),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS))return console.warn(this.gl.getProgramInfoLog(this.program));this.uniformLocations=new Map;let i=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_UNIFORMS);for(let t=0;t<i;t++){let e=this.gl.getActiveUniform(this.program,t);this.uniformLocations.set(e,this.gl.getUniformLocation(this.program,e.name));let i=e.name.match(/(\w+)/g);e.uniformName=i[0],e.nameComponents=i.slice(1)}this.attributeLocations=new Map;let s=[],r=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_ATTRIBUTES);for(let t=0;t<r;t++){let e=this.gl.getActiveAttrib(this.program,t),i=this.gl.getAttribLocation(this.program,e.name);-1!==i&&(s[i]=e.name,this.attributeLocations.set(e,i))}this.attributeOrder=s.join("")}setBlendFunc(t,e,i,s){this.blendFunc.src=t,this.blendFunc.dst=e,this.blendFunc.srcAlpha=i,this.blendFunc.dstAlpha=s,t&&(this.transparent=!0)}setBlendEquation(t,e){this.blendEquation.modeRGB=t,this.blendEquation.modeAlpha=e}setStencilFunc(t,e,i){this.stencilRef=e,this.stencilFunc.func=t,this.stencilFunc.ref=e,this.stencilFunc.mask=i}setStencilOp(t,e,i){this.stencilOp.stencilFail=t,this.stencilOp.depthFail=e,this.stencilOp.depthPass=i}applyState(){this.depthTest?this.gl.renderer.enable(this.gl.DEPTH_TEST):this.gl.renderer.disable(this.gl.DEPTH_TEST),this.cullFace?this.gl.renderer.enable(this.gl.CULL_FACE):this.gl.renderer.disable(this.gl.CULL_FACE),this.blendFunc.src?this.gl.renderer.enable(this.gl.BLEND):this.gl.renderer.disable(this.gl.BLEND),this.cullFace&&this.gl.renderer.setCullFace(this.cullFace),this.gl.renderer.setFrontFace(this.frontFace),this.gl.renderer.setDepthMask(this.depthWrite),this.gl.renderer.setDepthFunc(this.depthFunc),this.blendFunc.src&&this.gl.renderer.setBlendFunc(this.blendFunc.src,this.blendFunc.dst,this.blendFunc.srcAlpha,this.blendFunc.dstAlpha),this.gl.renderer.setBlendEquation(this.blendEquation.modeRGB,this.blendEquation.modeAlpha),this.stencilFunc.func||this.stencilOp.stencilFail?this.gl.renderer.enable(this.gl.STENCIL_TEST):this.gl.renderer.disable(this.gl.STENCIL_TEST),this.gl.renderer.setStencilFunc(this.stencilFunc.func,this.stencilFunc.ref,this.stencilFunc.mask),this.gl.renderer.setStencilOp(this.stencilOp.stencilFail,this.stencilOp.depthFail,this.stencilOp.depthPass)}use({flipFaces:t=!1}={}){let e=-1;this.gl.renderer.state.currentProgram!==this.id&&(this.gl.useProgram(this.program),this.gl.renderer.state.currentProgram=this.id
5),this.uniformLocations.forEach((t,i)=>{let s=this.uniforms[i.uniformName];for(let t of i.nameComponents){if(!s)break;if(t in s)s=s[t];else if(Array.isArray(s.value))break;else{s=void 0;break}}if(!s)return F(`Active uniform ${i.name} has not been supplied`);if(s&&void 0===s.value)return F(`${i.name} uniform is missing a value parameter`);if(s.value.texture)return e+=1,s.value.update(e),S(this.gl,i.type,t,e);if(s.value.length&&s.value[0].texture){let r=[];return s.value.forEach(t=>{e+=1,t.update(e),r.push(e)}),S(this.gl,i.type,t,r)}S(this.gl,i.type,t,s.value)}),this.applyState(),t&&this.gl.renderer.setFrontFace(this.frontFace===this.gl.CCW?this.gl.CW:this.gl.CCW)}remove(){this.gl.deleteProgram(this.program)}}function S(t,e,i,s){s=s.length?function(t){let e=t.length,i=t[0].length;if(void 0===i)return t;let s=e*i,r=M[s];r||(M[s]=r=new Float32Array(s));for(let s=0;s<e;s++)r.set(t[s],s*i);return r}(s):s;let r=t.renderer.state.uniformLocations.get(i);if(s.length)if(void 0===r||r.length!==s.length)t.renderer.state.uniformLocations.set(i,s.slice(0));else{if(function(t,e){if(t.length!==e.length)return!1;for(let i=0,s=t.length;i<s;i++)if(t[i]!==e[i])return!1;return!0}(r,s))return;r.set?r.set(s):function(t,e){for(let i=0,s=t.length;i<s;i++)t[i]=e[i]}(r,s),t.renderer.state.uniformLocations.set(i,r)}else{if(r===s)return;t.renderer.state.uniformLocations.set(i,s)}switch(e){case 5126:return s.length?t.uniform1fv(i,s):t.uniform1f(i,s);case 35664:return t.uniform2fv(i,s);case 35665:return t.uniform3fv(i,s);case 35666:return t.uniform4fv(i,s);case 35670:case 5124:case 35678:case 36306:case 35680:case 36289:return s.length?t.uniform1iv(i,s):t.uniform1i(i,s);case 35671:case 35667:return t.uniform2iv(i,s);case 35672:case 35668:return t.uniform3iv(i,s);case 35673:case 35669:return t.uniform4iv(i,s);case 35674:return t.uniformMatrix2fv(i,!1,s);case 35675:return t.uniformMatrix3fv(i,!1,s);case 35676:return t.uniformMatrix4fv(i,!1,s)}}function _(t){let e=t.split("\n");for(let t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join("\n")}let C=0;function F(t){!(C>100)&&(console.warn(t),++C>100&&console.warn("More than 100 program warnings - stopping logs."))}let R=new y,j=1,O=1,N=!1;class T{constructor(t,e={}){for(let i in t.canvas||console.error("gl not passed as first argument to Geometry"),this.gl=t,this.attributes=e,this.id=j++,this.VAOs={},this.drawRange={start:0,count:0},this.instancedCount=0,this.gl.renderer.bindVertexArray(null),this.gl.renderer.currentGeometry=null,this.glState=this.gl.renderer.state,e)this.addAttribute(i,e[i])}addAttribute(t,e){if(this.attributes[t]=e,e.id=O++,e.size=e.size||1,e.type=e.type||(e.data.constructor===Float32Array?this.gl.FLOAT:e.data.constructor===Uint16Array?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT),e.target="index"===t?this.gl.ELEMENT_ARRAY_BUFFER:this.gl.ARRAY_BUFFER,e.normalized=e.normalized||!1,e.stride=e.stride||0,e.offset=e.offset||0,e.count=e.count||(e.stride?e.data.byteLength/e.stride:e.data.length/e.size),e.divisor=e.instanced||0,e.needsUpdate=!1,e.usage=e.usage||this.gl.STATIC_DRAW,e.buffer||this.updateAttribute(e),e.divisor){if(this.isInstanced=!0,this.instancedCount&&this.instancedCount!==e.count*e.divisor)return console.warn("geometry has multiple instanced buffers of different length"),this.instancedCount=Math.min(this.instancedCount,e.count*e.divisor);this.instancedCount=e.count*e.divisor}else"index"===t?this.drawRange.count=e.count:this.attributes.index||(this.drawRange.count=Math.max(this.drawRange.count,e.count))}updateAttribute(t){let e=!t.buffer;e&&(t.buffer=this.gl.createBuffer()),this.glState.boundBuffer!==t.buffer&&(this.gl.bindBuffer(t.target,t.buffer),this.glState.boundBuffer=t.buffer),e?this.gl.bufferData(t.target,t.data,t.usage):this.gl.bufferSubData(t.target,0,t.data),t.needsUpdate=!1}setIndex(t){this.addAttribute("index",t)}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}setInstancedCount(t){this.instancedCount=t}createVAO(t){this.VAOs[t.attributeOrder]=this.gl.renderer.createVertexArray(),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.bindAttributes(t)}bindAttributes(t){t.attributeLocations.forEach((t,{name:e,type:i})=>{if(!this.attributes[e])return void console.warn(`active attribute ${e} not being supplied`);let s=this.attributes[e];this.gl.bindBuffer(s.target,s.buffer),this.glState.boundBuffer=s.buffer;let r=1;35674===i&&(r=2),35675===i&&(r=3),35676===i&&(r=4);let n=s.size/r,a=1===r?0:r*r*4,h=1===r?0:4*r;for(let e=0;e<r;e++)this.gl.vertexAttribPointer(t+e,n,s.type,s.normalized,s.stride+a,s.offset+e*h),this.gl.enableVertexAttribArray(t
5+e),this.gl.renderer.vertexAttribDivisor(t+e,s.divisor)}),this.attributes.index&&this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.attributes.index.buffer)}draw({program:t,mode:e=this.gl.TRIANGLES}){this.gl.renderer.currentGeometry!==`${this.id}_${t.attributeOrder}`&&(this.VAOs[t.attributeOrder]||this.createVAO(t),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.gl.renderer.currentGeometry=`${this.id}_${t.attributeOrder}`),t.attributeLocations.forEach((t,{name:e})=>{let i=this.attributes[e];i.needsUpdate&&this.updateAttribute(i)});let i=2;this.attributes.index?.type===this.gl.UNSIGNED_INT&&(i=4),this.isInstanced?this.attributes.index?this.gl.renderer.drawElementsInstanced(e,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*i,this.instancedCount):this.gl.renderer.drawArraysInstanced(e,this.drawRange.start,this.drawRange.count,this.instancedCount):this.attributes.index?this.gl.drawElements(e,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*i):this.gl.drawArrays(e,this.drawRange.start,this.drawRange.count)}getPosition(){let t=this.attributes.position;return t.data?t:N?void 0:(console.warn("No position buffer data found to compute bounds"),N=!0)}computeBoundingBox(t){t||(t=this.getPosition());let e=t.data,i=t.size;this.bounds||(this.bounds={min:new y,max:new y,center:new y,scale:new y,radius:1/0});let s=this.bounds.min,r=this.bounds.max,n=this.bounds.center,a=this.bounds.scale;s.set(Infinity),r.set(-1/0);for(let t=0,n=e.length;t<n;t+=i){let i=e[t],n=e[t+1],a=e[t+2];s.x=Math.min(i,s.x),s.y=Math.min(n,s.y),s.z=Math.min(a,s.z),r.x=Math.max(i,r.x),r.y=Math.max(n,r.y),r.z=Math.max(a,r.z)}a.sub(r,s),n.add(s,r).divide(2)}computeBoundingSphere(t){t||(t=this.getPosition());let e=t.data,i=t.size;this.bounds||this.computeBoundingBox(t);let s=0;for(let t=0,r=e.length;t<r;t+=i)R.fromArray(e,t),s=Math.max(s,this.bounds.center.squaredDistance(R));this.bounds.radius=Math.sqrt(s)}remove(){for(let t in this.VAOs)this.gl.renderer.deleteVertexArray(this.VAOs[t]),delete this.VAOs[t];for(let t in this.attributes)this.gl.deleteBuffer(this.attributes[t].buffer),delete this.attributes[t]}}class V extends T{constructor(t,{attributes:e={}}={}){Object.assign(e,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),super(t,e)}}function P(t,e,i){let s=e[0],r=e[1],n=e[2],a=e[3],h=i[0],o=i[1],l=i[2],u=i[3];return t[0]=s*u+a*h+r*l-n*o,t[1]=r*u+a*o+n*h-s*l,t[2]=n*u+a*l+s*o-r*h,t[3]=a*u-s*h-r*o-n*l,t}let I=function(t,e){let i=e[0],s=e[1],r=e[2],n=e[3],a=i*i+s*s+r*r+n*n;return a>0&&(a=1/Math.sqrt(a)),t[0]=i*a,t[1]=s*a,t[2]=r*a,t[3]=n*a,t};class D extends Array{constructor(t=0,e=0,i=0,s=1){super(t,e,i,s),this.onChange=()=>{},this._target=this;const r=["0","1","2","3"];return new Proxy(this,{set(t,e){let i=Reflect.set(...arguments);return i&&r.includes(e)&&t.onChange(),i}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}get w(){return this[3]}set x(t){this._target[0]=t,this.onChange()}set y(t){this._target[1]=t,this.onChange()}set z(t){this._target[2]=t,this.onChange()}set w(t){this._target[3]=t,this.onChange()}identity(){var t;return(t=this._target)[0]=0,t[1]=0,t[2]=0,t[3]=1,this.onChange(),this}set(t,e,i,s){var r;return t.length?this.copy(t):(r=this._target,r[0]=t,r[1]=e,r[2]=i,r[3]=s,this.onChange(),this)}rotateX(t){var e,i,s;let r,n,a,h,o,l;return e=this._target,i=this._target,s=.5*t,r=i[0],n=i[1],a=i[2],h=i[3],o=Math.sin(s),l=Math.cos(s),e[0]=r*l+h*o,e[1]=n*l+a*o,e[2]=a*l-n*o,e[3]=h*l-r*o,this.onChange(),this}rotateY(t){var e,i,s;let r,n,a,h,o,l;return e=this._target,i=this._target,s=.5*t,r=i[0],n=i[1],a=i[2],h=i[3],o=Math.sin(s),l=Math.cos(s),e[0]=r*l-a*o,e[1]=n*l+h*o,e[2]=a*l+r*o,e[3]=h*l-n*o,this.onChange(),this}rotateZ(t){var e,i,s;let r,n,a,h,o,l;return e=this._target,i=this._target,s=.5*t,r=i[0],n=i[1],a=i[2],h=i[3],o=Math.sin(s),l=Math.cos(s),e[0]=r*l+n*o,e[1]=n*l-r*o,e[2]=a*l+h*o,e[3]=h*l-a*o,this.onChange(),this}inverse(t=this._target){var e;let i,s,r,n,a,h;return e=this._target,i=t[0],s=t[1],h=(a=i*i+s*s+(r=t[2])*r+(n=t[3])*n)?1/a:0,e[0]=-i*h,e[1]=-s*h,e[2]=-r*h,e[3]=n*h,this.onChange(),this}conjugate(t=this._target){var e;return e=this._target,e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],this.onChange(),this}copy(t){var e;return e=this._target,e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],this.onChange(),this}normalize(t=this._target){return I(this._target,t),this.onChange(),this}multiply(t,e){return e?P(this._target,t,e):P(this._target,this._target,t),this.onChange(),this}dot(t){var e;return e=this._target,e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}fromMatrix3(t){return!function(t,e){let i,s=e[0]+e[4]+e[8];if(s>0)i=Math.sqrt(s+1),t[3]=.5*i,i=.5/i,t[0]=(e[5]-e[7])*i,t[1]=(e[6]-e[2])*i,t[2]=(e[1]-e[3])*i;else{let s=0;e[4]>e[0]&&(s=1),e[8]>e[3*s+s]&&(s=2);let r=(s+1)%3,n=(s+2)%3;i=Math.sqrt(e[3*s+s]-e[3*r+r]-e[3*n+n]+1),t[s]=.5*i,i=.5/i,t[3]=(e[3*r+n]-e[3*n+r])*i,t[r]=(e[3*r+s]+e[3*s+r])*i,t[n]=(e[3*n+s]+e[3*s+n])*i}}(this._target,t),this.onChange(),this}
5fromEuler(t,e){return!function(t,e,i="YXZ"){let s=Math.sin(.5*e[0]),r=Math.cos(.5*e[0]),n=Math.sin(.5*e[1]),a=Math.cos(.5*e[1]),h=Math.sin(.5*e[2]),o=Math.cos(.5*e[2]);"XYZ"===i?(t[0]=s*a*o+r*n*h,t[1]=r*n*o-s*a*h,t[2]=r*a*h+s*n*o,t[3]=r*a*o-s*n*h):"YXZ"===i?(t[0]=s*a*o+r*n*h,t[1]=r*n*o-s*a*h,t[2]=r*a*h-s*n*o,t[3]=r*a*o+s*n*h):"ZXY"===i?(t[0]=s*a*o-r*n*h,t[1]=r*n*o+s*a*h,t[2]=r*a*h+s*n*o,t[3]=r*a*o-s*n*h):"ZYX"===i?(t[0]=s*a*o-r*n*h,t[1]=r*n*o+s*a*h,t[2]=r*a*h-s*n*o,t[3]=r*a*o+s*n*h):"YZX"===i?(t[0]=s*a*o+r*n*h,t[1]=r*n*o+s*a*h,t[2]=r*a*h-s*n*o,t[3]=r*a*o-s*n*h):"XZY"===i&&(t[0]=s*a*o-r*n*h,t[1]=r*n*o-s*a*h,t[2]=r*a*h+s*n*o,t[3]=r*a*o+s*n*h)}(this._target,t,t.order),e||this.onChange(),this}fromAxisAngle(t,e){var i,s;let r;return i=this._target,r=Math.sin(s=.5*e),i[0]=r*t[0],i[1]=r*t[1],i[2]=r*t[2],i[3]=Math.cos(s),this.onChange(),this}slerp(t,e){var i,s;let r,n,a,h,o,l,u,c,d,f,p,m,g;return i=this._target,s=this._target,l=s[0],u=s[1],c=s[2],d=s[3],f=t[0],p=t[1],(n=l*f+u*p+c*(m=t[2])+d*(g=t[3]))<0&&(n=-n,f=-f,p=-p,m=-m,g=-g),1-n>1e-6?(a=Math.sin(r=Math.acos(n)),h=Math.sin((1-e)*r)/a,o=Math.sin(e*r)/a):(h=1-e,o=e),i[0]=h*l+o*f,i[1]=h*u+o*p,i[2]=h*c+o*m,i[3]=h*d+o*g,this.onChange(),this}fromArray(t,e=0){return this._target[0]=t[e],this._target[1]=t[e+1],this._target[2]=t[e+2],this._target[3]=t[e+3],this.onChange(),this}toArray(t=[],e=0){return t[e]=this[0],t[e+1]=this[1],t[e+2]=this[2],t[e+3]=this[3],t}}function L(t){let e=t[0],i=t[1],s=t[2],r=t[3],n=t[4],a=t[5],h=t[6],o=t[7],l=t[8],u=t[9],c=t[10],d=t[11],f=t[12],p=t[13],m=t[14],g=t[15];return(e*a-i*n)*(c*g-d*m)-(e*h-s*n)*(u*g-d*p)+(e*o-r*n)*(u*m-c*p)+(i*h-s*a)*(l*g-d*f)-(i*o-r*a)*(l*m-c*f)+(s*o-r*h)*(l*p-u*f)}function B(t,e,i){let s=e[0],r=e[1],n=e[2],a=e[3],h=e[4],o=e[5],l=e[6],u=e[7],c=e[8],d=e[9],f=e[10],p=e[11],m=e[12],g=e[13],x=e[14],y=e[15],v=i[0],b=i[1],w=i[2],E=i[3];return t[0]=v*s+b*h+w*c+E*m,t[1]=v*r+b*o+w*d+E*g,t[2]=v*n+b*l+w*f+E*x,t[3]=v*a+b*u+w*p+E*y,v=i[4],b=i[5],w=i[6],E=i[7],t[4]=v*s+b*h+w*c+E*m,t[5]=v*r+b*o+w*d+E*g,t[6]=v*n+b*l+w*f+E*x,t[7]=v*a+b*u+w*p+E*y,v=i[8],b=i[9],w=i[10],E=i[11],t[8]=v*s+b*h+w*c+E*m,t[9]=v*r+b*o+w*d+E*g,t[10]=v*n+b*l+w*f+E*x,t[11]=v*a+b*u+w*p+E*y,v=i[12],b=i[13],w=i[14],E=i[15],t[12]=v*s+b*h+w*c+E*m,t[13]=v*r+b*o+w*d+E*g,t[14]=v*n+b*l+w*f+E*x,t[15]=v*a+b*u+w*p+E*y,t}function z(t,e){let i=e[0],s=e[1],r=e[2],n=e[4],a=e[5],h=e[6],o=e[8],l=e[9],u=e[10];return t[0]=Math.hypot(i,s,r),t[1]=Math.hypot(n,a,h),t[2]=Math.hypot(o,l,u),t}let U=(s=[1,1,1],function(t,e){z(s,e);let i=1/s[0],r=1/s[1],n=1/s[2],a=e[0]*i,h=e[1]*r,o=e[2]*n,l=e[4]*i,u=e[5]*r,c=e[6]*n,d=e[8]*i,f=e[9]*r,p=e[10]*n,m=a+u+p,g=0;return m>0?(g=2*Math.sqrt(m+1),t[3]=.25*g,t[0]=(c-f)/g,t[1]=(d-o)/g,t[2]=(h-l)/g):a>u&&a>p?(g=2*Math.sqrt(1+a-u-p),t[3]=(c-f)/g,t[0]=.25*g,t[1]=(h+l)/g,t[2]=(d+o)/g):u>p?(g=2*Math.sqrt(1+u-a-p),t[3]=(d-o)/g,t[0]=(h+l)/g,t[1]=.25*g,t[2]=(c+f)/g):(g=2*Math.sqrt(1+p-a-u),t[3]=(h-l)/g,t[0]=(d+o)/g,t[1]=(c+f)/g,t[2]=.25*g),t});function k(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t[3]=e[3]+i[3],t[4]=e[4]+i[4],t[5]=e[5]+i[5],t[6]=e[6]+i[6],t[7]=e[7]+i[7],t[8]=e[8]+i[8],t[9]=e[9]+i[9],t[10]=e[10]+i[10],t[11]=e[11]+i[11],t[12]=e[12]+i[12],t[13]=e[13]+i[13],t[14]=e[14]+i[14],t[15]=e[15]+i[15],t}function q(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t[3]=e[3]-i[3],t[4]=e[4]-i[4],t[5]=e[5]-i[5],t[6]=e[6]-i[6],t[7]=e[7]-i[7],t[8]=e[8]-i[8],t[9]=e[9]-i[9],t[10]=e[10]-i[10],t[11]=e[11]-i[11],t[12]=e[12]-i[12],t[13]=e[13]-i[13],t[14]=e[14]-i[14],t[15]=e[15]-i[15],t}class G extends Array{constructor(t=1,e=0,i=0,s=0,r=0,n=1,a=0,h=0,o=0,l=0,u=1,c=0,d=0,f=0,p=0,m=1){return super(t,e,i,s,r,n,a,h,o,l,u,c,d,f,p,m),this}get x(){return this[12]}get y(){return this[13]}get z(){return this[14]}get w(){return this[15]}set x(t){this[12]=t}set y(t){this[13]=t}set z(t){this[14]=t}set w(t){this[15]=t}set(t,e,i,s,r,n,a,h,o,l,u,c,d,f,p,m){return t.length?this.copy(t):(this[0]=t,this[1]=e,this[2]=i,this[3]=s,this[4]=r,this[5]=n,this[6]=a,this[7]=h,this[8]=o,this[9]=l,this[10]=u,this[11]=c,this[12]=d,this[13]=f,this[14]=p,this[15]=m,this)}translate(t,e=this){let i,s,r,n,a,h,o,l,u,c,d,f,p,m,g;return p=t[0],m=t[1],g=t[2],e===this?(this[12]=e[0]*p+e[4]*m+e[8]*g+e[12],this[13]=e[1]*p+e[5]*m+e[9]*g+e[13],this[14]=e[2]*p+e[6]*m+e[10]*g+e[14],this[15]=e[3]*p+e[7]*m+e[11]*g+e[15]):(i=e[0],s=e[1],r=e[2],n=e[3],a=e[4],h=e[5],o=e[6],l=e[7],u=e[8],c=e[9],d=e[10],f=e[11],this[0]=i,this[1]=s,this[2]=r,this[3]=n,this[4]=a,this[5]=h,this[6]=o,this[7]=l,this[8]=u,this[9]=c,this[10]=d,this[11]=f,this[12]=i*p+a*m+u*g+e[12],this[13]=s*p+h*m+c*g+e[13],this[14]=r*p+o*m+d*g+e[14],this[15]=n*p+l*m+f*g+e[15]),this}rotate(t,e,i=this){let s,r,n,a,h,o,l,u,c,d,f,p,m,g,x,y,v,b,w,E,M,A,S,_,C,F,R,j;
5return C=e[0],1e-6>Math.abs(j=Math.hypot(C,F=e[1],R=e[2]))||(C*=j=1/j,F*=j,R*=j,s=Math.sin(t),n=1-(r=Math.cos(t)),a=i[0],h=i[1],o=i[2],l=i[3],u=i[4],c=i[5],d=i[6],f=i[7],p=i[8],m=i[9],g=i[10],x=i[11],y=C*C*n+r,v=F*C*n+R*s,b=R*C*n-F*s,w=C*F*n-R*s,E=F*F*n+r,M=R*F*n+C*s,A=C*R*n+F*s,S=F*R*n-C*s,_=R*R*n+r,this[0]=a*y+u*v+p*b,this[1]=h*y+c*v+m*b,this[2]=o*y+d*v+g*b,this[3]=l*y+f*v+x*b,this[4]=a*w+u*E+p*M,this[5]=h*w+c*E+m*M,this[6]=o*w+d*E+g*M,this[7]=l*w+f*E+x*M,this[8]=a*A+u*S+p*_,this[9]=h*A+c*S+m*_,this[10]=o*A+d*S+g*_,this[11]=l*A+f*S+x*_,i!==this&&(this[12]=i[12],this[13]=i[13],this[14]=i[14],this[15]=i[15])),this}scale(t,e=this){var i;let s,r,n;return s=(i="number"==typeof t?[t,t,t]:t)[0],r=i[1],n=i[2],this[0]=e[0]*s,this[1]=e[1]*s,this[2]=e[2]*s,this[3]=e[3]*s,this[4]=e[4]*r,this[5]=e[5]*r,this[6]=e[6]*r,this[7]=e[7]*r,this[8]=e[8]*n,this[9]=e[9]*n,this[10]=e[10]*n,this[11]=e[11]*n,this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this}add(t,e){return e?k(this,t,e):k(this,this,t),this}sub(t,e){return e?q(this,t,e):q(this,this,t),this}multiply(t,e){if(t.length)e?B(this,t,e):B(this,this,t);else this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,this[4]=this[4]*t,this[5]=this[5]*t,this[6]=this[6]*t,this[7]=this[7]*t,this[8]=this[8]*t,this[9]=this[9]*t,this[10]=this[10]*t,this[11]=this[11]*t,this[12]=this[12]*t,this[13]=this[13]*t,this[14]=this[14]*t,this[15]=this[15]*t;return this}identity(){return this[0]=1,this[1]=0,this[2]=0,this[3]=0,this[4]=0,this[5]=1,this[6]=0,this[7]=0,this[8]=0,this[9]=0,this[10]=1,this[11]=0,this[12]=0,this[13]=0,this[14]=0,this[15]=1,this}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this}fromPerspective({fov:t,aspect:e,near:i,far:s}={}){let r,n;return r=1/Math.tan(t/2),n=1/(i-s),this[0]=r/e,this[1]=0,this[2]=0,this[3]=0,this[4]=0,this[5]=r,this[6]=0,this[7]=0,this[8]=0,this[9]=0,this[10]=(s+i)*n,this[11]=-1,this[12]=0,this[13]=0,this[14]=2*s*i*n,this[15]=0,this}fromOrthogonal({left:t,right:e,bottom:i,top:s,near:r,far:n}){let a,h,o;return a=1/(t-e),h=1/(i-s),o=1/(r-n),this[0]=-2*a,this[1]=0,this[2]=0,this[3]=0,this[4]=0,this[5]=-2*h,this[6]=0,this[7]=0,this[8]=0,this[9]=0,this[10]=2*o,this[11]=0,this[12]=(t+e)*a,this[13]=(s+i)*h,this[14]=(n+r)*o,this[15]=1,this}fromQuaternion(t){let e,i,s,r,n,a,h,o,l,u,c,d,f,p,m,g;return e=t[0],i=t[1],s=t[2],r=t[3],n=e+e,a=i+i,h=s+s,o=e*n,l=i*n,u=i*a,c=s*n,d=s*a,f=s*h,p=r*n,m=r*a,g=r*h,this[0]=1-u-f,this[1]=l+g,this[2]=c-m,this[3]=0,this[4]=l-g,this[5]=1-o-f,this[6]=d+p,this[7]=0,this[8]=c+m,this[9]=d-p,this[10]=1-o-u,this[11]=0,this[12]=0,this[13]=0,this[14]=0,this[15]=1,this}setPosition(t){return this.x=t[0],this.y=t[1],this.z=t[2],this}inverse(t=this){let e,i,s,r,n,a,h,o,l,u,c,d,f,p,m,g,x,y,v,b,w,E,M,A,S,_,C,F,R;return e=t[0],i=t[1],s=t[2],r=t[3],n=t[4],a=t[5],h=t[6],o=t[7],l=t[8],u=t[9],c=t[10],d=t[11],f=t[12],p=t[13],m=t[14],g=t[15],x=e*a-i*n,y=e*h-s*n,v=e*o-r*n,b=i*h-s*a,w=i*o-r*a,E=s*o-r*h,M=l*p-u*f,A=l*m-c*f,S=l*g-d*f,_=u*m-c*p,C=u*g-d*p,(R=x*(F=c*g-d*m)-y*C+v*_+b*S-w*A+E*M)&&(R=1/R,this[0]=(a*F-h*C+o*_)*R,this[1]=(s*C-i*F-r*_)*R,this[2]=(p*E-m*w+g*b)*R,this[3]=(c*w-u*E-d*b)*R,this[4]=(h*S-n*F-o*A)*R,this[5]=(e*F-s*S+r*A)*R,this[6]=(m*v-f*E-g*y)*R,this[7]=(l*E-c*v+d*y)*R,this[8]=(n*C-a*S+o*M)*R,this[9]=(i*S-e*C-r*M)*R,this[10]=(f*w-p*v+g*x)*R,this[11]=(u*v-l*w-d*x)*R,this[12]=(a*A-n*_-h*M)*R,this[13]=(e*_-i*A+s*M)*R,this[14]=(p*y-f*b-m*x)*R,this[15]=(l*b-u*y+c*x)*R),this}compose(t,e,i){let s,r,n,a,h,o,l,u,c,d,f,p,m,g,x,y,v,b,w;return s=t[0],r=t[1],n=t[2],a=t[3],h=s+s,o=r+r,l=n+n,u=s*h,c=s*o,d=s*l,f=r*o,p=r*l,m=n*l,g=a*h,x=a*o,y=a*l,v=i[0],b=i[1],w=i[2],this[0]=(1-(f+m))*v,this[1]=(c+y)*v,this[2]=(d-x)*v,this[3]=0,this[4]=(c-y)*b,this[5]=(1-(u+m))*b,this[6]=(p+g)*b,this[7]=0,this[8]=(d+x)*w,this[9]=(p-g)*w,this[10]=(1-(u+f))*w,this[11]=0,this[12]=e[0],this[13]=e[1],this[14]=e[2],this[15]=1,this}decompose(t,e,i){let s,r,n,a,h,l,u;
5return s=o([this[0],this[1],this[2]]),r=o([this[4],this[5],this[6]]),n=o([this[8],this[9],this[10]]),0>L(this)&&(s=-s),e[0]=this[12],e[1]=this[13],e[2]=this[14],a=this.slice(),h=1/s,l=1/r,u=1/n,a[0]*=h,a[1]*=h,a[2]*=h,a[4]*=l,a[5]*=l,a[6]*=l,a[8]*=u,a[9]*=u,a[10]*=u,U(t,a),i[0]=s,i[1]=r,i[2]=n,this}getRotation(t){return U(t,this),this}getTranslation(t){return t[0]=this[12],t[1]=this[13],t[2]=this[14],this}getScaling(t){return z(t,this),this}getMaxScaleOnAxis(){let t,e,i,s,r,n,a,h,o;return t=this[0],e=this[1],i=this[2],s=this[4],r=this[5],n=this[6],a=this[8],Math.sqrt(Math.max(t*t+e*e+i*i,s*s+r*r+n*n,a*a+(h=this[9])*h+(o=this[10])*o))}lookAt(t,e,i){let s,r,n,a,h,o,l,u,c,d,f,p,m;return s=t[0],r=t[1],n=t[2],a=i[0],h=i[1],o=i[2],l=s-e[0],0==(d=l*l+(u=r-e[1])*u+(c=n-e[2])*c)?c=1:(l*=d=1/Math.sqrt(d),u*=d,c*=d),0==(d=(f=h*c-o*u)*f+(p=o*l-a*c)*p+(m=a*u-h*l)*m)&&(o?a+=1e-6:h?o+=1e-6:h+=1e-6,d=(f=h*c-o*u)*f+(p=o*l-a*c)*p+(m=a*u-h*l)*m),f*=d=1/Math.sqrt(d),p*=d,m*=d,this[0]=f,this[1]=p,this[2]=m,this[3]=0,this[4]=u*m-c*p,this[5]=c*f-l*m,this[6]=l*p-u*f,this[7]=0,this[8]=l,this[9]=u,this[10]=c,this[11]=0,this[12]=s,this[13]=r,this[14]=n,this[15]=1,this}determinant(){return L(this)}fromArray(t,e=0){return this[0]=t[e],this[1]=t[e+1],this[2]=t[e+2],this[3]=t[e+3],this[4]=t[e+4],this[5
5]=t[e+5],this[6]=t[e+6],this[7]=t[e+7],this[8]=t[e+8],this[9]=t[e+9],this[10]=t[e+10],this[11]=t[e+11],this[12]=t[e+12],this[13]=t[e+13],this[14]=t[e+14],this[15]=t[e+15],this}toArray(t=[],e=0){return t[e]=this[0],t[e+1]=this[1],t[e+2]=this[2],t[e+3]=this[3],t[e+4]=this[4],t[e+5]=this[5],t[e+6]=this[6],t[e+7]=this[7],t[e+8]=this[8],t[e+9]=this[9],t[e+10]=this[10],t[e+11]=this[11],t[e+12]=this[12],t[e+13]=this[13],t[e+14]=this[14],t[e+15]=this[15],t}}let W=new G;class $ extends Array{constructor(t=0,e=t,i=t,s="YXZ"){super(t,e,i),this.order=s,this.onChange=()=>{},this._target=this;const r=["0","1","2"];return new Proxy(this,{set(t,e){let i=Reflect.set(...arguments);return i&&r.includes(e)&&t.onChange(),i}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this._target[0]=t,this.onChange()}set y(t){this._target[1]=t,this.onChange()}set z(t){this._target[2]=t,this.onChange()}set(t,e=t,i=t){return t.length?this.copy(t):(this._target[0]=t,this._target[1]=e,this._target[2]=i,this.onChange(),this)}copy(t){return this._target[0]=t[0],this._target[1]=t[1],this._target[2]=t[2],this.onChange(),this}reorder(t){return this._target.order=t,this.onChange(),this}fromRotationMatrix(t,e=this.order){return!function(t,e,i="YXZ"){"XYZ"===i?(t[1]=Math.asin(Math.min(Math.max(e[8],-1),1)),.99999>Math.abs(e[8])?(t[0]=Math.atan2(-e[9],e[10]),t[2]=Math.atan2(-e[4],e[0])):(t[0]=Math.atan2(e[6],e[5]),t[2]=0)):"YXZ"===i?(t[0]=Math.asin(-Math.min(Math.max(e[9],-1),1)),.99999>Math.abs(e[9])?(t[1]=Math.atan2(e[8],e[10]),t[2]=Math.atan2(e[1],e[5])):(t[1]=Math.atan2(-e[2],e[0]),t[2]=0)):"ZXY"===i?(t[0]=Math.asin(Math.min(Math.max(e[6],-1),1)),.99999>Math.abs(e[6])?(t[1]=Math.atan2(-e[2],e[10]),t[2]=Math.atan2(-e[4],e[5])):(t[1]=0,t[2]=Math.atan2(e[1],e[0]))):"ZYX"===i?(t[1]=Math.asin(-Math.min(Math.max(e[2],-1),1)),.99999>Math.abs(e[2])?(t[0]=Math.atan2(e[6],e[10]),t[2]=Math.atan2(e[1],e[0])):(t[0]=0,t[2]=Math.atan2(-e[4],e[5]))):"YZX"===i?(t[2]=Math.asin(Math.min(Math.max(e[1],-1),1)),.99999>Math.abs(e[1])?(t[0]=Math.atan2(-e[9],e[5]),t[1]=Math.atan2(-e[2],e[0])):(t[0]=0,t[1]=Math.atan2(e[8],e[10]))):"XZY"===i&&(t[2]=Math.asin(-Math.min(Math.max(e[4],-1),1)),.99999>Math.abs(e[4])?(t[0]=Math.atan2(e[6],e[5]),t[1]=Math.atan2(e[8],e[0])):(t[0]=Math.atan2(-e[9],e[10]),t[1]=0))}(this._target,t,e),this.onChange(),this}fromQuaternion(t,e=this.order,i){return W.fromQuaternion(t),this._target.fromRotationMatrix(W,e),i||this.onChange(),this}fromArray(t,e=0){return this._target[0]=t[e],this._target[1]=t[e+1],this._target[2]=t[e+2],this}toArray(t=[],e=0){return t[e]=this[0],t[e+1]=this[1],t[e+2]=this[2],t}}class X{constructor(){this.parent=null,this.children=[],this.visible=!0,this.matrix=new G,this.worldMatrix=new G,this.matrixAutoUpdate=!0,this.worldMatrixNeedsUpdate=!1,this.position=new y,this.quaternion=new D,this.scale=new y(1),this.rotation=new $,this.up=new y(0,1,0),this.rotation._target.onChange=()=>this.quaternion.fromEuler(this.rotation,!0),this.quaternion._target.onChange=()=>this.rotation.fromQuaternion(this.quaternion,void 0,!0)}setParent(t,e=!0){this.parent&&t!==this.parent&&this.parent.removeChild(this,!1),this.parent=t,e&&t&&t.addChild(this,!1)}addChild(t,e=!0){~this.children.indexOf(t)||this.children.push(t),e&&t.setParent(this,!1)}removeChild(t,e=!0){~this.children.indexOf(t)&&this.children.splice(this.children.indexOf(t),1),e&&t.setParent(null,!1)}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.worldMatrixNeedsUpdate||t)&&(null===this.parent?this.worldMatrix.copy(this.matrix):this.worldMatrix.multiply(this.parent.worldMatrix,this.matrix),this.worldMatrixNeedsUpdate=!1,t=!0);for(let e=0,i=this.children.length;e<i;e++)this.children[e].updateMatrixWorld(t)}updateMatrix(){this.matrix.compose(this.quaternion,this.position,this.scale),this.worldMatrixNeedsUpdate=!0}traverse(t){if(!t(this))for(let e=0,i=this.children.length;e<i;e++)this.children[e].traverse(t)}decompose(){this.matrix.decompose(this.quaternion._target,this.position,this.scale),this.rotation.fromQuaternion(this.quaternion)}lookAt(t,e=!1){e?this.matrix.lookAt(this.position,t,this.up):this.matrix.lookAt(t,this.position,this.up),this.matrix.getRotation(this.quaternion._target),this.rotation.fromQuaternion(this.quaternion)}}function Y(t,e,i){let s=e[0],r=e[1],n=e[2],a=e[3],h=e[4],o=e[5],l=e[6],u=e[7],c=e[8],d=i[0],f=i[1],p=i[2],m=i[3],g=i[4],x=i[5],y=i[6],v=i[7],b=i[8];return t[0]=d*s+f*a+p*l,t[1]=d*r+f*h+p*u,t[2]=d*n+f*o+p*c,t[3]=m*s+g*a+x*l,t[4]=m*r+g*h+x*u,t[5]=m*n+g*o+x*c,t[6]=y*s+v*a+b*l,t[7]=y*r+v*h+b*u,t[8]=y*n+v*o+b*c,t}class H extends Array{constructor(t=1,e=0,i=0,s=0,r=1,n=0,a=0,h=0,o=1){return super(t,e,i,s,r,n,a,h,o),this}set(t,e,i,s,r,n,a,h,o){return t.length?this.copy(t):(this[0]=t,this[1]=e,this[2]=i,this[3]=s,this[4]=r,this[5]=n,this[6]=a,this[7]=h,this[8]=o,this)}translate(t,e=this){let i,s,r,n,a,h,o,l,u,c,d;return i=e[0],s=e[1],r=e[2],n=e[3],a=e[4],h=e[5],o=e[6],l=e[7],u=e[8],c=t[0],d=t[1],this[0]=i,this[1]=s,this[2]=r,this[3]=n,this[4]=a,this[5]=h,this[6]=c*i+d*n+o,this[7]=c*s+d*a+l,this[8]=c*r+d*h+u,this}rotate(t,e=this){let i,s,r,n,a,h,o,l,u,c,d;return i=e[0],s=e[1],r=e[2],n=e[3],a=e[4],h=e[5],o=e[6],l=e[7],u=e[8],c=Math.sin(t),d=Math.cos(t),this[0]=d*i+c*n,this[1]=d*s+c*a,this[2]=d*r+c*h,this[3]=d*n-c*i,this[4]=d*a-c*s,this[5
5]=d*h-c*r,this[6]=o,this[7]=l,this[8]=u,this}scale(t,e=this){let i,s;return i=t[0],s=t[1],this[0]=i*e[0],this[1]=i*e[1],this[2]=i*e[2],this[3]=s*e[3],this[4]=s*e[4],this[5]=s*e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this}multiply(t,e){return e?Y(this,t,e):Y(this,this,t),this}identity(){return this[0]=1,this[1]=0,this[2]=0,this[3]=0,this[4]=1,this[5]=0,this[6]=0,this[7]=0,this[8]=1,this}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this}fromMatrix4(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[4],this[4]=t[5],this[5]=t[6],this[6]=t[8],this[7]=t[9],this[8]=t[10],this}fromQuaternion(t){let e,i,s,r,n,a,h,o,l,u,c,d,f,p,m,g;return e=t[0],i=t[1],s=t[2],r=t[3],n=e+e,a=i+i,h=s+s,o=e*n,l=i*n,u=i*a,c=s*n,d=s*a,f=s*h,p=r*n,m=r*a,g=r*h,this[0]=1-u-f,this[3]=l-g,this[6]=c+m,this[1]=l+g,this[4]=1-o-f,this[7]=d-p,this[2]=c-m,this[5]=d+p,this[8]=1-o-u,this}fromBasis(t,e,i){return this.set(t[0],t[1],t[2],e[0],e[1],e[2],i[0],i[1],i[2]),this}inverse(t=this){let e,i,s,r,n,a,h,o,l,u,c,d,f;return e=t[0],i=t[1],s=t[2],r=t[3],n=t[4],a=t[5],h=t[6],o=t[7],(f=e*(u=(l=t[8])*n-a*o)+i*(c=-l*r+a*h)+s*(d=o*r-n*h))&&(f=1/f,this[0]=u*f,this[1]=(-l*i+s*o)*f,this[2]=(a*i-s*n)*f,this[3]=c*f,this[4]=(l*e-s*h)*f,this[5]=(-a*e+s*r)*f,this[6]=d*f,this[7]=(-o*e+i*h)*f,this[8]=(n*e-i*r)*f),this}getNormalMatrix(t){let e,i,s,r,n,a,h,o,l,u,c,d,f,p,m,g,x,y,v,b,w,E,M,A,S,_,C,F,R;return e=t[0],i=t[1],s=t[2],r=t[3],n=t[4],a=t[5],h=t[6],o=t[7],l=t[8],u=t[9],c=t[10],d=t[11],f=t[12],p=t[13],m=t[14],g=t[15],x=e*a-i*n,y=e*h-s*n,v=e*o-r*n,b=i*h-s*a,w=i*o-r*a,E=s*o-r*h,M=l*p-u*f,A=l*m-c*f,S=l*g-d*f,_=u*m-c*p,C=u*g-d*p,(R=x*(F=c*g-d*m)-y*C+v*_+b*S-w*A+E*M)&&(R=1/R,this[0]=(a*F-h*C+o*_)*R,this[1]=(h*S-n*F-o*A)*R,this[2]=(n*C-a*S+o*M)*R,this[3]=(s*C-i*F-r*_)*R,this[4]=(e*F-s*S+r*A)*R,this[5]=(i*S-e*C-r*M)*R,this[6]=(p*E-m*w+g*b)*R,this[7]=(m*v-f*E-g*y)*R,this[8]=(f*w-p*v+g*x)*R),this}}let Z=0;class Q extends X{constructor(t,{geometry:e,program:i,mode:s=t.TRIANGLES,frustumCulled:r=!0,renderOrder:n=0}={}){super(),t.canvas||console.error("gl not passed as first argument to Mesh"),this.gl=t,this.id=Z++,this.geometry=e,this.program=i,this.mode=s,this.frustumCulled=r,this.renderOrder=n,this.modelViewMatrix=new G,this.normalMatrix=new H,this.beforeRenderCallbacks=[],this.afterRenderCallbacks=[]}onBeforeRender(t){return this.beforeRenderCallbacks.push(t),this}onAfterRender(t){return this.afterRenderCallbacks.push(t),this}draw({camera:t}={}){t&&(this.program.uniforms.modelMatrix||Object.assign(this.program.uniforms,{modelMatrix:{value:null},viewMatrix:{value:null},modelViewMatrix:{value:null},normalMatrix:{value:null},projectionMatrix:{value:null},cameraPosition:{value:null}}),this.program.uniforms.projectionMatrix.value=t.projectionMatrix,this.program.uniforms.cameraPosition.value=t.worldPosition,this.program.uniforms.viewMatrix.value=t.viewMatrix,this.modelViewMatrix.multiply(t.viewMatrix,this.worldMatrix),this.normalMatrix.getNormalMatrix(this.modelViewMatrix),this.program.uniforms.modelMatrix.value=this.worldMatrix,this.program.uniforms.modelViewMatrix.value=this.modelViewMatrix,this.program.uniforms.normalMatrix.value=this.normalMatrix),this.beforeRenderCallbacks.forEach(e=>e&&e({mesh:this,camera:t}));let e=this.program.cullFace&&0>this.worldMatrix.determinant();this.program.use({flipFaces:e}),this.geometry.draw({mode:this.mode,program:this.program}),this.afterRenderCallbacks.forEach(e=>e&&e({mesh:this,camera:t}))}}let K="#ffffff",J=t=>{let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?[parseInt(e[1],16)/255,parseInt(e[2],16)/255,parseInt(e[3],16)/255]:[1,1,1]},tt=(t,e,i)=>{switch(t){case"top-left":return{anchor:[0,-.2*i],dir:[0,1]};case"top-right":return{anchor:[e,-.2*i],dir:[0,1]};case"left":return{anchor:[-.2*e,.5*i],dir:[1,0]};case"right":return{anchor:[1.2*e,.5*i],dir:[-1,0]};case"bottom-left":return{anchor:[0,1.2*i],dir:[0,-1]};case"bottom-center":return{anchor:[.5*e,1.2*i],dir:[0,-1]};case"bottom-right":return{anchor:[e,1.2*i],dir:[0,-1]};default:return{anchor:[.5*e,-.2*i],dir:[0,1]}}},te=({raysOrigin:t="top-center",raysColor:e=K,raysSpeed:i=1,lightSpread:s=1,rayLength:a=2,pulsating:h=!1,fadeDistance:o=1,saturation:l=1,followMouse:u=!0,mou
5seInfluence:c=.1,noiseAmount:d=0,distortion:f=0,className:p=""})=>{let m=(0,n.useRef)(null),g=(0,n.useRef)(null),x=(0,n.useRef)(null),y=(0,n.useRef)({x:.5,y:.5}),v=(0,n.useRef)({x:.5,y:.5}),b=(0,n.useRef)(null),E=(0,n.useRef)(null),M=(0,n.useRef)(null),[S,_]=(0,n.useState)(!1),C=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(m.current)return C.current=new IntersectionObserver(t=>{_(t[0].isIntersecting)},{threshold:.1}),C.current.observe(m.current),()=>{C.current&&(C.current.disconnect(),C.current=null)}},[]),(0,n.useEffect)(()=>{if(S&&m.current)return M.current&&(M.current(),M.current=null),(async()=>{if(!m.current||(await new Promise(t=>setTimeout(t,10)),!m.current))return;let r=new w({dpr:Math.min(window.devicePixelRatio,2),alpha:!0});x.current=r;let n=r.gl;for(n.canvas.style.width="100%",n.canvas.style.height="100%";m.current.firstChild;)m.current.removeChild(m.current.firstChild);m.current.appendChild(n.canvas);let p=` 6attribute vec2 position; 7varying vec2 vUv; 8void main() { 9 vUv = position * 0.5 + 0.5; 10 gl_Position = vec4(position, 0.0, 1.0); 11}`,S=`precision highp float; 12 13uniform float iTime; 14uniform vec2 iResolution; 15 16uniform vec2 rayPos; 17uniform vec2 rayDir; 18uniform vec3 raysColor; 19uniform float raysSpeed; 20uniform float lightSpread; 21uniform float rayLength; 22uniform float pulsating; 23uniform float fadeDistance; 24uniform float saturation; 25uniform vec2 mousePos; 26uniform float mouseInfluence; 27uniform float noiseAmount; 28uniform float distortion; 29 30varying vec2 vUv; 31 32float noise(vec2 st) { 33 return fract(sin(dot(st.xy, vec2(12.9898,78.233))) * 43758.5453123); 34} 35 36float rayStrength(vec2 raySource, vec2 rayRefDirection, vec2 coord, 37 float seedA, float seedB, float speed) { 38 vec2 sourceToCoord = coord - raySource; 39 vec2 dirNorm = normalize(sourceToCoord); 40 float cosAngle = dot(dirNorm, rayRefDirection); 41 42 float distortedAngle = cosAngle + distortion * sin(iTime * 2.0 + length(sourceToCoord) * 0.01) * 0.2; 43 44 float spreadFactor = pow(max(distortedAngle, 0.0), 1.0 / max(lightSpread, 0.001)); 45 46 float distance = length(sourceToCoord); 47 float maxDistance = iResolution.x * rayLength; 48 float lengthFalloff = clamp((maxDistance - distance) / maxDistance, 0.0, 1.0); 49 50 float fadeFalloff = clamp((iResolution.x * fadeDistance - distance) / (iResolution.x * fadeDistance), 0.5, 1.0); 51 float pulse = pulsating > 0.5 ? (0.8 + 0.2 * sin(iTime * speed * 3.0)) : 1.0; 52 53 float baseStrength = clamp( 54 (0.45 + 0.15 * sin(distortedAngle * seedA + iTime * speed)) + 55 (0.3 + 0.2 * cos(-distortedAngle * seedB + iTime * speed)), 56 0.0, 1.0 57 ); 58 59 return baseStrength * lengthFalloff * fadeFalloff * spreadFactor * pulse; 60} 61 62void mainImage(out vec4 fragColor, in vec2 fragCoord) { 63 vec2 coord = vec2(fragCoord.x, iResolution.y - fragCoord.y); 64 65 vec2 finalRayDir = rayDir; 66 if (mouseInfluence > 0.0) { 67 vec2 mouseScreenPos = mousePos * iResolution.xy; 68 vec2 mouseDirection = normalize(mouseScreenPos - rayPos); 69 finalRayDir = normalize(mix(rayDir, mouseDirection, mouseInfluence)); 70 } 71 72 vec4 rays1 = vec4(1.0) * 73 rayStrength(rayPos, finalRayDir, coord, 36.2214, 21.11349, 74 1.5 * raysSpeed); 75 vec4 rays2 = vec4(1.0) * 76 rayStrength(rayPos, finalRayDir, coord, 22.3991, 18.0234, 77 1.1 * raysSpeed); 78 79 fragColor = rays1 * 0.5 + rays2 * 0.4; 80 81 if (noiseAmount > 0.0) { 82 float n = noise(coord * 0.01 + iTime * 0.1); 83 fragColor.rgb *= (1.0 - noiseAmount + noiseAmount * n); 84 } 85 86 float brightness = 1.0 - (coord.y / iResolution.y); 87 fragColor.x *= 0.1 + brightness * 0.8; 88 fragColor.y *= 0.3 + brightness * 0.6; 89 fragColor.z *= 0.5 + brightness * 0.5; 90 91 if (saturation != 1.0) { 92 float gray = dot(fragColor.rgb, vec3(0.299, 0.587, 0.114)); 93 fragColor.rgb = mix(vec3(gray), fragColor.rgb, saturation); 94 } 95 96 fragColor.rgb *= raysColor; 97} 98 99void main() { 100 vec4 color; 101 mainImage(color, gl_FragCoord.xy); 102 gl_FragColor = color; 103}`,_={iTime:{value:0},iResolution:{value:[1,1]},rayPos:{value:[0,0]},rayDir:{value:[0,1]},raysColor:{value:J(e)},raysSpeed:{value:i},lightSpread:{value:s},rayLength:{value:a},pulsating:{value:+!!h},fadeDistance:{value:o},saturation:{value:l},mousePos:{value:[.5,.5]},mouseInfluence:{value:c},noiseAmount:{value:d},distortion:{value:f}};g.current=_;let C=new V(n),F=new A(n,{vertex:p,fragment:S,uniforms:_}),R=new Q(n,{geometry:C,program:F});E.current=R;let j=()=>
103{if(!m.current||!r)return;r.dpr=Math.min(window.devicePixelRatio,2);let{clientWidth:e,clientHeight:i}=m.current;r.setSize(e,i);let s=r.dpr,n=e*s,a=i*s;_.iResolution.value=[n,a];let{anchor:h,dir:o}=tt(t,n,a);_.rayPos.value=h,_.rayDir.value=o},O=t=>{if(x.current&&g.current&&E.current){_.iTime.value=.001*t,u&&c>0&&(v.current.x=.92*v.current.x+.07999999999999996*y.current.x,v.current.y=.92*v.current.y+.07999999999999996*y.current.y,_.mousePos.value=[v.current.x,v.current.y]);try{r.render({scene:R}),b.current=requestAnimationFrame(O)}catch(t){console.warn("WebGL rendering error:",t);return}}};window.addEventListener("resize",j),j(),b.current=requestAnimationFrame(O),M.current=()=>{if(b.current&&(cancelAnimationFrame(b.current),b.current=null),window.removeEventListener("resize",j),r)try{let t=r.gl.canvas,e=r.gl.getExtension("WEBGL_lose_context");e&&e.loseContext(),t&&t.parentNode&&t.parentNode.removeChild(t)}catch(t){console.warn("Error during WebGL cleanup:",t)}x.current=null,g.current=null,E.current=null}})(),()=>{M.current&&(M.current(),M.current=null)}},[S,t,e,i,s,a,h,o,l,u,c,d,f]),(0,n.useEffect)(()=>{if(!g.current||!m.current||!x.current)return;let r=g.current,n=x.current;r.raysColor.value=J(e),r.raysSpeed.value=i,r.lightSpread.value=s,r.rayLength.value=a,r.pulsating.value=+!!h,r.fadeDistance.value=o,r.saturation.value=l,r.mouseInfluence.value=c,r.noiseAmount.value=d,r.distortion.value=f;let{clientWidth:u,clientHeight:p}=m.current,y=n.dpr,{anchor:v,dir:b}=tt(t,u*y,p*y);r.rayPos.value=v,r.rayDir.value=b},[e,i,s,t,a,h,o,l,c,d,f]),(0,n.useEffect)(()=>{let t=t=>{if(!m.current||!x.current)return;let e=m.current.getBoundingClientRect();y.current={x:(t.clientX-e.left)/e.width,y:(t.clientY-e.top)/e.height}};if(u)return window.addEventListener("mousemove",t),()=>window.removeEventListener("mousemove",t)},[u]),(0,r.jsx)("div",{ref:m,className:`light-rays-container ${p}`.trim()})};function ti(t){let e=t.heroContent,[i,s]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let t=window.matchMedia("(max-width: 768px)"),e=t=>s(t.matches);return s(t.matches),t.addEventListener("change",e),()=>{t.removeEventListener("change",e)}},[]),(0,r.jsxs)("section",{id:"hero",className:"relative min-h-dvh flex items-center justify-center px-4 font-questrial overflow-hidden",children:[(0,r.jsx)("div",{className:"absolute inset-0 z-0 h-full w-full overflow-hidden",style:{backgroundImage:` 104 radial-gradient(circle at center, rgba(0,0,0,0) 25%, rgba(0,0,0,0.85) 100%), 105 url(${e.image.url}) 106 `,backgroundSize:"cover",backgroundPosition:"center",backgroundAttachment:i?"scroll":"fixed",backgroundRepeat:"no-repeat",backgroundBlendMode:"overlay",filter:"blur(5px)"}}),(0,r.jsx)("div",{className:"absolute inset-0 bg-black/60 z-0"}),(0,r.jsx)("div",{className:"absolute inset-0 w-full h-full z-0",children:(0,r.jsx)(te,{raysOrigin:"top-center",raysColor:"#ffffff",raysSpeed:1,lightSpread:.5,rayLength:3,followMouse:!0,mouseInfluence:.1,noiseAmount:0,distortion:0,className:"custom-rays",pulsating:!1,fadeDistance:1,saturation:1})}),(0,r.jsx)(h.default,{children:(0,r.jsxs)("div",{className:"relative z-10 text-center max-w-2xl space-y-6 m-auto",children:[(0,r.jsx)("h1",{className:"text-4xl md:text-5xl text-white",children:e.headline}),(0,r.jsx)("p",{className:"text-lg md:text-xl leading-relaxed text-white",children:e.subHeadline}),(0,r.jsx)("div",{className:"flex flex-col sm:flex-row justify-center items-center gap-4",children:(0,r.jsx)(a.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>{let t=document.getElementById("hero"),e=t?.nextElementSibling;e?.scrollIntoView({behavior:"smooth",block:"start"})},"aria-label":"Scroll to next section",className:"text-white animate-bounce hover:bg-transparent hover:text-white active:bg-transparent",children:(0,r.jsx)("span",{className:"text-3xl leading-none",children:"â"})})})]})})]})}t.s(["default",()=>ti],87650)},86591,t=>{"use strict";var e=t.i(87433),i=t.i(44440),s=t.i(96027),r=t.i(36147);function n({ourServicesContent:t}){let{headline:n,subHeadline:a,ActivityCategory:h}=t,[o,l]=(0,i.useState)(h[0].id),u=(0,i.useRef)(null),c=(0,i.useMemo)(()=>h.find(t=>
106t.id===o),[o,h]),d=()=>{u.current&&clearInterval(u.current),u.current=setInterval(()=>{l(t=>{let e=(h.findIndex(e=>e.id===t)+1)%h.length;return h[e].id})},5e3)};return(0,i.useEffect)(()=>(d(),()=>{u.current&&clearInterval(u.current)}),[h]),(0,e.jsx)("section",{id:"services",className:"relative min-h-dvh bg-primary-foreground px-6 py-20 font-questrial flex flex-col items-center justify-center",children:(0,e.jsxs)(r.default,{children:[(0,e.jsxs)("div",{className:"max-w-5xl mx-auto text-center space-y-4 mb-12",children:[(0,e.jsx)("h2",{className:"text-4xl",children:n}),(0,e.jsx)("p",{className:"max-w-2xl mx-auto",children:a})]}),(0,e.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-10 items-start max-w-6xl mx-auto",children:[(0,e.jsx)("figure",{className:"w-full h-87.5 md:h-100 lg:h-112.5 relative overflow-hidden",children:Array.isArray(c?.image)&&c.image[0]?.url&&(0,e.jsx)("div",{className:"absolute inset-0",style:{opacity:0,animation:"fadeIn 0.8s ease-in-out forwards"},children:(0,e.jsx)(s.default,{src:c.image[0].url,alt:c.image[0].alternativeText||"Community image",fill:!0,className:"object-cover",priority:!0})},c.image[0].id)}),(0,e.jsx)("div",{className:"space-y-3 my-auto",children:h.map(({id:t,title:i,content:s})=>{let r=o===t;return(0,e.jsxs)("article",{onClick:()=>{l(t),d()},className:`cursor-pointer p-4 transition-all duration-200 ${r?"border-l-4 border-pink-300":""}`,children:[(0,e.jsx)("h3",{className:"text-xl text-gray-800",children:i}),(0,e.jsx)("p",{className:`text-gray-700 text-sm mt-1 transition-opacity duration-500 ease-in-out ${r?"opacity-100":"opacity-0 h-0 overflow-hidden"}`,children:s})]},t)})})]})]})})}t.s(["default",()=>n])},69035,t=>{"use strict";var e=t.i(87433),i=t.i(44440);t.i(65596);var s=t.i(22353),r=Symbol("radix.slottable");function n(t){return i.isValidElement(t)&&"function"==typeof t.type&&"__radixId"in t.type&&t.type.__radixId===r}var a=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((t,r)=>{var a,h;let o,l,u,c=(h=a=`Primitive.${r}`,(o=i.forwardRef((t,e)=>{let{children:r,...n}=t;if(i.isValidElement(r)){var a;let t,h,o=(a=r,(h=(t=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?a.ref:(h=(t=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?a.props.ref:a.props.ref||a.ref),l=function(t,e){let i={...e};for(let s in e){let r=t[s],n=e[s];/^on[A-Z]/.test(s)?r&&n?i[s]=(...t)=>{let e=n(...t);return r(...t),e}:r&&(i[s]=r):"style"===s?i[s]={...r,...n}:"className"===s&&(i[s]=[r,n].filter(Boolean).join(" "))}return{...t,...i}}(n,r.props);return r.type!==i.Fragment&&(l.ref=e?(0,s.composeRefs)(e,o):o),i.cloneElement(r,l)}return i.Children.count(r)>1?i.Children.only(null):null})).displayName=`${h}.SlotClone`,l=o,(u=i.forwardRef((t,s)=>{let{children:r,...a}=t,h=i.Children.toArray(r),o=h.find(n);if(o){let t=o.props.children,r=h.map(e=>e!==o?e:i.Children.count(t)>1?i.Children.only(null):i.isValidElement(t)?t.props.children:null);return(0,e.jsx)(l,{...a,ref:s,children:i.isValidElement(t)?i.cloneElement(t,void 0,r):null})}return(0,e.jsx)(l,{...a,ref:s,children:r})})).displayName=`${a}.Slot`,u),d=i.forwardRef((t,i)=>{let{asChild:s,...n}=t;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,e.jsx)(s?c:r,{...n,ref:i})});return d.displayName=`Primitive.${r}`,{...t,[r]:d}},{}),h="horizontal",o=["horizontal","vertical"],l=i.forwardRef((t,i)=>{var s;let{decorative:r,orientation:n=h,...l}=t,u=(s=n,o.includes(s))?n:h;return(0,e.jsx)(a.div,{"data-orientation":u,...r?{role:"none"}:{"aria-orientation":"vertical"===u?u:void 0,role:"separator"},...l,ref:i})});l.displayName="Separator",t.s(["Root",()=>l,"Separator",()=>l],72826);var u=t.i(72826),u=u,c=t.i(47163);function d({className:t,orientation:i="horizontal",decorative:s=!0,...r}){return(0,e.jsx)(u.Root,{"data-slot":"separator",decorative:s,orientation:i,className:(0,c.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...r})}t.s(["Separator",()=>d],69035)},49518,(t,e,i)=>{t.e,function(t){"use strict";var e=function(){return(e=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};t.CountUp=function(){function t(t,i,s){var r=this;this.endVal=i,this.options=s,this.version="2.9.0",this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,useIndianSeparators:!1,smartEasingThreshold:999,smartEasingAmou
106nt:333,separator:",",decimal:".",prefix:"",suffix:"",enableScrollSpy:!1,scrollSpyDelay:200,scrollSpyOnce:!1},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error="",this.startVal=0,this.paused=!0,this.once=!1,this.count=function(t){r.startTime||(r.startTime=t);var e=t-r.startTime;r.remaining=r.duration-e,r.useEasing?r.countDown?r.frameVal=r.startVal-r.easingFn(e,0,r.startVal-r.endVal,r.duration):r.frameVal=r.easingFn(e,r.startVal,r.endVal-r.startVal,r.duration):r.frameVal=r.startVal+(r.endVal-r.startVal)*(e/r.duration);var i=r.countDown?r.frameVal<r.endVal:r.frameVal>r.endVal;r.frameVal=i?r.endVal:r.frameVal,r.frameVal=Number(r.frameVal.toFixed(r.options.decimalPlaces)),r.printValue(r.frameVal),e<r.duration?r.rAF=requestAnimationFrame(r.count):null!==r.finalEndVal?r.update(r.finalEndVal):r.options.onCompleteCallback&&r.options.onCompleteCallback()},this.formatNumber=function(t){var e,i,s,n=(Math.abs(t).toFixed(r.options.decimalPlaces)+"").split(".");if(e=n[0],i=n.length>1?r.options.decimal+n[1]:"",r.options.useGrouping){s="";for(var a=3,h=0,o=0,l=e.length;o<l;++o)r.options.useIndianSeparators&&4===o&&(a=2,h=1),0!==o&&h%a==0&&(s=r.options.separator+s),h++,s=e[l-o-1]+s;e=s}return r.options.numerals&&r.options.numerals.length&&(e=e.replace(/[0-9]/g,function(t){return r.options.numerals[+t]}),i=i.replace(/[0-9]/g,function(t){return r.options.numerals[+t]})),(t<0?"-":"")+r.options.prefix+e+i+r.options.suffix},this.easeOutExpo=function(t,e,i,s){return i*(1-Math.pow(2,-10*t/s))*1024/1023+e},this.options=e(e({},this.defaults),s),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.el="string"==typeof t?document.getElementById(t):t,i=null==i?this.parse(this.el.innerHTML):i,this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(i),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,""===this.options.separator&&(this.options.useGrouping=!1),this.el?this.printValue(this.startVal):this.error="[CountUp] target is null or undefined","u">typeof window&&this.options.enableScrollSpy&&(this.error?console.error(this.error,t):(window.onScrollFns=window.onScrollFns||[],window.onScrollFns.push(function(){return r.handleScroll(r)}),window.onscroll=function(){window.onScrollFns.forEach(function(t){return t()})},this.handleScroll(this)))}return t.prototype.handleScroll=function(t){if(t&&window&&!t.once){var e=window.innerHeight+window.scrollY,i=t.el.getBoundingClientRect(),s=i.top+window.pageYOffset,r=i.top+i.height+window.pageYOffset;r<e&&r>window.scrollY&&t.paused?(t.paused=!1,setTimeout(function(){return t.start()},t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>r||s>e)&&!t.paused&&t.reset()}},t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;if(this.countDown=this.startVal>t,Math.abs(t-this.startVal)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var e=this.countDown?1:-1;this.endVal=t+e*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var e;if(this.el){var i=this.formattingFn(t);(null==(e=this.options.plugin)?void 0:e.render)?this.options.plugin.render(this.el,i):"INPUT"===this.el.tagName?this.el.value=i:"text"===this.el.tagName||"tspan"===this.el.tagName?this.el.textContent=i:this.el.
106innerHTML=i}},t.prototype.ensureNumber=function(t){return"number"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var e=Number(t);return this.ensureNumber(e)?e:(this.error="[CountUp] invalid start or end value: ".concat(t),null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t.prototype.parse=function(t){var e=function(t){return t.replace(/([.,'Â ])/g,"\\$1")},i=e(this.options.separator),s=e(this.options.decimal);return parseFloat(t.replace(RegExp(i,"g"),"").replace(RegExp(s,"g"),"."))},t}()}(i)},51414,(t,e,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var s=t.r(44440),r=t.r(49518);function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,s)}return i}function a(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?n(Object(i),!0).forEach(function(e){!function(t,e,i){var s;(e="symbol"==typeof(s=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var s=i.call(t,e||"default");if("object"!=typeof s)return s;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(e,"string"))?s:String(s))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}(t,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))})}return t}function h(){return(h=Object.assign.bind()).apply(this,arguments)}function o(t,e){if(null==t)return{};var i,s,r=function(t,e){if(null==t)return{};var i,s,r={},n=Object.keys(t);for(s=0;s<n.length;s++)i=n[s],e.indexOf(i)>=0||(r[i]=t[i]);return r}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(t,i)&&(r[i]=t[i])}return r}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,s=Array(e);i<e;i++)s[i]=t[i];return s}var u="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement?s.useLayoutEffect:s.useEffect;function c(t){var e=s.useRef(t);return u(function(){e.current=t}),s.useCallback(function(){for(var t=arguments.length,i=Array(t),s=0;s<t;s++)i[s]=arguments[s];return e.current.apply(void 0,i)},[])}var d=function(t,e){var i=e.decimal,s=e.decimals,n=e.duration,a=e.easingFn,h=e.end,o=e.formattingFn,l=e.numerals,u=e.prefix,c=e.separator,d=e.start,f=e.suffix,p=e.useEasing,m=e.useGrouping,g=e.useIndianSeparators,x=e.enableScrollSpy,y=e.scrollSpyDelay,v=e.scrollSpyOnce,b=e.plugin;
106return new r.CountUp(t,h,{startVal:d,duration:n,decimal:i,decimalPlaces:s,easingFn:a,formattingFn:o,numerals:l,separator:c,prefix:u,suffix:f,plugin:b,useEasing:p,useIndianSeparators:g,useGrouping:m,enableScrollSpy:x,scrollSpyDelay:y,scrollSpyOnce:v})},f=["ref","startOnMount","enableReinitialize","delay","onEnd","onStart","onPauseResume","onReset","onUpdate"],p={decimal:".",separator:",",delay:null,prefix:"",suffix:"",duration:2,start:0,decimals:0,startOnMount:!0,enableReinitialize:!0,useEasing:!0,useGrouping:!0,useIndianSeparators:!1},m=function(t){var e=Object.fromEntries(Object.entries(t).filter(function(t){return void 0!==(function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:"u">typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var s,r,n,a,h=[],o=!0,l=!1;try{n=(i=i.call(t)).next,!1;for(;!(o=(s=n.call(i)).done)&&(h.push(s.value),2!==h.length);o=!0);}catch(t){l=!0,r=t}finally{try{if(!o&&null!=i.return&&(a=i.return(),Object(a)!==a))return}finally{if(l)throw r}}return h}}(t,2)||function(t,e){if(t){if("string"==typeof t)return l(t,2);var i=Object.prototype.toString.call(t).slice(8,-1);if("Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return l(t,2)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[1]})),i=s.useMemo(function(){return a(a({},p),e)},[t]),r=i.ref,n=i.startOnMount,h=i.enableReinitialize,u=i.delay,m=i.onEnd,g=i.onStart,x=i.onPauseResume,y=i.onReset,v=i.onUpdate,b=o(i,f),w=s.useRef(),E=s.useRef(),M=s.useRef(!1),A=c(function(){return d("string"==typeof r?r:r.current,b)}),S=c(function(t){var e=w.current;if(e&&!t)return e;var i=A();return w.current=i,i}),_=c(function(){var t=function(){return S(!0).start(function(){null==m||m({pauseResume:C,reset:F,start:j,update:R})})};u&&u>0?E.current=setTimeout(t,1e3*u):t(),null==g||g({pauseResume:C,reset:F,update:R})}),C=c(function(){S().pauseResume(),null==x||x({reset:F,start:j,update:R})}),F=c(function(){S().el&&(E.current&&clearTimeout(E.current),S().reset(),null==y||y({pauseResume:C,start:j,update:R}))}),R=c(function(t){S().update(t),null==v||v({pauseResume:C,reset:F,start:j})}),j=c(function(){F(),_()}),O=c(function(t){n&&(t&&F(),_())});return s.useEffect(function(){M.current?h&&O(!0):(M.current=!0,O())},[h,M,O,u,t.start,t.suffix,t.prefix,t.duration,t.separator,t.decimals,t.decimal,t.formattingFn]),s.useEffect(function(){return function(){F()}},[F]),{start:j,pauseResume:C,reset:F,update:R,getCountUp:S}},g=["className","redraw","containerProps","children","style"];i.default=function(t){var e=t.className,i=t.redraw,r=t.containerProps,n=t.children,l=t.style,u=o(t,g),d=s.useRef(null),f=s.useRef(!1),p=m(a(a({},u),{},{ref:d,startOnMount:"function"!=typeof n||0===t.delay,enableReinitialize:!1})),x=p.start,y=p.reset,v=p.update,b=p.pauseResume,w=p.getCountUp,E=c(function(){x()}),M=c(function(e){t.preserveValue||y(),v(e)}),A=c(function(){"function"!=typeof t.children||d.current instanceof Element?w():console.error('Couldn\'t find attached element to hook the CountUp instance into! Try to attach "containerRef" from the render prop to a an Element, eg. <span ref={containerRef} />.')});s.useEffect(function(){A()},[A]),s.useEffect(function(){f.current&&M(t.end)},[t.end,M]);var S=i&&t;return(s.useEffect(function(){i&&f.current&&E()},[E,i,S]),s.useEffect(function(){!i&&f.current&&E()},[E,i,t.start,t.suffix,t.prefix,t.duration,t.separator,t.decimals,t.decimal,t.className,t.formattingFn]),s.useEffect(function(){f.current=!0},[]),"function"==typeof n)?n({countUpRef:d,start:x,reset:y,update:v,pauseResume:b,getCountUp:w}):s.createElement("span",h({className:e,ref:d,style:l},r),void 0!==t.start?w().formattingFn(t.start):"")},i.useCountUp=m},93237,t=>{"use strict";t.i(17141);var e=t.i(87433),i=t.i(44440),s=t.i(62924),r=t.i(30507),n=t.i(36147),a=t.i(1274),h=t.i(51414),o=t.i(10675);function l({funded:t,target:i,percentage:s}){let n=(0,o.useTranslations)("prs");return(0,e.jsxs)(r.motion.div,{className:"mt-8",initial:{opacity:0}
106,whileInView:{opacity:1},transition:{delay:.3},children:[(0,e.jsxs)("div",{className:"flex justify-between text-sm mb-2",children:[(0,e.jsx)("span",{className:"font-semibold text-gray-800",children:n("donationProgress")}),(0,e.jsxs)("span",{className:"text-gray-600",children:["â¬",(0,e.jsx)(h.default,{end:t,duration:2,separator:",",enableScrollSpy:!0})," / â¬",i.toLocaleString()]})]}),(0,e.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-4 overflow-hidden",children:(0,e.jsx)(r.motion.div,{className:"bg-green-500 h-4",initial:{width:"0%"},whileInView:{width:`${s}%`},transition:{duration:2,ease:"easeInOut"}})}),(0,e.jsxs)("p",{className:"mt-2 text-xs text-gray-500",children:[(0,e.jsx)(h.default,{end:s,duration:2,enableScrollSpy:!0}),"% "+n("funded")]})]})}var u=t.i(31395),c=t.i(89489),d=t.i(9693),f=t.i(64419),p=t.i(47327),m=i,g=t.i(44592);function x(t,e){if("function"==typeof t)return t(e);null!=t&&(t.current=e)}class y extends m.Component{getSnapshotBeforeUpdate(t){let e=this.props.childRef.current;if(e&&t.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let t=e.offsetParent,i=(0,p.isHTMLElement)(t)&&t.offsetWidth||0,s=(0,p.isHTMLElement)(t)&&t.offsetHeight||0,r=this.props.sizeRef.current;r.height=e.offsetHeight||0,r.width=e.offsetWidth||0,r.top=e.offsetTop,r.left=e.offsetLeft,r.right=i-r.width-r.left,r.bottom=s-r.height-r.top}return null}componentDidUpdate(){}render(){return this.props.children}}function v({children:t,isPresent:s,anchorX:r,anchorY:n,root:a,pop:h}){let o=(0,m.useId)(),l=(0,m.useRef)(null),u=(0,m.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:c}=(0,m.useContext)(g.MotionConfigContext),d=function(...t){return i.useCallback(function(...t){return e=>{let i=!1,s=t.map(t=>{let s=x(t,e);return i||"function"!=typeof s||(i=!0),s});if(i)return()=>{for(let e=0;e<s.length;e++){let i=s[e];"function"==typeof i?i():x(t[e],null)}}}}(...t),t)}(l,t.props?.ref??t?.ref);return(0,m.useInsertionEffect)(()=>{let{width:t,height:e,top:i,left:d,right:f,bottom:p}=u.current;if(s||!1===h||!l.current||!t||!e)return;let m="left"===r?`left: ${d}`:`right: ${f}`,g="bottom"===n?`bottom: ${p}`:`top: ${i}`;l.current.dataset.motionPopId=o;let x=document.createElement("style");c&&(x.nonce=c);let y=a??document.head;return y.appendChild(x),x.sheet&&x.sheet.insertRule(` 107 [data-motion-pop-id="${o}"] { 108 position: absolute !important; 109 width: ${t}px !important; 110 height: ${e}px !important; 111 ${m}px !important; 112 ${g}px !important; 113 } 114 `),()=>{y.contains(x)&&y.removeChild(x)}},[s]),(0,e.jsx)(y,{isPresent:s,childRef:l,sizeRef:u,pop:h,children:!1===h?t:m.cloneElement(t,{ref:d})})}let b=({children:t,initial:s,isPresent:r,onExitComplete:n,custom:a,presenceAffectsLayout:h,mode:o,anchorX:l,anchorY:u,root:d})=>{let p=(0,c.useConstant)(w),m=(0,i.useId)(),g=!0,x=(0,i.useMemo)(()=>(g=!1,{id:m,initial:s,isPresent:r,custom:a,onExitComplete:t=>{for(let e of(p.set(t,!0),p.values()))if(!e)return;n&&n()},register:t=>(p.set(t,!1),()=>p.delete(t))}),[r,p,n]);return h&&g&&(x={...x}),(0,i.useMemo)(()=>{p.forEach((t,e)=>p.set(e,!1))},[r]),i.useEffect(()=>{r||p.size||!n||n()},[r]),t=(0,e.jsx)(v,{pop:"popLayout"===o,isPresent:r,anchorX:l,anchorY:u,root:d,children:t}),(0,e.jsx)(f.PresenceContext.Provider,{value:x,children:t})};function w(){return new Map}var E=t.i(67801);let M=t=>t.key||"";function A(t){let e=[];return i.Children.forEach(t,t=>{(0,i.isValidElement)(t)&&e.push(t)}),e}let S=({children:t,custom:s,initial:r=!0,onExitComplete:n,presenceAffectsLayout:a=!0,mode:h="sync",propagate:o=!1,anchorX:l="left",anchorY:f="top",root:p})=>{let[m,g]=(0,E.usePresence)(o),x=(0,i.useMemo)(()=>A(t),[t]),y=o&&!m?[]:x.map(M),v=(0,i.useRef)(!0),w=(0,i.useRef)(x),S=(0,c.useConstant)(()=>new Map),_=(0,i.useRef)(new Set),[C,F]=(0,i.useState)(x),[R,j]=(0,i.useState)(x);(0,d.useIsomorphicLayoutEffect)(()=>{v.current=!1,w.current=x;for(let t=0;t<R.length;t++){let e=M(R[t]);y.includes(e)?(S.delete(e),_.current.delete(e)):!0!==S.get(e)&&S.set(e,!1)}},[R,y.length,y.join("-")]);let O=[];if(x!==C){let t=[...x];for(let e=0;e<R.length;e++){let i=R[e],s=M(i);y.includes(s)||(t.splice(e,0,i),O.push(i))}return"wait"===h&&O.length&&(t=O),j(A(t)),F(x),null}let{forceRender:N}=(0,i.useContext)(u.LayoutGroupContext);return(0,e.jsx)(e.Fragment,{children:R.map(t=>{let i=M(t),u=(!o||!!m)&&(x===R||y.includes(i));return(0,e.jsx)(b,{isPresent:u,initial:(!v.current||!!r)&&void 0,custom:s,presenceAffectsLayout:a,mode:h,root:p,onExitComplete:u?void 0:()=>
114{if(_.current.has(i)||(_.current.add(i),!S.has(i)))return;S.set(i,!0);let t=!0;S.forEach(e=>{e||(t=!1)}),t&&(N?.(),j(w.current),o&&g?.(),n&&n())},anchorX:l,anchorY:f,children:t},i)})})};var _=t.i(5502);let C=(0,t.i(31763).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var F=t.i(92013),R=t.i(67881),j=t.i(23762);function O({paypalUrl:t,paypalHostId:n,isDevelopment:a,vzw:h,locale:l,payments:u=[]}){let c=(0,o.useTranslations)("prs"),d=(0,s.useRouter)(),[f,p]=(0,i.useState)(!1),[m,g]=(0,i.useState)(null),x=(0,i.useMemo)(()=>u.map(t=>{let e=t.paymentInfo.filter(t=>"paragraph"===t.type).map(e=>{let i=e.children.map(t=>t.text).join("").trim();if(!i)return null;let s=i.indexOf(":");if(-1===s)return{label:t.paymentType,value:i};let r=i.slice(0,s).trim(),n=i.slice(s+1).trim();return{label:r||t.paymentType,value:n||i}}).filter(t=>null!==t);return{id:t.id,paymentType:t.paymentType,description:t.description?.trim()||"",rows:e}}),[u]),y=async(t,e)=>{try{await navigator.clipboard.writeText(t),g(e),setTimeout(()=>{g(t=>t===e?null:t)},1600)}catch{g(null)}};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex flex-wrap gap-2 mt-6 items-center",children:[(0,e.jsxs)("div",{className:"flex items-stretch",children:[(0,e.jsxs)("form",{action:t,method:"post",target:"_blank",children:[a&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("input",{type:"hidden",name:"cmd",value:"_s-xclick"}),(0,e.jsx)("input",{type:"hidden",name:"hosted_button_id",value:n}),(0,e.jsx)("input",{type:"hidden",name:"item_name",value:h})]}),(0,e.jsxs)(R.Button,{type:"submit",name:"submit",variant:"outline",className:x.length>0?"rounded-r-none border-r-0 flex items-center gap-2":"flex items-center gap-2",children:[(0,e.jsx)(r.motion.div,{animate:{scale:[1,1.3,1]},transition:{duration:1,repeat:1/0,repeatType:"loop",ease:"easeInOut"},children:(0,e.jsx)(_.FaHeart,{className:"text-red-500"})}),c("donateNow")]})]}),x.length>0&&(0,e.jsx)(R.Button,{type:"button",variant:"outline",size:"icon",className:"rounded-l-none",onClick:()=>p(!0),"aria-label":c("paymentInfoButton"),title:c("paymentInfoButton"),children:(0,e.jsx)(C,{className:"text-gray-700"})})]}),(0,e.jsx)(R.Button,{variant:"ghost",className:"text-black border border-gray-400",onClick:()=>d.push(`/${l}/donation`),children:c("viewOtherDonations")})]}),(0,e.jsx)(S,{children:f&&(0,e.jsx)(r.motion.div,{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/45 px-4",initial:{opacity:0}
114,animate:{opacity:1},exit:{opacity:0},onClick:()=>p(!1),children:(0,e.jsxs)(r.motion.div,{className:"w-full max-w-xl rounded-2xl bg-white p-5 shadow-xl",initial:{opacity:0,y:16,scale:.98},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:10,scale:.98},transition:{duration:.2,ease:"easeOut"},onClick:t=>t.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":c("paymentInfoTitle"),children:[(0,e.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:c("paymentInfoTitle")}),(0,e.jsx)("p",{className:"text-sm text-gray-500",children:c("paymentInfoSubtitle")})]}),(0,e.jsx)(R.Button,{type:"button",variant:"ghost",size:"icon",className:"rounded-full",onClick:()=>p(!1),"aria-label":c("closeDialog"),children:(0,e.jsx)(F.X,{className:"text-gray-600"})})]}),(0,e.jsx)("div",{className:"max-h-[62vh] space-y-3 overflow-auto pr-1",children:x.map(t=>(0,e.jsxs)("div",{className:"rounded-xl border border-gray-200 bg-gray-50 p-3",children:[(0,e.jsx)("p",{className:"mb-2 text-sm font-semibold text-gray-800",children:t.paymentType}),t.rows.map((i,s)=>{let r=`${t.id}-${s}`,n=m===r;return(0,e.jsx)(j.LabelValueCopyRow,{label:i.label,value:i.value,isCopied:n,onCopy:()=>y(i.value,r)},r)}),t.description&&(0,e.jsx)(j.LabelValueCopyRow,{label:c("paymentDescriptionLabel"),value:t.description,isCopied:m===`${t.id}-description`,onCopy:()=>y(t.description,`${t.id}-description`)})]},t.id))})]})})})]})}var N=t.i(96027);function T({imageUrl:t}){let i=(0,o.useTranslations)("prs");return(0,e.jsx)(r.motion.div,{className:"relative w-full max-w-64 sm:max-w-72 md:max-w-80 lg:max-w-96 aspect-square mx-auto",variants:{hidden:{opacity:0,y:50},visible:{opacity:1,y:0}},children:(0,e.jsx)(N.default,{src:t,alt:i("imageAlt"),fill:!0,className:"object-fit",priority:!0})})}function V({donationProgress:t}){let h=(0,s.useParams)().locale,o=t?.headline||"",u=t?.subHeadline||"",c=t?.targetDonation||0,d=t?.currentDonation||0,f=t?.Payments||[],p=c?Math.round(d/c*100):0,m=t?.VZW||"prs",[g,x]=(0,i.useState)(""),[y,v]=(0,i.useState)(""),[b,w]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let t=!0;return(async()=>{try{let e=await (0,a.loadRuntimeConfig)();t&&(x(e.paypalHostId||""),v(e.paypalUrl||""),w(!!e.isDevelopment))}catch{t&&(x(""),v(""))}})(),()=>{t=!1}},[]),(0,e.jsx)("section",{id:"prs",className:"relative min-h-dvh bg-pink-50 font-questrial px-4 py-20 sm:px-6 lg:px-8 md:py-24 flex flex-col items-center justify-center",children:(0,e.jsx)(n.default,{children:(0,e.jsxs)(r.motion.div,{className:"max-w-6xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-10 items-center",initial:"hidden",whileInView:"visible",viewport:{amount:.3},transition:{staggerChildren:.2},children:[(0,e.jsxs)(r.motion.div,{className:"space-y-6",variants:{hidden:{opacity:0,y:50},visible:{opacity:1,y:0}},children:[(0,e.jsx)("h2",{className:"text-4xl",children:o}),(0,e.jsx)("p",{className:"max-w-2xl mx-auto",children:u}),(0,e.jsx)(l,{funded:d,target:c,percentage:p}),(0,e.jsx)(O,{paypalUrl:y,paypalHostId:g,isDevelopment:b,vzw:m,locale:h,payments:f})]}),(0,e.jsx)(T,{imageUrl:t?.image?.url||"/images/hero-bg.webp"})]})})})}t.s(["default",()=>V],93237)}]);
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.