{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/elIBXeDZ4kq0RvCw3Nzc/27xPvZ5yG93lwaQ6A1ZG/Dvhru8iYu.js", "ssg:https://framerusercontent.com/modules/wHguoJlul4XEhk3AaulI/oXBkR31mlI2KeEPMxpPw/uNxF6T0zi.js", "ssg:https://framerusercontent.com/modules/XZeEPdC7OdtQPKJhqy8L/QMIaxmqJthjp3L83jLOj/Magnetic.js"],
  "sourcesContent": ["// Generated by Framer (ac3cb42)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({fill,height,id,width,...props})=>{return{...props,ezTt3ayMo:fill??props.ezTt3ayMo??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-T70WH\",className),layoutId:layoutId,ref:ref,style:{\"--21h8s6\":ezTt3ayMo,...style}});});const css=['.framer-T70WH { aspect-ratio: 1; background-color: var(--21h8s6); mask-image: url(\\'data:image/svg+xml,<svg aria-label=\"Funnel\" display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 19.366 0.893 C 19.13 0.348 18.591 -0.003 17.997 0 L 1.497 0 C 0.904 0.001 0.367 0.352 0.128 0.894 C -0.112 1.437 -0.009 2.07 0.39 2.509 L 0.397 2.517 L 6.747 9.297 L 6.747 16.5 C 6.747 17.053 7.051 17.562 7.539 17.823 C 8.026 18.084 8.618 18.055 9.079 17.749 L 12.079 15.748 C 12.496 15.47 12.747 15.001 12.747 14.499 L 12.747 9.297 L 19.098 2.517 L 19.105 2.509 C 19.509 2.072 19.611 1.435 19.366 0.893 Z M 1.497 1.5 M 11.451 8.492 C 11.322 8.629 11.249 8.811 11.247 9 L 11.247 14.499 L 8.247 16.5 L 8.247 9 C 8.247 8.81 8.175 8.626 8.045 8.487 L 1.497 1.5 L 17.997 1.5 Z\" fill=\"var(--21h8s6, rgb(0,0,0))\" height=\"18.00037636511926px\" id=\"EU3AzRUrR\" opacity=\"1\" transform=\"translate(2.253 3.75)\" width=\"19.497724769391088px\"/></svg>\\'); mask-position: center; mask-repeat: no-repeat; width: 24px; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"fill\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Funnel\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-T70WH\");export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Fill\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"fill\\\"}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerDisableUnlink\":\"true\",\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"Funnel\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "// Generated by Framer (ac3cb42)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({fill,height,id,width,...props})=>{return{...props,ezTt3ayMo:fill??props.ezTt3ayMo??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-lOvOJ\",className),layoutId:layoutId,ref:ref,style:{\"--21h8s6\":ezTt3ayMo,...style}});});const css=['.framer-lOvOJ { aspect-ratio: 1; background-color: var(--21h8s6); mask-image: url(\\'data:image/svg+xml,<svg aria-label=\"Phone Call\" display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 11.275 1.306 C 11.327 1.114 11.452 0.95 11.625 0.85 C 11.797 0.751 12.002 0.724 12.194 0.775 C 15.025 1.514 17.236 3.725 17.975 6.556 C 18.026 6.748 17.999 6.953 17.9 7.125 C 17.8 7.297 17.636 7.423 17.444 7.475 C 17.381 7.491 17.316 7.5 17.25 7.5 C 16.91 7.5 16.613 7.271 16.525 6.943 C 15.923 4.632 14.118 2.827 11.807 2.225 C 11.614 2.173 11.45 2.048 11.351 1.875 C 11.251 1.703 11.224 1.498 11.275 1.306 Z M 11.057 5.225 C 12.35 5.57 13.18 6.4 13.525 7.693 C 13.613 8.021 13.91 8.25 14.25 8.25 C 14.316 8.25 14.381 8.241 14.444 8.225 C 14.636 8.173 14.8 8.047 14.9 7.875 C 14.999 7.703 15.026 7.498 14.975 7.306 C 14.495 5.51 13.24 4.255 11.444 3.775 C 11.044 3.668 10.633 3.906 10.526 4.306 C 10.419 4.707 10.657 5.118 11.057 5.225 Z M 18.739 14.164 C 18.393 16.792 16.151 18.755 13.5 18.75 C 6.056 18.75 0 12.694 0 5.25 C -0.005 2.599 1.958 0.357 4.586 0.011 C 5.246 -0.069 5.88 0.294 6.144 0.904 L 8.124 5.324 L 8.124 5.335 C 8.324 5.797 8.28 6.328 8.005 6.75 C 7.988 6.775 7.971 6.799 7.952 6.822 L 6 9.136 C 6.702 10.563 8.195 12.042 9.64 12.746 L 11.922 10.805 C 11.945 10.786 11.968 10.768 11.993 10.752 C 12.414 10.471 12.949 10.422 13.415 10.621 L 13.427 10.626 L 17.843 12.605 C 18.454 12.869 18.819 13.503 18.739 14.164 Z M 17.25 13.976 C 17.25 13.976 17.243 13.976 17.24 13.976 L 17.24 13.976 L 12.833 12.003 L 10.551 13.944 C 10.528 13.963 10.505 13.981 10.481 13.997 C 10.042 14.29 9.481 14.33 9.005 14.104 C 7.249 13.255 5.498 11.518 4.649 9.781 C 4.42 9.308 4.456 8.749 4.743 8.309 C 4.759 8.284 4.777 8.259 4.796 8.237 L 6.75 5.92 L 4.781 1.514 C 4.781 1.51 4.781 1.506 4.781 1.503 C 2.9 1.748 1.495 3.353 1.5 5.25 C 1.507 11.874 6.876 17.243 13.5 17.25 C 15.396 17.256 17.001 15.854 17.25 13.975 Z\" fill=\"var(--21h8s6, rgb(0,0,0))\" height=\"18.74987837792363px\" id=\"FIxtaRhNP\" opacity=\"1\" transform=\"translate(2.25 3)\" width=\"18.749737547502242px\"/></svg>\\'); mask-position: center; mask-repeat: no-repeat; width: 24px; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"fill\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Phone Call\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-lOvOJ\");export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Fill\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerImmutableVariables\":\"true\",\"framerDisableUnlink\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"Phone Call\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"fill\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{jsx as _jsx}from\"react/jsx-runtime\";import{useMotionValue,useSpring}from\"framer-motion\";import{useEffect,useRef,useCallback}from\"react\";export function Followcursor({damping=100,stiffness=1e3,effectRange=2,intensity=5,actionableArea=30,style}){const x=useMotionValue(0);const y=useMotionValue(0);const springX=useSpring(x,{damping,stiffness});const springY=useSpring(y,{damping,stiffness});const ref=useRef(null);const handleMouseMove=useCallback(event=>{if(!ref.current)return;const element=ref.current;const rect=element.getBoundingClientRect();const mouseX=event.clientX;const mouseY=event.clientY;const isWithinBounds=mouseX>=rect.left-actionableArea&&mouseX<=rect.right+actionableArea&&mouseY>=rect.top-actionableArea&&mouseY<=rect.bottom+actionableArea;if(isWithinBounds){const displacementX=mouseX-(rect.left+rect.width/2);const displacementY=mouseY-(rect.top+rect.height/2);const normalizedX=displacementX/(rect.width/2)*effectRange*intensity;const normalizedY=displacementY/(rect.height/2)*effectRange*intensity;// Use requestAnimationFrame to update motion values\nrequestAnimationFrame(()=>{x.set(normalizedX);y.set(normalizedY);});}else{// Reset position if mouse is out of bounds\nrequestAnimationFrame(()=>{x.set(0);y.set(0);});}},[actionableArea,effectRange,intensity,x,y]);useEffect(()=>{window.addEventListener(\"mousemove\",handleMouseMove);return()=>{window.removeEventListener(\"mousemove\",handleMouseMove);};},[handleMouseMove]);return{ref:ref,style:{x:springX,y:springY,...style}};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withFollowcursor(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...Followcursor(props)});};}withFollowcursor.displayName=\"Followcursor\";\nexport const __FramerMetadata__ = {\"exports\":{\"Followcursor\":{\"type\":\"override\",\"name\":\"Followcursor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFollowcursor\":{\"type\":\"reactHoc\",\"name\":\"withFollowcursor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Magnetic.map"],
  "mappings": "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",
  "names": ["SVG", "Y", "props", "ref", "animated", "layoutId", "children", "rest", "p", "motion", "getProps", "fill", "height", "id", "width", "Component", "style", "className", "variant", "ezTt3ayMo", "restProps", "cx", "css", "Icon", "withCSS", "Dvhru8iYu_default", "addPropertyControls", "ControlType", "SVG", "Y", "props", "ref", "animated", "layoutId", "children", "rest", "p", "motion", "getProps", "fill", "height", "id", "width", "Component", "style", "className", "variant", "ezTt3ayMo", "restProps", "cx", "css", "Icon", "withCSS", "uNxF6T0zi_default", "addPropertyControls", "ControlType", "Followcursor", "damping", "stiffness", "effectRange", "intensity", "actionableArea", "style", "x", "useMotionValue", "y", "springX", "useSpring", "springY", "ref", "pe", "handleMouseMove", "te", "event", "rect", "mouseX", "mouseY", "displacementX", "displacementY", "normalizedX", "normalizedY", "ue", "window", "withFollowcursor", "C", "props", "re", "DataObserverContext", "p"]
}
