{"version":3,"file":"ProjectScatter.DQ4js7Pi.mjs","names":["useRef","useCallback","React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","RichText","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","useRef","useMemo"],"sources":["https:/framerusercontent.com/modules/6RU4ntoLA2LQo12GO4J7/53bNwfaegES5PysLtQ62/PixelHoverReveal.js","https:/framerusercontent.com/modules/XR5c9NjnHeBumAvd6HDg/xlHEWB6sqj6wiE0uWfxr/luSyPjN7e.js","https:/framerusercontent.com/modules/jFgN6EDUUOe0072OQUC3/f4dgTfNJ5uEbHemBZz7i/ProjectScatter.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useCallback}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer,Color}from\"framer\";/**\n * Pixel Hover Reveal\n *\n * Before is an image, After is a video. On hover the video is revealed\n * through a radial, pixelated dissolve that spreads from the cursor, with a\n * solid-colored jagged leading edge. Cells can be rounded. The video plays\n * only while hovered and is paused + reset the moment the reveal closes.\n *\n * @framerIntrinsicWidth 520\n * @framerIntrinsicHeight 360\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function PixelHoverReveal(props){const{beforeImage={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Before\"},afterVideo=\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",posterImage={src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"After poster\"},effect={cellSize:22,roundness:.3,fragmentation:2.2,speed:.12,followCursor:true},edge={color:\"#FF3D8B\",strength:1},appearance={borderRadius:8},style}=props;const isStatic=useIsStaticRenderer();const containerRef=useRef(null);const canvasRef=useRef(null);// Media\nconst beforeImgRef=useRef(null);const posterImgRef=useRef(null);const afterVidRef=useRef(null);// Animation state in refs so the rAF loop stays stable across renders\nconst sizeRef=useRef({w:0,h:0});const progressRef=useRef(0);const targetRef=useRef(0);const originRef=useRef({x:0,y:0});const rafRef=useRef(null);const randRef=useRef(new Float32Array(0));const randColsRef=useRef(0);// Offscreen scratch canvases\nconst maskCanvasRef=useRef(null);const tempCanvasRef=useRef(null);const cellSize=Math.max(4,effect.cellSize);const roundness=Math.max(0,Math.min(1,effect.roundness??.3));const fragmentation=Math.max(0,effect.fragmentation);const speed=Math.min(.5,Math.max(.02,effect.speed));const followCursor=effect.followCursor!==false;const ensureRandom=useCallback((cols,rows)=>{const needed=cols*rows;if(randRef.current.length<needed||randColsRef.current!==cols){const arr=new Float32Array(needed);for(let i=0;i<needed;i++)arr[i]=Math.random();randRef.current=arr;randColsRef.current=cols;}},[]);// After source: the video when it has a frame, otherwise the poster image\nconst afterSource=()=>{const v=afterVidRef.current;if(v&&v.readyState>=2&&v.videoWidth)return v;const im=posterImgRef.current;if(im&&im.complete&&im.naturalWidth)return im;return null;};const dimsOf=el=>{const w=el.videoWidth||el.naturalWidth||1;const h=el.videoHeight||el.naturalHeight||1;return[w,h];};const drawCover=(c,el,w,h)=>{const[iw,ih]=dimsOf(el);const scale=Math.max(w/iw,h/ih);const ox=(w-iw*scale)/2;const oy=(h-ih*scale)/2;c.drawImage(el,0,0,iw,ih,ox,oy,iw*scale,ih*scale);};const draw=useCallback(()=>{const canvas=canvasRef.current;const ctx=canvas?.getContext(\"2d\");if(!canvas||!ctx)return;const{w,h}=sizeRef.current;if(w===0||h===0)return;const dpr=canvas.width/w||1;ctx.imageSmoothingEnabled=true;ctx.clearRect(0,0,w,h);// Base: before image\nconst before=beforeImgRef.current;if(before&&before.complete&&before.naturalWidth){drawCover(ctx,before,w,h);}const progress=progressRef.current;if(progress<=.001)return;const after=afterSource();if(!after)return;const{x:ox,y:oy}=originRef.current;const maxDist=Math.max(Math.hypot(ox,oy),Math.hypot(w-ox,oy),Math.hypot(ox,h-oy),Math.hypot(w-ox,h-oy));// One extra row thicker than before (2 + fragmentation)\nconst band=cellSize*(2+fragmentation);const reach=progress*(maxDist+band);// Fully open, no partial edge left -> draw the after cover in one shot\nif(reach-maxDist>=band){drawCover(ctx,after,w,h);return;}const cols=Math.ceil(w/cellSize);const rows=Math.ceil(h/cellSize);ensureRandom(cols,rows);const rand=randRef.current;const useEdgeColor=edge.strength>0;const col=Color(edge.color);const pinkRGBA=`rgba(${Math.round(col.r)}, ${Math.round(col.g)}, ${Math.round(col.b)}, ${Math.min(1,edge.strength)})`;// Corner radius per cell (0 = square, cellSize/2 = fully round)\nconst rq=Math.min(cellSize/2,roundness*(cellSize/2));const addCell=(c2,x,y,size,r)=>{if(r<=.5){c2.rect(x,y,size,size);return;}const rr=Math.min(r,size/2);if(typeof c2.roundRect===\"function\"){c2.roundRect(x,y,size,size,rr);}else{c2.moveTo(x+rr,y);c2.arcTo(x+size,y,x+size,y+size,rr);c2.arcTo(x+size,y+size,x,y+size,rr);c2.arcTo(x,y+size,x,y,rr);c2.arcTo(x,y,x+size,y,rr);c2.closePath();}};// Full-resolution mask canvas holding the rounded interior cells.\n// Using a mask *image* (drawImage) for destination-in guarantees the\n// clip runs over the WHOLE canvas every frame -> the video is removed\n// when there are no interior cells (no full-frame flash at the edges).\nlet mask=maskCanvasRef.current;if(!mask){mask=document.createElement(\"canvas\");maskCanvasRef.current=mask;}if(mask.width!==canvas.width||mask.height!==canvas.height){mask.width=canvas.width;mask.height=canvas.height;}const mctx=mask.getContext(\"2d\");if(!mctx)return;mctx.setTransform(dpr,0,0,dpr,0,0);mctx.clearRect(0,0,w,h);mctx.fillStyle=\"#fff\";mctx.beginPath();const grow=rq// grow interior cells so rounded neighbours overlap\n;for(let r=0;r<rows;r++){const ccy=(r+.5)*cellSize;const dy=ccy-oy;for(let c=0;c<cols;c++){const ccx=(c+.5)*cellSize;const dx=ccx-ox;if(reach-Math.hypot(dx,dy)>=band){addCell(mctx,c*cellSize-grow/2,r*cellSize-grow/2,cellSize+grow,rq);}}}mctx.fill();// Scratch canvas: after video clipped to the mask, then pink pixels\nlet temp=tempCanvasRef.current;if(!temp){temp=document.createElement(\"canvas\");tempCanvasRef.current=temp;}if(temp.width!==canvas.width||temp.height!==canvas.height){temp.width=canvas.width;temp.height=canvas.height;}const tctx=temp.getContext(\"2d\");if(!tctx)return;tctx.setTransform(dpr,0,0,dpr,0,0);tctx.globalCompositeOperation=\"source-over\";tctx.imageSmoothingEnabled=true;tctx.clearRect(0,0,w,h);drawCover(tctx,after,w,h);tctx.globalCompositeOperation=\"destination-in\";tctx.drawImage(mask,0,0,canvas.width,canvas.height,0,0,w,h);tctx.globalCompositeOperation=\"source-over\";// Leading band cells -> solid edge-color rounded pixels (dithered)\nif(useEdgeColor){tctx.fillStyle=pinkRGBA;tctx.beginPath();for(let r=0;r<rows;r++){const ccy=(r+.5)*cellSize;const dy=ccy-oy;for(let c=0;c<cols;c++){const ccx=(c+.5)*cellSize;const dx=ccx-ox;const edgeDist=reach-Math.hypot(dx,dy);if(edgeDist<=0||edgeDist>=band)continue;if(rand[r*cols+c]>edgeDist/band)continue;addCell(tctx,c*cellSize,r*cellSize,cellSize,rq);}}tctx.fill();}ctx.imageSmoothingEnabled=true;ctx.drawImage(temp,0,0,canvas.width,canvas.height,0,0,w,h);},[cellSize,roundness,fragmentation,ensureRandom,edge.color,edge.strength]);const tick=useCallback(()=>{const p=progressRef.current;const t=targetRef.current;const next=p+(t-p)*speed;progressRef.current=Math.abs(next-t)<.002?t:next;try{draw();}catch{}// Reconcile video playback with the current state, every frame:\n//  - hovering        -> ensure it's playing\n//  - reveal closed    -> pause and reset so it can't play underneath\nconst av=afterVidRef.current;if(av){if(targetRef.current>0){if(av.paused)av.play().catch(()=>{});}else if(progressRef.current<=.001&&!av.paused){av.pause();try{av.currentTime=0;}catch{}}}// Keep looping while animating, while hovered, or while the video is\n// still playing — the last term guarantees we reach the pause above.\nconst keep=progressRef.current!==targetRef.current||targetRef.current>0||!!av&&!av.paused;rafRef.current=keep?requestAnimationFrame(tick):null;},[draw,speed]);const startLoop=useCallback(()=>{if(rafRef.current==null)rafRef.current=requestAnimationFrame(tick);},[tick]);// Sizing / DPR\nuseEffect(()=>{if(isStatic)return;const container=containerRef.current;const canvas=canvasRef.current;if(!container||!canvas)return;const resize=()=>{const rect=container.getBoundingClientRect();const w=Math.max(1,Math.round(rect.width));const h=Math.max(1,Math.round(rect.height));const dpr=typeof window!==\"undefined\"?window.devicePixelRatio||1:1;sizeRef.current={w,h};canvas.width=Math.round(w*dpr);canvas.height=Math.round(h*dpr);canvas.style.width=w+\"px\";canvas.style.height=h+\"px\";const ctx=canvas.getContext(\"2d\");if(ctx)ctx.setTransform(dpr,0,0,dpr,0,0);randRef.current=new Float32Array(0);if(!followCursor)originRef.current={x:w/2,y:h/2};draw();};resize();const ro=new ResizeObserver(resize);ro.observe(container);return()=>ro.disconnect();},[isStatic,draw,followCursor]);// Load the before image and the poster image\nuseEffect(()=>{if(isStatic)return;let cancelled=false;const load=(src,ref)=>{if(!src){ref.current=null;return;}const img=new Image;img.crossOrigin=\"anonymous\";img.onload=()=>{if(cancelled)return;ref.current=img;draw();};img.src=src;ref.current=img;};load(beforeImage?.src,beforeImgRef);load(posterImage?.src,posterImgRef);return()=>{cancelled=true;};},[beforeImage?.src,posterImage?.src,isStatic,draw]);// Load the after video: paused at rest, plays on hover, pauses on close\nuseEffect(()=>{if(isStatic||typeof document===\"undefined\")return;if(!afterVideo){if(afterVidRef.current){afterVidRef.current.pause();afterVidRef.current.src=\"\";}afterVidRef.current=null;return;}const v=document.createElement(\"video\");v.crossOrigin=\"anonymous\";v.muted=true;v.loop=true;v.playsInline=true;v.preload=\"auto\";v.src=afterVideo;const kick=()=>draw();v.addEventListener(\"loadeddata\",kick);v.addEventListener(\"canplay\",kick);afterVidRef.current=v;if(targetRef.current>0){v.play().catch(()=>{});startLoop();}return()=>{v.pause();v.src=\"\";afterVidRef.current=null;};},[afterVideo,isStatic,draw,startLoop]);const handleMove=useCallback(e=>{if(!followCursor&&progressRef.current>0)return;const rect=containerRef.current?.getBoundingClientRect();if(!rect)return;originRef.current={x:e.clientX-rect.left,y:e.clientY-rect.top};},[followCursor]);const handleEnter=useCallback(e=>{handleMove(e);targetRef.current=1;const av=afterVidRef.current;if(av)av.play().catch(()=>{});startLoop();},[handleMove,startLoop]);const handleLeave=useCallback(()=>{targetRef.current=0;startLoop();},[startLoop]);const StaticPreview=()=>/*#__PURE__*/_jsx(\"img\",{src:posterImage?.src??beforeImage?.src,srcSet:posterImage?.srcSet,alt:posterImage?.alt??\"\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\",borderRadius:appearance.borderRadius}});const isFixedWidth=style?.width===\"100%\";return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,onPointerEnter:isStatic?undefined:handleEnter,onPointerMove:isStatic?undefined:handleMove,onPointerLeave:isStatic?undefined:handleLeave,style:{position:\"relative\",overflow:\"hidden\",borderRadius:appearance.borderRadius,width:\"100%\",height:\"100%\",...isFixedWidth?{}:{minWidth:120,minHeight:120},...style},children:isStatic?/*#__PURE__*/_jsx(StaticPreview,{}):/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{display:\"block\",width:\"100%\",height:\"100%\"}})});}addPropertyControls(PixelHoverReveal,{beforeImage:{type:ControlType.ResponsiveImage,title:\"Before\"},afterVideo:{type:ControlType.File,title:\"After Video\",allowedFileTypes:[\"mp4\",\"webm\",\"mov\"]},posterImage:{type:ControlType.ResponsiveImage,title:\"After Poster\",description:\"Shown while the video loads\"},effect:{type:ControlType.Object,title:\"Effect\",icon:\"effect\",controls:{cellSize:{type:ControlType.Number,title:\"Cell Size\",defaultValue:22,min:6,max:80,step:1,unit:\"px\"},roundness:{type:ControlType.Number,title:\"Roundness\",defaultValue:.3,min:0,max:1,step:.05},fragmentation:{type:ControlType.Number,title:\"Fragment\",defaultValue:2.2,min:0,max:6,step:.1},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:.12,min:.02,max:.4,step:.01},followCursor:{type:ControlType.Boolean,title:\"Follow Cursor\",defaultValue:true,enabledTitle:\"Follow\",disabledTitle:\"Center\"}}},edge:{type:ControlType.Object,title:\"Edge Color\",icon:\"color\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FF3D8B\"},strength:{type:ControlType.Number,title:\"Opacity\",defaultValue:1,min:0,max:1,step:.05}}},appearance:{type:ControlType.Object,title:\"Appearance\",icon:\"object\",controls:{borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:64,step:1,unit:\"px\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PixelHoverReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"360\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"520\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PixelHoverReveal.map","// Generated by Framer (80f113d)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getPropertyControls,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import PixelHoverReveal from\"https://framerusercontent.com/modules/6RU4ntoLA2LQo12GO4J7/53bNwfaegES5PysLtQ62/PixelHoverReveal.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/sNluOTwJPzBns2CjXdJs/wJ3x16om2IBWYeDzmCVI/e2z2pSXf4.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/yz8Ys1U8hIa9XK7m2tcK/Tnx2Kkjwph5ekW4dFae0/fXexAoNph.js\";const PixelHoverRevealFonts=getFonts(PixelHoverReveal);const MotionDivWithFX=withFX(motion.div);const PixelHoverRevealControls=getPropertyControls(PixelHoverReveal);const serializationHash=\"framer-UOUvm\";const variantClassNames={Ax2mZTvCz:\"framer-v-wh67i8\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const DORHgVn2W=undefined;const aU6U120bB=undefined;const WDv_wQcYd=undefined;const fvevkBvVL=undefined;const vGhDJQTPc=undefined;const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:50};const transition1={delay:0,duration:.6,ease:[.19,0,.22,1],type:\"tween\"};const transition2={delay:0,duration:.3,ease:[.44,0,.56,1],type:\"tween\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({afterVideo,beforeIMG,cover,height,id,subtitle,title,width,...props})=>{return{...props,aU6U120bB:afterVideo??props.aU6U120bB,DORHgVn2W:beforeIMG??props.DORHgVn2W??{pixelHeight:1e3,pixelWidth:1500,src:\"https://framerusercontent.com/images/lYSvi78imY4IiOA5a1q0CNef3Q.webp?width=1500&height=1000\",srcSet:\"https://framerusercontent.com/images/lYSvi78imY4IiOA5a1q0CNef3Q.webp?scale-down-to=512&width=1500&height=1000 512w,https://framerusercontent.com/images/lYSvi78imY4IiOA5a1q0CNef3Q.webp?scale-down-to=1024&width=1500&height=1000 1024w,https://framerusercontent.com/images/lYSvi78imY4IiOA5a1q0CNef3Q.webp?width=1500&height=1000 1500w\"},fvevkBvVL:title??props.fvevkBvVL??\"title\",vGhDJQTPc:subtitle??props.vGhDJQTPc??\"title\",WDv_wQcYd:cover??props.WDv_wQcYd??{pixelHeight:2005,pixelWidth:3024,src:\"https://framerusercontent.com/images/St12g0lnyehXHTmiF2neCjcBgC4.jpg?scale-down-to=512&width=3024&height=2005\"}};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,DORHgVn2W,aU6U120bB,WDv_wQcYd,fvevkBvVL,vGhDJQTPc,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"Ax2mZTvCz\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition2,children:/*#__PURE__*/_jsxs(MotionDivWithFX,{...restProps,...gestureHandlers,__framer__animate:{transition:transition1},__framer__animateOnce:true,__framer__enter:animation,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:cx(scopingClassNames,\"framer-wh67i8\",className,classNames),\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"Ax2mZTvCz\",ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-gdge8f\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"Spey_F0JV\",style:{borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-jm7v4x-container\",\"data-code-component-plugin-id\":\"api\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"L66M9KXUr-container\",nodeId:\"L66M9KXUr\",rendersWithMotion:true,scopeId:\"luSyPjN7e\",children:/*#__PURE__*/_jsx(PixelHoverReveal,{afterVideo:aU6U120bB,appearance:{borderRadius:8},beforeImage:toResponsiveImage(DORHgVn2W),edge:{color:\"rgb(255, 191, 253)\",strength:1},effect:{cellSize:22,followCursor:true,fragmentation:2.2,roundness:.3,speed:.02},height:\"100%\",id:\"L66M9KXUr\",layoutId:\"L66M9KXUr\",posterImage:toResponsiveImage(WDv_wQcYd),style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1egx5rt\",layoutDependency:layoutDependency,layoutId:\"kZ14QV4Dp\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h5,{className:\"framer-styles-preset-1kni9c5\",\"data-styles-preset\":\"e2z2pSXf4\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-1lwpl3i, var(--token-da81f410-c299-41aa-8ecd-001a1586cb19, rgb(23, 20, 18)))\"},children:\"title\"})}),className:\"framer-1lmd380\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"CuXUJfL6d\",style:{\"--extracted-1lwpl3i\":\"var(--token-da81f410-c299-41aa-8ecd-001a1586cb19, rgb(23, 20, 18))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:fvevkBvVL,verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1whrnni\",layoutDependency:layoutDependency,layoutId:\"A3sUH6Hfw\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1j1xzvk\",\"data-styles-preset\":\"fXexAoNph\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-da81f410-c299-41aa-8ecd-001a1586cb19, rgb(23, 20, 18)))\"},children:\"title\"})}),className:\"framer-1tr8epa\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"GHqkjtuGL\",style:{\"--extracted-r6o4lv\":\"var(--token-da81f410-c299-41aa-8ecd-001a1586cb19, rgb(23, 20, 18))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:vGhDJQTPc,verticalAlignment:\"top\",withExternalLayout:true})})]})})})});});const css=[\".framer-UOUvm.framer-xo9g6f, .framer-UOUvm .framer-xo9g6f { display: block; }\",\".framer-UOUvm.framer-wh67i8 { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 372px; }\",\".framer-UOUvm .framer-gdge8f { align-content: center; align-items: center; aspect-ratio: 1.5965665236051503 / 1; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: auto; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); }\",\".framer-UOUvm .framer-jm7v4x-container { flex: 1 0 0px; height: 100%; position: relative; width: 1px; }\",\".framer-UOUvm .framer-1egx5rt, .framer-UOUvm .framer-1whrnni { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-UOUvm .framer-1lmd380, .framer-UOUvm .framer-1tr8epa { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 311\n * @framerIntrinsicWidth 372\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"DORHgVn2W\":\"beforeIMG\",\"aU6U120bB\":\"afterVideo\",\"WDv_wQcYd\":\"cover\",\"fvevkBvVL\":\"title\",\"vGhDJQTPc\":\"subtitle\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerluSyPjN7e=withCSS(Component,css,\"framer-UOUvm\");export default FramerluSyPjN7e;FramerluSyPjN7e.displayName=\"Projects/Project Card\";FramerluSyPjN7e.defaultProps={height:311,width:372};addPropertyControls(FramerluSyPjN7e,{DORHgVn2W:{__defaultAssetReference:\"data:framer/asset-reference,lYSvi78imY4IiOA5a1q0CNef3Q.webp?originalFilename=terraforma_01.webp&width=1500&height=1000\",title:\"Before IMG\",type:ControlType.ResponsiveImage},aU6U120bB:PixelHoverRevealControls?.[\"afterVideo\"]&&{...PixelHoverRevealControls[\"afterVideo\"],__defaultAssetReference:\"\",description:undefined,hidden:undefined,title:\"After Video\"},onaU6U120bBChange:{changes:\"aU6U120bB\",type:ControlType.ChangeHandler},WDv_wQcYd:{__defaultAssetReference:\"data:framer/asset-reference,St12g0lnyehXHTmiF2neCjcBgC4.jpg?originalFilename=photo-1786599049448-d8dbb433b9fd%3Fcrop%3Dentropy%26cs%3Dsrgb%26fm%3Djpg%26ixid%3DM3wxMzc5NjJ8MHwxfGFsbHw1fHx8fHx8fHwxNzg2NjM2ODIyfA%26ixlib%3Drb-4.1.jpg&preferredSize=small&width=3024&height=2005\",__vekterDefault:{assetReference:\"data:framer/asset-reference,St12g0lnyehXHTmiF2neCjcBgC4.jpg?originalFilename=photo-1786599049448-d8dbb433b9fd%3Fcrop%3Dentropy%26cs%3Dsrgb%26fm%3Djpg%26ixid%3DM3wxMzc5NjJ8MHwxfGFsbHw1fHx8fHx8fHwxNzg2NjM2ODIyfA%26ixlib%3Drb-4.1.jpg&preferredSize=small&width=3024&height=2005\"},title:\"Cover\",type:ControlType.ResponsiveImage},fvevkBvVL:{defaultValue:\"title\",displayTextArea:false,title:\"Title\",type:ControlType.String},onfvevkBvVLChange:{changes:\"fvevkBvVL\",type:ControlType.ChangeHandler},vGhDJQTPc:{defaultValue:\"title\",displayTextArea:false,title:\"Subtitle\",type:ControlType.String},onvGhDJQTPcChange:{changes:\"vGhDJQTPc\",type:ControlType.ChangeHandler}});addFonts(FramerluSyPjN7e,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",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/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",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/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PixelHoverRevealFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerluSyPjN7e\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"311\",\"framerIntrinsicWidth\":\"372\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"DORHgVn2W\\\":\\\"beforeIMG\\\",\\\"aU6U120bB\\\":\\\"afterVideo\\\",\\\"WDv_wQcYd\\\":\\\"cover\\\",\\\"fvevkBvVL\\\":\\\"title\\\",\\\"vGhDJQTPc\\\":\\\"subtitle\\\"}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./luSyPjN7e.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useMemo,useRef}from\"react\";function mulberry32(seed){return function(){seed|=0;seed=seed+1831565813|0;let value=Math.imul(seed^seed>>>15,1|seed);value=value+Math.imul(value^value>>>7,61|value)^value;return((value^value>>>14)>>>0)/4294967296;};}function similarChildrenScore(element){const children=Array.from(element.children).filter(child=>child instanceof HTMLElement);if(children.length<2)return 0;const signatures=children.map(child=>`${child.tagName}.${Array.from(child.classList).sort().join(\".\")}`);const mostCommon=Math.max(...Array.from(new Set(signatures)).map(signature=>signatures.filter(value=>value===signature).length));return mostCommon*100+children.length;}function findRepeatedItemsRoot(root){const candidates=[root,...Array.from(root.querySelectorAll(\"*\"))];return candidates.reduce((best,candidate)=>{if(candidate.closest(\"[data-project-scatter-card]\"))return best;if(!best)return similarChildrenScore(candidate)>0?candidate:null;return similarChildrenScore(candidate)>similarChildrenScore(best)?candidate:best;},null);}function measureVisibleHeight(item){const itemRect=item.getBoundingClientRect();let bottom=itemRect.bottom;item.querySelectorAll(\"*\").forEach(descendant=>{const rect=descendant.getBoundingClientRect();if(rect.width>0&&rect.height>0)bottom=Math.max(bottom,rect.bottom);});return Math.max(1,bottom-itemRect.top,item.scrollHeight);}/**\n * A seeded scatter layout for a native Framer CMS Collection List. Connect the\n * Collection List to the Collection slot; its repeated Project Card instances\n * keep their image, video, text, and link bindings.\n *\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 900\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function ProjectScatter(props){const{collection,hover=true,mobile=true,mobileBreakpoint=700,padding=\"0px\",style}=props;const{columns=0,minCardWidth=280,gap=32}=props.layout??{};const{seed=7,stagger=100,sizeVariation=18}=props.scatter??{};const rootRef=useRef(null);const isStatic=useIsStaticRenderer();const configKey=useMemo(()=>[columns,minCardWidth,gap,seed,stagger,sizeVariation,hover,mobile,mobileBreakpoint].join(\"-\"),[columns,minCardWidth,gap,seed,stagger,sizeVariation,hover,mobile,mobileBreakpoint]);useEffect(()=>{if(typeof window===\"undefined\"||!rootRef.current)return;const slotRoot=rootRef.current;let cleanup=()=>{};const arrange=()=>{cleanup();const itemsRoot=findRepeatedItemsRoot(slotRoot);if(!itemsRoot)return;const originalRootStyle=itemsRoot.getAttribute(\"style\");const items=Array.from(itemsRoot.children).filter(child=>child instanceof HTMLElement);const originalItemStyles=items.map(item=>item.getAttribute(\"style\"));const contentElements=items.map(item=>item.firstElementChild);const originalContentStyles=contentElements.map(content=>content?.getAttribute(\"style\")??null);itemsRoot.style.setProperty(\"display\",\"block\",\"important\");itemsRoot.style.setProperty(\"position\",\"relative\",\"important\");itemsRoot.style.setProperty(\"width\",\"100%\",\"important\");const containerWidth=Math.max(1,itemsRoot.clientWidth);const useMobileLayout=mobile&&containerWidth<=mobileBreakpoint;if(useMobileLayout){itemsRoot.style.setProperty(\"display\",\"flex\",\"important\");itemsRoot.style.setProperty(\"flex-direction\",\"column\",\"important\");itemsRoot.style.setProperty(\"gap\",`${gap}px`,\"important\");itemsRoot.style.setProperty(\"height\",\"auto\",\"important\");items.forEach(item=>{item.dataset.projectScatterCard=\"\";item.style.setProperty(\"position\",\"relative\",\"important\");item.style.setProperty(\"left\",\"auto\",\"important\");item.style.setProperty(\"top\",\"auto\",\"important\");item.style.setProperty(\"width\",\"100%\",\"important\");item.style.setProperty(\"margin\",\"0\",\"important\");item.style.setProperty(\"transform\",\"none\",\"important\");item.style.setProperty(\"z-index\",\"1\",\"important\");const content=item.firstElementChild;content?.style.setProperty(\"width\",\"100%\",\"important\");});cleanup=()=>{if(originalRootStyle===null)itemsRoot.removeAttribute(\"style\");else itemsRoot.setAttribute(\"style\",originalRootStyle);items.forEach((item,index)=>{delete item.dataset.projectScatterCard;const original=originalItemStyles[index];if(original===null)item.removeAttribute(\"style\");else item.setAttribute(\"style\",original);const content=contentElements[index];const contentStyle=originalContentStyles[index];if(content&&contentStyle===null)content.removeAttribute(\"style\");else if(content&&contentStyle!==null)content.setAttribute(\"style\",contentStyle);});};return;}const targetColumns=columns>0?columns:Math.max(1,Math.floor((containerWidth+gap)/(minCardWidth+gap)));const baseWidth=Math.max(1,(containerWidth-gap*(targetColumns-1))/targetColumns);const placed=[];let layoutHeight=0;items.forEach((item,index)=>{const random=mulberry32((seed|0)*2654435761+(index+1)*40503);const widthMultiplier=1+(random()*2-1)*(Math.max(0,sizeVariation)/100);const width=Math.min(containerWidth,Math.max(minCardWidth*.72,baseWidth*widthMultiplier));item.style.setProperty(\"width\",`${width}px`,\"important\");const content=item.firstElementChild;content?.style.setProperty(\"width\",\"100%\",\"important\");const height=measureVisibleHeight(item);let bestLeft=0;let bestTop=Number.POSITIVE_INFINITY;const maxLeft=Math.max(0,containerWidth-width);const candidates=[0,maxLeft];placed.forEach(card=>{candidates.push(Math.max(0,Math.min(maxLeft,card.left)),Math.max(0,Math.min(maxLeft,card.left+card.width+gap)),Math.max(0,Math.min(maxLeft,card.left-width-gap)));});for(let attempt=0;attempt<36;attempt++){candidates.push(random()*maxLeft);}candidates.forEach(candidateLeft=>{let candidateTop=index===0?0:random()*Math.min(stagger,24);let changed=true;while(changed){changed=false;placed.forEach(card=>{const horizontalOverlap=candidateLeft<card.left+card.width+gap&&candidateLeft+width+gap>card.left;const verticalOverlap=candidateTop<card.top+card.height+gap&&candidateTop+height+gap>card.top;if(horizontalOverlap&&verticalOverlap){candidateTop=card.top+card.height+gap;changed=true;}});}if(candidateTop<bestTop-.5||Math.abs(candidateTop-bestTop)<.5&&random()>.5){bestTop=candidateTop;bestLeft=candidateLeft;}});const left=bestLeft;const top=bestTop;placed.push({left,top,width,height});layoutHeight=Math.max(layoutHeight,top+height);item.dataset.projectScatterCard=\"\";item.style.setProperty(\"position\",\"absolute\",\"important\");item.style.setProperty(\"left\",`${left}px`,\"important\");item.style.setProperty(\"top\",`${top}px`,\"important\");item.style.setProperty(\"width\",`${width}px`,\"important\");item.style.setProperty(\"transform\",\"none\",\"important\");item.style.setProperty(\"transition\",\"transform 450ms cubic-bezier(.19,1,.22,1)\",\"important\");item.style.setProperty(\"z-index\",\"1\",\"important\");if(hover&&!isStatic){item.onmouseenter=()=>{item.style.setProperty(\"transform\",\"translateY(-8px)\",\"important\");item.style.setProperty(\"z-index\",\"2\",\"important\");};item.onmouseleave=()=>{item.style.setProperty(\"transform\",\"none\",\"important\");item.style.setProperty(\"z-index\",\"1\",\"important\");};}});itemsRoot.style.setProperty(\"height\",`${layoutHeight}px`,\"important\");cleanup=()=>{if(originalRootStyle===null)itemsRoot.removeAttribute(\"style\");else itemsRoot.setAttribute(\"style\",originalRootStyle);items.forEach((item,index)=>{delete item.dataset.projectScatterCard;item.onmouseenter=null;item.onmouseleave=null;const original=originalItemStyles[index];if(original===null)item.removeAttribute(\"style\");else item.setAttribute(\"style\",original);const content=contentElements[index];const contentStyle=originalContentStyles[index];if(content&&contentStyle===null)content.removeAttribute(\"style\");else if(content&&contentStyle!==null)content.setAttribute(\"style\",contentStyle);});};};let frame=0;let lastWidth=-1;const scheduleArrange=()=>{window.cancelAnimationFrame(frame);frame=window.requestAnimationFrame(()=>{lastWidth=slotRoot.getBoundingClientRect().width;arrange();});};arrange();lastWidth=slotRoot.getBoundingClientRect().width;const mutationObserver=new MutationObserver(scheduleArrange);mutationObserver.observe(slotRoot,{childList:true,subtree:true});const resizeObserver=new ResizeObserver(entries=>{const nextWidth=entries[0]?.contentRect.width??0;if(Math.abs(nextWidth-lastWidth)>.5)scheduleArrange();});resizeObserver.observe(slotRoot);const measuredHeights=new WeakMap;const contentResizeObserver=new ResizeObserver(entries=>{const changed=entries.some(entry=>{const nextHeight=entry.contentRect.height;const previousHeight=measuredHeights.get(entry.target);measuredHeights.set(entry.target,nextHeight);return previousHeight!==undefined&&Math.abs(nextHeight-previousHeight)>1;});if(changed)scheduleArrange();});const observeCardContent=()=>{slotRoot.querySelectorAll(\"[data-project-scatter-card]\").forEach(item=>{contentResizeObserver.observe(item);item.querySelectorAll(\"*\").forEach(descendant=>contentResizeObserver.observe(descendant));});};observeCardContent();window.requestAnimationFrame(observeCardContent);return()=>{window.cancelAnimationFrame(frame);mutationObserver.disconnect();resizeObserver.disconnect();contentResizeObserver.disconnect();cleanup();};},[configKey,isStatic]);return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{...style,position:\"relative\",boxSizing:\"border-box\",padding,width:style?.width??\"100%\",height:style?.height??\"auto\"},children:collection??/*#__PURE__*/_jsx(\"div\",{style:{minHeight:180,display:\"grid\",placeItems:\"center\",border:\"1px dashed rgba(127,127,127,.45)\",borderRadius:12,color:\"rgba(127,127,127,.9)\",font:\"14px/1.4 sans-serif\",textAlign:\"center\",padding:24},children:\"Connect your Projects Collection List to the Collection slot\"})});}addPropertyControls(ProjectScatter,{collection:{type:ControlType.Slot,title:\"Collection\",maxCount:1},layout:{type:ControlType.Object,title:\"Layout\",icon:\"object\",defaultValue:{columns:0,minCardWidth:280,gap:32},controls:{columns:{type:ControlType.Number,title:\"Columns\",defaultValue:0,min:0,max:6,step:1,description:\"0 uses responsive auto-fit\"},minCardWidth:{type:ControlType.Number,title:\"Min Width\",defaultValue:280,min:160,max:600,step:10,unit:\"px\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:32,min:0,max:120,step:2,unit:\"px\"}}},scatter:{type:ControlType.Object,title:\"Scatter\",icon:\"effect\",defaultValue:{seed:7,stagger:100,sizeVariation:18},controls:{seed:{type:ControlType.Number,title:\"Seed\",defaultValue:7,min:0,max:999,step:1},stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:100,min:0,max:320,step:10,unit:\"px\"},sizeVariation:{type:ControlType.Number,title:\"Size Var\",defaultValue:18,min:0,max:40,step:1,unit:\"%\"}}},hover:{type:ControlType.Boolean,title:\"Hover Lift\",defaultValue:true},mobile:{type:ControlType.Boolean,title:\"Mobile\",defaultValue:true},mobileBreakpoint:{type:ControlType.Number,title:\"Breakpoint\",defaultValue:700,min:320,max:1200,step:10,unit:\"px\",hidden:props=>!props.mobile},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"0px\"}});ProjectScatter.displayName=\"Project Scatter\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProjectScatter\",\"slots\":[\"collection\"],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"900\",\"framerIntrinsicWidth\":\"1200\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProjectScatter.map"],"mappings":"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"}