{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/zcP3DfOfFq5V463bve8J/VjguKhikqxofBbirrhPa/Shaders.js", "ssg:https://framerusercontent.com/modules/aMsK6CNjX9ZnfnxqKyTy/pBdOl7XbI45LdtZSPQr7/WebGL.js", "ssg:https://framerusercontent.com/modules/NS4mh6PSdgX8zFAbDHXV/ybEncn5ExmoWEHXb2Zoc/Glass.js", "ssg:https://framerusercontent.com/modules/0TujfCmMMvzkslyiolOc/XlJlW3p1zaGZnzqFArvY/YiuvyOlMv.js"],
  "sourcesContent": ["// Vertex Shader\nexport const vertexShader=`\n  uniform vec2 uMediaSize;\n  uniform vec2 uPlaneSize;\n  varying vec2 vUv;\n  varying vec2 vTextureCoord;\n\n  void main() {\n    vUv = uv;\n    \n    vec2 ratio = uPlaneSize / uMediaSize;\n    float scale = max(ratio.x, ratio.y);\n    \n    vec2 scaledMediaSize = uMediaSize * scale;\n    \n    vTextureCoord = (uv - 0.5) * (uPlaneSize / scaledMediaSize) + 0.5;\n    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n  }\n`;export const fragmentShader=`\n  uniform sampler2D uTexture;\n  uniform float uProgress;\n  uniform float uStripeCount;\n  uniform float uDistortionStrength;\n  uniform bool uEnableFadeIn;\n  uniform bool uLight;\n  uniform float uAngle;\n  uniform float uAlpha;\n  uniform bool uFixEffect;    // New: Control whether distortion reduces with progress\n  uniform bool uMove;         // New: Enable movement of distortion\n  uniform bool uReverse;      // New: Control movement direction\n  uniform float uOffset;      // New: Control movement speed/distance\n  varying vec2 vTextureCoord;\n\n  float random(vec2 st) {\n    return fract(sin(dot(st.xy, vec2(12.9898, 78.233))) * 43758.5453123);\n  }\n\n  vec2 rotate2D(vec2 position, float angle) {\n    float s = sin(angle);\n    float c = cos(angle);\n    mat2 rotationMatrix = mat2(c, -s, s, c);\n    return rotationMatrix * position;\n  }\n\n  void main() {\n    vec2 uv = vTextureCoord;\n    \n    // Center the UV coordinates\n    vec2 centeredUv = uv - 0.5;\n    \n    // Rotate the centered coordinates\n    vec2 rotatedUv = rotate2D(centeredUv, uAngle);\n    \n    // Shift back\n    rotatedUv += 0.5;\n\n    // Calculate movement offset based on progress\n    float moveOffset = 0.0;\n    if (uMove) {\n      moveOffset = uReverse ? -uProgress * uOffset : uProgress * uOffset;\n    }\n    \n    // Apply movement to rotated UV before stripe calculation\n    float adjustedX = rotatedUv.x + moveOffset;\n    \n    // Calculate stripe position with movement\n    float stripeIndex = floor(adjustedX * uStripeCount);\n    float stripePosition = fract(adjustedX * uStripeCount);\n\n    // Generate a random offset for each stripe\n    float randomOffset = (random(vec2(stripeIndex, 0.0)) - 0.5) * 2.0;\n\n    // Calculate the distortion strength based on uFixEffect\n    float effectiveStrength = uFixEffect ? 1.0 : (1.0 - uProgress);\n\n    // Calculate the bidirectional bulge effect with modified strength\n    float bulge = sin(stripePosition * 3.14159 * 2.0) * uDistortionStrength * effectiveStrength;\n\n    // Calculate rotated refraction offset\n    vec2 refractionBase = vec2(bulge * 0.1, 0.0);\n    vec2 refractionOffset = rotate2D(refractionBase, uAngle);\n\n    // Apply distortions to UV coordinates\n    vec2 distortedUv = uv + refractionOffset;\n\n    // Add a subtle shift based on the bulge (respecting rotation)\n    vec2 shiftBase = vec2(randomOffset * bulge * 0.02, 0.0);\n    vec2 rotatedShift = rotate2D(shiftBase, uAngle);\n    distortedUv += rotatedShift;\n\n    // Create a subtle discontinuity effect (rotated)\n    float discontinuity = smoothstep(0.98, 1.0, stripePosition) * 0.01 * effectiveStrength;\n    vec2 discontinuityOffset = rotate2D(vec2(discontinuity, 0.0), uAngle);\n    distortedUv += discontinuityOffset;\n\n    // Sample the texture with distorted coordinates\n    vec4 texColor = texture2D(uTexture, distortedUv);\n\n    // Subtle highlight effect based on the bulge and uLight uniform\n    if (uLight) {\n      float highlightIntensity = pow(abs(bulge), 3.0) * 0.8;\n      texColor.rgb += vec3(highlightIntensity);\n    }\n\n    // Calculate distortion magnitude for alpha control\n    float distortionMagnitude = abs(bulge) / uDistortionStrength;\n    \n    // Calculate alpha based on distortion magnitude and uAlpha\n    float alpha = 1.0;\n    if (uEnableFadeIn) {\n      float distortionFactor = smoothstep(0.0, 1.0, distortionMagnitude);\n      float threshold = mix(1.0, 0.0, distortionFactor);\n      alpha = smoothstep(threshold - 0.2, threshold + 0.2, uAlpha);\n      alpha *= uAlpha;\n    }\n\n    texColor.a *= alpha;\n    gl_FragColor = texColor;\n  }\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"fragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"vertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shaders.map", "import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useState,useCallback,useMemo}from\"react\";import{useMotionValue,animate,useAnimationFrame,useMotionValueEvent}from\"framer-motion\";import{RenderTarget}from\"framer\";import{vertexShader,fragmentShader}from\"https://framerusercontent.com/modules/zcP3DfOfFq5V463bve8J/VjguKhikqxofBbirrhPa/Shaders.js\";import{useMediaLoader,usePanelSize,useWebGLSetup,useWebGLInitialization,useScrollAnimation,checkDrawState}from\"https://framerusercontent.com/modules/XY6c75OfbrZTbomptgju/DEOnlmQN7iCZ68VZg0AS/Utils.js\";export const WebGL=({mediaType,src,loop,transition,distortionStrength,stripeCount,angle,refraction,advance,sizeType,setScale,setRatio,animateProp,onMediaLoad,onVideoEnd,onAnimationStart,onAnimationEnd})=>{const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const mountRef=useRef(null);const[animationEnd,setAnimationEnd]=useState(false);const[draw,setDraw]=useState(false);const{media,mediaSize,mediaLoaded,videoState,handleVideoPlayback}=useMediaLoader(mediaType,src,loop);// \u89E6\u53D1 onLoad \u56DE\u8C03\nuseEffect(()=>{if(mediaLoaded){onMediaLoad===null||onMediaLoad===void 0?void 0:onMediaLoad();}},[mediaLoaded,onMediaLoad]);// \u89E6\u53D1 onVideoEnd \u56DE\u8C03\nuseEffect(()=>{if(mediaLoaded&&videoState===\"pause\"){onVideoEnd===null||onVideoEnd===void 0?void 0:onVideoEnd();console.log(videoState);}},[videoState,onVideoEnd]);// \u914D\u7F6E\u5A92\u4F53\u5C3A\u5BF8\nconst{panelSize,isResizing}=usePanelSize(mountRef,sizeType,mediaSize,setScale,setRatio);function degToRad(degrees){return degrees*(Math.PI/180);}// \u914D\u7F6EUniforms\nconst initialUniforms=useMemo(()=>({uProgress:{value:0},uStripeCount:{value:stripeCount},uDistortionStrength:{value:distortionStrength},uAlpha:{value:isOnCanvas?1:0},uEnableFadeIn:{value:animateProp.enable?animateProp.fadeIn:false},uLight:{value:refraction},uAngle:{value:degToRad(angle)},uFixEffect:{value:advance.keepEffect},uMove:{value:advance.move},uReverse:{value:advance.reverse},uOffset:{value:advance.speed}}),[stripeCount,distortionStrength,refraction,angle,animateProp]);// \u914D\u7F6EWebGL\u573A\u666F\nconst{sceneRef,rendererRef,cameraRef,materialRef,geometryRef}=useWebGLSetup(mountRef,{media,mediaSize,panelSize,vertexShader,fragmentShader,uniforms:initialUniforms});// \u68C0\u67E5\u521D\u59CB\u5316\u6761\u4EF6\nconst{isInitialized,initError}=useWebGLInitialization({mediaLoaded,sceneRef,rendererRef,cameraRef,materialRef,geometryRef});// \u914D\u7F6E\u6EDA\u52A8\u52A8\u753B\nconst{isVisible,inView,scrollYProgress}=useScrollAnimation(mountRef,animateProp);// \u63A7\u5236\u52A8\u753B\u8FDB\u5EA6\nconst progressValue=useMotionValue(0);const animateValues=useCallback((progress,transform)=>{if(transform){animate(progressValue,progress,{...transition,restDelta:.01,restSpeed:.01});}else{animate(progressValue,progress,{...transition,restDelta:.001,restSpeed:.001});}},[transition]);// \u89E6\u53D1\u52A8\u753B\nuseEffect(()=>{if(!isInitialized)return;if(!animateProp.enable){progressValue.set(0);return;}const isInView=animateProp.type===\"appear\"||animateProp.type===\"enter\"&&inView;const targetProgress=animateProp.target?isInView?animateProp.progress:0:isInView?1:0;if(animateProp.type!==\"transform\"){animateValues(targetProgress,false);}},[mediaLoaded,animateProp,inView,animateValues,isInitialized]);useEffect(()=>{if(!isInitialized)return;if(animateProp.type===\"transform\"){progressValue.set(scrollYProgress.get());}},[mediaLoaded,animateProp,isInitialized]);useMotionValueEvent(scrollYProgress,\"change\",latest=>{if(isInitialized&&animateProp.type===\"transform\"){animateValues(latest,true);}});// \u662F\u5426\u5E94\u8BE5\u5F00\u59CB\u7ED8\u5236\u6548\u679C\nuseMotionValueEvent(progressValue,\"animationStart\",()=>{if(isInitialized&&animateProp.type!==\"transform\"){setAnimationEnd(false);onAnimationStart===null||onAnimationStart===void 0?void 0:onAnimationStart();}});useMotionValueEvent(progressValue,\"animationComplete\",()=>{if(isInitialized&&animateProp.type!==\"transform\"){setAnimationEnd(true);onAnimationEnd===null||onAnimationEnd===void 0?void 0:onAnimationEnd();}});useMotionValueEvent(progressValue,\"change\",latest=>{if(isInitialized&&animateProp.type===\"transform\"){const shouldDraw=checkDrawState({videoState,isResizing,animateProp,progress:latest,animationEnd});setDraw(shouldDraw);// console.log(\"scroll progress updated:\", latest, \"draw:\", shouldDraw)\n}});useEffect(()=>{const shouldDraw=checkDrawState({videoState,isResizing,animateProp,progress:scrollYProgress.get(),animationEnd});setDraw(shouldDraw);},[animationEnd,isResizing,videoState,animateProp.type]);// \u5904\u7406\u89C6\u9891\u64AD\u653E\nuseEffect(()=>{if(mediaType===\"video\"&&isInitialized&&!isOnCanvas){const shouldPlay=isVisible&&(animateProp.type===\"appear\"||animateProp.type===\"enter\"&&inView||animateProp.type===\"transform\"&&inView);if(shouldPlay){if((transition===null||transition===void 0?void 0:transition.delay)||transition.delay===0){if(animationEnd){handleVideoPlayback(true);}else{const timeoutId=setTimeout(()=>{handleVideoPlayback(true);},transition.delay*1e3);return()=>clearTimeout(timeoutId);}handleVideoPlayback(true);}}else{handleVideoPlayback(false);}}},[mediaType,isInitialized,animateProp,inView,isVisible,isOnCanvas,transition]);// \u52A8\u753B\u5E27\u66F4\u65B0\nuseAnimationFrame(t=>{if(!isInitialized||isOnCanvas||!isVisible)return;if(draw){const uniforms=materialRef.current.uniforms;uniforms.uProgress.value=progressValue.get();uniforms.uAlpha.value=animateProp.fadeIn?progressValue.get()*3:1;if(mediaType===\"video\"&&media){uniforms.uTexture.value.needsUpdate=true;}rendererRef.current.render(sceneRef.current,cameraRef.current);}});return /*#__PURE__*/_jsx(\"div\",{ref:mountRef,style:{display:\"flex\",width:\"100%\",height:\"100%\",justifyContent:\"center\",alignItems:\"center\",overflow:\"hidden\"}});};\nexport const __FramerMetadata__ = {\"exports\":{\"WebGL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WebGL.map", "import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{WebGL}from\"https://framerusercontent.com/modules/aMsK6CNjX9ZnfnxqKyTy/pBdOl7XbI45LdtZSPQr7/WebGL.js\";import{containerStyle,webGLContainerStyle,hiddenStyle}from\"https://framerusercontent.com/modules/B8C86sFFn4z8EDjUM2Eg/IGczZdkki35ozWx5McID/Styles.js\";import{useMediaSource,universalPropertyControls}from\"https://framerusercontent.com/modules/XY6c75OfbrZTbomptgju/DEOnlmQN7iCZ68VZg0AS/Utils.js\";/**\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 800\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Glass(props){const{media,file,upImage,urlVideo,upVideo,defaultImage,darkImage,dark,loop,size,stripeCount,distortion,angle,refraction,advance,animateProp,transition,onMediaLoad,onVideoEnd,onAnimationStart,onAnimationEnd}=props;const{imageAlt,mediaSrc,mediaType}=useMediaSource(media,file,upImage,urlVideo,upVideo,defaultImage,darkImage,dark);return /*#__PURE__*/_jsxs(\"figure\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:webGLContainerStyle,\"aria-label\":imageAlt,role:\"img\",children:/*#__PURE__*/_jsx(WebGL,{mediaType:mediaType,src:mediaSrc,loop:loop,transition:transition,distortionStrength:distortion,stripeCount:stripeCount,angle:angle,refraction:refraction,advance:advance,sizeType:size.type,setScale:size.scale,setRatio:size.ratio,animateProp:animateProp,onMediaLoad:onMediaLoad,onVideoEnd:onVideoEnd,onAnimationStart:onAnimationStart,onAnimationEnd:onAnimationEnd})}),/*#__PURE__*/_jsx(\"figcaption\",{style:hiddenStyle,children:imageAlt})]});}Glass.displayName=\"Reeded Glass\";addPropertyControls(Glass,{...universalPropertyControls.media,...universalPropertyControls.size,stripeCount:{type:ControlType.Number,title:\"Stripe\",displayStepper:true,step:1,max:200,min:0,defaultValue:40},distortion:{type:ControlType.Number,title:\"Distortion\",displayStepper:true,step:.1,max:1,min:0,defaultValue:.5},angle:{type:ControlType.Number,title:\"Angle\",displayStepper:true,step:1,max:360,min:0,unit:\"\\xb0\",defaultValue:0},refraction:{type:ControlType.Boolean,title:\"Refraction\",defaultValue:false},advance:{type:ControlType.Object,title:\"Advance\",buttonTitle:\"Move\",icon:\"effect\",controls:{move:{type:ControlType.Boolean,title:\"Move\",defaultValue:false},speed:{type:ControlType.Number,title:\"Speed\",displayStepper:true,step:.1,max:1,min:0,defaultValue:.1,hidden(props){return props.move===false;}},keepEffect:{type:ControlType.Boolean,title:\"Keep Distorting\",defaultValue:false,hidden(props){return props.move===false;}},reverse:{type:ControlType.Boolean,title:\"Reverse\",defaultValue:false,hidden(props){return props.move===false;}}}},animateProp:{type:ControlType.Object,title:\"Animate\",icon:\"effect\",controls:{...universalPropertyControls.animateControls,fadeIn:{type:ControlType.Boolean,title:\"Fade In\",defaultValue:false},target:{type:ControlType.Boolean,title:\"Target Mode\",defaultValue:false,hidden(props){if(!props.enable){return true;}return props.type!==\"enter\"&&props.type!==\"appear\";}},progress:{type:ControlType.Number,title:\"Progress\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,hidden(props){if(!props.enable||props.target===false){return true;}return props.type!==\"enter\"&&props.type!==\"appear\";}}}},transition:{type:ControlType.Transition,title:\"Transition\",description:\"Learn more on [Reveals](https://reveals.cool).\",defaultValue:{ease:\"linear\",duration:2}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Glass\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"800\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Glass.map", "// Generated by Framer (99bc0fd)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Clash Grotesk-medium\",\"FS;Clash Grotesk-bold\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Clash Grotesk\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/2SAK53YLUN7RMYJU4MYLSBV6SSSJEJZB/RXS4DPGJRKOUFZMF5X5BVUGNNKJT65XZ/DJS4RYGIUYUXJQOHY5VCZPKSTXUSHTSP.woff2\",weight:\"500\"},{family:\"Clash Grotesk\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/P6VJ47S3OYMUC7HYSJLTK7PEIK5O2NPQ/TK62VLUWA76PMTK2XWBNDZB7QVXJGYE3/I5W5NEJGYVFUC5I4XOXVET63OE5PSVHJ.woff2\",weight:\"700\"}]}];export const css=['.framer-prub0 .framer-styles-preset-17lgga0:not(.rich-text-wrapper), .framer-prub0 .framer-styles-preset-17lgga0.rich-text-wrapper p { --framer-font-family: \"Clash Grotesk\", \"Clash Grotesk Placeholder\", sans-serif; --framer-font-family-bold: \"Clash Grotesk\", \"Clash Grotesk Placeholder\", sans-serif; --framer-font-open-type-features: \\'salt\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: 0em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.2); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-prub0 .framer-styles-preset-17lgga0:not(.rich-text-wrapper), .framer-prub0 .framer-styles-preset-17lgga0.rich-text-wrapper p { --framer-font-family: \"Clash Grotesk\", \"Clash Grotesk Placeholder\", sans-serif; --framer-font-family-bold: \"Clash Grotesk\", \"Clash Grotesk Placeholder\", sans-serif; --framer-font-open-type-features: \\'salt\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: 0em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.2); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-prub0 .framer-styles-preset-17lgga0:not(.rich-text-wrapper), .framer-prub0 .framer-styles-preset-17lgga0.rich-text-wrapper p { --framer-font-family: \"Clash Grotesk\", \"Clash Grotesk Placeholder\", sans-serif; --framer-font-family-bold: \"Clash Grotesk\", \"Clash Grotesk Placeholder\", sans-serif; --framer-font-open-type-features: \\'salt\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: 0em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.2); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-prub0\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "8SACO,IAAMA,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBXC,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECnB2hB,IAAMC,GAAM,CAAC,CAAC,UAAAC,EAAU,IAAAC,EAAI,KAAAC,EAAK,WAAAC,EAAW,mBAAAC,EAAmB,YAAAC,EAAY,MAAAC,EAAM,WAAAC,EAAW,QAAAC,EAAQ,SAAAC,EAAS,SAAAC,EAAS,SAAAC,EAAS,YAAAC,EAAY,YAAAC,EAAY,WAAAC,EAAW,iBAAAC,EAAiB,eAAAC,CAAc,IAAI,CAAC,IAAMC,EAAWC,EAAa,QAAQ,IAAIA,EAAa,OAAaC,EAASC,GAAO,IAAI,EAAO,CAACC,EAAaC,CAAe,EAAEC,EAAS,EAAK,EAAO,CAACC,EAAKC,CAAO,EAAEF,EAAS,EAAK,EAAO,CAAC,MAAAG,EAAM,UAAAC,EAAU,YAAAC,EAAY,WAAAC,EAAW,oBAAAC,CAAmB,EAAEC,GAAe/B,EAAUC,EAAIC,CAAI,EACphC8B,EAAU,IAAI,CAAIJ,GAA6Df,IAAY,CAAG,EAAE,CAACe,EAAYf,CAAW,CAAC,EACzHmB,EAAU,IAAI,CAAIJ,GAAaC,IAAa,UAAuDf,IAAW,EAAE,QAAQ,IAAIe,CAAU,EAAG,EAAE,CAACA,EAAWf,CAAU,CAAC,EAClK,GAAK,CAAC,UAAAmB,GAAU,WAAAC,CAAU,EAAEC,GAAahB,EAASV,EAASkB,EAAUjB,EAASC,CAAQ,EAAE,SAASyB,GAASC,EAAQ,CAAC,OAAOA,GAAS,KAAK,GAAG,IAAK,CAChJ,IAAMC,GAAgBC,GAAQ,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAMlC,CAAW,EAAE,oBAAoB,CAAC,MAAMD,CAAkB,EAAE,OAAO,CAAC,MAAMa,EAAW,EAAE,CAAC,EAAE,cAAc,CAAC,MAAML,EAAY,OAAOA,EAAY,OAAO,EAAK,EAAE,OAAO,CAAC,MAAML,CAAU,EAAE,OAAO,CAAC,MAAM6B,GAAS9B,CAAK,CAAC,EAAE,WAAW,CAAC,MAAME,EAAQ,UAAU,EAAE,MAAM,CAAC,MAAMA,EAAQ,IAAI,EAAE,SAAS,CAAC,MAAMA,EAAQ,OAAO,EAAE,QAAQ,CAAC,MAAMA,EAAQ,KAAK,CAAC,GAAG,CAACH,EAAYD,EAAmBG,EAAWD,EAAMM,CAAW,CAAC,EAC3d,CAAC,SAAA4B,EAAS,YAAAC,EAAY,UAAAC,EAAU,YAAAC,EAAY,YAAAC,EAAW,EAAEC,GAAc1B,EAAS,CAAC,MAAAO,EAAM,UAAAC,EAAU,UAAAM,GAAU,aAAAa,GAAa,eAAAC,GAAe,SAAST,EAAe,CAAC,EAChK,CAAC,cAAAU,EAAc,UAAAC,EAAS,EAAEC,GAAuB,CAAC,YAAAtB,EAAY,SAAAY,EAAS,YAAAC,EAAY,UAAAC,EAAU,YAAAC,EAAY,YAAAC,EAAW,CAAC,EACrH,CAAC,UAAAO,EAAU,OAAAC,EAAO,gBAAAC,CAAe,EAAEC,GAAmBnC,EAASP,CAAW,EACzE2C,EAAcC,GAAe,CAAC,EAAQC,EAAcC,GAAY,CAACC,EAASC,IAAY,CAAIA,EAAWC,EAAQN,EAAcI,EAAS,CAAC,GAAGxD,EAAW,UAAU,IAAI,UAAU,GAAG,CAAC,EAAQ0D,EAAQN,EAAcI,EAAS,CAAC,GAAGxD,EAAW,UAAU,KAAK,UAAU,IAAI,CAAC,CAAG,EAAE,CAACA,CAAU,CAAC,EAC1R,OAAA6B,EAAU,IAAI,CAAC,GAAG,CAACgB,EAAc,OAAO,GAAG,CAACpC,EAAY,OAAO,CAAC2C,EAAc,IAAI,CAAC,EAAE,OAAQ,IAAMO,EAASlD,EAAY,OAAO,UAAUA,EAAY,OAAO,SAASwC,EAAaW,EAAenD,EAAY,OAAOkD,EAASlD,EAAY,SAAS,EAAEkD,EAAS,EAAE,EAAKlD,EAAY,OAAO,aAAa6C,EAAcM,EAAe,EAAK,CAAG,EAAE,CAACnC,EAAYhB,EAAYwC,EAAOK,EAAcT,CAAa,CAAC,EAAEhB,EAAU,IAAI,CAAKgB,GAAwBpC,EAAY,OAAO,aAAa2C,EAAc,IAAIF,EAAgB,IAAI,CAAC,CAAG,EAAE,CAACzB,EAAYhB,EAAYoC,CAAa,CAAC,EAAEgB,EAAoBX,EAAgB,SAASY,GAAQ,CAAIjB,GAAepC,EAAY,OAAO,aAAa6C,EAAcQ,EAAO,EAAI,CAAG,CAAC,EAC9qBD,EAAoBT,EAAc,iBAAiB,IAAI,CAAIP,GAAepC,EAAY,OAAO,cAAaU,EAAgB,EAAK,EAA4DP,IAAiB,EAAG,CAAC,EAAEiD,EAAoBT,EAAc,oBAAoB,IAAI,CAAIP,GAAepC,EAAY,OAAO,cAAaU,EAAgB,EAAI,EAAwDN,IAAe,EAAG,CAAC,EAAEgD,EAAoBT,EAAc,SAASU,GAAQ,CAAC,GAAGjB,GAAepC,EAAY,OAAO,YAAY,CAAC,IAAMsD,EAAWC,EAAe,CAAC,WAAAtC,EAAW,WAAAK,EAAW,YAAAtB,EAAY,SAASqD,EAAO,aAAA5C,CAAY,CAAC,EAAEI,EAAQyC,CAAU,EACznB,CAAC,EAAElC,EAAU,IAAI,CAAC,IAAMkC,EAAWC,EAAe,CAAC,WAAAtC,EAAW,WAAAK,EAAW,YAAAtB,EAAY,SAASyC,EAAgB,IAAI,EAAE,aAAAhC,CAAY,CAAC,EAAEI,EAAQyC,CAAU,CAAE,EAAE,CAAC7C,EAAaa,EAAWL,EAAWjB,EAAY,IAAI,CAAC,EAC/MoB,EAAU,IAAI,CAAC,GAAGhC,IAAY,SAASgD,GAAe,CAAC/B,EAAkJ,GAArHkC,IAAYvC,EAAY,OAAO,UAAUA,EAAY,OAAO,SAASwC,GAAQxC,EAAY,OAAO,aAAawC,IAAuB,GAAkDjD,GAAW,OAAQA,EAAW,QAAQ,EAAE,CAAC,GAAGkB,EAAcS,EAAoB,EAAI,MAAO,CAAC,IAAMsC,EAAU,WAAW,IAAI,CAACtC,EAAoB,EAAI,CAAE,EAAE3B,EAAW,MAAM,GAAG,EAAE,MAAM,IAAI,aAAaiE,CAAS,EAAGtC,EAAoB,EAAI,QAASA,EAAoB,EAAK,CAAI,EAAE,CAAC9B,EAAUgD,EAAcpC,EAAYwC,EAAOD,EAAUlC,EAAWd,CAAU,CAAC,EACrmBkE,GAAkBC,GAAG,CAAC,GAAG,GAACtB,GAAe/B,GAAY,CAACkC,IAAoB3B,EAAK,CAAC,IAAM+C,EAAS5B,EAAY,QAAQ,SAAS4B,EAAS,UAAU,MAAMhB,EAAc,IAAI,EAAEgB,EAAS,OAAO,MAAM3D,EAAY,OAAO2C,EAAc,IAAI,EAAE,EAAE,EAAKvD,IAAY,SAAS0B,IAAO6C,EAAS,SAAS,MAAM,YAAY,IAAM9B,EAAY,QAAQ,OAAOD,EAAS,QAAQE,EAAU,OAAO,EAAG,CAAC,EAAsB8B,EAAK,MAAM,CAAC,IAAIrD,EAAS,MAAM,CAAC,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,eAAe,SAAS,WAAW,SAAS,SAAS,QAAQ,CAAC,CAAC,CAAE,ECJngB,SAARsD,EAAuBC,EAAM,CAAC,GAAK,CAAC,MAAAC,EAAM,KAAAC,EAAK,QAAAC,EAAQ,SAAAC,EAAS,QAAAC,EAAQ,aAAAC,EAAa,UAAAC,EAAU,KAAAC,EAAK,KAAAC,EAAK,KAAAC,EAAK,YAAAC,EAAY,WAAAC,EAAW,MAAAC,EAAM,WAAAC,EAAW,QAAAC,EAAQ,YAAAC,EAAY,WAAAC,EAAW,YAAAC,EAAY,WAAAC,EAAW,iBAAAC,EAAiB,eAAAC,CAAc,EAAErB,EAAW,CAAC,SAAAsB,EAAS,SAAAC,EAAS,UAAAC,CAAS,EAAEC,GAAexB,EAAMC,EAAKC,EAAQC,EAASC,EAAQC,EAAaC,EAAUC,CAAI,EAAE,OAAoBkB,GAAM,SAAS,CAAC,MAAMC,GAAe,SAAS,CAAcC,EAAK,MAAM,CAAC,MAAMC,GAAoB,aAAaP,EAAS,KAAK,MAAM,SAAsBM,EAAKE,GAAM,CAAC,UAAUN,EAAU,IAAID,EAAS,KAAKd,EAAK,WAAWQ,EAAW,mBAAmBL,EAAW,YAAYD,EAAY,MAAME,EAAM,WAAWC,EAAW,QAAQC,EAAQ,SAASL,EAAK,KAAK,SAASA,EAAK,MAAM,SAASA,EAAK,MAAM,YAAYM,EAAY,YAAYE,EAAY,WAAWC,EAAW,iBAAiBC,EAAiB,eAAeC,CAAc,CAAC,CAAC,CAAC,EAAeO,EAAK,aAAa,CAAC,MAAMG,GAAY,SAAST,CAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,CAACvB,EAAM,YAAY,eAAeiC,GAAoBjC,EAAM,CAAC,GAAGkC,EAA0B,MAAM,GAAGA,EAA0B,KAAK,YAAY,CAAC,KAAKC,EAAY,OAAO,MAAM,SAAS,eAAe,GAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,eAAe,GAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,OAAO,aAAa,CAAC,EAAE,WAAW,CAAC,KAAKA,EAAY,QAAQ,MAAM,aAAa,aAAa,EAAK,EAAE,QAAQ,CAAC,KAAKA,EAAY,OAAO,MAAM,UAAU,YAAY,OAAO,KAAK,SAAS,SAAS,CAAC,KAAK,CAAC,KAAKA,EAAY,QAAQ,MAAM,OAAO,aAAa,EAAK,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,OAAOlC,EAAM,CAAC,OAAOA,EAAM,OAAO,EAAM,CAAC,EAAE,WAAW,CAAC,KAAKkC,EAAY,QAAQ,MAAM,kBAAkB,aAAa,GAAM,OAAOlC,EAAM,CAAC,OAAOA,EAAM,OAAO,EAAM,CAAC,EAAE,QAAQ,CAAC,KAAKkC,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAM,OAAOlC,EAAM,CAAC,OAAOA,EAAM,OAAO,EAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAAKkC,EAAY,OAAO,MAAM,UAAU,KAAK,SAAS,SAAS,CAAC,GAAGD,EAA0B,gBAAgB,OAAO,CAAC,KAAKC,EAAY,QAAQ,MAAM,UAAU,aAAa,EAAK,EAAE,OAAO,CAAC,KAAKA,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAM,OAAOlC,EAAM,CAAC,OAAIA,EAAM,OAA4BA,EAAM,OAAO,SAASA,EAAM,OAAO,SAAhD,EAAyD,CAAC,EAAE,SAAS,CAAC,KAAKkC,EAAY,OAAO,MAAM,WAAW,eAAe,GAAK,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAOlC,EAAM,CAAC,MAAG,CAACA,EAAM,QAAQA,EAAM,SAAS,GAAc,GAAaA,EAAM,OAAO,SAASA,EAAM,OAAO,QAAS,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAKkC,EAAY,WAAW,MAAM,aAAa,YAAY,iDAAiD,aAAa,CAAC,KAAK,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,ECRzuFC,GAAU,UAAU,CAAC,0BAA0B,uBAAuB,CAAC,EAAS,IAAMC,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,gBAAgB,OAAO,YAAY,MAAM,SAAS,IAAI,yKAAyK,OAAO,KAAK,EAAE,CAAC,OAAO,gBAAgB,OAAO,YAAY,MAAM,SAAS,IAAI,yKAAyK,OAAO,KAAK,CAAC,CAAC,CAAC,EAAeC,GAAI,CAAC,syBAAwyB,41BAA81B,w1BAA01B,EAAeC,GAAU",
  "names": ["vertexShader", "fragmentShader", "WebGL", "mediaType", "src", "loop", "transition", "distortionStrength", "stripeCount", "angle", "refraction", "advance", "sizeType", "setScale", "setRatio", "animateProp", "onMediaLoad", "onVideoEnd", "onAnimationStart", "onAnimationEnd", "isOnCanvas", "RenderTarget", "mountRef", "pe", "animationEnd", "setAnimationEnd", "ye", "draw", "setDraw", "media", "mediaSize", "mediaLoaded", "videoState", "handleVideoPlayback", "useMediaLoader", "ue", "panelSize", "isResizing", "usePanelSize", "degToRad", "degrees", "initialUniforms", "se", "sceneRef", "rendererRef", "cameraRef", "materialRef", "geometryRef", "useWebGLSetup", "vertexShader", "fragmentShader", "isInitialized", "initError", "useWebGLInitialization", "isVisible", "inView", "scrollYProgress", "useScrollAnimation", "progressValue", "useMotionValue", "animateValues", "te", "progress", "transform", "animate", "isInView", "targetProgress", "useMotionValueEvent", "latest", "shouldDraw", "checkDrawState", "timeoutId", "useAnimationFrame", "t", "uniforms", "p", "Glass", "props", "media", "file", "upImage", "urlVideo", "upVideo", "defaultImage", "darkImage", "dark", "loop", "size", "stripeCount", "distortion", "angle", "refraction", "advance", "animateProp", "transition", "onMediaLoad", "onVideoEnd", "onAnimationStart", "onAnimationEnd", "imageAlt", "mediaSrc", "mediaType", "useMediaSource", "u", "containerStyle", "p", "webGLContainerStyle", "WebGL", "hiddenStyle", "addPropertyControls", "universalPropertyControls", "ControlType", "fontStore", "fonts", "css", "className"]
}
