{"version":3,"file":"Scroll_Image_Reveal.CSSvMliM.mjs","names":["useRef","useMemo","THREE.OrthographicCamera","THREE.PlaneGeometry","THREE.RawShaderMaterial","BLIT_VERT","FRAG_SPLAT","THREE.Vector3","THREE.Vector2","FRAG_ADVECTION","FRAG_DIVERGENCE","FRAG_PRESSURE","FRAG_GRADIENT_SUBTRACT","FRAG_DISTORTION_OUTPUT","useState","THREE.DataTexture","THREE.RGBAFormat","THREE.RepeatWrapping","THREE.TextureLoader","THREE.NearestFilter","THREE.Texture","THREE.LinearFilter","THREE.VideoTexture","THREE.WebGLRenderer","THREE.Scene","THREE.Mesh","THREE.WebGLRenderTarget","THREE.HalfFloatType","THREE.CanvasTexture","THREE.ClampToEdgeWrapping","useRef","useState","useMemo","SplitType","gsap","THREE.WebGLRenderer","THREE.OrthographicCamera","THREE.PlaneGeometry","THREE.RawShaderMaterial","THREE.Vector3","THREE.Vector2","THREE.DataTexture","THREE.RGBAFormat","THREE.RepeatWrapping","THREE.Scene","THREE.Mesh","THREE.WebGLRenderTarget","THREE.HalfFloatType","THREE.LinearFilter","THREE.Texture"],"sources":["https:/framerusercontent.com/modules/xOx7qBX08zRgPhBEKGbK/1DH4vnEob3F31rLtSMiy/Liquid_hover.js","https:/framerusercontent.com/modules/4uxXivqJdCtl6ALk5bdF/si0m6xjksDIgg8WOwccK/Scroll_Image_Reveal.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useMemo}from\"react\";import*as THREE from\"three\";import{addPropertyControls,ControlType}from\"framer\";// --- Shaders ---\nconst BLIT_VERT=`\n  precision highp float;\n  attribute vec3 position;\n  attribute vec2 uv;\n  varying vec2 vUv;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  uniform vec2 u_texel;\n\n  void main() {\n    vUv = uv;\n    vL = vUv - vec2(u_texel.x, 0.0);\n    vR = vUv + vec2(u_texel.x, 0.0);\n    vT = vUv + vec2(0.0, u_texel.y);\n    vB = vUv - vec2(0.0, u_texel.y);\n    gl_Position = vec4(position.xy, 0.0, 1.0);\n  }\n`;const FRAG_SPLAT=`\n  precision mediump float;\n  varying vec2 vUv;\n  uniform sampler2D u_input_texture;\n  uniform float u_ratio;\n  uniform vec3 u_point_value;\n  uniform vec2 u_point;\n  uniform float u_point_size;\n\n  void main() {\n    vec2 p = vUv - u_point;\n    p.x *= u_ratio;\n    vec3 splat = 0.6 * exp(-dot(p, p) / max(u_point_size, 0.00001)) * u_point_value;\n    vec3 base = texture2D(u_input_texture, vUv).xyz;\n    gl_FragColor = vec4(base + splat, 1.0);\n  }\n`;const FRAG_ADVECTION=`\n  precision mediump float;\n  varying vec2 vUv;\n  uniform sampler2D u_velocity_texture;\n  uniform sampler2D u_input_texture;\n  uniform vec2 u_texel;\n  uniform vec2 u_output_texel;\n  uniform float u_dt;\n  uniform float u_dissipation;\n\n  vec4 bilerp(sampler2D sam, vec2 uv, vec2 tsize) {\n    vec2 st = uv / tsize - 0.5;\n    vec2 iuv = floor(st);\n    vec2 fuv = fract(st);\n    vec4 a = texture2D(sam, (iuv + vec2(0.5, 0.5)) * tsize);\n    vec4 b = texture2D(sam, (iuv + vec2(1.5, 0.5)) * tsize);\n    vec4 c = texture2D(sam, (iuv + vec2(0.5, 1.5)) * tsize);\n    vec4 d = texture2D(sam, (iuv + vec2(1.5, 1.5)) * tsize);\n    return mix(mix(a, b, fuv.x), mix(c, d, fuv.x), fuv.y);\n  }\n\n  void main() {\n    vec2 coord = vUv - u_dt * bilerp(u_velocity_texture, vUv, u_texel).xy * u_texel;\n    vec4 val = bilerp(u_input_texture, coord, u_output_texel);\n    gl_FragColor = u_dissipation * val;\n  }\n`;const FRAG_DIVERGENCE=`\n  precision mediump float;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  uniform sampler2D u_velocity_texture;\n\n  void main() {\n    float L = texture2D(u_velocity_texture, vL).x;\n    float R = texture2D(u_velocity_texture, vR).x;\n    float T = texture2D(u_velocity_texture, vT).y;\n    float B = texture2D(u_velocity_texture, vB).y;\n    float div = 0.25 * (R - L + T - B);\n    gl_FragColor = vec4(div, 0.0, 0.0, 1.0);\n  }\n`;const FRAG_PRESSURE=`\n  precision mediump float;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  varying vec2 vUv;\n  uniform sampler2D u_pressure_texture;\n  uniform sampler2D u_divergence_texture;\n\n  void main() {\n    float L = texture2D(u_pressure_texture, vL).x;\n    float R = texture2D(u_pressure_texture, vR).x;\n    float T = texture2D(u_pressure_texture, vT).x;\n    float B = texture2D(u_pressure_texture, vB).x;\n    float div = texture2D(u_divergence_texture, vUv).x;\n    float pressure = (L + R + B + T - div) * 0.25;\n    gl_FragColor = vec4(pressure, 0.0, 0.0, 1.0);\n  }\n`;const FRAG_GRADIENT_SUBTRACT=`\n  precision mediump float;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  varying vec2 vUv;\n  uniform sampler2D u_pressure_texture;\n  uniform sampler2D u_velocity_texture;\n\n  void main() {\n    float L = texture2D(u_pressure_texture, vL).x;\n    float R = texture2D(u_pressure_texture, vR).x;\n    float T = texture2D(u_pressure_texture, vT).x;\n    float B = texture2D(u_pressure_texture, vB).x;\n    vec2 velocity = texture2D(u_velocity_texture, vUv).xy;\n    velocity.xy -= vec2(R - L, T - B);\n    gl_FragColor = vec4(velocity, 0.0, 1.0);\n  }\n`;const FRAG_DISTORTION_OUTPUT=`\n  precision mediump float;\n  varying vec2 vUv;\n  uniform sampler2D u_media_texture;\n  uniform sampler2D u_output_texture;\n  uniform sampler2D u_velocity_texture;\n  uniform sampler2D u_blue_noise_texture;\n  \n  uniform vec2 u_blue_noise_texel_size;\n  uniform vec2 u_blue_noise_offset;\n  uniform float u_ratio;\n  uniform float u_img_ratio;\n  uniform float u_distortion_amount;\n  uniform float u_rgb_shift;\n  uniform int u_fit_mode;\n\n  void main() {\n    vec3 bnoise = texture2D(u_blue_noise_texture, (gl_FragCoord.xy + vec2(17.0, 29.0)) * u_blue_noise_texel_size + u_blue_noise_offset).rgb;\n    float density = texture2D(u_output_texture, vUv).r;\n    vec2 velocity = texture2D(u_velocity_texture, vUv).xy;\n\n    vec2 img_uv = vUv;\n    bool letterbox = false;\n\n    if (u_fit_mode == 1) {\n      if (u_ratio > u_img_ratio) {\n        float scale = u_ratio / u_img_ratio;\n        img_uv.y = (vUv.y - 0.5) / scale + 0.5;\n      } else {\n        float scale = u_img_ratio / u_ratio;\n        img_uv.x = (vUv.x - 0.5) / scale + 0.5;\n      }\n    } else if (u_fit_mode == 2) {\n      if (u_ratio > u_img_ratio) {\n        float scale = u_ratio / u_img_ratio;\n        img_uv.x = (vUv.x - 0.5) * scale + 0.5;\n      } else {\n        float scale = u_img_ratio / u_ratio;\n        img_uv.y = (vUv.y - 0.5) * scale + 0.5;\n      }\n      letterbox = (img_uv.x < 0.0 || img_uv.x > 1.0 || img_uv.y < 0.0 || img_uv.y > 1.0);\n    }\n\n    vec2 displacement = normalize(velocity + 0.0001) * density * (u_distortion_amount * 0.05);\n    vec2 sampleUv = img_uv - displacement + (bnoise.xy - 0.5) * length(displacement) * 0.2;\n    sampleUv = clamp(sampleUv, 0.001, 0.999);\n\n    float shift = length(velocity) * u_rgb_shift * 0.05;\n    vec4 r = texture2D(u_media_texture, clamp(sampleUv - displacement * shift, 0.001, 0.999));\n    vec4 g = texture2D(u_media_texture, sampleUv);\n    vec4 b = texture2D(u_media_texture, clamp(sampleUv + displacement * shift, 0.001, 0.999));\n\n    if (letterbox) {\n      gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n    } else {\n      gl_FragColor = vec4(r.r, g.g, b.b, 1.0);\n    }\n  }\n`;const createDefaultTexture=()=>{const canvas=document.createElement(\"canvas\");canvas.width=256;canvas.height=256;const ctx=canvas.getContext(\"2d\");if(ctx){const grad=ctx.createLinearGradient(0,0,256,256);grad.addColorStop(0,\"#2d00f7\");grad.addColorStop(.5,\"#e500a4\");grad.addColorStop(1,\"#00f0ff\");ctx.fillStyle=grad;ctx.fillRect(0,0,256,256);}const tex=new THREE.CanvasTexture(canvas);tex.wrapS=tex.wrapT=THREE.ClampToEdgeWrapping;return tex;};export default function FluidDistortionLiquid(props){const{mediaType=\"video\",imageUrl,videoUrl=\"https://assets.mixkit.co/videos/preview/mixkit-clouds-and-blue-sky-2408-large.mp4\",videoLoop=true,videoMuted=true,mediaFit=\"cover\",cursorSize=2,cursorPower=24,distortionAmount=3,rgbShift=.5,retentionRate=.975,blueNoiseSource=\"procedural\",blueNoiseFile,blueNoiseUrl,style}=props;const containerRef=useRef(null);const canvasRef=useRef(null);const videoRef=useRef(null);const rafId=useRef(0);const isHoveredRef=useRef(false);const isFirstMoveRef=useRef(true);const defaultTexture=useMemo(()=>{if(typeof document===\"undefined\")return null;return createDefaultTexture();},[]);const mediaTextureRef=useRef(null);const mediaRatioRef=useRef(1.777);const pointer=useRef({x:.5,y:.5,dx:0,dy:0,moved:false});const orthoCam=useMemo(()=>new THREE.OrthographicCamera(-1,1,1,-1,0,1),[]);const quadGeom=useMemo(()=>new THREE.PlaneGeometry(2,2),[]);const splatMat=useMemo(()=>new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_SPLAT,uniforms:{u_input_texture:{value:null},u_ratio:{value:1},u_point_value:{value:new THREE.Vector3},u_point:{value:new THREE.Vector2},u_point_size:{value:.002},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false}),[]);const advectionMat=useMemo(()=>new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_ADVECTION,uniforms:{u_velocity_texture:{value:null},u_input_texture:{value:null},u_texel:{value:new THREE.Vector2},u_output_texel:{value:new THREE.Vector2},u_dt:{value:.016},u_dissipation:{value:.98}},depthTest:false,depthWrite:false}),[]);const divergenceMat=useMemo(()=>new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_DIVERGENCE,uniforms:{u_velocity_texture:{value:null},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false}),[]);const pressureMat=useMemo(()=>new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_PRESSURE,uniforms:{u_pressure_texture:{value:null},u_divergence_texture:{value:null},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false}),[]);const gradientSubtractMat=useMemo(()=>new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_GRADIENT_SUBTRACT,uniforms:{u_pressure_texture:{value:null},u_velocity_texture:{value:null},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false}),[]);const displayMat=useMemo(()=>new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_DISTORTION_OUTPUT,uniforms:{u_media_texture:{value:defaultTexture},u_output_texture:{value:null},u_velocity_texture:{value:null},u_blue_noise_texture:{value:null},u_blue_noise_texel_size:{value:new THREE.Vector2(1/64,1/64)},u_blue_noise_offset:{value:new THREE.Vector2},u_ratio:{value:1},u_img_ratio:{value:1},u_distortion_amount:{value:3},u_rgb_shift:{value:.5},u_fit_mode:{value:1},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false}),[defaultTexture]);// Blue Noise Loader\nconst[blueNoiseTexture,setBlueNoiseTexture]=useState(null);useEffect(()=>{let active=true;const createProceduralNoise=()=>{const s=64// Reduced size for mobile memory footprint\n;const data=new Uint8Array(s*s*4);for(let i=0;i<data.length;i++)data[i]=Math.floor(Math.random()*256);const tex=new THREE.DataTexture(data,s,s,THREE.RGBAFormat);tex.wrapS=tex.wrapT=THREE.RepeatWrapping;tex.needsUpdate=true;return tex;};if(blueNoiseSource===\"procedural\"){setBlueNoiseTexture(prev=>{if(prev)prev.dispose();return createProceduralNoise();});}else{const url=blueNoiseSource===\"upload\"?blueNoiseFile:blueNoiseUrl;if(!url){setBlueNoiseTexture(prev=>{if(prev)prev.dispose();return createProceduralNoise();});return;}new THREE.TextureLoader().load(url,tex=>{if(!active)return;tex.wrapS=tex.wrapT=THREE.RepeatWrapping;tex.generateMipmaps=false;tex.minFilter=tex.magFilter=THREE.NearestFilter;setBlueNoiseTexture(prev=>{if(prev)prev.dispose();return tex;});});}return()=>{active=false;};},[blueNoiseSource,blueNoiseFile,blueNoiseUrl]);const resolvedImageSrc=useMemo(()=>{if(!imageUrl)return\"\";if(typeof imageUrl===\"string\")return imageUrl;if(typeof imageUrl===\"object\"&&imageUrl.src)return imageUrl.src;return\"\";},[imageUrl]);const resolvedVideoSrc=useMemo(()=>{if(!videoUrl)return\"\";if(typeof videoUrl===\"string\")return videoUrl;if(typeof videoUrl===\"object\"&&videoUrl.src)return videoUrl.src;return\"\";},[videoUrl]);// Image Texture Handler\nuseEffect(()=>{if(mediaType!==\"image\")return;if(!resolvedImageSrc){mediaTextureRef.current=defaultTexture;return;}let active=true;const img=new Image;img.crossOrigin=\"anonymous\";img.src=resolvedImageSrc;img.onload=()=>{if(!active)return;mediaRatioRef.current=img.naturalWidth/img.naturalHeight;const tex=new THREE.Texture(img);tex.minFilter=THREE.LinearFilter;tex.magFilter=THREE.LinearFilter;tex.generateMipmaps=false;tex.needsUpdate=true;if(mediaTextureRef.current&&mediaTextureRef.current!==defaultTexture){mediaTextureRef.current.dispose();}mediaTextureRef.current=tex;};img.onerror=()=>{mediaTextureRef.current=defaultTexture;};return()=>{active=false;};},[mediaType,resolvedImageSrc,defaultTexture]);// Video Texture Handler\nuseEffect(()=>{if(mediaType!==\"video\")return;const video=videoRef.current;if(!video||!resolvedVideoSrc)return;video.src=resolvedVideoSrc;video.muted=videoMuted;video.loop=videoLoop;video.load();const playPromise=video.play();if(playPromise!==undefined){playPromise.catch(()=>{video.muted=true;video.play().catch(()=>{});});}const videoTexture=new THREE.VideoTexture(video);videoTexture.minFilter=THREE.LinearFilter;videoTexture.magFilter=THREE.LinearFilter;videoTexture.generateMipmaps=false;videoTexture.format=THREE.RGBAFormat;if(mediaTextureRef.current&&mediaTextureRef.current!==defaultTexture){mediaTextureRef.current.dispose();}mediaTextureRef.current=videoTexture;return()=>{videoTexture.dispose();};},[mediaType,resolvedVideoSrc,videoLoop,videoMuted,defaultTexture]);// Simulation Loop\nuseEffect(()=>{if(!canvasRef.current||!containerRef.current)return;const canvas=canvasRef.current;const container=containerRef.current;// Detect mobile / touch environment\nconst isMobile=typeof window!==\"undefined\"&&(window.innerWidth<=768||\"ontouchstart\"in window||navigator.maxTouchPoints>0);// Mobile optimizations: clamp DPR and downscale FBO grid\nconst maxDpr=isMobile?1.25:2;const simRes=isMobile?128:256;const pressureIterations=isMobile?8:16;const renderer=new THREE.WebGLRenderer({canvas,antialias:false,alpha:true,powerPreference:\"high-performance\",precision:isMobile?\"mediump\":\"highp\"});renderer.setPixelRatio(Math.min(window.devicePixelRatio||1,maxDpr));const scene=new THREE.Scene;const quadMesh=new THREE.Mesh(quadGeom,splatMat);scene.add(quadMesh);const renderQuad=(target,material)=>{quadMesh.material=material;renderer.setRenderTarget(target);renderer.render(scene,orthoCam);};const createRT=(w,h)=>new THREE.WebGLRenderTarget(w,h,{type:THREE.HalfFloatType,format:THREE.RGBAFormat,minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,depthBuffer:false,stencilBuffer:false});const createDoubleFBO=(w,h)=>{let fbo1=createRT(w,h);let fbo2=createRT(w,h);return{width:w,height:h,read:()=>fbo1,write:()=>fbo2,swap:()=>{const tmp=fbo1;fbo1=fbo2;fbo2=tmp;},dispose:()=>{fbo1.dispose();fbo2.dispose();}};};let fbos=null;const initFBOs=()=>{if(fbos){fbos.velocity.dispose();fbos.density.dispose();fbos.divergence.dispose();fbos.pressure.dispose();}fbos={velocity:createDoubleFBO(simRes,simRes),density:createDoubleFBO(simRes,simRes),divergence:createRT(simRes,simRes),pressure:createDoubleFBO(simRes,simRes)};};const resize=()=>{const width=Math.max(container.clientWidth,100);const height=Math.max(container.clientHeight,100);renderer.setSize(width,height);initFBOs();};resize();const resizeObserver=new ResizeObserver(resize);resizeObserver.observe(container);const updatePointer=(clientX,clientY)=>{const rect=canvas.getBoundingClientRect();if(rect.width===0||rect.height===0)return;const x=(clientX-rect.left)/rect.width;const y=1-(clientY-rect.top)/rect.height;if(isFirstMoveRef.current){pointer.current.x=x;pointer.current.y=y;pointer.current.dx=0;pointer.current.dy=0;isFirstMoveRef.current=false;return;}// Clamped speed delta to prevent visual blowup on high latency touch frames\nconst dx=(x-pointer.current.x)*80;const dy=(y-pointer.current.y)*80;pointer.current.dx=Math.max(-10,Math.min(10,dx));pointer.current.dy=Math.max(-10,Math.min(10,dy));pointer.current.x=x;pointer.current.y=y;pointer.current.moved=true;};const onMouseEnter=e=>{isHoveredRef.current=true;isFirstMoveRef.current=true;updatePointer(e.clientX,e.clientY);};const onMouseLeave=()=>{isHoveredRef.current=false;pointer.current.moved=false;pointer.current.dx=0;pointer.current.dy=0;};const onMouseMove=e=>{updatePointer(e.clientX,e.clientY);};const onTouchStart=e=>{if(e.touches.length>0){isHoveredRef.current=true;isFirstMoveRef.current=true;updatePointer(e.touches[0].clientX,e.touches[0].clientY);if(mediaType===\"video\"&&videoRef.current&&videoRef.current.paused){videoRef.current.play().catch(()=>{});}}};const onTouchMove=e=>{if(e.touches.length>0){updatePointer(e.touches[0].clientX,e.touches[0].clientY);}};const onTouchEnd=()=>{isHoveredRef.current=false;pointer.current.moved=false;isFirstMoveRef.current=true;};container.addEventListener(\"mouseenter\",onMouseEnter);container.addEventListener(\"mouseleave\",onMouseLeave);container.addEventListener(\"mousemove\",onMouseMove);container.addEventListener(\"touchstart\",onTouchStart,{passive:true});container.addEventListener(\"touchmove\",onTouchMove,{passive:true});container.addEventListener(\"touchend\",onTouchEnd);let lastTime=performance.now();let fluidActivity=0;const animate=time=>{rafId.current=requestAnimationFrame(animate);const dt=Math.min((time-lastTime)/1e3,1/30);lastTime=time;if(!fbos)return;if(mediaType===\"video\"&&videoRef.current&&videoRef.current.readyState>=2){if(videoRef.current.videoWidth&&videoRef.current.videoHeight){mediaRatioRef.current=videoRef.current.videoWidth/videoRef.current.videoHeight;}if(mediaTextureRef.current){mediaTextureRef.current.needsUpdate=true;}}const simTexel=new THREE.Vector2(1/simRes,1/simRes);const ratio=canvas.width/Math.max(canvas.height,1);// 1. Splat\nif(pointer.current.moved&&isHoveredRef.current){pointer.current.moved=false;fluidActivity=1// Reset activity budget\n;splatMat.uniforms.u_ratio.value=ratio;splatMat.uniforms.u_point.value.set(pointer.current.x,pointer.current.y);splatMat.uniforms.u_point_size.value=(cursorSize??2)*6e-4;splatMat.uniforms.u_input_texture.value=fbos.velocity.read().texture;splatMat.uniforms.u_point_value.value.set(pointer.current.dx,pointer.current.dy,0);renderQuad(fbos.velocity.write(),splatMat);fbos.velocity.swap();splatMat.uniforms.u_input_texture.value=fbos.density.read().texture;splatMat.uniforms.u_point_value.value.set((cursorPower??24)*.05,0,0);renderQuad(fbos.density.write(),splatMat);fbos.density.swap();}// Only run the Navier-Stokes solve if there is remaining velocity/density activity\nif(fluidActivity>.005){fluidActivity*=retentionRate??.975;// 2. Divergence\ndivergenceMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;divergenceMat.uniforms.u_texel.value.copy(simTexel);renderQuad(fbos.divergence,divergenceMat);// 3. Pressure (Reduced iterations on mobile)\npressureMat.uniforms.u_divergence_texture.value=fbos.divergence.texture;pressureMat.uniforms.u_texel.value.copy(simTexel);for(let i=0;i<pressureIterations;i++){pressureMat.uniforms.u_pressure_texture.value=fbos.pressure.read().texture;renderQuad(fbos.pressure.write(),pressureMat);fbos.pressure.swap();}// 4. Gradient Subtract\ngradientSubtractMat.uniforms.u_pressure_texture.value=fbos.pressure.read().texture;gradientSubtractMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;gradientSubtractMat.uniforms.u_texel.value.copy(simTexel);renderQuad(fbos.velocity.write(),gradientSubtractMat);fbos.velocity.swap();// 5. Advection (Velocity)\nadvectionMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;advectionMat.uniforms.u_input_texture.value=fbos.velocity.read().texture;advectionMat.uniforms.u_texel.value.copy(simTexel);advectionMat.uniforms.u_output_texel.value.copy(simTexel);advectionMat.uniforms.u_dt.value=dt;advectionMat.uniforms.u_dissipation.value=.97;renderQuad(fbos.velocity.write(),advectionMat);fbos.velocity.swap();// 6. Advection (Density)\nadvectionMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;advectionMat.uniforms.u_input_texture.value=fbos.density.read().texture;advectionMat.uniforms.u_output_texel.value.copy(simTexel);advectionMat.uniforms.u_dt.value=dt*4;advectionMat.uniforms.u_dissipation.value=retentionRate??.975;renderQuad(fbos.density.write(),advectionMat);fbos.density.swap();}// 7. Output Display\nconst activeTex=mediaTextureRef.current||defaultTexture;displayMat.uniforms.u_media_texture.value=activeTex;displayMat.uniforms.u_output_texture.value=fbos.density.read().texture;displayMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;displayMat.uniforms.u_blue_noise_texture.value=blueNoiseTexture||defaultTexture;displayMat.uniforms.u_blue_noise_offset.value.set(Math.random(),Math.random());displayMat.uniforms.u_ratio.value=ratio;displayMat.uniforms.u_img_ratio.value=mediaRatioRef.current;displayMat.uniforms.u_distortion_amount.value=distortionAmount??3;displayMat.uniforms.u_rgb_shift.value=rgbShift??.5;const fitMap={fill:0,cover:1,contain:2};displayMat.uniforms.u_fit_mode.value=fitMap[mediaFit]??1;renderQuad(null,displayMat);};rafId.current=requestAnimationFrame(animate);return()=>{cancelAnimationFrame(rafId.current);resizeObserver.disconnect();container.removeEventListener(\"mouseenter\",onMouseEnter);container.removeEventListener(\"mouseleave\",onMouseLeave);container.removeEventListener(\"mousemove\",onMouseMove);container.removeEventListener(\"touchstart\",onTouchStart);container.removeEventListener(\"touchmove\",onTouchMove);container.removeEventListener(\"touchend\",onTouchEnd);renderer.dispose();quadGeom.dispose();splatMat.dispose();advectionMat.dispose();divergenceMat.dispose();pressureMat.dispose();gradientSubtractMat.dispose();displayMat.dispose();if(fbos){fbos.velocity.dispose();fbos.density.dispose();fbos.divergence.dispose();fbos.pressure.dispose();}};},[mediaType,blueNoiseTexture,cursorSize,cursorPower,distortionAmount,rgbShift,retentionRate,mediaFit,defaultTexture]);return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",minWidth:100,minHeight:100,overflow:\"hidden\",position:\"relative\",backgroundColor:\"#000\",cursor:\"pointer\",touchAction:\"pan-y\",...style},children:[/*#__PURE__*/_jsx(\"video\",{ref:videoRef,playsInline:true,autoPlay:true,muted:true,loop:true,crossOrigin:\"anonymous\",style:{position:\"absolute\",top:0,left:0,width:1,height:1,opacity:.001,pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{display:\"block\",width:\"100%\",height:\"100%\",pointerEvents:\"none\"}})]});}FluidDistortionLiquid.defaultProps={mediaType:\"video\",imageUrl:{src:\"https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?auto=format&fit=crop&w=1600&q=80\"},videoUrl:\"https://assets.mixkit.co/videos/preview/mixkit-clouds-and-blue-sky-2408-large.mp4\",videoLoop:true,videoMuted:true,mediaFit:\"cover\",cursorSize:2,cursorPower:24,distortionAmount:3,rgbShift:.5,retentionRate:.975,blueNoiseSource:\"procedural\",blueNoiseUrl:\"\",blueNoiseFile:\"\"};FluidDistortionLiquid.displayName=\"Fluid Liquid Distortion\";addPropertyControls(FluidDistortionLiquid,{mediaType:{type:ControlType.Enum,title:\"Media Type\",defaultValue:\"video\",options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],displaySegmentedControl:true},imageUrl:{type:ControlType.ResponsiveImage,title:\"Image\",hidden:props=>props.mediaType!==\"image\"},videoUrl:{type:ControlType.File,title:\"Video\",allowedFileTypes:[\"mp4\",\"webm\",\"mov\"],hidden:props=>props.mediaType!==\"video\"},videoLoop:{type:ControlType.Boolean,title:\"Loop Video\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>props.mediaType!==\"video\"},videoMuted:{type:ControlType.Boolean,title:\"Mute Video\",defaultValue:true,enabledTitle:\"Muted\",disabledTitle:\"Unmuted\",hidden:props=>props.mediaType!==\"video\"},mediaFit:{type:ControlType.Enum,title:\"Fit\",defaultValue:\"cover\",options:[\"fill\",\"cover\",\"contain\"],optionTitles:[\"Fill\",\"Cover\",\"Contain\"]},cursorSize:{type:ControlType.Number,title:\"Cursor Size\",defaultValue:2,min:1,max:10,step:.5,displayStepper:true},cursorPower:{type:ControlType.Number,title:\"Cursor Power\",defaultValue:24,min:1,max:100,step:1,displayStepper:true},distortionAmount:{type:ControlType.Number,title:\"Distortion\",defaultValue:3,min:0,max:15,step:.1,displayStepper:true},rgbShift:{type:ControlType.Number,title:\"RGB Shift\",defaultValue:.5,min:0,max:2,step:.05,displayStepper:true},retentionRate:{type:ControlType.Number,title:\"Retention\",defaultValue:.975,min:.9,max:.999,step:.001,displayStepper:true},blueNoiseSource:{type:ControlType.Enum,options:[\"procedural\",\"upload\",\"url\"],optionTitles:[\"Auto (Procedural)\",\"Upload PNG\",\"Image URL\"],title:\"Noise Source\"},blueNoiseFile:{type:ControlType.File,allowedFileTypes:[\"png\"],title:\"Noise File\",hidden:props=>props.blueNoiseSource!==\"upload\"},blueNoiseUrl:{type:ControlType.String,placeholder:\"https://.../noise.png\",title:\"Noise URL\",hidden:props=>props.blueNoiseSource!==\"url\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FluidDistortionLiquid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Liquid_hover.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useMemo,useState,useEffect,useLayoutEffect}from\"react\";import{motion,useScroll,useTransform,useSpring}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";import*as THREE from\"three\";import{gsap}from\"gsap\";import SplitType from\"split-type\";// --- Shaders for Fluid Simulation ---\nconst BLIT_VERT=`\n  precision highp float;\n  attribute vec3 position;\n  attribute vec2 uv;\n  varying vec2 vUv;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  uniform vec2 u_texel;\n\n  void main() {\n    vUv = uv;\n    vL = vUv - vec2(u_texel.x, 0.0);\n    vR = vUv + vec2(u_texel.x, 0.0);\n    vT = vUv + vec2(0.0, u_texel.y);\n    vB = vUv - vec2(0.0, u_texel.y);\n    gl_Position = vec4(position.xy, 0.0, 1.0);\n  }\n`;const FRAG_SPLAT=`\n  precision highp float;\n  varying vec2 vUv;\n  uniform sampler2D u_input_texture;\n  uniform float u_ratio;\n  uniform vec3 u_point_value;\n  uniform vec2 u_point;\n  uniform float u_point_size;\n\n  void main() {\n    vec2 p = vUv - u_point;\n    p.x *= u_ratio;\n    vec3 splat = 0.6 * pow(2.0, -dot(p, p) / max(u_point_size, 0.00001)) * u_point_value;\n    vec3 base = texture2D(u_input_texture, vUv).xyz;\n    gl_FragColor = vec4(base + splat, 1.0);\n  }\n`;const FRAG_ADVECTION=`\n  precision highp float;\n  varying vec2 vUv;\n  uniform sampler2D u_velocity_texture;\n  uniform sampler2D u_input_texture;\n  uniform vec2 u_texel;\n  uniform vec2 u_output_texel;\n  uniform float u_dt;\n  uniform float u_dissipation;\n\n  vec4 bilerp(sampler2D sam, vec2 uv, vec2 tsize) {\n    vec2 st = uv / tsize - 0.5;\n    vec2 iuv = floor(st);\n    vec2 fuv = fract(st);\n    vec4 a = texture2D(sam, (iuv + vec2(0.5, 0.5)) * tsize);\n    vec4 b = texture2D(sam, (iuv + vec2(1.5, 0.5)) * tsize);\n    vec4 c = texture2D(sam, (iuv + vec2(0.5, 1.5)) * tsize);\n    vec4 d = texture2D(sam, (iuv + vec2(1.5, 1.5)) * tsize);\n    return mix(mix(a, b, fuv.x), mix(c, d, fuv.x), fuv.y);\n  }\n\n  void main() {\n    vec2 coord = vUv - u_dt * bilerp(u_velocity_texture, vUv, u_texel).xy * u_texel;\n    vec4 val = bilerp(u_input_texture, coord, u_output_texel);\n    gl_FragColor = u_dissipation * val;\n  }\n`;const FRAG_DIVERGENCE=`\n  precision highp float;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  uniform sampler2D u_velocity_texture;\n\n  void main() {\n    float L = texture2D(u_velocity_texture, vL).x;\n    float R = texture2D(u_velocity_texture, vR).x;\n    float T = texture2D(u_velocity_texture, vT).y;\n    float B = texture2D(u_velocity_texture, vB).y;\n    float div = 0.25 * (R - L + T - B);\n    gl_FragColor = vec4(div, 0.0, 0.0, 1.0);\n  }\n`;const FRAG_PRESSURE=`\n  precision highp float;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  varying vec2 vUv;\n  uniform sampler2D u_pressure_texture;\n  uniform sampler2D u_divergence_texture;\n\n  void main() {\n    float L = texture2D(u_pressure_texture, vL).x;\n    float R = texture2D(u_pressure_texture, vR).x;\n    float T = texture2D(u_pressure_texture, vT).x;\n    float B = texture2D(u_pressure_texture, vB).x;\n    float div = texture2D(u_divergence_texture, vUv).x;\n    float pressure = (L + R + B + T - div) * 0.25;\n    gl_FragColor = vec4(pressure, 0.0, 0.0, 1.0);\n  }\n`;const FRAG_GRADIENT_SUBTRACT=`\n  precision highp float;\n  varying vec2 vL;\n  varying vec2 vR;\n  varying vec2 vT;\n  varying vec2 vB;\n  varying vec2 vUv;\n  uniform sampler2D u_pressure_texture;\n  uniform sampler2D u_velocity_texture;\n\n  void main() {\n    float L = texture2D(u_pressure_texture, vL).x;\n    float R = texture2D(u_pressure_texture, vR).x;\n    float T = texture2D(u_pressure_texture, vT).x;\n    float B = texture2D(u_pressure_texture, vB).x;\n    vec2 velocity = texture2D(u_velocity_texture, vUv).xy;\n    velocity.xy -= vec2(R - L, T - B);\n    gl_FragColor = vec4(velocity, 0.0, 1.0);\n  }\n`;const FRAG_DISTORTION_OUTPUT=`\n  precision highp float;\n  varying vec2 vUv;\n  uniform sampler2D u_media_texture;\n  uniform sampler2D u_output_texture;\n  uniform sampler2D u_velocity_texture;\n  uniform sampler2D u_blue_noise_texture;\n  \n  uniform vec2 u_blue_noise_texel_size;\n  uniform vec2 u_blue_noise_offset;\n  uniform float u_ratio;\n  uniform float u_img_ratio;\n  uniform float u_distortion_amount;\n  uniform float u_rgb_shift;\n  uniform int u_fit_mode;\n\n  void main() {\n    vec3 bnoise = texture2D(u_blue_noise_texture, (gl_FragCoord.xy + vec2(17.0, 29.0)) * u_blue_noise_texel_size + u_blue_noise_offset).rgb;\n    float density = texture2D(u_output_texture, vUv).r;\n    vec2 velocity = texture2D(u_velocity_texture, vUv).xy;\n\n    vec2 img_uv = vUv;\n    if (u_fit_mode == 1) {\n      if (u_ratio > u_img_ratio) {\n        float scale = u_ratio / u_img_ratio;\n        img_uv.y = (vUv.y - 0.5) / scale + 0.5;\n      } else {\n        float scale = u_img_ratio / u_ratio;\n        img_uv.x = (vUv.x - 0.5) / scale + 0.5;\n      }\n    }\n\n    vec2 displacement = normalize(velocity + 0.0001) * density * (u_distortion_amount * 0.05);\n    vec2 sampleUv = img_uv - displacement + (bnoise.xy - 0.5) * length(displacement) * 0.2;\n    sampleUv = clamp(sampleUv, 0.001, 0.999);\n\n    float shift = length(velocity) * u_rgb_shift * 0.05;\n    vec4 r = texture2D(u_media_texture, clamp(sampleUv - displacement * shift, 0.001, 0.999));\n    vec4 g = texture2D(u_media_texture, sampleUv);\n    vec4 b = texture2D(u_media_texture, clamp(sampleUv + displacement * shift, 0.001, 0.999));\n\n    gl_FragColor = vec4(r.r, g.g, b.b, 1.0);\n  }\n`;// --- Reel Text Components (GSAP + SplitType) ---\nconst ReelCharText=({text,active,style})=>{const elRef=useRef(null);const animTargetsRef=useRef([]);const timelineRef=useRef(null);const splitRef=useRef(null);const activeRef=useRef(false);useLayoutEffect(()=>{if(!elRef.current||!text)return;const el=elRef.current;el.innerText=text;const splitInstance=new SplitType(el,{types:\"words, chars\",charClass:\"reel-char\",wordClass:\"reel-word\"});splitRef.current=splitInstance;if(splitInstance.words){splitInstance.words.forEach(word=>{word.style.display=\"inline-block\";word.style.whiteSpace=\"nowrap\";});}const validChars=(splitInstance.chars||[]).filter(char=>char.innerText.trim()!==\"\");const targets=validChars.map(char=>{const letter=char.innerText;char.innerHTML=`<span class=\"reel-strip\" style=\"display: block;\">${letter}<br>${letter}</span>`;char.style.cssText=\"height: 1.2em; line-height: 1.2; display: inline-block; overflow: hidden; vertical-align: top;\";return char.querySelector(\".reel-strip\");});animTargetsRef.current=targets;timelineRef.current=gsap.timeline({paused:true}).fromTo(targets,{yPercent:0},{yPercent:-50,duration:.45,stagger:.02,ease:\"power2.inOut\"});return()=>{timelineRef.current?.kill();splitInstance.revert();};},[text]);useEffect(()=>{if(!timelineRef.current)return;if(active&&!activeRef.current){activeRef.current=true;timelineRef.current.play();}else if(!active&&activeRef.current){activeRef.current=false;timelineRef.current.reverse();}},[active]);return /*#__PURE__*/_jsx(\"div\",{ref:elRef,style:style,children:text});};const ReelLineText=({text,active,style})=>{const elRef=useRef(null);const animTargetsRef=useRef([]);const timelineRef=useRef(null);const splitRef=useRef(null);const activeRef=useRef(false);useLayoutEffect(()=>{if(!elRef.current||!text)return;const el=elRef.current;el.innerText=text;const splitInstance=new SplitType(el,{types:\"lines\",lineClass:\"reel-line\"});splitRef.current=splitInstance;const validLines=(splitInstance.lines||[]).filter(line=>line.innerText.trim()!==\"\");const targets=validLines.map(line=>{const content=line.innerHTML;line.style.overflow=\"hidden\";line.style.display=\"block\";line.innerHTML=`<span class=\"reel-line-inner\" style=\"display: block;\">${content}</span>`;return line.querySelector(\".reel-line-inner\");});animTargetsRef.current=targets;timelineRef.current=gsap.timeline({paused:true}).fromTo(targets,{yPercent:100},{yPercent:0,duration:.55,stagger:.08,ease:\"power3.out\"});return()=>{timelineRef.current?.kill();splitInstance.revert();};},[text]);useEffect(()=>{if(!timelineRef.current)return;if(active&&!activeRef.current){activeRef.current=true;timelineRef.current.play();}else if(!active&&activeRef.current){activeRef.current=false;timelineRef.current.reverse();}},[active]);return /*#__PURE__*/_jsx(\"div\",{ref:elRef,style:style,children:text});};const DEFAULT_IMAGES=[{mediaType:\"image\",image:\"https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=800&q=80\",video:\"\",width:480,height:580,title:\"01 / UNPACK\",description:\"We dissect your brand narrative, audience behavior, and business goals to set the creative foundation.\"},{mediaType:\"image\",image:\"https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?w=800&q=80\",video:\"\",width:380,height:440,title:\"02 / SHAPE\",description:\"Translating strategy into high-contrast visual identities and dynamic art direction.\"},{mediaType:\"image\",image:\"https://images.unsplash.com/photo-1600585152220-90363fe7e115?w=800&q=80\",video:\"\",width:280,height:340,title:\"03 / ARCHITECT\",description:\"Designing intuitive user flows, editorial layouts, and modular UI systems built to scale.\"},{mediaType:\"image\",image:\"https://images.unsplash.com/photo-1615873968403-89e068629265?w=800&q=80\",video:\"\",width:280,height:340,title:\"04 / ANIMATE & BUILD\",description:\"Bringing design into code through fluid interactions, responsive physics, and high-performance WebGL.\"},{mediaType:\"image\",image:\"https://images.unsplash.com/photo-1616486338812-3dadae4b4ace?w=800&q=80\",video:\"\",width:580,height:640,title:\"05 / DELIVER\",description:\"Rigorous quality control, speed optimization, and an end-to-end launch ready for impact.\"}];const DESKTOP_CORNER_PATTERN=[\"br\",\"bl\",\"bl\",\"br\"];const ALTERNATING_CORNER_PATTERN=[\"br\",\"bl\",\"br\",\"bl\"];const FIRST_IMAGE_X=0;const FIRST_IMAGE_Y=0;const TOP_STICKY_OFFSET=160;const TABLET_TOP_STICKY_OFFSET=110;const MOBILE_TOP_STICKY_OFFSET=70;const FluidImageCanvas=({src,alt,width,height,disableSimulation})=>{const containerRef=useRef(null);const canvasRef=useRef(null);useEffect(()=>{if(disableSimulation||!canvasRef.current||!containerRef.current)return;const canvas=canvasRef.current;const container=containerRef.current;let rafId=0;let isHovered=false;let isFirstMove=true;let activeActivity=0;let isRunning=false;let lastTime=performance.now();let cachedRect=null;const updateRect=()=>{if(container){cachedRect=container.getBoundingClientRect();}};const pointer={x:.5,y:.5,dx:0,dy:0,moved:false};let renderer=null;try{renderer=new THREE.WebGLRenderer({canvas,antialias:false,alpha:true,powerPreference:\"high-performance\"});}catch{return;}renderer.setPixelRatio(1);const orthoCam=new THREE.OrthographicCamera(-1,1,1,-1,0,1);const quadGeom=new THREE.PlaneGeometry(2,2);const splatMat=new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_SPLAT,uniforms:{u_input_texture:{value:null},u_ratio:{value:1},u_point_value:{value:new THREE.Vector3},u_point:{value:new THREE.Vector2},u_point_size:{value:.0028},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false});const advectionMat=new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_ADVECTION,uniforms:{u_velocity_texture:{value:null},u_input_texture:{value:null},u_texel:{value:new THREE.Vector2},u_output_texel:{value:new THREE.Vector2},u_dt:{value:.016},u_dissipation:{value:.96}},depthTest:false,depthWrite:false});const divergenceMat=new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_DIVERGENCE,uniforms:{u_velocity_texture:{value:null},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false});const pressureMat=new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_PRESSURE,uniforms:{u_pressure_texture:{value:null},u_divergence_texture:{value:null},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false});const gradientSubtractMat=new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_GRADIENT_SUBTRACT,uniforms:{u_pressure_texture:{value:null},u_velocity_texture:{value:null},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false});const noiseSize=64;const noiseData=new Uint8Array(noiseSize*noiseSize*4);for(let i=0;i<noiseData.length;i++){noiseData[i]=Math.floor(Math.random()*256);}const blueNoiseTex=new THREE.DataTexture(noiseData,noiseSize,noiseSize,THREE.RGBAFormat);blueNoiseTex.wrapS=blueNoiseTex.wrapT=THREE.RepeatWrapping;blueNoiseTex.needsUpdate=true;let mediaRatio=width/(height||1)||1;let mediaTexture=null;const displayMat=new THREE.RawShaderMaterial({vertexShader:BLIT_VERT,fragmentShader:FRAG_DISTORTION_OUTPUT,uniforms:{u_media_texture:{value:null},u_output_texture:{value:null},u_velocity_texture:{value:null},u_blue_noise_texture:{value:blueNoiseTex},u_blue_noise_texel_size:{value:new THREE.Vector2(1/noiseSize,1/noiseSize)},u_blue_noise_offset:{value:new THREE.Vector2},u_ratio:{value:1},u_img_ratio:{value:mediaRatio},u_distortion_amount:{value:3.2},u_rgb_shift:{value:.4},u_fit_mode:{value:1},u_texel:{value:new THREE.Vector2}},depthTest:false,depthWrite:false});const scene=new THREE.Scene;const quadMesh=new THREE.Mesh(quadGeom,splatMat);scene.add(quadMesh);const renderQuad=(target,material)=>{if(!renderer)return;quadMesh.material=material;renderer.setRenderTarget(target);renderer.render(scene,orthoCam);};const createRT=(w,h)=>new THREE.WebGLRenderTarget(w,h,{type:THREE.HalfFloatType,format:THREE.RGBAFormat,minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,depthBuffer:false,stencilBuffer:false});const createDoubleFBO=(w,h)=>{let fbo1=createRT(w,h);let fbo2=createRT(w,h);return{width:w,height:h,read:()=>fbo1,write:()=>fbo2,swap:()=>{const tmp=fbo1;fbo1=fbo2;fbo2=tmp;},dispose:()=>{fbo1.dispose();fbo2.dispose();}};};const simRes=128;const pressureIterations=5;const fbos={velocity:createDoubleFBO(simRes,simRes),density:createDoubleFBO(simRes,simRes),divergence:createRT(simRes,simRes),pressure:createDoubleFBO(simRes,simRes)};function loop(time){if(!renderer||!displayMat.uniforms.u_media_texture.value){isRunning=false;return;}const dt=Math.min((time-lastTime)/1e3,1/30);lastTime=time;const simTexel=new THREE.Vector2(1/simRes,1/simRes);const ratio=canvas.width/Math.max(canvas.height,1);if(pointer.moved&&isHovered){pointer.moved=false;splatMat.uniforms.u_ratio.value=ratio;splatMat.uniforms.u_point.value.set(pointer.x,pointer.y);splatMat.uniforms.u_point_size.value=.0025;splatMat.uniforms.u_input_texture.value=fbos.velocity.read().texture;splatMat.uniforms.u_point_value.value.set(pointer.dx,pointer.dy,0);renderQuad(fbos.velocity.write(),splatMat);fbos.velocity.swap();splatMat.uniforms.u_input_texture.value=fbos.density.read().texture;splatMat.uniforms.u_point_value.value.set(24*.05,0,0);renderQuad(fbos.density.write(),splatMat);fbos.density.swap();}divergenceMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;divergenceMat.uniforms.u_texel.value.copy(simTexel);renderQuad(fbos.divergence,divergenceMat);pressureMat.uniforms.u_divergence_texture.value=fbos.divergence.texture;pressureMat.uniforms.u_texel.value.copy(simTexel);for(let i=0;i<pressureIterations;i++){pressureMat.uniforms.u_pressure_texture.value=fbos.pressure.read().texture;renderQuad(fbos.pressure.write(),pressureMat);fbos.pressure.swap();}gradientSubtractMat.uniforms.u_pressure_texture.value=fbos.pressure.read().texture;gradientSubtractMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;gradientSubtractMat.uniforms.u_texel.value.copy(simTexel);renderQuad(fbos.velocity.write(),gradientSubtractMat);fbos.velocity.swap();advectionMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;advectionMat.uniforms.u_input_texture.value=fbos.velocity.read().texture;advectionMat.uniforms.u_texel.value.copy(simTexel);advectionMat.uniforms.u_output_texel.value.copy(simTexel);advectionMat.uniforms.u_dt.value=dt;advectionMat.uniforms.u_dissipation.value=.96;renderQuad(fbos.velocity.write(),advectionMat);fbos.velocity.swap();advectionMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;advectionMat.uniforms.u_input_texture.value=fbos.density.read().texture;advectionMat.uniforms.u_output_texel.value.copy(simTexel);advectionMat.uniforms.u_dt.value=dt*4;advectionMat.uniforms.u_dissipation.value=.97;renderQuad(fbos.density.write(),advectionMat);fbos.velocity.swap();displayMat.uniforms.u_output_texture.value=fbos.density.read().texture;displayMat.uniforms.u_velocity_texture.value=fbos.velocity.read().texture;displayMat.uniforms.u_blue_noise_offset.value.set(Math.random(),Math.random());displayMat.uniforms.u_ratio.value=ratio;displayMat.uniforms.u_img_ratio.value=mediaRatio;displayMat.uniforms.u_distortion_amount.value=3.2;displayMat.uniforms.u_rgb_shift.value=.4;displayMat.uniforms.u_fit_mode.value=1;renderQuad(null,displayMat);if(isHovered){activeActivity=35;}else if(activeActivity>0){activeActivity--;}if(activeActivity>0){rafId=requestAnimationFrame(loop);}else{isRunning=false;}}function ensureLoop(){if(!isRunning){isRunning=true;lastTime=performance.now();rafId=requestAnimationFrame(loop);}}let isDisposed=false;const applyTexture=imageEl=>{if(isDisposed)return;const tex=new THREE.Texture(imageEl);tex.minFilter=THREE.LinearFilter;tex.magFilter=THREE.LinearFilter;tex.generateMipmaps=false;tex.needsUpdate=true;if(mediaTexture){mediaTexture.dispose();}mediaTexture=tex;if(imageEl.naturalWidth&&imageEl.naturalHeight){mediaRatio=imageEl.naturalWidth/imageEl.naturalHeight;}displayMat.uniforms.u_media_texture.value=tex;displayMat.uniforms.u_img_ratio.value=mediaRatio;activeActivity=10;ensureLoop();};const img=new Image;img.crossOrigin=\"anonymous\";img.onload=()=>applyTexture(img);img.onerror=()=>{if(isDisposed)return;const retryImg=new Image;retryImg.onload=()=>applyTexture(retryImg);retryImg.src=src;};img.src=src;if(img.complete&&img.naturalWidth>0){applyTexture(img);}const baseWidth=Math.min(512,Math.max(256,width));canvas.width=baseWidth;canvas.height=Math.round(baseWidth/mediaRatio);renderer.setSize(canvas.width,canvas.height,false);const handlePointerCoord=(normX,normY)=>{const x=Math.max(0,Math.min(1,normX));const y=Math.max(0,Math.min(1,1-normY));if(isFirstMove){pointer.x=x;pointer.y=y;pointer.dx=0;pointer.dy=0;isFirstMove=false;return;}pointer.dx=(x-pointer.x)*120;pointer.dy=(y-pointer.y)*120;pointer.x=x;pointer.y=y;pointer.moved=true;activeActivity=35;ensureLoop();};const onMouseEnter=e=>{isHovered=true;isFirstMove=true;updateRect();if(cachedRect&&cachedRect.width>0&&cachedRect.height>0){handlePointerCoord((e.clientX-cachedRect.left)/cachedRect.width,(e.clientY-cachedRect.top)/cachedRect.height);}};const onMouseLeave=()=>{isHovered=false;pointer.moved=false;pointer.dx=0;pointer.dy=0;isFirstMove=true;};const onMouseMove=e=>{if(!cachedRect)updateRect();if(cachedRect&&cachedRect.width>0&&cachedRect.height>0){handlePointerCoord((e.clientX-cachedRect.left)/cachedRect.width,(e.clientY-cachedRect.top)/cachedRect.height);}};container.addEventListener(\"mouseenter\",onMouseEnter);container.addEventListener(\"mouseleave\",onMouseLeave);container.addEventListener(\"mousemove\",onMouseMove);ensureLoop();return()=>{isDisposed=true;cancelAnimationFrame(rafId);container.removeEventListener(\"mouseenter\",onMouseEnter);container.removeEventListener(\"mouseleave\",onMouseLeave);container.removeEventListener(\"mousemove\",onMouseMove);if(renderer)renderer.dispose();quadGeom.dispose();splatMat.dispose();advectionMat.dispose();divergenceMat.dispose();pressureMat.dispose();gradientSubtractMat.dispose();displayMat.dispose();blueNoiseTex.dispose();if(mediaTexture)mediaTexture.dispose();fbos.velocity.dispose();fbos.density.dispose();fbos.divergence.dispose();fbos.pressure.dispose();};},[src,width,height,disableSimulation]);return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",cursor:\"pointer\",touchAction:\"pan-y\",pointerEvents:disableSimulation?\"none\":\"auto\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\"},children:[/*#__PURE__*/_jsx(\"img\",{src:src,alt:alt,loading:\"lazy\",decoding:\"async\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\",pointerEvents:\"none\"}}),!disableSimulation&&/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",inset:0,display:\"block\",width:\"100%\",height:\"100%\",objectFit:\"cover\",pointerEvents:\"none\"}})]});};export default function ScrollCornerStack(props){const{images,titleFont,titleColor=\"#111111\",descriptionFont,descriptionColor=\"#666666\",titleMargin,borderRadius=0,startScale=0,endScale=1,mode=\"auto\"}=props;const safeImages=images&&images.length>0?images:DEFAULT_IMAGES;const sectionRef=useRef(null);const stickyRef=useRef(null);const[viewportHeight,setViewportHeight]=useState(0);const[screenWidth,setScreenWidth]=useState(1200);useEffect(()=>{let resizeTimer;function measure(){if(typeof window!==\"undefined\"){setScreenWidth(window.innerWidth);}if(stickyRef.current){setViewportHeight(stickyRef.current.getBoundingClientRect().height);}}measure();const onResize=()=>{clearTimeout(resizeTimer);resizeTimer=window.setTimeout(measure,100);};window.addEventListener(\"resize\",onResize,{passive:true});return()=>{window.removeEventListener(\"resize\",onResize);clearTimeout(resizeTimer);};},[]);const isMobile=mode===\"mobile\"?true:mode===\"desktop\"||mode===\"tablet\"?false:screenWidth<768;const isTablet=mode===\"tablet\"?true:mode===\"desktop\"||mode===\"mobile\"?false:screenWidth>=768&&screenWidth<1024;const isTouchTier=isMobile||isTablet;const activeTopOffset=isMobile?MOBILE_TOP_STICKY_OFFSET:isTablet?TABLET_TOP_STICKY_OFFSET:TOP_STICKY_OFFSET;const N=safeImages.length;const corners=useMemo(()=>{const pattern=isTouchTier?ALTERNATING_CORNER_PATTERN:DESKTOP_CORNER_PATTERN;return Array.from({length:Math.max(N-1,0)},(_,i)=>pattern[i%pattern.length]);},[N,isTouchTier]);const computedImages=useMemo(()=>{if(!isTouchTier)return safeImages;const sW=screenWidth||(isMobile?390:768);const bigW=isTablet?Math.round(sW*.48):Math.round(sW*.6);const smallW=isTablet?Math.round(sW*.36):Math.round(sW*.4);return safeImages.map((img,i)=>{const isBig=i%2===0;const targetW=isBig?bigW:smallW;const targetH=isBig?Math.round(targetW*1.25):Math.round(targetW*1.05);return{...img,width:targetW,height:targetH};});},[safeImages,isTouchTier,isTablet,isMobile,screenWidth]);const rects=useMemo(()=>{const out=[];const first=computedImages[0];if(!first)return out;out.push({left:FIRST_IMAGE_X,top:FIRST_IMAGE_Y,width:first.width,height:first.height,origin:\"top left\"});for(let i=1;i<N;i++){const prev=out[i-1];const item=computedImages[i];const corner=corners[i-1];if(corner===\"br\"){const left=isTouchTier?Math.max(0,screenWidth-item.width):prev.left+prev.width;const top=prev.top+prev.height;out.push({left,top,width:item.width,height:item.height,origin:\"top left\"});}else{const left=isTouchTier?0:prev.left-item.width;const top=prev.top+prev.height;out.push({left,top,width:item.width,height:item.height,origin:\"top right\"});}}return out;},[computedImages,N,corners,isTouchTier,screenWidth]);const totalContentHeight=useMemo(()=>rects.reduce((sum,r)=>sum+r.height,0),[rects]);const segments=useMemo(()=>{let cumulative=0;return rects.map(r=>{const segStart=totalContentHeight>0?cumulative/totalContentHeight:0;cumulative+=r.height;const segEnd=totalContentHeight>0?cumulative/totalContentHeight:1;return{segStart,segEnd};});},[rects,totalContentHeight]);const textExtraPadding=isMobile?180:isTablet?200:240;const sectionHeightPx=totalContentHeight+(viewportHeight||800)+textExtraPadding;const{scrollYProgress}=useScroll({target:sectionRef,offset:[\"start 0.9\",\"end end\"]});const desktopSpringProgress=useSpring(scrollYProgress,{stiffness:100,damping:30,restDelta:.001});const activeScrollProgress=isTouchTier?scrollYProgress:desktopSpringProgress;const maxPan=useMemo(()=>{if(rects.length===0)return 0;const lastRect=rects[rects.length-1];const stackBottom=lastRect.top+lastRect.height+(isMobile?120:isTablet?140:160);const effectiveVh=(viewportHeight||800)-activeTopOffset;return Math.max(0,stackBottom-effectiveVh);},[rects,viewportHeight,activeTopOffset,isMobile,isTablet]);const panRange=useMemo(()=>{const input=[0];const output=[0];const effectiveVh=(viewportHeight||800)-activeTopOffset;segments.forEach((seg,i)=>{const rect=rects[i];if(!rect)return;const isLast=i===segments.length-1;const imgCenterY=isLast?rect.top+rect.height/2+(isMobile?40:isTablet?60:80):rect.top+rect.height/2;const targetPan=Math.min(maxPan,Math.max(0,imgCenterY-effectiveVh/2));input.push(seg.segEnd);output.push(-targetPan);});return{input,output};},[segments,rects,viewportHeight,maxPan,activeTopOffset,isMobile,isTablet]);const translateY=useTransform(scrollYProgress,panRange.input,panRange.output);if(N===0)return null;return /*#__PURE__*/_jsx(\"div\",{ref:sectionRef,style:{position:\"relative\",height:sectionHeightPx>0?`${sectionHeightPx}px`:\"350vh\",contain:\"paint layout\"},children:/*#__PURE__*/_jsx(\"div\",{ref:stickyRef,style:{position:\"sticky\",top:activeTopOffset,height:`calc(100vh - ${activeTopOffset}px)`,overflow:\"visible\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\"},children:/*#__PURE__*/_jsx(motion.div,{style:{position:\"relative\",width:\"100%\",height:\"100%\",y:translateY,transform:\"translateZ(0)\"},children:computedImages.map((item,i)=>/*#__PURE__*/_jsx(StackImage,{index:i,totalCount:N,item:item,titleFont:titleFont,titleColor:titleColor,descriptionFont:descriptionFont,descriptionColor:descriptionColor,titleMargin:titleMargin,rect:rects[i],zIndex:i+1,borderRadius:borderRadius,startScale:i===0?0:startScale,endScale:endScale,segStart:segments[i]?.segStart??0,segEnd:segments[i]?.segEnd??1,nextSegStart:i<N-1?segments[i+1]?.segStart:undefined,scrollYProgress:activeScrollProgress,isMobile:isMobile,isTablet:isTablet},i))})})});}function StackImage({index,totalCount,item,titleFont,titleColor=\"#111111\",descriptionFont,descriptionColor=\"#666666\",titleMargin,rect,zIndex,borderRadius,startScale,endScale,segStart,segEnd,nextSegStart,scrollYProgress,isMobile=false,isTablet=false}){const isTouchTier=isMobile||isTablet;const isLast=index===totalCount-1;const scaleEnd=isLast?.82:segEnd;const mobileStartScale=Math.max(.001,startScale);const effectiveStartScale=isTouchTier?mobileStartScale:0;const scale=useTransform(scrollYProgress,index===0?[0,scaleEnd]:[segStart,scaleEnd],[effectiveStartScale,endScale],{clamp:true});const touchOpacity=useTransform(scrollYProgress,index===0?[0,.01]:[segStart,segStart+.015],[index===0?1:0,1],{clamp:true});const totalSpan=isLast?.16:nextSegStart!==undefined?Math.max(.04,(nextSegStart-scaleEnd)*.95):.08;const titleStart=scaleEnd;const titleEnd=scaleEnd+totalSpan*.45;const descStart=scaleEnd+totalSpan*.35;const descEnd=scaleEnd+totalSpan*.9;const titleOpacity=useTransform(scrollYProgress,[titleStart,titleEnd],[0,1],{clamp:true});const titleY=useTransform(scrollYProgress,[titleStart,titleEnd],[14,0],{clamp:true});const descOpacity=useTransform(scrollYProgress,[descStart,descEnd],[0,1],{clamp:true});const descY=useTransform(scrollYProgress,[descStart,descEnd],[18,0],{clamp:true});const[isTitleReelActive,setIsTitleReelActive]=useState(false);const[isDescReelActive,setIsDescReelActive]=useState(false);useEffect(()=>{const unsubscribe=scrollYProgress.on(\"change\",v=>{setIsTitleReelActive(v>=titleStart);setIsDescReelActive(v>=descStart);});return()=>unsubscribe();},[scrollYProgress,titleStart,descStart]);if(!rect)return null;const{mediaType,image,video,title,description}=item;const hasVisibleCaption=isMobile?!!title:!!(title||description);return /*#__PURE__*/_jsxs(motion.div,{style:{position:\"absolute\",left:rect.left,top:rect.top,width:rect.width,height:rect.height,borderRadius,zIndex,transformOrigin:rect.origin,scale,opacity:isTouchTier?touchOpacity:1,boxShadow:\"none\",pointerEvents:\"auto\",willChange:\"transform\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",borderRadius,overflow:\"hidden\",pointerEvents:isTouchTier?\"none\":\"auto\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\"},children:mediaType===\"video\"&&video?/*#__PURE__*/_jsx(\"video\",{src:video,autoPlay:true,loop:true,muted:true,playsInline:true,preload:\"metadata\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}}):/*#__PURE__*/_jsx(FluidImageCanvas,{src:image||\"\",alt:title||\"\",width:rect.width,height:rect.height,disableSimulation:isTouchTier})}),hasVisibleCaption&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:0,top:\"100%\",width:rect.width,marginTop:titleMargin?.top??12,marginRight:titleMargin?.right??0,marginBottom:titleMargin?.bottom??0,marginLeft:titleMargin?.left??0,pointerEvents:\"none\",display:\"flex\",flexDirection:\"column\",gap:6,transform:\"translateZ(0)\"},children:[title&&/*#__PURE__*/_jsx(motion.div,{style:{fontSize:isTablet?12:13,fontWeight:700,letterSpacing:\"0.04em\",textTransform:\"uppercase\",fontFamily:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",color:titleColor,width:\"100%\",opacity:titleOpacity,y:titleY,transform:\"translateZ(0)\",backfaceVisibility:\"hidden\",...titleFont},children:/*#__PURE__*/_jsx(ReelCharText,{text:title,active:isTitleReelActive})}),!isMobile&&description&&/*#__PURE__*/_jsx(motion.div,{style:{fontSize:isTablet?12:13,lineHeight:1.45,color:descriptionColor,fontFamily:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",width:\"100%\",maxWidth:isTablet?320:427,opacity:descOpacity,y:descY,transform:\"translateZ(0)\",backfaceVisibility:\"hidden\",...descriptionFont},children:/*#__PURE__*/_jsx(ReelLineText,{text:description,active:isDescReelActive})})]})]});}addPropertyControls(ScrollCornerStack,{mode:{type:ControlType.Enum,title:\"Device View\",options:[\"auto\",\"desktop\",\"tablet\",\"mobile\"],optionTitles:[\"Auto (Responsive)\",\"Desktop\",\"Tablet\",\"Mobile\"],defaultValue:\"auto\"},images:{type:ControlType.Array,title:\"Images\",control:{type:ControlType.Object,controls:{mediaType:{type:ControlType.Enum,title:\"Media\",options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],defaultValue:\"image\"},image:{type:ControlType.Image,title:\"Image\",hidden(props){return props.mediaType===\"video\";}},video:{type:ControlType.File,title:\"Video\",allowedFileTypes:[\"mp4\",\"webm\",\"mov\"],hidden(props){return props.mediaType!==\"video\";}},width:{type:ControlType.Number,title:\"Width\",min:50,max:1600,defaultValue:400},height:{type:ControlType.Number,title:\"Height\",min:50,max:1600,defaultValue:480},title:{type:ControlType.String,title:\"Title\",defaultValue:\"\"},description:{type:ControlType.String,title:\"Description\",displayTextArea:true,defaultValue:\"\"}}},defaultValue:DEFAULT_IMAGES},titleColor:{type:ControlType.Color,title:\"Title Color\",defaultValue:\"#111111\"},titleFont:{type:ControlType.Font,title:\"Title Typography\",controls:\"extended\",defaultFontType:\"sans-serif\"},descriptionColor:{type:ControlType.Color,title:\"Desc Color\",defaultValue:\"#666666\"},descriptionFont:{type:ControlType.Font,title:\"Desc Typography\",controls:\"extended\",defaultFontType:\"sans-serif\"},titleMargin:{type:ControlType.Object,title:\"Title Margin\",controls:{top:{type:ControlType.Number,title:\"Top\",min:0,max:200,step:1,defaultValue:12},right:{type:ControlType.Number,title:\"Right\",min:0,max:200,step:1,defaultValue:0},bottom:{type:ControlType.Number,title:\"Bottom\",min:0,max:200,step:1,defaultValue:0},left:{type:ControlType.Number,title:\"Left\",min:0,max:200,step:1,defaultValue:0}}},startScale:{type:ControlType.Number,title:\"Start Scale\",min:0,max:1,step:.05,defaultValue:0},endScale:{type:ControlType.Number,title:\"End Scale\",min:.5,max:2,step:.05,defaultValue:1},borderRadius:{type:ControlType.Number,title:\"Border Radius\",min:0,max:100,defaultValue:0}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollCornerStack\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Scroll_Image_Reveal.map"],"mappings":"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"}