{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/Tof0xbO4aDzbNAEUJeNI/Y7olIvL4eOLMepwAcmiH/TextureAnimator.js", "ssg:https://framerusercontent.com/modules/h6d0LAaErDPm0hB5YeEj/I5P7izhhQNPenekRGz8Z/z3ayhBiFb.js", "ssg:https://framerusercontent.com/modules/1tozEpjrMk5jxT0M8TRH/jttSqrdVr7jqeU8v7Em6/iVE6gRX8E.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * Procedural Displacement Effect\n * \n * Applies a subtle displacement effect to images using procedural noise patterns.\n * Ottimizzato per performance: throttling, decoding async, resize observer, memory cleanup.\n * \n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function DisplacementEffect(props){const{image={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Image\"},intensity=15,speed=5,noiseScale=30,noiseType=\"perlin\",colorEffect=false,colorIntensity=.3}=props;const canvasRef=useRef(null);const originalImageRef=useRef(null);const[time,setTime]=useState(0);const isStatic=useIsStaticRenderer();const requestRef=useRef();const previousTimeRef=useRef();const imageLoaded=useRef(false);const resizeObserver=useRef(null);// Load the original image (async, responsive, memory safe)\nuseEffect(()=>{if(isStatic)return;let cancelled=false;const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const mainImage=new window.Image;mainImage.crossOrigin=\"anonymous\";mainImage.decoding=\"async\";mainImage.loading=\"eager\";mainImage.src=image.src;const handleImageLoad=()=>{if(cancelled)return;canvas.width=canvas.clientWidth;canvas.height=canvas.clientHeight;const imgRatio=mainImage.width/mainImage.height;const canvasRatio=canvas.width/canvas.height;let drawWidth,drawHeight,offsetX=0,offsetY=0;if(imgRatio>canvasRatio){drawHeight=canvas.height;drawWidth=mainImage.width*(canvas.height/mainImage.height);offsetX=(canvas.width-drawWidth)/2;}else{drawWidth=canvas.width;drawHeight=mainImage.height*(canvas.width/mainImage.width);offsetY=(canvas.height-drawHeight)/2;}ctx.clearRect(0,0,canvas.width,canvas.height);ctx.drawImage(mainImage,offsetX,offsetY,drawWidth,drawHeight);originalImageRef.current=ctx.getImageData(0,0,canvas.width,canvas.height);imageLoaded.current=true;};mainImage.onload=handleImageLoad;if(mainImage.complete)handleImageLoad();// Responsive: reload on resize\nif(resizeObserver.current)resizeObserver.current.disconnect();resizeObserver.current=new window.ResizeObserver(()=>{if(mainImage.complete)handleImageLoad();});resizeObserver.current.observe(canvas);return()=>{cancelled=true;mainImage.onload=null;if(resizeObserver.current)resizeObserver.current.disconnect();};},[image.src,isStatic]);// Noise functions for procedural displacement\nconst noise={perlin:(x,y,time)=>{const X=Math.floor(x)&255;const Y=Math.floor(y)&255;x-=Math.floor(x);y-=Math.floor(y);const fade=t=>t*t*(3-2*t);const hash=i=>Math.sin(i*12.9898+time*.1)*43758.5453%1;const g00=hash(X+hash(Y))*2-1;const g10=hash(X+1+hash(Y))*2-1;const g01=hash(X+hash(Y+1))*2-1;const g11=hash(X+1+hash(Y+1))*2-1;const u=fade(x);const v=fade(y);const result=(1-u)*((1-v)*g00+v*g01)+u*((1-v)*g10+v*g11);return(result+1)*.5;},simplex:(x,y,time)=>{const t=time*.1;return(Math.sin(x*.1+t)*Math.cos(y*.1-t)*.5+.5+Math.sin(x*.2-t*1.3)*Math.cos(y*.3+t*.7)*.25+.25)*.5;},waves:(x,y,time)=>{const t=time*.003;const dx=Math.sin(y*.05+t)*10;const dy=Math.cos(x*.05+t)*10;return(Math.sin(((x+dx)*.1+t)*2)+Math.sin(((y+dy)*.1-t)*2))*.25+.5;},ripple:(x,y,time)=>{const t=time*.002;const cx=Math.sin(t*.7)*100+x;const cy=Math.cos(t*.5)*100+y;const dist=Math.sqrt((x-cx)*(x-cx)+(y-cy)*(y-cy));return(Math.sin(dist*.1-t*10)+1)*.5;}};// Apply displacement effect\nconst applyDisplacement=time=>{if(!imageLoaded.current||!originalImageRef.current)return;const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const originalData=originalImageRef.current;const newImageData=ctx.createImageData(canvas.width,canvas.height);const noiseFunc=noise[noiseType];for(let y=0;y<canvas.height;y++){for(let x=0;x<canvas.width;x++){const noiseValue=noiseFunc(x/noiseScale,y/noiseScale,time);const displaceX=Math.floor(x+(noiseValue-.5)*intensity);const displaceY=Math.floor(y+(noiseValue-.5)*intensity);const sourceX=Math.max(0,Math.min(canvas.width-1,displaceX));const sourceY=Math.max(0,Math.min(canvas.height-1,displaceY));const sourceIndex=(sourceY*canvas.width+sourceX)*4;const targetIndex=(y*canvas.width+x)*4;newImageData.data[targetIndex]=originalData.data[sourceIndex];newImageData.data[targetIndex+1]=originalData.data[sourceIndex+1];newImageData.data[targetIndex+2]=originalData.data[sourceIndex+2];if(colorEffect){const colorShift=noiseValue*colorIntensity;newImageData.data[targetIndex]=Math.min(255,newImageData.data[targetIndex]*(1+colorShift));newImageData.data[targetIndex+2]=Math.min(255,newImageData.data[targetIndex+2]*(1-colorShift));}newImageData.data[targetIndex+3]=originalData.data[sourceIndex+3];}}ctx.putImageData(newImageData,0,0);};// Animation loop (throttled, memory safe)\nuseEffect(()=>{if(isStatic)return;let running=true;let lastFrame=performance.now();const animate=timestamp=>{if(!running)return;if(timestamp-lastFrame<33){requestRef.current=requestAnimationFrame(animate);return;}lastFrame=timestamp;if(previousTimeRef.current!==undefined){const deltaTime=timestamp-previousTimeRef.current;setTime(prevTime=>prevTime+deltaTime*speed*.05);applyDisplacement(time);}previousTimeRef.current=timestamp;requestRef.current=requestAnimationFrame(animate);};requestRef.current=requestAnimationFrame(animate);return()=>{running=false;if(requestRef.current)cancelAnimationFrame(requestRef.current);};},[speed,isStatic,noiseType,intensity,noiseScale,colorEffect,colorIntensity,time]);// Apply effect when parameters change\nuseEffect(()=>{if(!isStatic&&imageLoaded.current){applyDisplacement(time);}},[intensity,noiseScale,noiseType,colorEffect,colorIntensity]);// Free memory on unmount\nuseEffect(()=>{return()=>{originalImageRef.current=null;if(resizeObserver.current)resizeObserver.current.disconnect();};},[]);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",...props.style},children:isStatic?/*#__PURE__*/_jsx(\"img\",{src:image.src,alt:image.alt,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}):/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}})});}addPropertyControls(DisplacementEffect,{image:{type:ControlType.ResponsiveImage,title:\"Image\"},noiseType:{type:ControlType.Enum,title:\"Effect Type\",options:[\"perlin\",\"simplex\",\"waves\",\"ripple\"],optionTitles:[\"Perlin\",\"Simplex\",\"Waves\",\"Ripple\"],defaultValue:\"perlin\"},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:15,min:0,max:50,step:1},noiseScale:{type:ControlType.Number,title:\"Scale\",defaultValue:30,min:5,max:100,step:1},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:5,min:0,max:20,step:.5},colorEffect:{type:ControlType.Boolean,title:\"Color Effect\",defaultValue:false},colorIntensity:{type:ControlType.Number,title:\"Color Intensity\",defaultValue:.3,min:0,max:1,step:.05,hidden:({colorEffect})=>!colorEffect}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DisplacementEffect\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextureAnimator.map", "// Generated by Framer (eea9f0c)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;KMR Apparat Regular\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"KMR Apparat Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/fsnNfdzSiAEuKIBeYTpE69Gnm84.woff2\"}]}];export const css=['.framer-h7MM9 .framer-styles-preset-w96wz6:not(.rich-text-wrapper), .framer-h7MM9 .framer-styles-preset-w96wz6.rich-text-wrapper h4 { --framer-font-family: \"KMR Apparat Regular\", \"KMR Apparat Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 22px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: -0.04em; --framer-line-height: 1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-2a6b369c-ac19-4be5-a811-da7b4ed83ad7, #e9ebde); --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-h7MM9 .framer-styles-preset-w96wz6:not(.rich-text-wrapper), .framer-h7MM9 .framer-styles-preset-w96wz6.rich-text-wrapper h4 { --framer-font-family: \"KMR Apparat Regular\", \"KMR Apparat Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: -0.04em; --framer-line-height: 1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-2a6b369c-ac19-4be5-a811-da7b4ed83ad7, #e9ebde); --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-h7MM9 .framer-styles-preset-w96wz6:not(.rich-text-wrapper), .framer-h7MM9 .framer-styles-preset-w96wz6.rich-text-wrapper h4 { --framer-font-family: \"KMR Apparat Regular\", \"KMR Apparat Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 24px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: -0.04em; --framer-line-height: 1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-2a6b369c-ac19-4be5-a811-da7b4ed83ad7, #e9ebde); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-h7MM9\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "// Generated by Framer (eea9f0c)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;KMR Apparat Regular\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"KMR Apparat Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/fsnNfdzSiAEuKIBeYTpE69Gnm84.woff2\"}]}];export const css=['.framer-b9LEc .framer-styles-preset-1l2i47d:not(.rich-text-wrapper), .framer-b9LEc .framer-styles-preset-1l2i47d.rich-text-wrapper h2 { --framer-font-family: \"KMR Apparat Regular\", \"KMR Apparat Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 56px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0px; --framer-line-height: 1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-2a6b369c-ac19-4be5-a811-da7b4ed83ad7, #e9ebde); --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-b9LEc .framer-styles-preset-1l2i47d:not(.rich-text-wrapper), .framer-b9LEc .framer-styles-preset-1l2i47d.rich-text-wrapper h2 { --framer-font-family: \"KMR Apparat Regular\", \"KMR Apparat Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 45px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0px; --framer-line-height: 1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-2a6b369c-ac19-4be5-a811-da7b4ed83ad7, #e9ebde); --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-b9LEc .framer-styles-preset-1l2i47d:not(.rich-text-wrapper), .framer-b9LEc .framer-styles-preset-1l2i47d.rich-text-wrapper h2 { --framer-font-family: \"KMR Apparat Regular\", \"KMR Apparat Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 33px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0px; --framer-line-height: 1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-2a6b369c-ac19-4be5-a811-da7b4ed83ad7, #e9ebde); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-b9LEc\";\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": "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",
  "names": ["DisplacementEffect", "props", "image", "intensity", "speed", "noiseScale", "noiseType", "colorEffect", "colorIntensity", "canvasRef", "pe", "originalImageRef", "time", "setTime", "ye", "isStatic", "useIsStaticRenderer", "requestRef", "previousTimeRef", "imageLoaded", "resizeObserver", "ue", "cancelled", "canvas", "ctx", "mainImage", "window", "handleImageLoad", "imgRatio", "canvasRatio", "drawWidth", "drawHeight", "offsetX", "offsetY", "noise", "x", "y", "X", "Y", "fade", "t", "hash", "g00", "g10", "g01", "g11", "u", "v", "dx", "dy", "cx", "cy", "dist", "applyDisplacement", "originalData", "newImageData", "noiseFunc", "noiseValue", "displaceX", "displaceY", "sourceX", "sourceIndex", "targetIndex", "colorShift", "running", "lastFrame", "animate", "timestamp", "deltaTime", "prevTime", "p", "addPropertyControls", "ControlType", "fontStore", "fonts", "css", "className", "fontStore", "fonts", "css", "className"]
}
