{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/pWOz2BeSqoLbY6TSM5Kx/X9Ycz4i0BJKILYNmWRQ4/stylesPresetHeading3.js", "ssg:https://framer.com/m/framer/useConstant.js@^1.0.0", "ssg:https://framer.com/m/framer/randomID.js@^2.0.0"],
  "sourcesContent": ["import { fontStore } from \"framer\";\nfontStore.loadWebFontsFromSelectors([\"GF;Manrope-700\"]);\nexport const fonts = [{\n  \"url\": \"https://fonts.gstatic.com/s/manrope/v12/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE-_F87jxeN7B.ttf\",\n  \"family\": \"Manrope\",\n  \"style\": \"normal\",\n  \"weight\": \"700\",\n  \"moduleAsset\": {\n    \"url\": \"https://fonts.gstatic.com/s/manrope/v12/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE-_F87jxeN7B.ttf\",\n    \"localModuleIdentifier\": \"local-module:css/stylesPresetHeading3:default\"\n  }\n}];\nexport const css = ['.framer-2Samn .framer-styles-preset-ci2ngw:not(.rich-text-wrapper), .framer-2Samn .framer-styles-preset-ci2ngw.rich-text-wrapper h3 { --framer-font-family: \"Manrope\", serif; --framer-font-style: normal; --framer-font-weight: 700; --framer-text-color: #000000; --framer-font-size: 16px; --framer-letter-spacing: 0px; --framer-text-transform: none; --framer-text-decoration: none; --framer-line-height: 1.2em; --framer-text-alignment: start; --framer-paragraph-spacing: 40px; }'];\nexport const className = \"framer-2Samn\";\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"className\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"fonts\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"css\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};", "import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on.\n * By using `useConstant` you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map", "import { useConstant } from \"https://framer.com/m/framer/useConstant.js@^1.0.0\";\nconst BASE62 = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n/**\n * Generates a random string of BASE62 characters.\n */ export function randomID(length = 5) {\n    return Array(length).fill(0).map(()=>BASE62[Math.floor(Math.random() * BASE62.length)]\n    ).join(\"\");\n}\nexport function useRandomID(length = 5) {\n    return useConstant(()=>randomID(length)\n    );\n}\nconst defaultStorageKey = \"$$FramerRandomID\";\n/**\n * `randomID` but cached in localStorage.\n */ export function useCachedRandomID(storageKey = defaultStorageKey) {\n    return useConstant(()=>{\n        const storage = getLocalStorage();\n        if (!storage) return randomID(8);\n        const cachedValue = storage.getItem(storageKey);\n        if (cachedValue) return cachedValue;\n        const newID = randomID(8);\n        storage.setItem(storageKey, newID);\n        return newID;\n    });\n}\nfunction getLocalStorage() {\n    if (typeof window === undefined) return undefined;\n    try {\n        return window.localStorage;\n    } catch (err) {\n        return undefined;\n    }\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useRandomID\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCachedRandomID\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./randomID.map"],
  "mappings": "gDACAA,EAAU,0BAA0B,CAAC,gBAAgB,CAAC,EAC/C,IAAMC,EAAQ,CAAC,CACpB,IAAO,2FACP,OAAU,UACV,MAAS,SACT,OAAU,MACV,YAAe,CACb,IAAO,2FACP,sBAAyB,+CAC3B,CACF,CAAC,EACYC,EAAM,CAAC,6dAA6d,EACpeC,EAAY,eCNd,SAASC,EAAYC,EAAM,CAClC,IAAMC,EAAMC,EAAO,IAAI,EACvB,OAAID,EAAI,UAAY,OAChBA,EAAI,QAAUD,EAAK,GAEhBC,EAAI,OACf,CCZA,IAAME,EAAS,iEAGJ,SAASC,EAASC,EAAS,EAAG,CACrC,OAAO,MAAMA,CAAM,EAAE,KAAK,CAAC,EAAE,IAAI,IAAIF,EAAO,KAAK,MAAM,KAAK,OAAO,EAAIA,EAAO,MAAM,EACpF,EAAE,KAAK,EAAE,CACb,CACO,SAASG,EAAYD,EAAS,EAAG,CACpC,OAAOE,EAAY,IAAIH,EAASC,CAAM,CACtC,CACJ",
  "names": ["Lt", "fonts", "css", "className", "useConstant", "init", "ref", "pe", "BASE62", "randomID", "length", "useRandomID", "useConstant"]
}
