{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/FdlXa6Hj3mJXDTSVjZc6/RRBjLJL0GiYKYKJUDVs8/Image2Particles.js", "ssg:https://framerusercontent.com/modules/FHnG8kDGr8YhPwlnYHoR/wTXnpHSHnkKGk4kRpZoL/TpdIMbzKs.js"],
  "sourcesContent": ["/*\n * Copyright (c) 2025 Fred Moon (x.com/fw3d). All rights reserved.\n *\n * This code is the exclusive property of Fred Moon. Any unauthorized use,\n * reproduction, modification, distribution, or incorporation into other\n * software, in whole or in part, is strictly prohibited without the express\n * written permission of the author.\n *\n * This code is provided \"AS IS\" without warranty of any kind, either\n * expressed or implied, including but not limited to the implied warranties\n * of merchantability and fitness for a particular purpose.\n *\n * For licensing inquiries, please contact Fred Moon at x.com/fw3d\n *\n * This copyright notice and permission notice shall be included in all\n * copies or substantial portions of this software.\n *\n * Note: This code uses third-party libraries (e.g. P5) which are\n * subject to their own licenses and are excluded from this copyright claim.\n */// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight any\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerDisableUnlink\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 400\n */export default function ParticleSystem(props){const{imageSource,mouseSize,particleSize,speed,resolution,backgroundColor,zoomLevel,safetyMargin,resizeDebounceTime,minResizeThreshold}=props;const containerRef=useRef(null);const canvasRef=useRef(null);const[loaded,setLoaded]=useState(false);const[containerDimensions,setContainerDimensions]=useState({width:0,height:0});const previousDimensionsRef=useRef({width:0,height:0});const resizeTimeoutRef=useRef(null);const p5InstanceRef=useRef(null);// Track container dimensions with debounce for mobile\nuseEffect(()=>{if(!containerRef.current)return;const updateDimensions=()=>{if(containerRef.current){const newWidth=containerRef.current.offsetWidth;const newHeight=containerRef.current.offsetHeight;const prevWidth=previousDimensionsRef.current.width;const prevHeight=previousDimensionsRef.current.height;// Calculate the percentage change\nconst widthChange=prevWidth?Math.abs(newWidth-prevWidth)/prevWidth:1;const heightChange=prevHeight?Math.abs(newHeight-prevHeight)/prevHeight:1;const significantChange=widthChange>minResizeThreshold||heightChange>minResizeThreshold;// Clear any existing timeout\nif(resizeTimeoutRef.current){clearTimeout(resizeTimeoutRef.current);}// Only update if it's a significant change or we're debouncing\nif(significantChange||resizeDebounceTime>0){resizeTimeoutRef.current=setTimeout(()=>{setContainerDimensions({width:newWidth,height:newHeight});previousDimensionsRef.current={width:newWidth,height:newHeight};},significantChange?0:resizeDebounceTime);}}};// Initial measurement\nupdateDimensions();// Set up resize observer to handle size changes\nconst resizeObserver=new ResizeObserver(updateDimensions);resizeObserver.observe(containerRef.current);return()=>{if(containerRef.current){resizeObserver.unobserve(containerRef.current);}if(resizeTimeoutRef.current){clearTimeout(resizeTimeoutRef.current);}};},[resizeDebounceTime,minResizeThreshold]);useEffect(()=>{// Only run in browser environment\nif(typeof window===\"undefined\")return;// Load p5.js from CDN\nconst script=document.createElement(\"script\");script.src=\"https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js\";script.async=true;script.onload=()=>{setLoaded(true);};document.body.appendChild(script);return()=>{if(script.parentNode){document.body.removeChild(script);}};},[]);useEffect(()=>{if(!loaded||!canvasRef.current||!containerDimensions.width)return;// Clean up previous p5 instance to avoid memory leaks\nif(p5InstanceRef.current){p5InstanceRef.current.remove();p5InstanceRef.current=null;}// Create p5 sketch\nconst sketch=p=>{let img=null;let particles=[];const closeEnoughTarget=50;let ready=false;let isImageProcessed=false;let lastProcessedWidth=0;let lastProcessedHeight=0;// Calculate the canvas dimensions with safety margins\nconst canvasWidth=containerDimensions.width+safetyMargin*2;const canvasHeight=containerDimensions.height+safetyMargin*2;// Calculate offsets to center the canvas\nconst offsetX=-safetyMargin;const offsetY=-safetyMargin;// Simple custom vector operations\nconst createVector=(x,y)=>({x,y});const addVectors=(v1,v2)=>({x:v1.x+v2.x,y:v1.y+v2.y});const subVectors=(v1,v2)=>({x:v1.x-v2.x,y:v1.y-v2.y});const multVector=(v,scalar)=>({x:v.x*scalar,y:v.y*scalar});const normalizeVector=v=>{const mag=Math.sqrt(v.x*v.x+v.y*v.y);if(mag===0)return{x:0,y:0};return{x:v.x/mag,y:v.y/mag};};const vectorMagnitude=v=>Math.sqrt(v.x*v.x+v.y*v.y);const limitVector=(v,max)=>{const mag=vectorMagnitude(v);if(mag>max){const ratio=max/mag;return{x:v.x*ratio,y:v.y*ratio};}return v;};// Particle constructor\nfunction Particle(x,y){this.pos=createVector(x,y);this.vel=createVector(0,0);this.acc=createVector(0,0);this.target=createVector(0,0);this.isKilled=false;this.maxSpeed=p.random(.25,2);this.maxForce=p.random(8,15);this.currentColor=p.color(0);this.endColor=p.color(0);this.colorBlendRate=p.random(.01,.05);this.currentSize=0;this.distToTarget=0;}// Detect if this is a mobile device\nconst isMobileDevice=()=>{return typeof window!==\"undefined\"&&(window.navigator.userAgent.match(/Android/i)||window.navigator.userAgent.match(/webOS/i)||window.navigator.userAgent.match(/iPhone/i)||window.navigator.userAgent.match(/iPad/i)||window.navigator.userAgent.match(/iPod/i)||window.navigator.userAgent.match(/BlackBerry/i)||window.navigator.userAgent.match(/Windows Phone/i));};const isMobile=isMobileDevice();Particle.prototype.move=function(){this.distToTarget=p.dist(this.pos.x,this.pos.y,this.target.x,this.target.y);let proximityMult;if(this.distToTarget<closeEnoughTarget){proximityMult=this.distToTarget/closeEnoughTarget;this.vel=multVector(this.vel,.9);}else{proximityMult=1;this.vel=multVector(this.vel,.95);}if(this.distToTarget>1){const direction=subVectors(this.target,this.pos);const steer=normalizeVector(direction);const scaled=multVector(steer,this.maxSpeed*proximityMult*speed);this.acc=addVectors(this.acc,scaled);}// Adjust mouse position to account for canvas offset\nconst adjustedMouseX=p.mouseX;const adjustedMouseY=p.mouseY;const mouseDist=p.dist(this.pos.x,this.pos.y,adjustedMouseX,adjustedMouseY);if(mouseDist<mouseSize){let push;// On mobile, always use repelling effect regardless of whether pressed or not\nif(p.mouseIsPressed&&!isMobile){push=subVectors(createVector(adjustedMouseX,adjustedMouseY),this.pos);}else{push=subVectors(this.pos,createVector(adjustedMouseX,adjustedMouseY));}push=normalizeVector(push);push=multVector(push,(mouseSize-mouseDist)*.05);this.acc=addVectors(this.acc,push);}this.vel=addVectors(this.vel,this.acc);this.vel=limitVector(this.vel,this.maxForce*speed);this.pos=addVectors(this.pos,this.vel);this.acc=multVector(this.acc,0);};Particle.prototype.draw=function(){this.currentColor=p.lerpColor(this.currentColor,this.endColor,this.colorBlendRate);p.stroke(this.currentColor);let targetSize;if(!this.isKilled){targetSize=p.map(Math.min(this.distToTarget,closeEnoughTarget),closeEnoughTarget,0,0,particleSize);}else{targetSize=2;}this.currentSize=p.lerp(this.currentSize,targetSize,.1);p.strokeWeight(this.currentSize);p.point(this.pos.x,this.pos.y);};Particle.prototype.kill=function(){if(!this.isKilled){this.target=generateRandomPos(p.width/2,p.height/2,Math.max(p.width,p.height));this.endColor=p.color(0);this.isKilled=true;}};Particle.prototype.isOutOfBounds=function(){return this.pos.x<0||this.pos.x>p.width||this.pos.y<0||this.pos.y>p.height;};function generateRandomPos(x,y,mag){const pos=createVector(x,y);const randomDirection=createVector(p.random(p.width),p.random(p.height));const vel=subVectors(randomDirection,pos);const normalized=normalizeVector(vel);const scaled=multVector(normalized,mag);return addVectors(pos,scaled);}function processImage(){// Check if we've already processed this size and skip if dimensions haven't changed significantly\nif(isImageProcessed&&Math.abs(lastProcessedWidth-containerDimensions.width)<5&&Math.abs(lastProcessedHeight-containerDimensions.height)<5){return;}// Debug the image properties\nif(!img){return;}if(!img.pixels||img.pixels.length===0){try{img.loadPixels();}catch(e){return;}}// Clear existing particles\nparticles=[];// Calculate scale to fit image within content area (not including margins)\nconst contentWidth=containerDimensions.width;const contentHeight=containerDimensions.height;const scaleX=contentWidth/img.width;const scaleY=contentHeight/img.height;const scale=Math.min(scaleX,scaleY)*zoomLevel;// Calculate centered position (within the content area, adjusted for canvas offset)\nconst contentOffsetX=(contentWidth-img.width*scale)/2+safetyMargin;const contentOffsetY=(contentHeight-img.height*scale)/2+safetyMargin;// Sample the image and create particles\n// Adjust step size based on resolution - higher resolution = smaller step\nconst step=Math.max(1,Math.floor(10/resolution));let particleCount=0;for(let y=0;y<img.height;y+=step){for(let x=0;x<img.width;x+=step){// Calculate pixel index correctly\nconst i=4*(y*img.width+x);// Check bounds\nif(i>=img.pixels.length-4)continue;// Skip transparent pixels\nif(img.pixels[i+3]===0)continue;// Random sampling based on resolution\nif(p.random(1)>.045*resolution)continue;// Get pixel color\nconst pixelColor=p.color(img.pixels[i],img.pixels[i+1],img.pixels[i+2],img.pixels[i+3]);// Create a new particle - starting position is centered in the entire canvas\nconst particle=new Particle(p.width/2,p.height/2);// Position based on scale and offset to contain the image within the content area\nparticle.target.x=contentOffsetX+x*scale;particle.target.y=contentOffsetY+y*scale;particle.endColor=pixelColor;particles.push(particle);particleCount++;}}// Track that we've processed the image at these dimensions\nlastProcessedWidth=containerDimensions.width;lastProcessedHeight=containerDimensions.height;isImageProcessed=true;ready=true;}// Setup canvas and load image\np.setup=function(){// Create canvas with increased dimensions for safety margins\nconst canvas=p.createCanvas(canvasWidth,canvasHeight);// Position the canvas with negative offsets to center the content\ncanvas.position(offsetX,offsetY);// Prevent default touch behavior to avoid issues on mobile\nif(isMobileDevice()){canvas.touchStarted(event=>{// Prevent default touch handling\nreturn false;});canvas.touchMoved(event=>{// Prevent default scrolling\nreturn false;});canvas.touchEnded(event=>{// Prevent default touch handling\nreturn false;});}// Set a transparent clear color at the beginning\np.clear();// Initialize image loading if source is provided\nif(imageSource){// Create image loading handler\nconst onImageLoad=loadedImg=>{if(loadedImg&&loadedImg.width>0&&loadedImg.height>0){img=loadedImg;img.loadPixels();processImage();}};try{p.loadImage(imageSource,onImageLoad,()=>{});}catch(err){// Silent error handling\n}}else{// Create a default empty image with some colored pixels\nimg=p.createImage(100,100);img.loadPixels();for(let i=0;i<img.width;i++){for(let j=0;j<img.height;j++){img.set(i,j,p.color(p.random(255),p.random(255),p.random(255)));}}img.updatePixels();processImage();}};// Resize handler\np.windowResized=function(){if(canvasRef.current){// Update canvas size with safety margins\nconst newCanvasWidth=containerDimensions.width+safetyMargin*2;const newCanvasHeight=containerDimensions.height+safetyMargin*2;p.resizeCanvas(newCanvasWidth,newCanvasHeight);if(img&&img.pixels){processImage();}}};// Main draw loop\np.draw=function(){// Handle transparent background differently\nif(p.alpha(backgroundColor)===0){// For fully transparent backgrounds, use clear() instead of background()\np.clear();}else{// For any other background, use the specified color\np.background(backgroundColor);}if(!ready)return;// Update and render particles\nfor(let i=particles.length-1;i>=0;i--){particles[i].move();particles[i].draw();// Remove particles that are killed and out of bounds\nif(particles[i].isKilled&&particles[i].isOutOfBounds()){particles.splice(i,1);}}};// Key handler for debugging\np.keyPressed=function(){if(p.key===\" \"){processImage();}};};try{p5InstanceRef.current=new window.p5(sketch,canvasRef.current);}catch(err){// Silent error handling\n}return()=>{if(p5InstanceRef.current){p5InstanceRef.current.remove();p5InstanceRef.current=null;}};},[loaded,canvasRef,containerDimensions,imageSource,mouseSize,particleSize,speed,resolution,backgroundColor,zoomLevel,safetyMargin]);// Prevent scroll handling for touch events to avoid refreshing on mobile\nuseEffect(()=>{const preventScrollRefresh=event=>{// Check if it's a touch event (mobile)\nif(event.touches){event.preventDefault();}};// Check if we're in a browser environment\nif(typeof window!==\"undefined\"&&canvasRef.current){canvasRef.current.addEventListener(\"touchmove\",preventScrollRefresh,{passive:false});return()=>{if(canvasRef.current){canvasRef.current.removeEventListener(\"touchmove\",preventScrollRefresh);}};}},[canvasRef]);// Monitor orientation changes specifically\nuseEffect(()=>{if(typeof window===\"undefined\")return;const handleOrientationChange=()=>{// Force a resize after a brief delay to ensure the new dimensions are correct\nsetTimeout(()=>{if(containerRef.current){const newWidth=containerRef.current.offsetWidth;const newHeight=containerRef.current.offsetHeight;setContainerDimensions({width:newWidth,height:newHeight});previousDimensionsRef.current={width:newWidth,height:newHeight};}},300)// Slight delay to allow browser to settle\n;};// Listen for orientation changes\nwindow.addEventListener(\"orientationchange\",handleOrientationChange);return()=>{window.removeEventListener(\"orientationchange\",handleOrientationChange);};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",backgroundColor:\"transparent\",overflow:\"visible\",position:\"relative\",touchAction:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{ref:canvasRef,style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",overflow:\"visible\",touchAction:\"none\"}})});}// Default props\nParticleSystem.defaultProps={imageSource:\"https://via.placeholder.com/400x400\",mouseSize:100,particleSize:8,speed:1,resolution:1,backgroundColor:\"#000000\",zoomLevel:1,safetyMargin:100,resizeDebounceTime:500,minResizeThreshold:.15};ParticleSystem.displayName=\"\uD83D\uDE80 Image 2 Particles\";// Property controls\naddPropertyControls(ParticleSystem,{imageSource:{type:ControlType.Image,title:\"Image\"},mouseSize:{type:ControlType.Number,title:\"Mouse Size\",defaultValue:100,min:10,max:200,step:1},particleSize:{type:ControlType.Number,title:\"Particle Size\",defaultValue:8,min:1,max:20,step:1},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.1,max:5,step:.1},resolution:{type:ControlType.Number,title:\"Resolution\",defaultValue:1,min:.1,max:10,step:.1},zoomLevel:{type:ControlType.Number,title:\"Zoom\",defaultValue:1,min:.1,max:1,step:.05,displayStepper:true},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#000000\",propertyControl:{type:\"color\",alpha:true}},safetyMargin:{type:ControlType.Number,title:\"Safety Margin\",defaultValue:100,min:0,max:500,step:10,displayStepper:true,description:\"Extra space around the component to allow particles to move freely\"},resizeDebounceTime:{type:ControlType.Number,title:\"Resize Debounce\",defaultValue:500,min:0,max:2e3,step:50,displayStepper:true,description:\"Delay in milliseconds before processing a resize (0 to disable debounce)\"},minResizeThreshold:{type:ControlType.Number,title:\"Resize Threshold\",defaultValue:.15,min:.01,max:.5,step:.01,displayStepper:true,description:\"Minimum percentage change to trigger reprocessing (e.g., 0.15 = 15%) \\n\\n[Created for Framer by Fred Moon (x.com/fw3d)](https://x.com/fw3d)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ParticleSystem\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"400\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Image2Particles.map", "// Generated by Framer (2abc263)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Bold\",\"Inter-Black\",\"Inter-BlackItalic\",\"Inter-BoldItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/mkY5Sgyq51ik0AMrSBwhm9DJg.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/X5hj6qzcHUYv7h1390c8Rhm6550.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/gQhNpS3tN86g8RcVKYUUaKt2oMQ.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cugnVhSraaRyANCaUtI5FV17wk.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/5HcVoGak8k5agFJSaKa4floXVu0.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/jn4BtSPLlS0NDp1KiFAtFKiiY0o.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/P2Bw01CtL0b9wqygO0sSVogWbo.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/05KsVHGDmqXSBXM4yRZ65P8i0s.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/ky8ovPukK4dJ1Pxq74qGhOqCYI.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/vvNSqIj42qeQ2bvCRBIWKHscrc.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/3ZmXbBKToJifDV9gwcifVd1tEY.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/FNfhX3dt4ChuLJq2PwdlxHO7PU.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/g0c8vEViiXNlKAgI4Ymmk3Ig.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/efTfQcBJ53kM2pB1hezSZ3RDUFs.woff2\",weight:\"900\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"}]}];export const css=['.framer-aKua4 .framer-styles-preset-talw7j:not(.rich-text-wrapper), .framer-aKua4 .framer-styles-preset-talw7j.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", sans-serif; --framer-font-family-bold-italic: \"Inter\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.005em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-3b249aea-f2db-4664-99b9-707149012662, #333333); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-aKua4\";\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": ["ParticleSystem", "props", "imageSource", "mouseSize", "particleSize", "speed", "resolution", "backgroundColor", "zoomLevel", "safetyMargin", "resizeDebounceTime", "minResizeThreshold", "containerRef", "pe", "canvasRef", "loaded", "setLoaded", "ye", "containerDimensions", "setContainerDimensions", "previousDimensionsRef", "resizeTimeoutRef", "p5InstanceRef", "ue", "updateDimensions", "newWidth", "newHeight", "prevWidth", "prevHeight", "widthChange", "heightChange", "significantChange", "resizeObserver", "window", "script", "sketch", "p", "img", "particles", "closeEnoughTarget", "ready", "isImageProcessed", "lastProcessedWidth", "lastProcessedHeight", "canvasWidth", "canvasHeight", "offsetX", "offsetY", "createVector", "x", "y", "addVectors", "v1", "v2", "subVectors", "multVector", "v", "scalar", "normalizeVector", "mag", "vectorMagnitude", "limitVector", "max", "ratio", "Particle", "isMobileDevice", "isMobile", "proximityMult", "direction", "steer", "scaled", "adjustedMouseX", "adjustedMouseY", "mouseDist", "push", "targetSize", "generateRandomPos", "pos", "randomDirection", "vel", "normalized", "processImage", "contentWidth", "contentHeight", "scaleX", "scaleY", "scale", "contentOffsetX", "contentOffsetY", "step", "particleCount", "i", "pixelColor", "particle", "canvas", "event", "onImageLoad", "loadedImg", "j", "newCanvasWidth", "newCanvasHeight", "preventScrollRefresh", "handleOrientationChange", "addPropertyControls", "ControlType", "fontStore", "fonts", "css", "className"]
}
