{
  "version": 3,
  "sources": ["ssg:https://ga.jspm.io/npm:debounce@1.2.1/index.js", "ssg:https://framer.com/m/framer/store.js@^1.0.0", "ssg:https://framerusercontent.com/modules/juunpx584qzzI9DZXp4w/BPhvSQGXMInO4cZzkm6Z/FD.js"],
  "sourcesContent": ["var e=\"undefined\"!==typeof globalThis?globalThis:\"undefined\"!==typeof self?self:global;var l={};\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */function debounce(l,n,u){var t,a,o,i,f;null==n&&(n=100);function later(){var e=Date.now()-i;if(e<n&&e>=0)t=setTimeout(later,n-e);else{t=null;if(!u){f=l.apply(o,a);o=a=null}}}var debounced=function(){o=this||e;a=arguments;i=Date.now();var r=u&&!t;t||(t=setTimeout(later,n));if(r){f=l.apply(o,a);o=a=null}return f};debounced.clear=function(){if(t){clearTimeout(t);t=null}};debounced.flush=function(){if(t){f=l.apply(o,a);o=a=null;clearTimeout(t);t=null}};return debounced}debounce.debounce=debounce;l=debounce;var n=l;export default n;\n\n//# sourceMappingURL=index.js.map", "import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map", "import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import useMeasure from\"react-use-measure\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";const useStore=createStore({background:\"#0099FF\"});// ANIMATED BORDER\nconst BORDER_RADIUS=0;const INSET=1;const X_MARGIN=80;export function withAnimatedBorderGradient(Component){return props=>{const[sizeRef,{width,height}]=useMeasure();const aspectRatio=width/height;const styles=`\n      @property --r2 {\n        syntax: '<angle>';\n        inherits: false;\n        initial-value: 0deg;\n      }\n\n      @property --x {\n        syntax: '<length>';\n        inherits: false;\n        initial-value: 0px;\n      }\n\n      .${props.className} .box {\n        background: conic-gradient(\n          from calc(var(--r2) - 80deg) at var(--x) ${height/2}px,\n          #222 0%,\n          #00FF84 20%,\n          #222 25%\n        );\n        animation: -0.64s rotating2 4s linear infinite,\n          -0.64s x 4s linear infinite;\n        width: 100%;\n        height: 100%; \n        border-radius: ${BORDER_RADIUS+INSET}px;\n        position: relative;\n        z-index: 0;\n      }\n\n      .${props.className} .box::after {\n        content: '';\n        display: block;\n        position: absolute;\n        background: #0D0D0D;\n        inset: ${INSET}px;\n        border-radius: ${BORDER_RADIUS}px;\n        z-index: 0;\n        transition: opacity 0.3s ease;\n      }\n\n      @keyframes x {\n        0% {\n          --x: ${X_MARGIN}px;\n        }\n  \n        ${aspectRatio/(aspectRatio+3.14)*.5*100}% {\n          --x: ${width-X_MARGIN}px;\n        }\n        50% {\n          --x: ${width-X_MARGIN}px;\n        }\n    \n        ${aspectRatio/(aspectRatio+3.14)*.5*100+50}% {\n          --x: ${X_MARGIN}px;\n        }\n        100% {\n    --x: ${X_MARGIN}px;\n        }\n      }\n\n      @keyframes rotating2 {\n        0% {\n          --r2: 0deg;\n        }\n        ${aspectRatio/(aspectRatio+3.14)*.5*100}% {\n          --r2: 0deg;\n        }\n        50% {\n          --r2: 180deg;\n        }\n        ${aspectRatio/(aspectRatio+3.14)*.5*100+50}% {\n          --r2: 180deg;\n        }\n        100% {\n          --r2: 360deg;\n        }\n      }\n    `;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:styles}),/*#__PURE__*/_jsxs(Component,{...props,children:[/*#__PURE__*/_jsx(\"div\",{className:\"box\",ref:sizeRef}),props.children]})]});};}// NAV HIDE ON SCROLL\nexport function withHideOnScroll(Component){return props=>{const[scrollDirection,setScrollDirection]=useState(undefined);const[prevScrollPosition,setPrevScrollPosition]=useState(0);useEffect(()=>{const handleScroll=()=>{const scrollY=window.scrollY;const height=document.body.scrollHeight-window.innerHeight;const progress=scrollY/height;if(scrollY<0||progress>1){return;}if(window.scrollY>prevScrollPosition){setScrollDirection(\"down\");}else{setScrollDirection(\"up\");}setPrevScrollPosition(window.scrollY);};window.addEventListener(\"scroll\",handleScroll,{passive:true});return()=>{window.removeEventListener(\"scroll\",handleScroll);};});return /*#__PURE__*/_jsx(Component,{...props,style:{...props.style,transition:\"transform 100ms ease-in-out\",transform:scrollDirection===\"down\"?\"translateY(-100%)\":\"translateY(0)\"}});};}// TEXT HIGHTLIGHT\nconst COLOR=\"#141414\";const BACKGROUND_COLOR=\"#F3F901\";const styles=`\n  .overrrides-custom-cursor::selection, .overrrides-custom-cursor *::selection {\n    color: ${COLOR} !important;\n    background: ${BACKGROUND_COLOR} !important;\n  }\n`;export function withCustomTextHighlight(Component){return props=>{return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:styles}),/*#__PURE__*/_jsx(Component,{...props,className:`overrrides-custom-cursor ${props.className}`})]});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withCustomTextHighlight\":{\"type\":\"reactHoc\",\"name\":\"withCustomTextHighlight\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAnimatedBorderGradient\":{\"type\":\"reactHoc\",\"name\":\"withAnimatedBorderGradient\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHideOnScroll\":{\"type\":\"reactHoc\",\"name\":\"withHideOnScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FD.map"],
  "mappings": "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",
  "names": ["e", "global", "l", "debounce", "n", "u", "a", "i", "f", "later", "debounced", "r", "createStore", "state1", "dataStore", "Data", "setDataStore", "newState", "storeState", "storeSetters", "setStoreState", "setter", "useStore", "state", "setState", "ye", "ue", "useObserveData", "useStore", "createStore", "withHideOnScroll", "Component", "props", "scrollDirection", "setScrollDirection", "ye", "prevScrollPosition", "setPrevScrollPosition", "ue", "handleScroll", "scrollY", "window", "height", "progress", "p", "COLOR", "BACKGROUND_COLOR", "styles"]
}
