{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/fbILYhHCoK34YsTlUcpJ/NOBu3l7RT4eXhGKNQfjw/Custom_Cursor.js", "ssg:https://framerusercontent.com/modules/6BnoAoxRu8ancv6Zi5RJ/uh0mrFvuatSrO7WvdXdm/r2uCcBHZw.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useState,useEffect}from\"react\";import{motion,useSpring}from\"framer-motion\";function hasButtonOrAnchorAncestor(element){if(!element){return false;}if(element.tagName===\"BUTTON\"||element.tagName===\"A\"){return true;}return hasButtonOrAnchorAncestor(element.parentElement);}export function withCursorFollow(Component){return props=>{if(typeof document===\"undefined\"){return null;}// Add a style tag to the head of the document to hide the system cursor for all elements\nconst style=document.createElement(\"style\");style.appendChild(document.createTextNode(\"* { cursor: none !important; }\"));document.head.appendChild(style);const cursorRef=useRef(null);const[isHovering,setIsHovering]=useState(false);const spring={type:\"spring\",stiffness:1e3,damping:70};const storedPosition=localStorage.getItem(\"cursorPosition\");const initialCursorPosition=useRef(storedPosition?JSON.parse(storedPosition):{x:window.innerWidth/2,y:window.innerHeight/2});const positionX=useSpring(initialCursorPosition.current.x,spring);const positionY=useSpring(initialCursorPosition.current.y,spring);useEffect(()=>{const handleMouseMove=e=>{if(!cursorRef.current)return;// Check if the cursor is hovering a button or \"A\" tag element\nconst isHovered=e.target instanceof HTMLElement&&(e.target.tagName===\"BUTTON\"||e.target.tagName===\"A\"||hasButtonOrAnchorAncestor(e.target.parentElement));setIsHovering(isHovered);// Update the position based on the cursor position\npositionX.set(e.clientX);positionY.set(e.clientY);localStorage.setItem(\"cursorPosition\",JSON.stringify({x:e.clientX,y:e.clientY}));};// Store the initial cursor position when the component is first rendered\ninitialCursorPosition.current.x=window.innerWidth/2;initialCursorPosition.current.y=window.innerHeight/2;window.addEventListener(\"mousemove\",handleMouseMove);return()=>{window.removeEventListener(\"mousemove\",handleMouseMove);};},[]);return /*#__PURE__*/_jsx(motion.div,{ref:cursorRef,style:{position:\"fixed\",left:positionX,top:positionY,pointerEvents:\"none\",transform:\"translate(-50%, -50%)\",transition:\"transform 0.2s ease, opacity 0.2s ease\",zIndex:9999,opacity:isHovering?.5:1,scale:isHovering?1.7:1},children:/*#__PURE__*/_jsx(Component,{...props})});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withCursorFollow\":{\"type\":\"reactHoc\",\"name\":\"withCursorFollow\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Custom_Cursor.map", "// Generated by Framer (3eae0e1)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=['.framer-v4rGK .framer-styles-preset-1sf66b9:not(.rich-text-wrapper), .framer-v4rGK .framer-styles-preset-1sf66b9.rich-text-wrapper a { --framer-link-current-text-color: var(--token-a04b12bc-831e-4769-9ef4-7be762794065, #1f1e23) /* {\"name\":\"Black\"} */; --framer-link-current-text-decoration: underline; --framer-link-hover-text-color: #ff204e; --framer-link-hover-text-decoration: none; --framer-link-text-decoration: none; }'];export const className=\"framer-v4rGK\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "6HAAoI,SAASA,EAA0BC,EAAQ,CAAC,OAAIA,EAA0BA,EAAQ,UAAU,UAAUA,EAAQ,UAAU,IAAY,GAAaD,EAA0BC,EAAQ,aAAa,EAAhI,EAAkI,CAAQ,SAASC,GAAiBC,EAAU,CAAC,OAAOC,GAAO,CAAC,GAAG,OAAO,SAAW,IAAa,OAAO,KAC3a,IAAMC,EAAM,SAAS,cAAc,OAAO,EAAEA,EAAM,YAAY,SAAS,eAAe,gCAAgC,CAAC,EAAE,SAAS,KAAK,YAAYA,CAAK,EAAE,IAAMC,EAAUC,EAAO,IAAI,EAAO,CAACC,EAAWC,CAAa,EAAEC,EAAS,EAAK,EAAQC,EAAO,CAAC,KAAK,SAAS,UAAU,IAAI,QAAQ,EAAE,EAAQC,EAAe,aAAa,QAAQ,gBAAgB,EAAQC,EAAsBN,EAAOK,EAAe,KAAK,MAAMA,CAAc,EAAE,CAAC,EAAEE,EAAO,WAAW,EAAE,EAAEA,EAAO,YAAY,CAAC,CAAC,EAAQC,EAAUC,EAAUH,EAAsB,QAAQ,EAAEF,CAAM,EAAQM,EAAUD,EAAUH,EAAsB,QAAQ,EAAEF,CAAM,EAAE,OAAAO,EAAU,IAAI,CAAC,IAAMC,EAAgBC,GAAG,CAAC,GAAG,CAACd,EAAU,QAAQ,OACzpB,IAAMe,EAAUD,EAAE,kBAAkB,cAAcA,EAAE,OAAO,UAAU,UAAUA,EAAE,OAAO,UAAU,KAAKpB,EAA0BoB,EAAE,OAAO,aAAa,GAAGX,EAAcY,CAAS,EACjLN,EAAU,IAAIK,EAAE,OAAO,EAAEH,EAAU,IAAIG,EAAE,OAAO,EAAE,aAAa,QAAQ,iBAAiB,KAAK,UAAU,CAAC,EAAEA,EAAE,QAAQ,EAAEA,EAAE,OAAO,CAAC,CAAC,CAAE,EACnI,OAAAP,EAAsB,QAAQ,EAAEC,EAAO,WAAW,EAAED,EAAsB,QAAQ,EAAEC,EAAO,YAAY,EAAEA,EAAO,iBAAiB,YAAYK,CAAe,EAAQ,IAAI,CAACL,EAAO,oBAAoB,YAAYK,CAAe,CAAE,CAAE,EAAE,CAAC,CAAC,EAAsBG,EAAKC,EAAO,IAAI,CAAC,IAAIjB,EAAU,MAAM,CAAC,SAAS,QAAQ,KAAKS,EAAU,IAAIE,EAAU,cAAc,OAAO,UAAU,wBAAwB,WAAW,yCAAyC,OAAO,KAAK,QAAQT,EAAW,GAAG,EAAE,MAAMA,EAAW,IAAI,CAAC,EAAE,SAAsBc,EAAKnB,EAAU,CAAC,GAAGC,CAAK,CAAC,CAAC,CAAC,CAAE,CAAE,CCH/gBoB,EAAU,UAAU,CAAC,CAAC,EAAS,IAAMC,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,CAAC,EAAeC,GAAI,CAAC,0aAA0a,EAAeC,GAAU",
  "names": ["hasButtonOrAnchorAncestor", "element", "withCursorFollow", "Component", "props", "style", "cursorRef", "pe", "isHovering", "setIsHovering", "ye", "spring", "storedPosition", "initialCursorPosition", "window", "positionX", "useSpring", "positionY", "ue", "handleMouseMove", "e", "isHovered", "p", "motion", "fontStore", "fonts", "css", "className"]
}
