{"version":3,"file":"script_main.mMjgKcfY.mjs","names":["useMemo","useState","useRef","useRef","React.useRef","DESKTOP","fonts","css","className","React.useRef","trim","_Fragment","css","RichText","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","addPropertyOverrides","Link","Social","RichText","MotionDivWithFX","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","Link1","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","_Fragment","css","css","Link1","RichText","serializationHash","variantClassNames","React.useContext","React.useMemo","humanReadableVariantMap","React.Fragment","getProps","React.forwardRef","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","className","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","useState","useRef","_Fragment","clamp","css","useState","_Fragment","NavLinks","Footer","isBrowser","useRef","React.useId","PropertyOverrides","React.createElement","HomeSectionGrid","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framer.com/m/framer/default-utils.js","https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/7LsYGOkyjLv3zWdmJA4n/Embed.js","https:/framerusercontent.com/modules/RIxi2CVqPfjLnBZfcn9H/orzl5lwbr2mlus29JdkM/CurrentYear.js","https:/framerusercontent.com/modules/WoDKdTeOxaJUarHJ9AEO/crnhT2KtqGLzumemng0v/GlassText_1.js","https:/framerusercontent.com/modules/ukz5upuntYkj3DydGUaV/b8LVZjWAvvaCd5TkHEtE/XH1Ra1u6V.js","https:/framerusercontent.com/modules/wu8mZgKS8cYacZ5M8gU9/q18XNzoCvhOsUIMIueEk/ScrambleLink.js","https:/framerusercontent.com/modules/tleCgoup2iJGgttfQ8IA/BYVd2k3QqLAq7ryhQh0N/y_q4PL1Mz.js","https:/framerusercontent.com/modules/f6WjmJvwM8aYXquoGRh2/4rSzqPeW5ueBuLm0FlQn/FF7dljYBM.js","https:/framerusercontent.com/modules/0PfOLqTi5gxu8vnZzd97/SBphqAwzB9ZXtkjWsG0D/NavHitArea.js","https:/framerusercontent.com/modules/9CGOQThIeuH6aJcqAW91/lSCkvGvYegWrNnPee87q/xSmbUc6JM.js","https:/framerusercontent.com/modules/ixjey4XoQXFuCKXYSh6y/n6i3calMZcpWItRFVfIs/l9GPG8fUR.js","https:/framerusercontent.com/modules/ydacqjMIKHyehcwcoYN2/oa3YsbJ9qLk7EjB3xcgE/Cursor.js","https:/framerusercontent.com/modules/bMTuJVADdpZsRHM00PV6/meXv35VYMbQ0PcHOp61I/FooterReveal.js","https:/framerusercontent.com/modules/BOEZMB1tLGvEULpPMGtN/pmVrZadpBAkg3zqzjnh3/ImageParallax.js","https:/framerusercontent.com/modules/TeB8cYyG3CUnRNULoAtA/4JsBlQJX7Ajh4PkiVL3Z/PageTransition.js","https:/ga.jspm.io/npm:lenis@1.1.2/dist/lenis.mjs","https:/framerusercontent.com/modules/m37YzRE0aj0A100H5grB/M63BP0cQKzJwGMdBxdPZ/Smooth_scroll.js","https:/framerusercontent.com/modules/gOk1FohUg9JBYcSd7QMG/eKilFJnmL6nsAqBEzgXU/ff1cxan6a.js","framer:toplevel/main"],"sourcesContent":["import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","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. By using `useConstant`\n * 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 { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n","// ⚠️⚠️⚠️⚠️⚠️\n// Edit these files in https://github.com/framer/FramerCodeComponents\n// ⚠️⚠️⚠️⚠️⚠️\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useIsOnCanvas,emptyStateStyle,containerStyles}from\"https://framer.com/m/framer/default-utils.js\";/**\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n */export default function Embed({type,url,html,zoom,radius,border,style={}}){if(type===\"url\"&&url){return /*#__PURE__*/_jsx(EmbedUrl,{url:url,zoom:zoom,radius:radius,border:border,style:style});}if(type===\"html\"&&html){return /*#__PURE__*/_jsx(EmbedHtml,{html:html,style:style});}return /*#__PURE__*/_jsx(Instructions,{style:style});}addPropertyControls(Embed,{type:{type:ControlType.Enum,defaultValue:\"url\",displaySegmentedControl:true,options:[\"url\",\"html\"],optionTitles:[\"URL\",\"HTML\"]},url:{title:\"URL\",type:ControlType.String,description:\"Some websites don’t support embedding.\",hidden(props){return props.type!==\"url\";}},html:{title:\"HTML\",type:ControlType.String,displayTextArea:true,hidden(props){return props.type!==\"html\";}},border:{title:\"Border\",type:ControlType.Border,optional:true,hidden(props){return props.type!==\"url\";}},radius:{type:ControlType.BorderRadius,title:\"Radius\",hidden(props){return props.type!==\"url\";}},zoom:{title:\"Zoom\",defaultValue:1,type:ControlType.Number,hidden(props){return props.type!==\"url\";},min:.1,max:1,step:.1,displayStepper:true}});function Instructions({style}){return /*#__PURE__*/_jsx(\"div\",{style:{minHeight:getMinHeight(style),...emptyStateStyle,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"Add a URL to embed a website.\"})});}function EmbedUrl({url,zoom,radius,border,style}){const hasAutoHeight=!style.height;// Add https:// if the URL does not have a protocol.\nif(!/[a-z]+:\\/\\//.test(url)){url=\"https://\"+url;}const onCanvas=useIsOnCanvas();// We need to check if the url is blocked inside an iframe by the X-Frame-Options\n// or Content-Security-Policy headers on the backend.\nconst[state,setState]=useState(onCanvas?undefined:false);useEffect(()=>{// We only want to check on the canvas.\n// On the website we want to avoid the additional delay.\nif(!onCanvas)return;// TODO: We could also use AbortController here.\nlet isLastEffect=true;setState(undefined);async function load(){const response=await fetch(\"https://api.framer.com/functions/check-iframe-url?url=\"+encodeURIComponent(url));if(response.status==200){const{isBlocked}=await response.json();if(isLastEffect){setState(isBlocked);}}else{const message=await response.text();console.error(message);const error=new Error(\"This site can’t be reached.\");setState(error);}}load().catch(error=>{console.error(error);setState(error);});return()=>{isLastEffect=false;};},[url]);if(onCanvas&&hasAutoHeight){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"URL embeds do not support auto height.\",style:style});}if(!url.startsWith(\"https://\")){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"Unsupported protocol.\",style:style});}if(state===undefined){return /*#__PURE__*/_jsx(LoadingIndicator,{});}if(state instanceof Error){return /*#__PURE__*/_jsx(ErrorMessage,{message:state.message,style:style});}if(state===true){const message=`Can’t embed ${url} due to its content security policy.`;return /*#__PURE__*/_jsx(ErrorMessage,{message:message,style:style});}return /*#__PURE__*/_jsx(\"iframe\",{src:url,style:{...iframeStyle,...style,...border,zoom:zoom,borderRadius:radius,transformOrigin:\"top center\"},loading:\"lazy\",// @ts-ignore\nfetchPriority:onCanvas?\"low\":\"auto\",referrerPolicy:\"no-referrer\",sandbox:getSandbox(onCanvas),allowFullScreen:true,allow:\"presentation; fullscreen; accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; clipboard-write\"});}const iframeStyle={width:\"100%\",height:\"100%\",border:\"none\"};function getSandbox(onCanvas){const result=[\"allow-same-origin\",\"allow-scripts\"];if(!onCanvas){result.push(\"allow-downloads\",\"allow-forms\",\"allow-modals\",\"allow-orientation-lock\",\"allow-pointer-lock\",\"allow-popups\",\"allow-popups-to-escape-sandbox\",\"allow-presentation\",\"allow-storage-access-by-user-activation\",\"allow-top-navigation-by-user-activation\");}return result.join(\" \");}function EmbedHtml({html,...props}){const hasScript=html.includes(\"</script>\");if(hasScript){const hasSplineViewer=html.includes(\"</spline-viewer>\");const hasComment=html.includes(\"<!-- framer-direct-embed -->\");if(hasSplineViewer||hasComment){return /*#__PURE__*/_jsx(EmbedHtmlWithScripts,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlInsideIframe,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlWithoutScripts,{html:html,...props});}function EmbedHtmlInsideIframe({html,style}){const ref=useRef();const[iframeHeight,setIframeHeight]=useState(0);// Handle auto sizing\nuseEffect(()=>{const iframeWindow=ref.current?.contentWindow;function handleMessage(event){if(event.source!==iframeWindow)return;const data=event.data;if(typeof data!==\"object\"||data===null)return;const height=data.embedHeight;if(typeof height!==\"number\")return;setIframeHeight(height);}window.addEventListener(\"message\",handleMessage);// After SSG the iframe loads before we attach the event handler,\n// therefore we need to request the latest height from the iframe.\niframeWindow?.postMessage(\"getEmbedHeight\",\"*\");return()=>{window.removeEventListener(\"message\",handleMessage);};},[]);// The CSS is mainly copied from:\n// FramerStudio/src/app/vekter/src/renderer/setDefaultFont.ts\n// FramerStudio/src/app/vekter/src/export/globalStylesForExport.ts\nconst srcDoc=`\n<html>\n    <head>\n        <style>\n            html, body {\n                margin: 0;\n                padding: 0;\n            }\n\n            body {\n                display: flex;\n                justify-content: center;\n                align-items: center;\n            }\n\n            :root {\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n            }\n\n            * {\n                box-sizing: border-box;\n                -webkit-font-smoothing: inherit;\n            }\n\n            h1, h2, h3, h4, h5, h6, p, figure {\n                margin: 0;\n            }\n\n            body, input, textarea, select, button {\n                font-size: 12px;\n                font-family: sans-serif;\n            }\n        </style>\n    </head>\n    <body>\n        ${html}\n        <script type=\"module\">\n            let height = 0\n\n            function sendEmbedHeight() {\n                window.parent.postMessage({\n                    embedHeight: height\n                }, \"*\")\n            }\n\n            const observer = new ResizeObserver((entries) => {\n                if (entries.length !== 1) return\n                const entry = entries[0]\n                if (entry.target !== document.body) return\n\n                height = entry.contentRect.height\n                sendEmbedHeight()\n            })\n\n            observer.observe(document.body)\n\n            window.addEventListener(\"message\", (event) => {\n                if (event.source !== window.parent) return\n                if (event.data !== \"getEmbedHeight\") return\n                sendEmbedHeight()\n            })\n        </script>\n    <body>\n</html>\n`;const currentStyle={...iframeStyle,...style};const hasAutoHeight=!style.height;if(hasAutoHeight){currentStyle.height=iframeHeight+\"px\";}return /*#__PURE__*/_jsx(\"iframe\",{ref:ref,style:currentStyle,srcDoc:srcDoc});}function EmbedHtmlWithScripts({html,style}){const ref=useRef();useEffect(()=>{const div=ref.current;if(!div)return;div.innerHTML=html;executeScripts(div);return()=>{div.innerHTML=\"\";};},[html]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...htmlStyle,...style}});}function EmbedHtmlWithoutScripts({html,style}){return /*#__PURE__*/_jsx(\"div\",{style:{...htmlStyle,...style},dangerouslySetInnerHTML:{__html:html}});}const htmlStyle={width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\"};// This function replaces scripts with executable ones.\n// https://stackoverflow.com/questions/1197575/can-scripts-be-inserted-with-innerhtml\nfunction executeScripts(node){if(node instanceof Element&&node.tagName===\"SCRIPT\"){const script=document.createElement(\"script\");script.text=node.innerHTML;for(const{name,value}of node.attributes){script.setAttribute(name,value);}node.parentElement.replaceChild(script,node);}else{for(const child of node.childNodes){executeScripts(child);}}}// Generic components\nfunction LoadingIndicator(){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-componentPlaceholder\",style:{...containerStyles,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"Loading…\"})});}function ErrorMessage({message,style}){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-errorPlaceholder\",style:{minHeight:getMinHeight(style),...containerStyles,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:message})});}const centerTextStyle={textAlign:\"center\",minWidth:140};// Returns a min-height if the component is using auto-height.\nfunction getMinHeight(style){const hasAutoHeight=!style.height;if(hasAutoHeight)return 200;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Embed\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"400\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Embed.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useRef}from\"react\";import{RenderTarget}from\"framer\";// Keeps the year in a text current (e.g. \"© 2026 Structule. All rights reserved.\").\n// The text stays a normal, editable Framer text; on the live site the first year in it\n// is swapped for the visitor's current year, so it rolls over on 1 January by itself.\nconst YEAR=/\\b(19|20)\\d{2}\\b/;export function withCurrentYear(Component){return /*#__PURE__*/forwardRef((props,outerRef)=>{const ref=useRef(null);useEffect(()=>{if(RenderTarget.current()===RenderTarget.canvas)return;const el=ref.current;if(!el)return;const year=String(new Date().getFullYear());const walker=document.createTreeWalker(el,NodeFilter.SHOW_TEXT);for(let n=walker.nextNode();n;n=walker.nextNode()){const t=n.nodeValue||\"\";if(YEAR.test(t)){n.nodeValue=t.replace(YEAR,year);break;}}},[]);const setRef=node=>{ref.current=node;if(typeof outerRef===\"function\")outerRef(node);else if(outerRef)outerRef.current=node;};return /*#__PURE__*/_jsx(Component,{...props,ref:setRef});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withCurrentYear\":{\"type\":\"reactHoc\",\"name\":\"withCurrentYear\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CurrentYear.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";// Pixel glitch on a big text (the footer wordmark), after the LABS wordmark on labs.chaingpt.org.\n// Under the mouse the letters turn into a pixelated copy of themselves; moving the mouse drags that copy\n// along (the faster you move, the further pieces of the letters jump out of their outline). Nothing is\n// drawn outside the text's own box and no square shows: only the letters change — the background, the\n// grid lines and the rest of the footer stay untouched.\n// The text stays a normal Framer text; this draws on a canvas laid exactly over it, only while hovering.\n// The line box of a big wordmark is usually shorter than the letters (tight line height), so the overlay\n// and the hover area reach a bit beyond the text frame: the whole glyphs take part, down to the bottom.\n// Desktop with a mouse only.\nconst SIZE=130// area around the cursor that glitches, px\n;const BLOCK=8// pixel block, px\n;const DRAG=3// how far pieces shift per px/frame of mouse speed\n;const MAX_SHIFT=25// ...at most, px\n;const DESKTOP=\"(hover: hover) and (pointer: fine) and (min-width: 1024px)\";// nearest real background behind the text, used to hide the original letters under the glitch\nfunction backgroundOf(el){let e=el;while(e){const bg=getComputedStyle(e).backgroundColor;if(bg&&bg!==\"rgba(0, 0, 0, 0)\"&&bg!==\"transparent\")return bg;e=e.parentElement;}return getComputedStyle(document.body).backgroundColor||\"#fff\";}export function withGlassText(Component){return /*#__PURE__*/React.forwardRef((props,outerRef)=>{const ref=React.useRef(null);React.useEffect(()=>{const el=ref.current;if(!el||!window.matchMedia(DESKTOP).matches)return;if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;const dpr=Math.min(2,window.devicePixelRatio||1);const canvas=document.createElement(\"canvas\")// exactly over the text box\n;canvas.setAttribute(\"aria-hidden\",\"true\");canvas.style.cssText=\"position:absolute;pointer-events:none;z-index:2\";const ctx=canvas.getContext(\"2d\");const src=document.createElement(\"canvas\")// the letters as they sit on the page\n;const sctx=src.getContext(\"2d\");const hide=document.createElement(\"canvas\")// the same letters in the background colour\n;const hctx=hide.getContext(\"2d\");const tiny=document.createElement(\"canvas\")// pixelation buffer\n;const tctx=tiny.getContext(\"2d\",{willReadFrequently:true});if(getComputedStyle(el).position===\"static\")el.style.position=\"relative\";el.appendChild(canvas);let W=0,H=0,padX=0,padY=0;// how far the letters can stick out of the text frame, from the font size\nconst measurePad=()=>{const walker=document.createTreeWalker(el,NodeFilter.SHOW_TEXT);let fs=0;for(let n=walker.nextNode();n;n=walker.nextNode())if(n.nodeValue?.trim()&&n.parentElement)fs=Math.max(fs,parseFloat(getComputedStyle(n.parentElement).fontSize)||0);padX=Math.ceil(fs*.1);padY=Math.ceil(fs*.35);};const snapshot=()=>{measurePad();const r=el.getBoundingClientRect();W=Math.ceil(r.width+padX*2);H=Math.ceil(r.height+padY*2);canvas.style.left=`${-padX}px`;canvas.style.top=`${-padY}px`;for(const c of[canvas,src,hide]){c.width=W*dpr;c.height=H*dpr;}canvas.style.width=`${W}px`;canvas.style.height=`${H}px`;sctx.setTransform(dpr,0,0,dpr,0,0);sctx.clearRect(0,0,W,H);const walker=document.createTreeWalker(el,NodeFilter.SHOW_TEXT);for(let n=walker.nextNode();n;n=walker.nextNode()){const text=n.nodeValue||\"\";if(!text.trim()||!n.parentElement)continue;const cs=getComputedStyle(n.parentElement);sctx.font=`${cs.fontStyle} ${cs.fontWeight} ${cs.fontSize} ${cs.fontFamily}`;sctx.letterSpacing=cs.letterSpacing===\"normal\"?\"0px\":cs.letterSpacing;sctx.fillStyle=cs.color;sctx.textBaseline=\"alphabetic\";const range=document.createRange();range.selectNodeContents(n);const rr=range.getBoundingClientRect();const m=sctx.measureText(text);const ascent=m.fontBoundingBoxAscent??m.actualBoundingBoxAscent;const descent=m.fontBoundingBoxDescent??m.actualBoundingBoxDescent;const baseline=rr.top-r.top+(rr.height-(ascent+descent))/2+ascent;sctx.fillText(text,rr.left-r.left+padX,baseline+padY);}// letters in the background colour: painted over the originals, they disappear\nhctx.setTransform(1,0,0,1,0,0);hctx.clearRect(0,0,hide.width,hide.height);hctx.globalCompositeOperation=\"source-over\";hctx.drawImage(src,0,0);hctx.globalCompositeOperation=\"source-in\";hctx.fillStyle=backgroundOf(el);hctx.fillRect(0,0,hide.width,hide.height);hctx.globalCompositeOperation=\"source-over\";};let mx=0,my=0,px=0,py=0,vx=0,vy=0,alpha=0,inside=false,raf=0;const draw=()=>{ctx.setTransform(1,0,0,1,0,0);ctx.clearRect(0,0,canvas.width,canvas.height);if(alpha<.01)return;ctx.setTransform(dpr,0,0,dpr,0,0);// the area snaps to a block grid fixed to the text, so the pixels sit still in the letters\nconst x=padX+Math.round((mx-SIZE/2-padX)/BLOCK)*BLOCK;const y=padY+Math.round((my-SIZE/2-padY)/BLOCK)*BLOCK;const ox=0// no shift at all: the letters stay where they are, only the pixelation follows\n;const oy=0;ctx.globalAlpha=alpha;ctx.save();ctx.beginPath();ctx.rect(x,y,SIZE,SIZE);ctx.clip();// 1. hide the original letters in this area (only the letters, never the background)\nctx.drawImage(hide,0,0,hide.width,hide.height,0,0,W,H);// 2. pixelated copy, taken from behind the movement: pieces jump along with the mouse\nconst n=Math.max(1,Math.round(SIZE/BLOCK));tiny.width=tiny.height=n;tctx.clearRect(0,0,n,n);tctx.drawImage(src,(x-ox)*dpr,(y-oy)*dpr,SIZE*dpr,SIZE*dpr,0,0,n,n);// crisp blocks: a block is either fully there or not at all\nconst img=tctx.getImageData(0,0,n,n);const d=img.data;for(let i=3;i<d.length;i+=4){if(d[i]>110){const a=d[i]/255;d[i-3]=Math.min(255,d[i-3]/a);d[i-2]=Math.min(255,d[i-2]/a);d[i-1]=Math.min(255,d[i-1]/a);d[i]=255;}else d[i]=0;}tctx.putImageData(img,0,0);ctx.imageSmoothingEnabled=false;ctx.drawImage(tiny,0,0,n,n,x,y,SIZE,SIZE);ctx.restore();ctx.globalAlpha=1;};const tick=()=>{// the glitch area sits right under the cursor; only the shift of the pieces is lightly smoothed,\n// so fast moves don't make the letters jump\nvx+=(mx-px-vx)*.35;vy+=(my-py-vy)*.35;px=mx;py=my;alpha=inside?1:0// on / off at once, no fade\n;draw();if(!inside&&alpha<.01){raf=0;ctx.setTransform(1,0,0,1,0,0);ctx.clearRect(0,0,canvas.width,canvas.height);return;}raf=requestAnimationFrame(tick);};measurePad();const move=e=>{const r=el.getBoundingClientRect();const over=e.clientX>=r.left-padX&&e.clientX<=r.right+padX&&e.clientY>=r.top-padY&&e.clientY<=r.bottom+padY;if(!over){inside=false;return;}if(!inside&&!raf)snapshot();mx=e.clientX-r.left+padX;my=e.clientY-r.top+padY;if(!inside&&!raf){px=mx;py=my;vx=vy=0;}inside=true;if(!raf)raf=requestAnimationFrame(tick);};const out=()=>inside=false;window.addEventListener(\"mousemove\",move,{passive:true});document.addEventListener(\"mouseleave\",out);return()=>{cancelAnimationFrame(raf);window.removeEventListener(\"mousemove\",move);document.removeEventListener(\"mouseleave\",out);canvas.remove();};},[]);const setRef=node=>{ref.current=node;if(typeof outerRef===\"function\")outerRef(node);else if(outerRef)outerRef.current=node;};return /*#__PURE__*/_jsx(Component,{...props,ref:setRef});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withGlassText\":{\"type\":\"reactHoc\",\"name\":\"withGlassText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GlassText_1.map","// Generated by Framer (7aeef1c)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-GD63U .framer-styles-preset-n5kc0b:not(.rich-text-wrapper), .framer-GD63U .framer-styles-preset-n5kc0b.rich-text-wrapper a { --framer-link-text-color: var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, #7c1fff); }\"];export const className=\"framer-GD63U\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";// Hover effect for a text link (used inside the \"Link\" component, can go on any text layer with a link).\n// Desktop with a mouse only — touch screens and narrow layouts get the plain link.\n// - the label scrambles through random characters and settles back into the word from the left\n//   (0.8 s; on leave it runs backwards 1.5× faster); the link keeps its width meanwhile, so nothing moves\n// - two small corner brackets slide in at the top-left and bottom-right\n// - the link to the page you are on: plain full-black text, no brackets (brackets are for hover only)\n// corner colour: the global colour style \"Link corners\" (Assets → Colors); falls back to the text colour\nconst ACCENT=\"var(--token-5a2caf78-577f-493a-b0f2-d0913709944a, currentColor)\";const CHARS=\"021zrotxinsmopsweknm\";const DURATION=800// ms, scramble in\n;const BACK=1.5// leave plays backwards this much faster\n;const DESKTOP=\"(hover: hover) and (pointer: fine) and (min-width: 1024px)\";const css=`\n.sx-slink a{position:relative}\n.sx-slink .sx-br{position:absolute;width:8px;height:8px;opacity:0;pointer-events:none;\ntransition:opacity .3s,transform .3s cubic-bezier(.455,.03,.515,.955)}\n.sx-slink .sx-br-tl{top:-3px;left:-5px;border-top:1px solid ${ACCENT};border-left:1px solid ${ACCENT};transform:translate(50%,50%)}\n.sx-slink .sx-br-br{bottom:-3px;right:-5px;border-right:1px solid ${ACCENT};border-bottom:1px solid ${ACCENT};transform:translate(-50%,-50%)}\n.sx-slink a:hover .sx-br{opacity:1;transform:none}\n.sx-slink a.sx-current,.sx-slink a.sx-current:hover{color:var(--token-cd708a3c-25bb-4606-92f4-351c74f13945, #1b1b1e)!important}\n@media not all and ${DESKTOP}{.sx-slink .sx-br{display:none}}\n`;const trim=p=>p.replace(/\\/+$/,\"\")||\"/\";// progress 0 → 1 reveals the word from the left; the rest are random characters\nfunction scrambler(a){const walker=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let found=null;for(let n=walker.nextNode();n;n=walker.nextNode())if(n.nodeValue?.trim()){found=n;break;}if(!found)return null;const node=found;const word=node.nodeValue;let p=0;let dir=0;let raf=0;let last=0;const release=()=>{a.style.width=\"\";a.style.display=\"\";};const draw=()=>{if(p<=0||p>=1){node.nodeValue=word;release();return;}const shown=Math.floor(p*word.length);let out=word.slice(0,shown);for(let i=shown;i<word.length;i++)out+=word[i]===\" \"?\" \":CHARS[Math.random()*CHARS.length|0];node.nodeValue=out;};const step=now=>{p+=dir*(now-last)/DURATION;last=now;if(p>=1||p<=0){p=Math.min(1,Math.max(0,p));raf=0;draw();return;}draw();raf=requestAnimationFrame(step);};const run=d=>{if(!a.style.width){a.style.width=`${a.getBoundingClientRect().width}px`;a.style.display=\"inline-block\";}dir=d;if(d>0&&p>=1)p=0;if(!raf){last=performance.now();raf=requestAnimationFrame(step);}};const enter=()=>run(1);const leave=()=>{if(p>0&&p<1)run(-BACK);else if(p>=1){p=.999;run(-BACK);}};a.addEventListener(\"mouseenter\",enter);a.addEventListener(\"mouseleave\",leave);return()=>{cancelAnimationFrame(raf);a.removeEventListener(\"mouseenter\",enter);a.removeEventListener(\"mouseleave\",leave);node.nodeValue=word;release();};}export function withScrambleLink(Component){return /*#__PURE__*/React.forwardRef((props,outerRef)=>{const ref=React.useRef(null);React.useEffect(()=>{const root=ref.current;if(!root)return;const links=Array.from(root.querySelectorAll(\"a\"));// the page you are on is marked (full black text) on every screen; pages change without reloading: check again\nlet path=\"\";const mark=()=>{if(location.pathname===path)return;path=location.pathname;for(const a of links)a.classList.toggle(\"sx-current\",trim(a.pathname)===trim(path));};mark();const watch=window.setInterval(mark,400);// hover effect: desktop with a mouse only\nif(!window.matchMedia(DESKTOP).matches)return()=>clearInterval(watch);for(const a of links){if(a.querySelector(\".sx-br\"))continue;for(const cls of[\"sx-br sx-br-tl\",\"sx-br sx-br-br\"]){const s=document.createElement(\"span\");s.className=cls;s.setAttribute(\"aria-hidden\",\"true\");a.appendChild(s);}}const reduced=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const offs=reduced?[]:links.map(scrambler);return()=>{clearInterval(watch);offs.forEach(off=>off?.());};},[]);const setRef=node=>{ref.current=node;if(typeof outerRef===\"function\")outerRef(node);else if(outerRef)outerRef.current=node;};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:css}),/*#__PURE__*/_jsx(Component,{...props,ref:setRef,className:`${props.className??\"\"} sx-slink`})]});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withScrambleLink\":{\"type\":\"reactHoc\",\"name\":\"withScrambleLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrambleLink.map","// Generated by Framer (c142a8f)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{withScrambleLink}from\"https://framerusercontent.com/modules/wu8mZgKS8cYacZ5M8gU9/q18XNzoCvhOsUIMIueEk/ScrambleLink.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/huFp6b98kZuOJLJj1Vee/qUmyOIqzcMeSuJ83ZGFM/ro7OPezbn.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/vWrHcVNXWGzafYC2ZTVt/OoWiQdWlS7qz7iJmoAT2/xZndidUCt.js\";const RichTextWithScrambleLink1vkittt=withCodeBoundaryForOverrides(RichText,{nodeId:\"uuaIgwI3F\",override:withScrambleLink,scopeId:\"y_q4PL1Mz\"});const serializationHash=\"framer-8ef25\";const variantClassNames={I0sP9bQAj:\"framer-v-9rd2g2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const sqGWAqEaq=undefined;const seB1ZxoZL=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};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=({height,id,label,link,width,...props})=>{return{...props,seB1ZxoZL:label??props.seB1ZxoZL??\"link\",sqGWAqEaq:link??props.sqGWAqEaq};};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,seB1ZxoZL,sqGWAqEaq,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"I0sP9bQAj\",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:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-9rd2g2\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"I0sP9bQAj\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(RichTextWithScrambleLink1vkittt,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-21ogod\",\"data-styles-preset\":\"xZndidUCt\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede))\"},children:/*#__PURE__*/_jsx(Link,{href:sqGWAqEaq,motionChild:true,nodeId:\"uuaIgwI3F\",openInNewTab:false,relValues:[],scopeId:\"y_q4PL1Mz\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"link\"})})})}),className:\"framer-1vkittt\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"uuaIgwI3F\",style:{\"--extracted-r6o4lv\":\"var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede)\"},text:seB1ZxoZL,verticalAlignment:\"top\",withExternalLayout:true})})})})});});const css=[\".framer-8ef25.framer-wi87xm, .framer-8ef25 .framer-wi87xm { display: block; }\",\".framer-8ef25.framer-9rd2g2 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; padding: 0px; position: relative; width: min-content; }\",\".framer-8ef25 .framer-1vkittt { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 200\n * @framerIntrinsicWidth 200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"seB1ZxoZL\":\"label\",\"sqGWAqEaq\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framery_q4PL1Mz=withCSS(Component,css,\"framer-8ef25\");export default Framery_q4PL1Mz;Framery_q4PL1Mz.displayName=\"Link\";Framery_q4PL1Mz.defaultProps={height:200,width:200};addPropertyControls(Framery_q4PL1Mz,{seB1ZxoZL:{defaultValue:\"link\",title:\"Label\",type:ControlType.String},onseB1ZxoZLChange:{changes:\"seB1ZxoZL\",type:ControlType.ChangeHandler},sqGWAqEaq:{title:\"Link\",type:ControlType.Link}});addFonts(Framery_q4PL1Mz,[{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\"}]},...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framery_q4PL1Mz\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"200\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"200\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"seB1ZxoZL\\\":\\\"label\\\",\\\"sqGWAqEaq\\\":\\\"link\\\"}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6b21612)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,Link as Link1,ResolveLinks,RichText,runTasksWithYield,SmartComponentScopedContainer,TickerItem,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCodeBoundaryForOverrides,withCSS,withFX,withTickerFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{withCurrentYear}from\"https://framerusercontent.com/modules/RIxi2CVqPfjLnBZfcn9H/orzl5lwbr2mlus29JdkM/CurrentYear.js\";import{withGlassText}from\"https://framerusercontent.com/modules/WoDKdTeOxaJUarHJ9AEO/crnhT2KtqGLzumemng0v/GlassText_1.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/huFp6b98kZuOJLJj1Vee/qUmyOIqzcMeSuJ83ZGFM/ro7OPezbn.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/rVJRphTC6br1AbecwNxU/K1Wc8oyb5Ybtv7XEjVwT/s0y5Rymtd.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/ukz5upuntYkj3DydGUaV/b8LVZjWAvvaCd5TkHEtE/XH1Ra1u6V.js\";import Social from\"https://framerusercontent.com/modules/xoYEvTrlJy1Id5CRWNRQ/KGCMehG5ryzDKoh8lZZX/N7nh62B9F.js\";import Link from\"https://framerusercontent.com/modules/tleCgoup2iJGgttfQ8IA/BYVd2k3QqLAq7ryhQh0N/y_q4PL1Mz.js\";const MotionDivWithFXWithTickerFX=withTickerFX(withFX(motion.div));const LinkFonts=getFonts(Link);const SocialFonts=getFonts(Social);const RichTextWithGlassTextcb3dtg=withCodeBoundaryForOverrides(RichText,{nodeId:\"uTIhPE1wG\",override:withGlassText,scopeId:\"FF7dljYBM\"});const RichTextWithCurrentYear1wnkodc=withCodeBoundaryForOverrides(RichText,{nodeId:\"mSr7Ntiix\",override:withCurrentYear,scopeId:\"FF7dljYBM\"});const MotionDivWithFX=withFX(motion.div);const cycleOrder=[\"jrG4uFPXX\",\"rm3kfWLuK\",\"a7Eyyzgee\"];const serializationHash=\"framer-NGiKJ\";const variantClassNames={a7Eyyzgee:\"framer-v-15cza0a\",jrG4uFPXX:\"framer-v-dxiozy\",rm3kfWLuK:\"framer-v-1o9e6lw\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return 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 humanReadableVariantMap={Desktop:\"jrG4uFPXX\",Mobile:\"rm3kfWLuK\",Tablet:\"a7Eyyzgee\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"jrG4uFPXX\"};};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,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"jrG4uFPXX\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(MotionDivWithFX,{...restProps,...gestureHandlers,__framer__spring:{damping:60,delay:0,duration:.3,ease:[.44,0,.56,1],mass:1,stagger:0,stiffness:500,type:\"spring\"},__framer__styleTransformEffectEnabled:true,__framer__transformTargets:[{target:{opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:-120}},{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0}}],__framer__transformTrigger:\"onInView\",__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:cx(scopingClassNames,\"framer-dxiozy\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"jrG4uFPXX\",ref:refBinding,style:{...style},...addPropertyOverrides({a7Eyyzgee:{\"data-framer-name\":\"Tablet\"},rm3kfWLuK:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(MotionDivWithFXWithTickerFX,{__framer__styleTransformEffectEnabled:true,__framer__transformTargets:[{target:{opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:200}},{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0}}],__framer__transformTrigger:\"onInView\",__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-6cjhlf\",layoutDependency:layoutDependency,layoutId:\"Ufj3DImJp\",style:{backgroundColor:\"var(--token-a340cc26-67d8-46d6-a7d5-1c24a414cd4c, rgba(255, 255, 255, 0.25))\"},tickerEffectAlign:\"center\",tickerEffectDirectionModifier:\"default\",tickerEffectDraggable:false,tickerEffectEnabled:true,tickerEffectGap:\"72px\",tickerEffectHoverModifier:100,tickerEffectOverflow:\"clip\",tickerEffectPosition:\"relative\",tickerEffectStackDirection:\"row\",tickerEffectVelocity:50,children:[/*#__PURE__*/_jsx(TickerItem,{children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS01MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-1px\",\"--framer-line-height\":\"2.15em\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25)))\"},children:\"hello@structule.com\"})}),className:\"framer-1c2k98q\",fonts:[\"GF;Manrope-500\"],layoutDependency:layoutDependency,layoutId:\"adMaw2e7v\",style:{\"--extracted-1of0zx5\":\"var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(TickerItem,{children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS01MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-1px\",\"--framer-line-height\":\"2.15em\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25)))\"},children:\"hello@structule.com\"})}),className:\"framer-17xszw9\",fonts:[\"GF;Manrope-500\"],layoutDependency:layoutDependency,layoutId:\"WvZKtnyYs\",style:{\"--extracted-1of0zx5\":\"var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(TickerItem,{children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS01MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-1px\",\"--framer-line-height\":\"2.15em\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25)))\"},children:\"hello@structule.com\"})}),className:\"framer-5d9wmc\",fonts:[\"GF;Manrope-500\"],layoutDependency:layoutDependency,layoutId:\"xvS7f2adk\",style:{\"--extracted-1of0zx5\":\"var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(TickerItem,{children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS01MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-1px\",\"--framer-line-height\":\"2.15em\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25)))\"},children:\"hello@structule.com\"})}),className:\"framer-1l5k444\",fonts:[\"GF;Manrope-500\"],layoutDependency:layoutDependency,layoutId:\"AFFfFTFb9\",style:{\"--extracted-1of0zx5\":\"var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(TickerItem,{children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS01MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-1px\",\"--framer-line-height\":\"2.15em\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25)))\"},children:\"hello@structule.com\"})}),className:\"framer-1cv1pkz\",fonts:[\"GF;Manrope-500\"],layoutDependency:layoutDependency,layoutId:\"yEfxqdLwh\",style:{\"--extracted-1of0zx5\":\"var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(TickerItem,{children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS01MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-1px\",\"--framer-line-height\":\"2.15em\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25)))\"},children:\"hello@structule.com\"})}),className:\"framer-m4lul7\",fonts:[\"GF;Manrope-500\"],layoutDependency:layoutDependency,layoutId:\"ya9SJb66j\",style:{\"--extracted-1of0zx5\":\"var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(TickerItem,{children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS01MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-1px\",\"--framer-line-height\":\"2.15em\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25)))\"},children:\"hello@structule.com\"})}),className:\"framer-axg8lu\",fonts:[\"GF;Manrope-500\"],layoutDependency:layoutDependency,layoutId:\"lE44ItY_B\",style:{\"--extracted-1of0zx5\":\"var(--token-9c55e154-7b51-444d-91de-5cc4a98a67b2, rgba(43, 43, 45, 0.25))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1h541pg\",layoutDependency:layoutDependency,layoutId:\"t_ddYhDSy\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2fbv7s\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"gw_8YBsqs\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"xaVhC_xTq\"},implicitPathVariables:undefined},{href:{webPageId:\"xaVhC_xTq\"},implicitPathVariables:undefined},{href:{webPageId:\"xaVhC_xTq\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:200,y:(componentViewport?.y||0)+0+(((componentViewport?.height||508)-0-1048.2)/2+51.6+40)+0+-50,...addPropertyOverrides({a7Eyyzgee:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||478)-0-898.2)/2+51.6+40)+0+-50},rm3kfWLuK:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||658)-0-1333)/2+51.6+52)+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1dv1dx3-container\",layoutDependency:layoutDependency,layoutId:\"tFHuW5psO-container\",nodeId:\"tFHuW5psO\",rendersWithMotion:true,scopeId:\"FF7dljYBM\",children:/*#__PURE__*/_jsx(Link,{height:\"100%\",id:\"tFHuW5psO\",layoutId:\"tFHuW5psO\",seB1ZxoZL:\"projects\",sqGWAqEaq:resolvedLinks[0],width:\"100%\",...addPropertyOverrides({a7Eyyzgee:{sqGWAqEaq:resolvedLinks[2]},rm3kfWLuK:{sqGWAqEaq:resolvedLinks[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"BQxSXX7Vv\"},implicitPathVariables:undefined},{href:{webPageId:\"BQxSXX7Vv\"},implicitPathVariables:undefined},{href:{webPageId:\"BQxSXX7Vv\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:200,y:(componentViewport?.y||0)+0+(((componentViewport?.height||508)-0-1048.2)/2+51.6+40)+0+-50,...addPropertyOverrides({a7Eyyzgee:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||478)-0-898.2)/2+51.6+40)+0+-50},rm3kfWLuK:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||658)-0-1333)/2+51.6+52)+0+0+0+208}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1i3pkff-container\",layoutDependency:layoutDependency,layoutId:\"AqxBuHCdB-container\",nodeId:\"AqxBuHCdB\",rendersWithMotion:true,scopeId:\"FF7dljYBM\",children:/*#__PURE__*/_jsx(Link,{height:\"100%\",id:\"AqxBuHCdB\",layoutId:\"AqxBuHCdB\",seB1ZxoZL:\"about\",sqGWAqEaq:resolvedLinks1[0],width:\"100%\",...addPropertyOverrides({a7Eyyzgee:{sqGWAqEaq:resolvedLinks1[2]},rm3kfWLuK:{sqGWAqEaq:resolvedLinks1[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"jQl8KobkC\"},implicitPathVariables:undefined},{href:{webPageId:\"jQl8KobkC\"},implicitPathVariables:undefined},{href:{webPageId:\"jQl8KobkC\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:200,y:(componentViewport?.y||0)+0+(((componentViewport?.height||508)-0-1048.2)/2+51.6+40)+0+-50,...addPropertyOverrides({a7Eyyzgee:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||478)-0-898.2)/2+51.6+40)+0+-50},rm3kfWLuK:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||658)-0-1333)/2+51.6+52)+0+0+0+416}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-frzpir-container\",layoutDependency:layoutDependency,layoutId:\"CoCRNxaOS-container\",nodeId:\"CoCRNxaOS\",rendersWithMotion:true,scopeId:\"FF7dljYBM\",children:/*#__PURE__*/_jsx(Link,{height:\"100%\",id:\"CoCRNxaOS\",layoutId:\"CoCRNxaOS\",seB1ZxoZL:\"contact\",sqGWAqEaq:resolvedLinks2[0],width:\"100%\",...addPropertyOverrides({a7Eyyzgee:{sqGWAqEaq:resolvedLinks2[2]},rm3kfWLuK:{sqGWAqEaq:resolvedLinks2[1]}},baseVariant,gestureVariant)})})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1lm36gk\",\"data-framer-name\":\"Socials\",layoutDependency:layoutDependency,layoutId:\"YZRJrwWL9\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+0+(((componentViewport?.height||508)-0-1048.2)/2+51.6+40)+0+38,...addPropertyOverrides({a7Eyyzgee:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||478)-0-898.2)/2+51.6+40)+0+38},rm3kfWLuK:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||658)-0-1333)/2+51.6+52)+0+656+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-811ryh-container\",layoutDependency:layoutDependency,layoutId:\"oNs4qpprf-container\",nodeId:\"oNs4qpprf\",rendersWithMotion:true,scopeId:\"FF7dljYBM\",children:/*#__PURE__*/_jsx(Social,{Ga4XD6inS:\"Instagram\",height:\"100%\",id:\"oNs4qpprf\",layoutId:\"oNs4qpprf\",n98VOgYIP:\"https://www.instagram.com/danut.co/\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"cR5H9c4Wb\"),width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+0+(((componentViewport?.height||508)-0-1048.2)/2+51.6+40)+0+38,...addPropertyOverrides({a7Eyyzgee:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||478)-0-898.2)/2+51.6+40)+0+38},rm3kfWLuK:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||658)-0-1333)/2+51.6+52)+0+656+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-10zrfwe-container\",layoutDependency:layoutDependency,layoutId:\"albBVRFap-container\",nodeId:\"albBVRFap\",rendersWithMotion:true,scopeId:\"FF7dljYBM\",children:/*#__PURE__*/_jsx(Social,{Ga4XD6inS:\"Timer3Select\",height:\"100%\",id:\"albBVRFap\",layoutId:\"albBVRFap\",n98VOgYIP:\"https://www.tiktok.com/@danut.design\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"azFYDDPyp\"),width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+0+(((componentViewport?.height||508)-0-1048.2)/2+51.6+40)+0+38,...addPropertyOverrides({a7Eyyzgee:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||478)-0-898.2)/2+51.6+40)+0+38},rm3kfWLuK:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||658)-0-1333)/2+51.6+52)+0+656+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1e4yr5g-container\",layoutDependency:layoutDependency,layoutId:\"PUP_OGhAM-container\",nodeId:\"PUP_OGhAM\",rendersWithMotion:true,scopeId:\"FF7dljYBM\",children:/*#__PURE__*/_jsx(Social,{Ga4XD6inS:\"YouTube\",height:\"100%\",id:\"PUP_OGhAM\",layoutId:\"PUP_OGhAM\",n98VOgYIP:\"https://www.youtube.com/@danut.design\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"cR5H9c4Wb\"),width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+0+(((componentViewport?.height||508)-0-1048.2)/2+51.6+40)+0+38,...addPropertyOverrides({a7Eyyzgee:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||478)-0-898.2)/2+51.6+40)+0+38},rm3kfWLuK:{y:(componentViewport?.y||0)+0+(((componentViewport?.height||658)-0-1333)/2+51.6+52)+0+656+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-cg201q-container\",layoutDependency:layoutDependency,layoutId:\"IDmikDZEw-container\",nodeId:\"IDmikDZEw\",rendersWithMotion:true,scopeId:\"FF7dljYBM\",children:/*#__PURE__*/_jsx(Social,{Ga4XD6inS:\"LinkedIn\",height:\"100%\",id:\"IDmikDZEw\",layoutId:\"IDmikDZEw\",n98VOgYIP:\"https://www.linkedin.com/in/damianpatkowski/\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"cR5H9c4Wb\"),width:\"100%\"})})})]})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1l7hdyj\",layoutDependency:layoutDependency,layoutId:\"FvC1ZZZnb\",style:{backgroundColor:\"var(--token-d607af31-e48d-4751-bb72-383d86c98b00, rgba(43, 43, 45, 0.25))\"}}),/*#__PURE__*/_jsx(RichTextWithGlassTextcb3dtg,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS04MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"180px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-10.5px\",\"--framer-line-height\":\"0.75em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-86117d10-82c0-48ca-83b9-ad514639102d, rgb(255, 255, 255)))\"},children:/*#__PURE__*/_jsx(Link1,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"uTIhPE1wG\",openInNewTab:false,preserveParams:false,relValues:[],scopeId:\"FF7dljYBM\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-n5kc0b\",\"data-styles-preset\":\"XH1Ra1u6V\",children:\"Structule\"})})})}),className:\"framer-cb3dtg\",fonts:[\"GF;Manrope-800\"],layoutDependency:layoutDependency,layoutId:\"uTIhPE1wG\",style:{\"--extracted-r6o4lv\":\"var(--token-86117d10-82c0-48ca-83b9-ad514639102d, rgb(255, 255, 255))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({a7Eyyzgee:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS04MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"140px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-8.5px\",\"--framer-line-height\":\"0.75em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-86117d10-82c0-48ca-83b9-ad514639102d, rgb(255, 255, 255)))\"},children:/*#__PURE__*/_jsx(Link1,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"uTIhPE1wG\",openInNewTab:false,preserveParams:false,relValues:[],scopeId:\"FF7dljYBM\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-n5kc0b\",\"data-styles-preset\":\"XH1Ra1u6V\",children:\"Structule\"})})})})},rm3kfWLuK:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS04MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"60px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-3.6px\",\"--framer-line-height\":\"0.75em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-86117d10-82c0-48ca-83b9-ad514639102d, rgb(255, 255, 255)))\"},children:/*#__PURE__*/_jsx(Link1,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"uTIhPE1wG\",openInNewTab:false,preserveParams:false,relValues:[],scopeId:\"FF7dljYBM\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-n5kc0b\",\"data-styles-preset\":\"XH1Ra1u6V\",children:\"Structule\"})})})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-tvr32f\",layoutDependency:layoutDependency,layoutId:\"HuS0GZ32R\",style:{backgroundColor:\"var(--token-d607af31-e48d-4751-bb72-383d86c98b00, rgba(43, 43, 45, 0.25))\"}}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1rs6i90\",layoutDependency:layoutDependency,layoutId:\"jzGOhc64O\",children:[/*#__PURE__*/_jsx(RichTextWithCurrentYear1wnkodc,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1i4mbrj\",\"data-styles-preset\":\"s0y5Rymtd\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-52b4952e-1c9b-42eb-8004-450782703103, rgba(43, 43, 45, 0.75)))\"},children:\"\\xa9 2026 Structule. All rights reserved.\"})}),className:\"framer-1wnkodc\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"mSr7Ntiix\",style:{\"--extracted-r6o4lv\":\"var(--token-52b4952e-1c9b-42eb-8004-450782703103, rgba(43, 43, 45, 0.75))\",opacity:.6},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1qjbe2s\",layoutDependency:layoutDependency,layoutId:\"Kss0Bib_N\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1i4mbrj\",\"data-styles-preset\":\"s0y5Rymtd\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5)))\"},children:/*#__PURE__*/_jsx(Link1,{href:{webPageId:\"DWCmTKfwD\"},motionChild:true,nodeId:\"Gbx8qXL6o\",openInNewTab:false,relValues:[],scopeId:\"FF7dljYBM\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"Privacy Policy\"})})})}),className:\"framer-1a980j8\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Gbx8qXL6o\",style:{\"--extracted-r6o4lv\":\"var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5))\",opacity:.6},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1i4mbrj\",\"data-styles-preset\":\"s0y5Rymtd\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5)))\"},children:/*#__PURE__*/_jsx(Link1,{href:{webPageId:\"gLKvOJpje\"},motionChild:true,nodeId:\"OQ4pqzvSH\",openInNewTab:false,relValues:[],scopeId:\"FF7dljYBM\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"Terms of Service\"})})})}),className:\"framer-ap6odl\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"OQ4pqzvSH\",style:{\"--extracted-r6o4lv\":\"var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5))\",opacity:.6},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1i4mbrj\",\"data-styles-preset\":\"s0y5Rymtd\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5)))\"},children:/*#__PURE__*/_jsx(Link1,{href:{webPageId:\"VT71nEHMT\"},motionChild:true,nodeId:\"uDlqF94Qp\",openInNewTab:false,relValues:[],scopeId:\"FF7dljYBM\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"Cookie Policy\"})})})}),className:\"framer-f70yje\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"uDlqF94Qp\",style:{\"--extracted-r6o4lv\":\"var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5))\",opacity:.6},verticalAlignment:\"top\",withExternalLayout:true})]})]})]})})})});});const css=[\".framer-NGiKJ.framer-v0uh11, .framer-NGiKJ .framer-v0uh11 { display: block; }\",\".framer-NGiKJ.framer-dxiozy { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 40px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1199px; }\",\".framer-NGiKJ .framer-6cjhlf { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 72px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 160%; z-index: 1; }\",\".framer-NGiKJ .framer-1c2k98q, .framer-NGiKJ .framer-17xszw9, .framer-NGiKJ .framer-5d9wmc, .framer-NGiKJ .framer-1l5k444, .framer-NGiKJ .framer-1cv1pkz, .framer-NGiKJ .framer-m4lul7, .framer-NGiKJ .framer-axg8lu, .framer-NGiKJ .framer-1wnkodc, .framer-NGiKJ .framer-1a980j8, .framer-NGiKJ .framer-ap6odl, .framer-NGiKJ .framer-f70yje { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-NGiKJ .framer-1h541pg { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-NGiKJ .framer-2fbv7s { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 36px; height: 100px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-NGiKJ .framer-1dv1dx3-container, .framer-NGiKJ .framer-1i3pkff-container, .framer-NGiKJ .framer-frzpir-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-NGiKJ .framer-1lm36gk { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 24px; height: 100px; justify-content: flex-end; overflow: hidden; padding: 0px; position: relative; width: 1px; }\",\".framer-NGiKJ .framer-811ryh-container, .framer-NGiKJ .framer-10zrfwe-container, .framer-NGiKJ .framer-1e4yr5g-container, .framer-NGiKJ .framer-cg201q-container { flex: none; height: 24px; position: relative; width: 24px; }\",\".framer-NGiKJ .framer-1l7hdyj { flex: none; height: 1px; overflow: hidden; position: relative; width: 100%; }\",\".framer-NGiKJ .framer-cb3dtg { flex: none; height: auto; max-width: 1920px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-NGiKJ .framer-tvr32f { flex: none; height: 1px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 100%; }\",\".framer-NGiKJ .framer-1rs6i90 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-NGiKJ .framer-1qjbe2s { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 36px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-NGiKJ.framer-v-1o9e6lw.framer-dxiozy { gap: 52px; }\",\".framer-NGiKJ.framer-v-1o9e6lw .framer-1h541pg { flex-direction: column; gap: 40px; }\",\".framer-NGiKJ.framer-v-1o9e6lw .framer-2fbv7s { flex-direction: column; gap: 8px; height: min-content; }\",\".framer-NGiKJ.framer-v-1o9e6lw .framer-1lm36gk { flex: none; height: min-content; justify-content: center; width: 100%; }\",\".framer-NGiKJ.framer-v-1o9e6lw .framer-1rs6i90 { flex-direction: column; gap: 20px; justify-content: flex-start; }\",\".framer-NGiKJ.framer-v-1o9e6lw .framer-1wnkodc { order: 1; }\",\".framer-NGiKJ.framer-v-1o9e6lw .framer-1qjbe2s { flex-direction: column; gap: 8px; order: 0; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 508\n * @framerIntrinsicWidth 1199\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"rm3kfWLuK\":{\"layout\":[\"fixed\",\"auto\"]},\"a7Eyyzgee\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerFF7dljYBM=withCSS(Component,css,\"framer-NGiKJ\");export default FramerFF7dljYBM;FramerFF7dljYBM.displayName=\"footer\";FramerFF7dljYBM.defaultProps={height:508,width:1199};addPropertyControls(FramerFF7dljYBM,{variant:{options:[\"jrG4uFPXX\",\"rm3kfWLuK\",\"a7Eyyzgee\"],optionTitles:[\"Desktop\",\"Mobile\",\"Tablet\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerFF7dljYBM,[{explicitInter:true,fonts:[{cssFamilyName:\"Manrope\",source:\"google\",style:\"normal\",uiFamilyName:\"Manrope\",url:\"https://fonts.gstatic.com/s/manrope/v20/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk7PFO_A87jxeN7B.woff2\",weight:\"500\"},{cssFamilyName:\"Manrope\",source:\"google\",style:\"normal\",uiFamilyName:\"Manrope\",url:\"https://fonts.gstatic.com/s/manrope/v20/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk59E-_A87jxeN7B.woff2\",weight:\"800\"},{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\"}]},...LinkFonts,...SocialFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts)],{supportsExplicitInterCodegen:true});FramerFF7dljYBM.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(Link,{},context),()=>forwardLoader(Social,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerFF7dljYBM\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"rm3kfWLuK\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"a7Eyyzgee\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"1199\",\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"508\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";// Navbar links (projects / about / contact) are plain text, so only the letters were clickable.\n// This gives every link in the frame an invisible hit area around the text: a transparent\n// pseudo-element sticking out 14 px up/down and 12 px left/right. It takes no space in the layout,\n// so the links never move. The last link's area stops at the right edge, and the navbar frame\n// clips instead of hiding: a hit area sticking out of an overflow-hidden box made the browser\n// scroll that box sideways on hover, and the whole navbar jumped 12 px.\nconst css=`\n.sx-navlinks a{position:relative}\n.sx-navlinks a::after{content:\"\";position:absolute;inset:-14px -12px}\n.sx-navlinks > :last-child a::after{right:0}\n:has(> .sx-navlinks){overflow:clip!important;overflow-clip-margin:8px}\n`;export function withHitArea(Component){return /*#__PURE__*/React.forwardRef((props,ref)=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:css}),/*#__PURE__*/_jsx(Component,{...props,ref:ref,className:`${props.className??\"\"} sx-navlinks`})]}));}\nexport const __FramerMetadata__ = {\"exports\":{\"withHitArea\":{\"type\":\"reactHoc\",\"name\":\"withHitArea\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NavHitArea.map","// Generated by Framer (c4d24af)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-GqM7N .framer-styles-preset-6hy7sq:not(.rich-text-wrapper), .framer-GqM7N .framer-styles-preset-6hy7sq.rich-text-wrapper a { --framer-link-current-text-color: #8f40ff; --framer-link-hover-text-color: #b37dff; --framer-link-text-color: var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, #7c1fff); --framer-link-text-decoration: none; }\"];export const className=\"framer-GqM7N\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6b21612)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,Link,ResolveLinks,RichText,runTasksWithYield,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{withHitArea}from\"https://framerusercontent.com/modules/0PfOLqTi5gxu8vnZzd97/SBphqAwzB9ZXtkjWsG0D/NavHitArea.js\";import{withScrambleLink}from\"https://framerusercontent.com/modules/wu8mZgKS8cYacZ5M8gU9/q18XNzoCvhOsUIMIueEk/ScrambleLink.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/huFp6b98kZuOJLJj1Vee/qUmyOIqzcMeSuJ83ZGFM/ro7OPezbn.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/9CGOQThIeuH6aJcqAW91/lSCkvGvYegWrNnPee87q/xSmbUc6JM.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/4ZANa4D9ZTKbU2nKuVNi/1IDLwYghvN27S9BOSXKV/YckFIlg3V.js\";import Link1 from\"https://framerusercontent.com/modules/tleCgoup2iJGgttfQ8IA/BYVd2k3QqLAq7ryhQh0N/y_q4PL1Mz.js\";const Link1Fonts=getFonts(Link1);const RichTextWithScrambleLink13k8w9x=withCodeBoundaryForOverrides(RichText,{nodeId:\"batps9v9d\",override:withScrambleLink,scopeId:\"l9GPG8fUR\"});const RichTextWithScrambleLink1jvbea5=withCodeBoundaryForOverrides(RichText,{nodeId:\"NGt43LU7A\",override:withScrambleLink,scopeId:\"l9GPG8fUR\"});const RichTextWithScrambleLink1dj45me=withCodeBoundaryForOverrides(RichText,{nodeId:\"NRrxeiXBD\",override:withScrambleLink,scopeId:\"l9GPG8fUR\"});const MotionDivWithHitArea1vrsr0a=withCodeBoundaryForOverrides(motion.div,{nodeId:\"nyQortf8I\",override:withHitArea,scopeId:\"l9GPG8fUR\"});const cycleOrder=[\"fZfZdYOHc\",\"FKbEZPJLt\",\"nmeT8pYVr\"];const serializationHash=\"framer-FJK6y\";const variantClassNames={FKbEZPJLt:\"framer-v-1g5cch4\",fZfZdYOHc:\"framer-v-1kgt43p\",nmeT8pYVr:\"framer-v-odr3x6\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transition2={delay:0,duration:.3,ease:[.12,.23,.5,1],type:\"tween\"};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 humanReadableVariantMap={\"mobile expanded\":\"nmeT8pYVr\",desktop:\"fZfZdYOHc\",mobile:\"FKbEZPJLt\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"fZfZdYOHc\"};};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,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"fZfZdYOHc\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapukg73f=activeVariantCallback(async(...args)=>{setVariant(\"FKbEZPJLt\");});const isDisplayed=()=>{if([\"FKbEZPJLt\",\"nmeT8pYVr\"].includes(baseVariant))return true;return false;};const onTap1blu102=activeVariantCallback(async(...args)=>{setVariant(\"nmeT8pYVr\");});const isDisplayed1=()=>{if([\"FKbEZPJLt\",\"nmeT8pYVr\"].includes(baseVariant))return false;return true;};const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({FKbEZPJLt:{value:transition2},nmeT8pYVr:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1kgt43p\",className,classNames),\"data-framer-name\":\"desktop\",layoutDependency:layoutDependency,layoutId:\"fZfZdYOHc\",ref:refBinding,style:{...style},...addPropertyOverrides({FKbEZPJLt:{\"data-framer-name\":\"mobile\"},nmeT8pYVr:{\"data-framer-name\":\"mobile expanded\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ukyk27\",layoutDependency:layoutDependency,layoutId:\"dOzdvxJZC\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS04MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"26px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.4px\",\"--framer-line-height\":\"35px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, rgb(124, 31, 255)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"y3MlodPt8\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-6hy7sq\",\"data-styles-preset\":\"xSmbUc6JM\",children:\"Structule\"})})})}),className:\"framer-1199g8r\",fonts:[\"GF;Manrope-800\"],layoutDependency:layoutDependency,layoutId:\"y3MlodPt8\",style:{\"--extracted-r6o4lv\":\"var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, rgb(124, 31, 255))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({FKbEZPJLt:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS04MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.4px\",\"--framer-line-height\":\"35px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, rgb(124, 31, 255)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"y3MlodPt8\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-6hy7sq\",\"data-styles-preset\":\"xSmbUc6JM\",children:\"Structule\"})})})})},nmeT8pYVr:{\"data-highlight\":true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7TWFucm9wZS04MDA=\",\"--framer-font-family\":'\"Manrope\", \"Manrope Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-font-weight\":\"800\",\"--framer-letter-spacing\":\"-0.4px\",\"--framer-line-height\":\"35px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, rgb(124, 31, 255)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"y3MlodPt8\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-6hy7sq\",\"data-styles-preset\":\"xSmbUc6JM\",children:\"Structule\"})})})}),onTap:onTapukg73f}},baseVariant,gestureVariant)}),isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ic0eg3\",layoutDependency:layoutDependency,layoutId:\"DjZ2Gw0jy\",...addPropertyOverrides({FKbEZPJLt:{\"data-highlight\":true,onTap:onTap1blu102},nmeT8pYVr:{\"data-highlight\":true,onTap:onTapukg73f}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",style:{\"--framer-text-alignment\":\"right\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5)))\"},children:\"menu\"})}),className:\"framer-19sbi7g\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ujoIeF3gL\",style:{\"--extracted-a0htzi\":\"var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},variants:{FKbEZPJLt:{\"--extracted-a0htzi\":\"var(--token-5e9e8e0f-96b7-4daa-b10a-d350456423e1, rgba(43, 43, 45, 0.5))\"},nmeT8pYVr:{\"--extracted-a0htzi\":\"var(--token-cd708a3c-25bb-4606-92f4-351c74f13945, rgb(43, 43, 45))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({FKbEZPJLt:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"right\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-5e9e8e0f-96b7-4daa-b10a-d350456423e1, rgba(43, 43, 45, 0.5)))\"},children:\"menu\"})})},nmeT8pYVr:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"right\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-cd708a3c-25bb-4606-92f4-351c74f13945, rgb(43, 43, 45)))\"},children:\"close\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-n6141n\",layoutDependency:layoutDependency,layoutId:\"ixsCz6LjD\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-lvxq0l\",layoutDependency:layoutDependency,layoutId:\"cwTUeo58N\",style:{backgroundColor:\"var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5))\",rotate:0},variants:{FKbEZPJLt:{backgroundColor:\"var(--token-5e9e8e0f-96b7-4daa-b10a-d350456423e1, rgba(43, 43, 45, 0.5))\"},nmeT8pYVr:{backgroundColor:\"var(--token-cd708a3c-25bb-4606-92f4-351c74f13945, rgb(43, 43, 45))\",rotate:45}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1mzzdtr\",layoutDependency:layoutDependency,layoutId:\"RgEOaqqGl\",style:{backgroundColor:\"var(--token-6b60c4fa-a3b2-4ea3-8e1a-4202c7b68ede, rgba(255, 255, 255, 0.5))\",rotate:0},variants:{FKbEZPJLt:{backgroundColor:\"var(--token-5e9e8e0f-96b7-4daa-b10a-d350456423e1, rgba(43, 43, 45, 0.5))\"},nmeT8pYVr:{backgroundColor:\"var(--token-cd708a3c-25bb-4606-92f4-351c74f13945, rgb(43, 43, 45))\",rotate:-45}}})]})]})]}),/*#__PURE__*/_jsxs(MotionDivWithHitArea1vrsr0a,{className:\"framer-1vrsr0a\",layoutDependency:layoutDependency,layoutId:\"nyQortf8I\",style:{opacity:1},variants:{FKbEZPJLt:{opacity:0},nmeT8pYVr:{opacity:1}},children:[isDisplayed1()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"xaVhC_xTq\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:200,y:(componentViewport?.y||0)+(24+((componentViewport?.height||83)-48-200)/2)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1a55nj0-container\",layoutDependency:layoutDependency,layoutId:\"GYVHaQszj-container\",nodeId:\"GYVHaQszj\",rendersWithMotion:true,scopeId:\"l9GPG8fUR\",children:/*#__PURE__*/_jsx(Link1,{height:\"100%\",id:\"GYVHaQszj\",layoutId:\"GYVHaQszj\",seB1ZxoZL:\"projects\",sqGWAqEaq:resolvedLinks[0],width:\"100%\"})})})}),isDisplayed()&&/*#__PURE__*/_jsx(RichTextWithScrambleLink13k8w9x,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"xaVhC_xTq\"},motionChild:true,nodeId:\"batps9v9d\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"projects\"})})})}),className:\"framer-13k8w9x\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"batps9v9d\",verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({FKbEZPJLt:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"xaVhC_xTq\"},motionChild:true,nodeId:\"batps9v9d\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"projects\"})})})})},nmeT8pYVr:{\"data-highlight\":true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"xaVhC_xTq\"},motionChild:true,nodeId:\"batps9v9d\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"projects\"})})})}),onTap:onTapukg73f}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"BQxSXX7Vv\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:200,y:(componentViewport?.y||0)+(24+((componentViewport?.height||83)-48-200)/2)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-fxxbsg-container\",layoutDependency:layoutDependency,layoutId:\"OfdFzyXFK-container\",nodeId:\"OfdFzyXFK\",rendersWithMotion:true,scopeId:\"l9GPG8fUR\",children:/*#__PURE__*/_jsx(Link1,{height:\"100%\",id:\"OfdFzyXFK\",layoutId:\"OfdFzyXFK\",seB1ZxoZL:\"about\",sqGWAqEaq:resolvedLinks1[0],width:\"100%\"})})})}),isDisplayed()&&/*#__PURE__*/_jsx(RichTextWithScrambleLink1jvbea5,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"BQxSXX7Vv\"},motionChild:true,nodeId:\"NGt43LU7A\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"about\"})})})}),className:\"framer-1jvbea5\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"NGt43LU7A\",verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({FKbEZPJLt:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"BQxSXX7Vv\"},motionChild:true,nodeId:\"NGt43LU7A\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"about\"})})})})},nmeT8pYVr:{\"data-highlight\":true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"BQxSXX7Vv\"},motionChild:true,nodeId:\"NGt43LU7A\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"about\"})})})}),onTap:onTapukg73f}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"jQl8KobkC\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:200,y:(componentViewport?.y||0)+(24+((componentViewport?.height||83)-48-200)/2)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1b0d393-container\",layoutDependency:layoutDependency,layoutId:\"tyNWeWf4P-container\",nodeId:\"tyNWeWf4P\",rendersWithMotion:true,scopeId:\"l9GPG8fUR\",children:/*#__PURE__*/_jsx(Link1,{height:\"100%\",id:\"tyNWeWf4P\",layoutId:\"tyNWeWf4P\",seB1ZxoZL:\"contact\",sqGWAqEaq:resolvedLinks2[0],width:\"100%\"})})})}),isDisplayed()&&/*#__PURE__*/_jsx(RichTextWithScrambleLink1dj45me,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"jQl8KobkC\"},motionChild:true,nodeId:\"NRrxeiXBD\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"contact\"})})})}),className:\"framer-1dj45me\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"NRrxeiXBD\",verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({FKbEZPJLt:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"jQl8KobkC\"},motionChild:true,nodeId:\"NRrxeiXBD\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"contact\"})})})})},nmeT8pYVr:{\"data-highlight\":true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-12lj5ox\",\"data-styles-preset\":\"YckFIlg3V\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"jQl8KobkC\"},motionChild:true,nodeId:\"NRrxeiXBD\",openInNewTab:false,relValues:[],scopeId:\"l9GPG8fUR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"contact\"})})})}),onTap:onTapukg73f}},baseVariant,gestureVariant)})]})]})})})});});const css=[\".framer-FJK6y.framer-15by8qu, .framer-FJK6y .framer-15by8qu { display: block; }\",\".framer-FJK6y.framer-1kgt43p { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 36px; height: min-content; justify-content: center; overflow: hidden; padding: 24px 0px 24px 0px; position: relative; width: 1200px; }\",\".framer-FJK6y .framer-1ukyk27 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-FJK6y .framer-1199g8r, .framer-FJK6y .framer-19sbi7g { flex: none; height: auto; max-width: 1920px; position: relative; white-space: pre-wrap; width: auto; word-break: break-word; word-wrap: break-word; }\",\".framer-FJK6y .framer-ic0eg3 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-FJK6y .framer-n6141n { aspect-ratio: 1 / 1; flex: none; height: auto; overflow: visible; position: relative; width: 20px; }\",\".framer-FJK6y .framer-lvxq0l { flex: none; height: 2px; overflow: visible; position: absolute; right: 0px; top: 5px; width: 16px; }\",\".framer-FJK6y .framer-1mzzdtr { bottom: 1px; flex: none; height: 2px; overflow: visible; position: absolute; right: 0px; width: 16px; }\",\".framer-FJK6y .framer-1vrsr0a { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 48px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-FJK6y .framer-1a55nj0-container, .framer-FJK6y .framer-fxxbsg-container, .framer-FJK6y .framer-1b0d393-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-FJK6y .framer-13k8w9x, .framer-FJK6y .framer-1jvbea5, .framer-FJK6y .framer-1dj45me { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-FJK6y.framer-v-1g5cch4.framer-1kgt43p { align-content: flex-end; align-items: flex-end; flex-direction: column; gap: 0px; padding: 16px 0px 16px 0px; }\",\".framer-FJK6y.framer-v-1g5cch4 .framer-1ukyk27, .framer-FJK6y.framer-v-odr3x6 .framer-1ukyk27 { flex: none; gap: unset; justify-content: space-between; width: 100%; }\",\".framer-FJK6y.framer-v-1g5cch4 .framer-ic0eg3, .framer-FJK6y.framer-v-odr3x6 .framer-ic0eg3 { cursor: pointer; flex: none; width: min-content; }\",\".framer-FJK6y.framer-v-1g5cch4 .framer-19sbi7g, .framer-FJK6y.framer-v-odr3x6 .framer-19sbi7g { max-width: unset; white-space: pre; }\",\".framer-FJK6y.framer-v-1g5cch4 .framer-1vrsr0a { flex-direction: column; gap: 36px; height: 1px; justify-content: flex-start; overflow: hidden; width: 100%; }\",\".framer-FJK6y.framer-v-odr3x6.framer-1kgt43p { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 80px; justify-content: flex-start; min-height: calc(var(--framer-viewport-height, 100vh) * 1); padding: 16px 0px 16px 0px; }\",\".framer-FJK6y.framer-v-odr3x6 .framer-1199g8r, .framer-FJK6y.framer-v-odr3x6 .framer-13k8w9x, .framer-FJK6y.framer-v-odr3x6 .framer-1jvbea5, .framer-FJK6y.framer-v-odr3x6 .framer-1dj45me { cursor: pointer; }\",\".framer-FJK6y.framer-v-odr3x6 .framer-lvxq0l { bottom: 6px; top: unset; }\",\".framer-FJK6y.framer-v-odr3x6 .framer-1mzzdtr { bottom: 6px; }\",\".framer-FJK6y.framer-v-odr3x6 .framer-1vrsr0a { flex-direction: column; gap: 36px; overflow: hidden; width: 100%; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 83\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"FKbEZPJLt\":{\"layout\":[\"fixed\",\"auto\"]},\"nmeT8pYVr\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,null,\"100vh\",null]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framerl9GPG8fUR=withCSS(Component,css,\"framer-FJK6y\");export default Framerl9GPG8fUR;Framerl9GPG8fUR.displayName=\"nav links\";Framerl9GPG8fUR.defaultProps={height:83,width:1200};addPropertyControls(Framerl9GPG8fUR,{variant:{options:[\"fZfZdYOHc\",\"FKbEZPJLt\",\"nmeT8pYVr\"],optionTitles:[\"desktop\",\"mobile\",\"mobile expanded\"],title:\"Variant\",type:ControlType.Enum}});addFonts(Framerl9GPG8fUR,[{explicitInter:true,fonts:[{cssFamilyName:\"Manrope\",source:\"google\",style:\"normal\",uiFamilyName:\"Manrope\",url:\"https://fonts.gstatic.com/s/manrope/v20/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk59E-_A87jxeN7B.woff2\",weight:\"800\"},{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\"}]},...Link1Fonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts)],{supportsExplicitInterCodegen:true});Framerl9GPG8fUR.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(Link1,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerl9GPG8fUR\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerIntrinsicHeight\":\"83\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"FKbEZPJLt\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"nmeT8pYVr\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,null,\\\"100vh\\\",null]}}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./l9GPG8fUR.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{ControlType,addPropertyControls,useIsStaticRenderer}from\"framer\";// the hand (hand cursor.svg, 29 × 40)\nconst HAND_D=\"M1.08072 29.9024C0.458947 28.2437 0.211445 26.5551 0.320104 24.7886L0.555533 22.6748L0.911695 20.5371C1.14109 19.1539 1.09279 17.8126 0.790962 16.4892L0.338214 14.7826C0.157115 14.1 -0.00587407 13.4293 0.000162565 12.7048C0.0122358 11.8305 0.247665 10.9982 0.778889 10.2617C1.67231 9.01615 3.18147 8.54909 4.48538 9.094C5.25204 9.40537 5.84966 9.93831 6.37485 10.591C7.40712 11.8784 7.92627 13.4533 8.04096 15.2138C10.5884 11.2796 13.0816 7.47124 15.7497 3.69879C16.3594 2.8425 16.9812 2.08202 17.7479 1.40537C18.3455 0.884416 18.9673 0.489206 19.6977 0.231721C21.225 -0.307201 22.8488 0.105973 23.7845 1.34549C24.352 2.09998 24.5572 3.04609 24.4304 4.03412C24.2373 5.51316 23.2895 6.96226 22.4323 8.24969L19.6313 12.4712C21.3336 12.5551 22.553 13.8126 22.8669 15.4413C22.9997 16.2377 22.879 17.0401 22.4987 17.8485C22.8247 17.8305 23.1024 17.8006 23.4102 17.8485C24.5934 18.07 25.5714 18.8365 26.012 19.9742C26.3561 20.8664 26.2414 21.8245 25.843 22.7706C26.7968 22.6449 27.6117 22.9802 28.2094 23.6329C28.7587 24.2317 28.97 25.0161 28.9941 25.8664C28.9941 28.2317 27.5634 30.9443 26.0301 32.8185C23.2835 36.1898 17.3193 39.2257 9.94854 39.9742C4.56386 40.5191 1.74475 31.6629 1.08072 29.8964V29.9024Z\";// absolute M / L / H / V / C / Z path -> dense polyline\nfunction flatten(d){const t=d.match(/[MLHVCZ]|-?\\d*\\.?\\d+(?:e-?\\d+)?/g)||[];const out=[];let i=0,cmd=\"\",x=0,y=0;const n=()=>parseFloat(t[i++]);while(i<t.length){if(/[MLHVCZ]/.test(t[i]))cmd=t[i++];if(cmd===\"Z\")break;if(cmd===\"M\"||cmd===\"L\"){x=n();y=n();out.push([x,y]);}else if(cmd===\"H\"){x=n();out.push([x,y]);}else if(cmd===\"V\"){y=n();out.push([x,y]);}else if(cmd===\"C\"){const x1=n(),y1=n(),x2=n(),y2=n(),x3=n(),y3=n();for(let s=1;s<=12;s++){const u=s/12,v=1-u;out.push([v*v*v*x+3*v*v*u*x1+3*v*u*u*x2+u*u*u*x3,v*v*v*y+3*v*v*u*y1+3*v*u*u*y2+u*u*u*y3]);}x=x3;y=y3;}}return out;}// polygon with rounded corners -> dense polyline; returns the index of each corner's middle\nfunction rounded(v,r){const pts=[],keys=[];for(let k=0;k<v.length;k++){const a=v[(k+v.length-1)%v.length],b=v[k],c=v[(k+1)%v.length];const la=Math.hypot(a[0]-b[0],a[1]-b[1]),lc=Math.hypot(c[0]-b[0],c[1]-b[1]);const p1=[b[0]+(a[0]-b[0])*r[k]/la,b[1]+(a[1]-b[1])*r[k]/la];const p2=[b[0]+(c[0]-b[0])*r[k]/lc,b[1]+(c[1]-b[1])*r[k]/lc];for(let s=0;s<=8;s++){const u=s/8,w=1-u;if(s===4)keys.push(pts.length);pts.push([w*w*p1[0]+2*w*u*b[0]+u*u*p2[0],w*w*p1[1]+2*w*u*b[1]+u*u*p2[1]]);}}return{pts,keys};}// n points spread evenly (by length) along the closed polyline from index i0 to i1\nfunction spread(pts,i0,i1,n){const seg=[];for(let i=i0;;i=(i+1)%pts.length){seg.push(pts[i]);if(i===i1)break;}const len=[0];for(let i=1;i<seg.length;i++)len.push(len[i-1]+Math.hypot(seg[i][0]-seg[i-1][0],seg[i][1]-seg[i-1][1]));const total=len[len.length-1],out=[];let j=1;for(let k=0;k<n;k++){const L=total*k/n;while(j<len.length-1&&len[j]<L)j++;const u=(L-len[j-1])/(len[j]-len[j-1]||1);out.push([seg[j-1][0]+(seg[j][0]-seg[j-1][0])*u,seg[j-1][1]+(seg[j][1]-seg[j-1][1])*u]);}return out;}const argmax=(pts,f)=>pts.reduce((best,p,i)=>f(p)>f(pts[best])?i:best,0);// both outlines, clockwise, split at 3 matching points: tip / fingertip, bottom / palm, left corner / thumb\nconst handDense=flatten(HAND_D);const hTip=argmax(handDense,p=>.65*p[0]-.76*p[1]);const hBottom=argmax(handDense,p=>p[1]);const hThumb=argmax(handDense,p=>-p[0]-.5*p[1]);// arrow in the same scale as the hand, drawn from the reference (tip up-right)\nconst arrowShape=rounded([[0,0],[-14,33.9],[-22.8,22.6],[-33.6,13.6]],[2.8,3.4,2.2,3.4]);const[aTip,aBottom,,aLeft]=arrowShape.keys;const COUNTS=[60,70,50];const build=(pts,k)=>[...spread(pts,k[0],k[1],COUNTS[0]),...spread(pts,k[1],k[2],COUNTS[1]),...spread(pts,k[2],k[0],COUNTS[2])];const origin=pts=>pts.map(p=>[p[0]-pts[0][0],p[1]-pts[0][1]])// tip at (0, 0)\n;export const ARROW_PTS=origin(build(arrowShape.pts,[aTip,aBottom,aLeft]));export const HAND_PTS=origin(build(handDense,[hTip,hBottom,hThumb]));export const ARROW_WIDTH=33.6;// in-between shape: points moved from arrow to hand, softened most in the middle of the morph\n// (so both end shapes stay crisp and the transition reads as one soft, rubbery blob),\n// then drawn as a smooth closed curve through the points\n// shapes are cached per 1/60 step of t, so a morph costs nothing after its first run\nconst pathCache=new Map;export function lerpPath(t){const key=Math.round(Math.min(1,Math.max(0,t))*60);let d=pathCache.get(key);if(!d){d=buildPath(key/60);pathCache.set(key,d);}return d;}// a press (0..1) makes the finger push in: points near the fingertip grow a little, the back of the\n// hand shrinks toward it (scaling around the tip, which stays on the click point)\nconst PRESS_GROW=.3// finger gets this much thicker (across its axis)\n;const PRESS_SHRINK=.12// back of the hand shrinks toward the tip\n;const PRESS_REACH=40// distance from the tip where the shrink is full\n;const FINGER_LEN=22// how far down the finger the thickening reaches\n;const FINGER_AXIS=[-.55,.835]// from the fingertip toward the knuckles\n;export function pressPath(t,press){return press>.001?buildPath(t,press):lerpPath(t);}function buildPath(t,press=0){const n=ARROW_PTS.length;let p=ARROW_PTS.map((a,i)=>{let x=a[0]+(HAND_PTS[i][0]-a[0])*t,y=a[1]+(HAND_PTS[i][1]-a[1])*t;if(press){// finger: thicker across its axis, fading out toward the knuckles (the tip itself stays put)\nconst along=x*FINGER_AXIS[0]+y*FINGER_AXIS[1];const u=Math.min(1,Math.max(0,(FINGER_LEN-along)/(FINGER_LEN-12)));const ax=along*FINGER_AXIS[0],ay=along*FINGER_AXIS[1];// only the finger itself: close to its axis (the knuckles sit further out and stay as they are)\nconst side=Math.min(1,Math.max(0,(9-Math.hypot(x-ax,y-ay))/4));const wf=u*u*(3-2*u)*side*side*(3-2*side);const g=1+press*PRESS_GROW*wf;x=ax+(x-ax)*g;y=ay+(y-ay)*g;// back of the hand: pulled in toward the tip\nconst s=1-press*PRESS_SHRINK*Math.min(1,Math.hypot(x,y)/PRESS_REACH);x*=s;y*=s;}return[x,y];});const passes=Math.round(10*Math.sin(Math.PI*Math.min(1,Math.max(0,t))));for(let k=0;k<passes;k++)p=p.map((q,i)=>{const a=p[(i+n-1)%n],b=p[(i+1)%n];return[.25*a[0]+.5*q[0]+.25*b[0],.25*a[1]+.5*q[1]+.25*b[1]];});const f=v=>v.toFixed(2);let d=`M${f(p[0][0])} ${f(p[0][1])}`;for(let i=0;i<n;i++){const p0=p[(i+n-1)%n],p1=p[i],p2=p[(i+1)%n],p3=p[(i+2)%n];d+=`C${f(p1[0]+(p2[0]-p0[0])/6)} ${f(p1[1]+(p2[1]-p0[1])/6)} ${f(p2[0]-(p3[0]-p1[0])/6)} ${f(p2[1]-(p3[1]-p1[1])/6)} ${f(p2[0])} ${f(p2[1])}`;}return d+\"Z\";}// ---- end morph geometry ----\nconst MORPH_MS=280;// hanging: angle of each shape's body (tip -> centre of the outline) in its own drawing\nconst bodyAngle=pts=>{const cx=pts.reduce((s,p)=>s+p[0],0)/pts.length;const cy=pts.reduce((s,p)=>s+p[1],0)/pts.length;return Math.atan2(cy,cx)*180/Math.PI;};const BODY_ARROW=bodyAngle(ARROW_PTS);const BODY_HAND=bodyAngle(HAND_PTS);// weight: [arrow, hand] — the arrow is light and free, the hand is heavy and hangs\nconst GRAVITY=[.35,1]// pull down\n;const DRAG=[1/450,1/700]// how much movement drags the body behind (per px/s)\n;const LIFT=[-1,.35]// lowest the pull may point: the arrow can swing up behind a move, the hand never\n;const SWING_K=[60,90]// spring toward the pull\n;const SWING_C=[16,10]// damping: the arrow glides into place without swinging (critical), the hand swings a little\n;const mix=(v,t)=>v[0]+(v[1]-v[0])*t;const easeOutBack=x=>1+2.70158*Math.pow(x-1,3)+1.70158*Math.pow(x-1,2);const easeInOut=x=>x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;export default function CursorCrosshairV2(props){const{mode=\"dot\",showLines=true,defaultColor=\"#B3B3B6\",hoverColor=\"#7C1FFF\",defaultDotSize=9,hoverDotSize=13,arrowColor=\"#7C1FFF\",arrowHoverColor=\"#7C1FFF\",arrowOutline=\"#FFFFFF\",arrowSize=18,// bigger over the hero: there the tiles are the thing to click, and a big cursor says so\nheroArrowSize=32,heroSelector='[data-framer-name=\"hero + curtain\"]',// ...but only while picking tiles at the top: once the page scrolls (the plan starts building) it's back to normal\nheroScroll=40,morph=true,rotate=true,flow=.5,lineGap=10,lineFade=90}=props;const arrow=mode===\"arrow\";const isStatic=useIsStaticRenderer();const[isHovered,setIsHovered]=useState(false);const[inHero,setInHero]=useState(false);const[atTop,setAtTop]=useState(true);const heroRef=useRef(false);heroRef.current=inHero;const[isPressed,setIsPressed]=useState(false);const[isVisible,setIsVisible]=useState(false);const[isDesktop,setIsDesktop]=useState(true);const cursorContainerRef=useRef(null);const arrowRef=useRef(null);const pathRef=useRef(null);const hoverRef=useRef(false);hoverRef.current=isHovered;const morphT=useRef(0)// 0 = arrow, 1 = hand\n;const pressV=useRef(0)// 0 = rest, 1 = finger pushed in\n;const drawShape=()=>pathRef.current?.setAttribute(\"d\",pressPath(morphT.current,pressV.current));// pointer tracking + arrow flow\nuseEffect(()=>{if(isStatic||typeof window===\"undefined\")return;const checkIsDesktop=()=>{const hasFinePointer=window.matchMedia(\"(pointer: fine)\").matches;const isWideEnough=window.innerWidth>=768;setIsDesktop(hasFinePointer&&isWideEnough);};checkIsDesktop();window.addEventListener(\"resize\",checkIsDesktop);const target={x:0,y:0};const pos={x:0,y:0,init:false};// weight: the tip is the pivot and the body hangs under it like a light pendant.\n// body angle (deg, 0 = right, 90 = down) follows one damped spring toward the pull:\n// gravity toward the resting pose + drag opposite to the movement; for the hand the drag can never\n// lift the body above the tip, so going down it barely turns, going sideways it trails, and at rest\n// the arrow glides into its diagonal pose (or the mirrored one), the hand hangs down with a small swing\nconst body={a:BODY_ARROW,w:0};const vel={x:0,y:0};let side=1// 1 = own pose (tip up-right), -1 = mirrored (tip up-left)\n;let lastT=performance.now();let raf=0;let last=performance.now();const tick=now=>{const dt=Math.min(.05,(now-last)/1e3)||.016;last=now;// flow 0 = glued, 1 = very floaty; time based so it feels the same at any frame rate\nconst k=1-Math.exp(-(60-flow*52)*dt);const dx=target.x-pos.x;const dy=target.y-pos.y;pos.x+=dx*k;pos.y+=dy*k;// the swing\nconst decay=Math.exp(-6*dt);vel.x*=decay;vel.y*=decay;const m=morphT.current;const drag=mix(DRAG,m);// at rest it never hangs straight down: it leans into its own pose (tip up-right) or the\n// mirrored one (tip up-left), whichever side the last clear sideways move left it on\nif(Math.abs(vel.x)>250)side=vel.x>0?1:-1;// arrow rests on a diagonal (its pose or the mirror), the hand hangs straight down\nconst arrowRest=side>0?BODY_ARROW:180-BODY_ARROW;const lean=(arrowRest+(90-arrowRest)*m)*Math.PI/180;const grav=mix(GRAVITY,m);const px=grav*Math.cos(lean)-vel.x*drag;const py=Math.max(mix(LIFT,m),grav*Math.sin(lean)-vel.y*drag);let diff=Math.atan2(py,px)*180/Math.PI-body.a;diff-=Math.round(diff/360)*360;body.w+=(mix(SWING_K,m)*diff-mix(SWING_C,m)*body.w)*dt;body.a+=body.w*dt;const rest=BODY_ARROW+(BODY_HAND-BODY_ARROW)*morphT.current;const rot=rotate?body.a-rest:0;if(arrowRef.current)arrowRef.current.style.transform=`translate3d(${pos.x}px, ${pos.y}px, 0) rotate(${rot}deg)`;const moving=Math.abs(dx)>.1||Math.abs(dy)>.1||rotate&&(Math.abs(diff)>.2||Math.abs(body.w)>.5||Math.hypot(vel.x,vel.y)>5);raf=moving?requestAnimationFrame(tick):0;};// pointer position goes straight into CSS variables (no React re-render per mouse move)\nconst updateMousePosition=e=>{if(cursorContainerRef.current){cursorContainerRef.current.style.setProperty(\"--x\",`${e.clientX}px`);cursorContainerRef.current.style.setProperty(\"--y\",`${e.clientY}px`);}const now=performance.now();const mdt=(now-lastT)/1e3;if(pos.init&&mdt>.001){// pointer speed (px/s), lightly smoothed\nvel.x+=((e.clientX-target.x)/mdt-vel.x)*.5;vel.y+=((e.clientY-target.y)/mdt-vel.y)*.5;}lastT=now;target.x=e.clientX;target.y=e.clientY;if(!pos.init){pos.x=e.clientX;pos.y=e.clientY;pos.init=true;}if(!raf)raf=requestAnimationFrame(tick);// React only hears about it when the cursor actually appears (not on every move)\nif(!shown){shown=true;setIsVisible(true);}};let shown=false;// fast check for clickable elements (no getComputedStyle)\nconst handleMouseOver=e=>{const el=e.target;if(!el||el===document.body||el===document.documentElement){setIsHovered(false);return;}const over=!!el.closest(\"a, button, [role='button'], input, textarea, select, .framer-cursor-pointer, [data-framer-cursor]\");if(over!==hoverRef.current)setIsHovered(over);const hero=!!(heroSelector&&el.closest(heroSelector));if(hero!==heroRef.current)setInHero(hero);};const down=()=>setIsPressed(true);const up=()=>setIsPressed(false);const handleMouseLeave=()=>{shown=false;setIsVisible(false);};const handleMouseEnter=()=>setIsVisible(true);const onScroll=()=>setAtTop(window.scrollY<=heroScroll);onScroll();window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"mousemove\",updateMousePosition,{passive:true});window.addEventListener(\"mouseover\",handleMouseOver,{passive:true});window.addEventListener(\"mousedown\",down);window.addEventListener(\"mouseup\",up);document.addEventListener(\"mouseleave\",handleMouseLeave);document.addEventListener(\"mouseenter\",handleMouseEnter);return()=>{cancelAnimationFrame(raf);window.removeEventListener(\"resize\",checkIsDesktop);window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"mousemove\",updateMousePosition);window.removeEventListener(\"mouseover\",handleMouseOver);window.removeEventListener(\"mousedown\",down);window.removeEventListener(\"mouseup\",up);document.removeEventListener(\"mouseleave\",handleMouseLeave);document.removeEventListener(\"mouseenter\",handleMouseEnter);};},[isStatic,flow,rotate,heroSelector,heroScroll]);// arrow <-> hand morph\nuseEffect(()=>{if(!arrow)return;const to=isHovered?1:0;if(!morph){morphT.current=to;drawShape();return;}const from=morphT.current;const start=performance.now();let raf=0;const step=now=>{const u=Math.min(1,(now-start)/MORPH_MS);morphT.current=from+(to-from)*easeInOut(u);drawShape();if(u<1)raf=requestAnimationFrame(step);};raf=requestAnimationFrame(step);return()=>cancelAnimationFrame(raf);},[isHovered,morph,arrow]);// click on a link: the finger pushes in (fast), then springs back past rest and settles\nuseEffect(()=>{if(!arrow)return;const down=isPressed&&isHovered;const from=pressV.current;const start=performance.now();const ms=down?90:320;let raf=0;const step=now=>{const u=Math.min(1,(now-start)/ms);pressV.current=down?from+(1-from)*(1-Math.pow(1-u,3)):from*(1-easeOutBack(u));drawShape();if(u<1)raf=requestAnimationFrame(step);};raf=requestAnimationFrame(step);return()=>cancelAnimationFrame(raf);},[isPressed,isHovered,arrow]);// size change rides on the same spring transition as the click squash below\nconst scale=(inHero&&atTop?heroArrowSize:arrowSize)/ARROW_WIDTH;// click away from links: the arrow just dips a little\nconst squash=isPressed&&!isHovered?\"scale(0.92)\":\"scale(1)\";const cursorSvg=(color,t)=>/*#__PURE__*/_jsx(\"svg\",{width:1,height:1,style:{display:\"block\",overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"g\",{style:{transform:`scale(${scale}) ${squash}`,transformOrigin:\"0 0\",transition:isPressed?\"transform .09s ease-out\":\"transform .35s cubic-bezier(.3,1.7,.5,1)\"},children:/*#__PURE__*/_jsx(\"path\",{ref:pathRef,d:pressPath(t,pressV.current),fill:color,stroke:arrowOutline,// outline drawn under the fill, so ~1.5 px of white shows outside the shape, like a system cursor\n    strokeWidth:3/scale,paintOrder:\"stroke\",strokeLinejoin:\"round\",style:{transition:`fill ${MORPH_MS}ms ease`}})})});if(isStatic){return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",minWidth:\"200px\",minHeight:\"200px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",position:\"relative\",overflow:\"hidden\",pointerEvents:\"none\"},children:[showLines&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,bottom:0,left:\"50%\",width:\"0.5px\",backgroundColor:defaultColor,opacity:.4,transform:\"translateX(-0.25px)\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,right:0,top:\"50%\",height:\"0.5px\",backgroundColor:defaultColor,opacity:.4,transform:\"translateY(-0.25px)\"}})]}),arrow?/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:\"50%\",top:\"50%\"},children:cursorSvg(arrowColor,0)}):/*#__PURE__*/_jsx(\"div\",{style:{width:`${defaultDotSize}px`,height:`${defaultDotSize}px`,backgroundColor:defaultColor,borderRadius:\"50%\",zIndex:2}})]});}if(!isDesktop)return null;// arrow mode: lines are transparent around the centre and fade in over lineFade px\nconst g0=lineGap;const g1=lineGap+lineFade;const vLine=`linear-gradient(to bottom, ${defaultColor} 0, ${defaultColor} calc(50% - ${g1}px), transparent calc(50% - ${g0}px), transparent calc(50% + ${g0}px), ${defaultColor} calc(50% + ${g1}px), ${defaultColor} 100%)`;const hLine=`linear-gradient(to right, ${defaultColor} 0, ${defaultColor} calc(50% - ${g1}px), transparent calc(50% - ${g0}px), transparent calc(50% + ${g0}px), ${defaultColor} calc(50% + ${g1}px), ${defaultColor} 100%)`;return /*#__PURE__*/_jsxs(\"div\",{ref:cursorContainerRef,style:{position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",pointerEvents:\"none\",zIndex:999999,overflow:\"hidden\",opacity:isVisible?1:0,transition:\"opacity 0.2s ease\",[\"--x\"]:\"50vw\",[\"--y\"]:\"50vh\"},children:[arrow&&/*#__PURE__*/_jsx(\"style\",{children:`@media (pointer:fine){html,body,*{cursor:none!important}}`}),arrow?/*#__PURE__*/_jsxs(_Fragment,{children:[showLines&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(motion.div,{animate:{opacity:isHovered?1:.5},transition:{duration:.15},style:{position:\"absolute\",left:0,top:0,width:\"0.5px\",height:\"200vh\",background:vLine,transform:\"translate3d(var(--x), var(--y), 0) translate(-0.25px, -50%)\",willChange:\"transform\"}}),/*#__PURE__*/_jsx(motion.div,{animate:{opacity:isHovered?1:.5},transition:{duration:.15},style:{position:\"absolute\",left:0,top:0,width:\"200vw\",height:\"0.5px\",background:hLine,transform:\"translate3d(var(--x), var(--y), 0) translate(-50%, -0.25px)\",willChange:\"transform\"}})]}),/*#__PURE__*/_jsx(\"div\",{ref:arrowRef,style:{position:\"absolute\",left:0,top:0,width:0,height:0,willChange:\"transform\"},children:cursorSvg(isHovered?arrowHoverColor:arrowColor,morphT.current)})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[showLines&&/*#__PURE__*/_jsx(motion.div,{animate:{opacity:isHovered?1:.3},transition:{duration:.15},style:{position:\"absolute\",top:0,bottom:0,left:0,width:\"0.5px\",backgroundColor:defaultColor,transform:\"translate3d(var(--x), 0, 0) translateX(-0.25px)\",willChange:\"transform\"}}),showLines&&/*#__PURE__*/_jsx(motion.div,{animate:{opacity:isHovered?1:.3},transition:{duration:.15},style:{position:\"absolute\",left:0,right:0,top:0,height:\"0.5px\",backgroundColor:defaultColor,transform:\"translate3d(0, var(--y), 0) translateY(-0.25px)\",willChange:\"transform\"}}),showLines&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(motion.div,{animate:{opacity:isHovered?1:0},transition:{duration:.2},style:{position:\"absolute\",left:0,top:0,width:\"0.5px\",height:\"100px\",background:`linear-gradient(to bottom, transparent 0%, ${hoverColor} 50%, transparent 100%)`,transform:\"translate3d(var(--x), var(--y), 0) translate(-0.25px, -50%)\",willChange:\"transform\"}}),/*#__PURE__*/_jsx(motion.div,{animate:{opacity:isHovered?1:0},transition:{duration:.2},style:{position:\"absolute\",left:0,top:0,width:\"100px\",height:\"0.5px\",background:`linear-gradient(to right, transparent 0%, ${hoverColor} 50%, transparent 100%)`,transform:\"translate3d(var(--x), var(--y), 0) translate(-50%, -0.25px)\",willChange:\"transform\"}})]}),/*#__PURE__*/_jsx(motion.div,{animate:{width:isHovered?hoverDotSize:defaultDotSize,height:isHovered?hoverDotSize:defaultDotSize,backgroundColor:isHovered?hoverColor:defaultColor},transition:{type:\"spring\",stiffness:450,damping:28},style:{position:\"absolute\",left:0,top:0,borderRadius:\"50%\",transform:\"translate3d(var(--x), var(--y), 0) translate(-50%, -50%)\",willChange:\"transform\"}}),/*#__PURE__*/_jsx(motion.div,{animate:{width:isHovered?hoverDotSize+12:0,height:isHovered?hoverDotSize+12:0,opacity:isHovered?1:0},transition:{type:\"spring\",stiffness:350,damping:25},style:{position:\"absolute\",left:0,top:0,border:`0.5px solid ${hoverColor}`,borderRadius:\"50%\",transform:\"translate3d(var(--x), var(--y), 0) translate(-50%, -50%)\",boxSizing:\"border-box\",willChange:\"transform\"}})]})]});}const isDot=p=>p.mode===\"arrow\";const isArrow=p=>p.mode!==\"arrow\";addPropertyControls(CursorCrosshairV2,{mode:{type:ControlType.Enum,title:\"Cursor\",options:[\"dot\",\"arrow\"],optionTitles:[\"Dot\",\"Arrow\"],displaySegmentedControl:true,defaultValue:\"dot\"},showLines:{type:ControlType.Boolean,title:\"Show Lines\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},defaultColor:{type:ControlType.Color,title:\"Line / Dot Color\",defaultValue:\"#B3B3B6\"},// dot\nhoverColor:{type:ControlType.Color,title:\"Hover Color\",defaultValue:\"#7C1FFF\",hidden:isDot},defaultDotSize:{type:ControlType.Number,title:\"Dot Default Size\",defaultValue:9,min:2,max:50,step:1,displayStepper:true,hidden:isDot},hoverDotSize:{type:ControlType.Number,title:\"Dot Hover Size\",defaultValue:13,min:2,max:80,step:1,displayStepper:true,hidden:isDot},// arrow\narrowColor:{type:ControlType.Color,title:\"Arrow Color\",defaultValue:\"#7C1FFF\",hidden:isArrow},arrowHoverColor:{type:ControlType.Color,title:\"Hand Color\",defaultValue:\"#7C1FFF\",hidden:isArrow},arrowOutline:{type:ControlType.Color,title:\"Outline\",defaultValue:\"#FFFFFF\",hidden:isArrow},arrowSize:{type:ControlType.Number,title:\"Arrow Size\",defaultValue:18,min:10,max:80,step:1,unit:\"px\",displayStepper:true,hidden:isArrow},heroArrowSize:{type:ControlType.Number,title:\"Arrow Size (hero)\",defaultValue:32,min:10,max:80,step:1,unit:\"px\",displayStepper:true,hidden:isArrow},heroSelector:{type:ControlType.String,title:\"Hero selector\",defaultValue:'[data-framer-name=\"hero + curtain\"]',hidden:isArrow},heroScroll:{type:ControlType.Number,title:\"Hero size until\",defaultValue:40,min:0,max:2e3,step:10,unit:\"px\",displayStepper:true,hidden:isArrow},morph:{type:ControlType.Boolean,title:\"Hover Morph\",defaultValue:true,enabledTitle:\"Animate\",disabledTitle:\"Instant\",description:\"Arrow turns into a hand over links and buttons\",hidden:isArrow},rotate:{type:ControlType.Boolean,title:\"Rotate\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Arrow turns toward the direction of travel\",hidden:isArrow},flow:{type:ControlType.Number,title:\"Flow\",defaultValue:.5,min:0,max:1,step:.05,description:\"0 = glued to the mouse, 1 = floaty\",hidden:isArrow},lineGap:{type:ControlType.Number,title:\"Line Gap\",defaultValue:10,min:0,max:200,unit:\"px\",description:\"Fully clear around the centre\",hidden:isArrow},lineFade:{type:ControlType.Number,title:\"Line Fade\",defaultValue:90,min:0,max:400,unit:\"px\",description:\"Distance over which the lines fade in\",hidden:isArrow}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorCrosshairV2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"pressPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ARROW_WIDTH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lerpPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HAND_PTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ARROW_PTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Cursor.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";import{RenderTarget}from\"framer\";// Curtain footer: the footer waits pinned to the bottom of the screen *under* the page,\n// and the page slides up off it at the end of the scroll.\n// - footer (the template layer named \"footer\"): sticky to the bottom, one layer below the content\n// - page sections: get the page background so they cover the footer until they scroll away\n// A footer taller than the screen would lose its top part, so then it simply scrolls in as before.\n// Drop one instance anywhere in each layout template; it renders nothing.\nconst FOOTER='#main > div > [data-framer-name=\"footer\"]';function apply(){const footer=document.querySelector(FOOTER);if(!footer)return;const root=footer.parentElement;const on=footer.offsetHeight<=window.innerHeight;const bg=getComputedStyle(root).backgroundColor;root.style.isolation=on?\"isolate\":\"\";footer.style.position=on?\"sticky\":\"\";footer.style.bottom=on?\"0px\":\"\";footer.style.zIndex=on?\"-1\":\"\";// page content sits in a display:contents wrapper; sections are its children\nconst sections=[];for(const child of Array.from(root.children)){if(child===footer)continue;const cs=getComputedStyle(child);if(cs.display===\"contents\")sections.push(...Array.from(child.children));}for(const s of sections){const pos=getComputedStyle(s).position;if(pos===\"fixed\"||pos===\"absolute\")continue;if(on){if(!s.dataset.sxBg)s.dataset.sxBg=s.style.backgroundColor||\"-\";if(getComputedStyle(s).backgroundColor===\"rgba(0, 0, 0, 0)\")s.style.backgroundColor=bg;// on screens wider than the content the sections stop short of the edges, and the full-width\n// footer would show at the sides: stretch each section's background sideways only (the shadow\n// is clipped to the section's own height, so the footer still appears only from below)\ns.style.boxShadow=`0 0 0 100vmax ${getComputedStyle(s).backgroundColor}`;s.style.clipPath=\"inset(0 -100vmax)\";}else if(s.dataset.sxBg){s.style.backgroundColor=s.dataset.sxBg===\"-\"?\"\":s.dataset.sxBg;s.style.boxShadow=\"\";s.style.clipPath=\"\";delete s.dataset.sxBg;}}}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function FooterReveal(){useEffect(()=>{if(RenderTarget.current()===RenderTarget.canvas)return;let frame=0;const schedule=()=>{if(!frame)frame=requestAnimationFrame(()=>(frame=0,apply()));};apply();// pages change client-side inside the same template: re-apply when the content swaps\nconst main=document.getElementById(\"main\");const mo=new MutationObserver(schedule);if(main)mo.observe(main,{childList:true,subtree:true});window.addEventListener(\"resize\",schedule);return()=>{cancelAnimationFrame(frame);mo.disconnect();window.removeEventListener(\"resize\",schedule);};},[]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{width:1,height:1,pointerEvents:\"none\"}});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FooterReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FooterReveal.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";import{RenderTarget}from\"framer\";// Subtle inner parallax for every cropped image on the site.\n// The image is scaled up a little inside its own frame and drifts against the frame's movement:\n// vertically as the page scrolls, horizontally as a row slides sideways (the project rails).\n// Only \"fill\" (object-fit: cover) images bigger than an icon take part, so logos, icons and\n// anything shown whole are left alone. The layers themselves stay normal Framer images.\n// Drop one instance anywhere in each layout template; it renders nothing.\nconst SHIFT=.13// max drift, as a share of the image size, each way\n;const SCALE=1+SHIFT*2+.01// enough zoom that the drift never shows an edge\n;const MIN=140// smaller images (icons, avatars) stay still\n;const clamp=v=>Math.min(1,Math.max(-1,v));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ImageParallax(){useEffect(()=>{if(RenderTarget.current()===RenderTarget.canvas)return;if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;// desktop only: on touch screens the effect is barely visible and costs the most (slow CPUs)\nif(!window.matchMedia(\"(hover: hover) and (pointer: fine)\").matches)return;const tracked=new Set;const skipped=new WeakSet// logos / icons: never look at them again\n;const visible=new Set;const io=new IntersectionObserver(entries=>{for(const e of entries){const img=e.target;if(e.isIntersecting)visible.add(img);else visible.delete(img);}},{rootMargin:\"20% 20% 20% 20%\"});// The image is shown SCALE× bigger than its frame: tell the browser, so it picks the matching\n// (bigger) file from Framer's srcset instead of stretching the one sized for the frame.\n// Only for images that haven't loaded yet: changing it later would download a second file.\nconst fitSizes=img=>{if(!img.srcset||img.complete)return;const w=img.parentElement.getBoundingClientRect().width;if(w>0)img.sizes=`${Math.ceil(w*SCALE)}px`;};// Framer image fills, plus the photos inside the ProblemRows component\nconst SELECTOR=\"[data-framer-background-image-wrapper] > img, .spr-img > img\";const eligible=img=>{const wrap=img.parentElement;if(!wrap)return false;// opt-outs: the portrait in About, and any layer named \"... no parallax ...\"\nif(img.closest('[data-framer-name=\"photo\"], [data-framer-name*=\"no parallax\" i]')||getComputedStyle(img).objectFit!==\"cover\"){skipped.add(img);return false;}const r=wrap.getBoundingClientRect();return r.width>=MIN&&r.height>=MIN;};const scan=()=>{document.querySelectorAll(SELECTOR).forEach(img=>{if(tracked.has(img)||skipped.has(img)||!img.isConnected)return;if(!img.complete&&!img.getBoundingClientRect().width)return;// try again once it has a size\nif(!eligible(img))return;tracked.add(img);const wrap=img.parentElement;wrap.style.overflow=\"hidden\";// own translate / scale properties, so any transform the layer already animates still works\nimg.style.willChange=\"translate\";img.style.scale=String(SCALE);fitSizes(img);io.observe(img);});for(const img of tracked)if(!img.isConnected){tracked.delete(img);visible.delete(img);io.unobserve(img);}};let frame=0;const tick=()=>{const vw=window.innerWidth;const vh=window.innerHeight;// all measuring first, then all writing: no layout recalculated between images\nconst list=Array.from(visible);const rects=list.map(img=>img.parentElement.getBoundingClientRect());list.forEach((img,i)=>{const r=rects[i];// -1 … 1: where the frame's centre is between entering and leaving the screen\nconst px=clamp((r.left+r.width/2-vw/2)/(vw/2+r.width/2));const py=clamp((r.top+r.height/2-vh/2)/(vh/2+r.height/2));img.style.translate=`${(px*SHIFT*r.width).toFixed(1)}px ${(py*SHIFT*r.height).toFixed(1)}px`;});frame=requestAnimationFrame(tick);};scan();frame=requestAnimationFrame(tick);// pages change client-side and images load lazily: look again when the page changes\nlet pending=0;const mo=new MutationObserver(()=>{if(!pending)pending=window.setTimeout(()=>(pending=0,scan()),200);});mo.observe(document.body,{childList:true,subtree:true});const onLoad=e=>{if(e.target instanceof HTMLImageElement)scan();};document.addEventListener(\"load\",onLoad,true);// images that only get a size later (closed accordions, late layout) are picked up here\nconst sweep=window.setInterval(scan,1500);const onResize=()=>tracked.forEach(fitSizes);window.addEventListener(\"resize\",onResize);return()=>{cancelAnimationFrame(frame);clearTimeout(pending);mo.disconnect();io.disconnect();document.removeEventListener(\"load\",onLoad,true);clearInterval(sweep);window.removeEventListener(\"resize\",onResize);for(const img of tracked){img.style.translate=\"\";img.style.scale=\"\";img.style.willChange=\"\";}};},[]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{width:1,height:1,pointerEvents:\"none\"}});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ImageParallax\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ImageParallax.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// pixel paint on the page grid: a pixel is half a grid column wide (and as tall, so it's square):\n// 4 columns = 8 pixels across the content (desktop), 2 columns = 4 pixels (tablet, phone), plus one\n// strip per side margin. 10 strips are always drawn; the narrow layouts hide four of them\nconst COLS=10;const REACH=6// cells a strip's ragged edge + loose blocks can reach beyond its body\n;// tempo after aspensearch.com: one strong expo in-out curve (long soft start, very fast middle,\n// long settle), ~1.15 s for the reveal\nconst OPEN=1500// paint slides up and away\n;const CLOSE=1100// paint slides up over the page before a page change\n;const FAST=900// slide-up on load when the site is already cached\n;// columns start up to this much apart: just enough for the edge to shift by a cell or so while it\n// moves (at full speed 10 ms is ~50 px); more and the paint falls apart into separate strips\nconst COL_SPREAD=14;const INTRO=800// logo + counter grow in\n;const SEEN_KEY=\"sx-preload-shown\";const VISITED_KEY=\"sx-visited\"// persistent: the browser has the site in cache\n;const COUNT_MIN=1e3// the counter never runs faster than this (the logo intro needs it)\n;const COUNT_MAX=2e3// never hold the page longer than this\n;const noise=i=>{const x=Math.sin(i*12.9898+78.233)*43758.5453;return x-Math.floor(x);};// big pixels: steps of at most one cell, one loose block (sometimes two), so the edge stays readable\nconst loose=seed=>{const out=[];if(noise(seed)<.6){const a={at:1+Math.floor(noise(seed+1)*2),h:1};out.push(a);if(noise(seed+3)<.3)out.push({at:a.at+2,h:1});}return out;};const GRID=Array.from({length:COLS},(_,c)=>({delay:Math.round(noise(c+5)*COL_SPREAD),top:Math.floor(noise(c+11)*2),bottom:Math.floor(noise(c+23)*2),above:loose(c*7+101),below:loose(c*7+307)}));const EASE=\"cubic-bezier(.87,0,.13,1)\"// expo.inOut\n;const EASE_IN=\"cubic-bezier(.7,0,.84,0)\"// expo.in\n;// the paint itself: cubic in-out. With expo the whole screen-high sweep happened in ~70 ms mid-way and\n// read as a flash; this keeps the soft start and end but the paint is visibly travelling\nconst PAINT=\"cubic-bezier(.65,0,.35,1)\";// line: the page's vertical grid lines on the cover, on the same pixels as SectionGrid's: inside the left\n// edge of strips 2, 4, 6, 8 (content start + the column dividers; on 2-column layouts strips 6-9 are\n// hidden, which leaves 2 and 4 = side + middle), just outside the left edge of the right margin (10).\n// Drawn on every block of those strips, so the lines travel and break up with the paint. Opaque colours,\n// so overlapping blocks don't stack into darker dots; strips overlap 1 px to the right (no seams).\nconst css=(color,text,line,num)=>`\n.sx-pt{position:fixed;inset:0;z-index:2147483000;pointer-events:none;display:grid;--p:120px;\n--c:calc((100vw - 2 * var(--p)) / 8);\ngrid-template-columns:var(--p) repeat(8,1fr) var(--p)}\n@media (max-width:1439.98px){.sx-pt{--p:80px}}\n@media (max-width:1023.98px){.sx-pt{--p:48px;--c:calc((100vw - 2 * var(--p)) / 4);grid-template-columns:var(--p) repeat(4,1fr) var(--p)}\n.sx-pt .c:is(:nth-child(6),:nth-child(7),:nth-child(8),:nth-child(9)){display:none}}\n@media (max-width:809.98px){.sx-pt{--p:24px}}\n.sx-pt .c{position:relative;margin:0 -1px 0 0;will-change:transform}\n.sx-pt .c i{position:absolute;left:0;right:0;display:block;background:${color}}\n.sx-pt .c .b{top:calc(var(--t) * var(--c) * -1);bottom:calc(var(--d) * var(--c) * -1)}\n.sx-pt .c .u{bottom:calc(100% + (var(--t) + var(--a)) * var(--c));height:calc(var(--h) * var(--c) + 1px)}\n.sx-pt .c .w{top:calc(100% + (var(--d) + var(--a)) * var(--c));height:calc(var(--h) * var(--c) + 1px)}\n.sx-pt .c:is(:nth-child(2),:nth-child(4),:nth-child(6),:nth-child(8)) i{box-shadow:inset 1px 0 0 ${line}}\n.sx-pt .c:nth-child(10) i{box-shadow:-1px 0 0 ${line}}\n.sx-pt[data-s=\"idle\"]{display:none}\n.sx-pt[data-s=\"open\"] .c{animation:sxPtUp ${OPEN}ms ${PAINT} var(--cd) both}\n.sx-pt[data-s=\"close\"] .c{animation:sxPtIn2 ${CLOSE}ms ${PAINT} var(--cd) both}\n@keyframes sxPtUp{from{transform:none}to{transform:translateY(calc(-100% - ${REACH} * var(--c)))}}\n@keyframes sxPtIn2{from{transform:translateY(calc(100% + ${REACH} * var(--c)))}to{transform:none}}\n.sx-pt[data-fast=\"1\"][data-s=\"open\"] .c{animation-duration:${FAST}ms}\n.sx-pt[data-s=\"cover\"]{animation:sxPtSafety 0s 6s forwards}\n@keyframes sxPtSafety{to{visibility:hidden}}\n.sx-pt-count{position:fixed;left:calc(var(--p,120px) + 24px);bottom:6vh;z-index:2147483001;pointer-events:none;\nfont-family:Manrope,\"Manrope Placeholder\",sans-serif;font-size:clamp(48px,8vw,128px);line-height:1;letter-spacing:-.04em;\ncolor:${text};display:none;align-items:baseline;gap:.35em;transform-origin:left bottom;will-change:transform,opacity}\n.sx-pt-count[data-on=\"1\"]{display:flex;animation:sxPtIn ${INTRO}ms ${EASE} both}\n.sx-pt-count[data-on=\"out\"]{display:flex;animation:sxPtOut .5s ${EASE_IN} both}\n.sx-pt-count .logo{font-weight:800}\n.sx-pt-count .num{font-weight:500;font-variant-numeric:tabular-nums;color:${num}}\n.sx-pt-count[data-on=\"0\"]{display:none}\n@keyframes sxPtIn{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}\n@keyframes sxPtOut{to{opacity:0;transform:translateY(-12vh)}}\n@media (max-width:1439.98px){.sx-pt-count{left:104px}}\n@media (max-width:1023.98px){.sx-pt-count{left:72px}}\n@media (max-width:809.98px){.sx-pt-count{left:48px}}\n@media (prefers-reduced-motion:reduce){.sx-pt,.sx-pt-count{display:none!important}}\n`;// server HTML only. The page renders normally underneath (so the browser paints the real content\n// right away — that is what LCP measures); the opaque cover sits on top until the script rolls it up.\nconst ssrCss=``;// Inline script in the server HTML, right after the cover: copies the cover straight into <body> before any\n// of Framer's scripts run. Inside the template the cover depends on its parent containers (a transform there\n// during start-up would shrink it and let the page flash through); at body level nothing can do that.\nconst EARLY_ID=\"sx-pt-early\";const EARLY=`(function(){try{var s=document.currentScript,c=s&&s.previousElementSibling;if(!c||document.getElementById(\"${EARLY_ID}\"))return;var n=c.cloneNode(true);n.id=\"${EARLY_ID}\";document.body.appendChild(n)}catch(e){}})()`;let shared=null;let booted=false// first load handled (once per page load)\n;let hydrated=false// the server-rendered cover has been replaced by the shared layer\n;const columnsHTML=()=>GRID.map(col=>`<div class=\"c\" style=\"--cd:${col.delay}ms;--t:${col.top};--d:${col.bottom}\">`+`<i class=\"b\"></i>`+col.above.map(b=>`<i class=\"u\" style=\"--a:${b.at};--h:${b.h}\"></i>`).join(\"\")+col.below.map(b=>`<i class=\"w\" style=\"--a:${b.at};--h:${b.h}\"></i>`).join(\"\")+`</div>`).join(\"\");function openLayer(){if(!shared)return;const s=shared;// logo + counter leave upward, ahead of the paint\nif(s.ct.dataset.on===\"1\"){s.ct.dataset.on=\"out\";setTimeout(()=>s.ct.dataset.on=\"0\",520);}else s.ct.dataset.on=\"0\";s.el.dataset.s=\"open\";clearTimeout(s.timer);const d=s.el.dataset.fast===\"1\"?FAST:OPEN;s.timer=setTimeout(()=>{s.el.dataset.s=\"idle\";s.el.dataset.fast=\"0\"// page changes keep the full speed\n;},d+COL_SPREAD+60);}function closeLayer(then){if(!shared)return;const s=shared;s.el.dataset.s=\"close\";clearTimeout(s.timer);s.timer=setTimeout(then,CLOSE+COL_SPREAD);}const trim=p=>p.replace(/\\/+$/,\"\")||\"/\";const samePage=url=>trim(url.pathname)===trim(location.pathname)&&url.search===location.search;// smooth scroll to the top: through Lenis on desktop (so it doesn't fight the wheel smoothing), native elsewhere\nfunction toTop(){const y=window.scrollY;if(y<1)return;const lenis=window.__sxLenis;if(lenis){const duration=Math.min(1.8,.7+y/8e3)// longer pages glide a bit longer, never crawl\n;lenis.scrollTo(0,{duration,easing:t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,force:true});}else{window.scrollTo({top:0,behavior:\"smooth\"});}}// internal link: grow the columns over the page, let Framer navigate, roll up on the new page\nfunction onClick(e){const s=shared;if(!s||s.passing||e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const a=e.target?.closest?.(\"a\");if(!a||!a.href||a.target===\"_blank\"||a.hasAttribute(\"download\"))return;const url=new URL(a.href,location.href);if(url.origin!==location.origin||url.hash)return;if(samePage(url)){// link to the page you're on (logo on home, \"projects\" on /projects): no reload, glide to the top\ne.preventDefault();e.stopPropagation();toTop();return;}e.preventDefault();e.stopPropagation();if(s.busy)return;// one transition at a time\ns.busy=true;closeLayer(()=>{s.passing=true;try{a.click();}finally{s.passing=false;// the new page renders under the paint; then roll up (always, even if navigation failed)\nsetTimeout(()=>{s.busy=false;openLayer();},120);}});}function install(color,text,line,num){if(shared)return;const style=document.createElement(\"style\");style.textContent=css(color,text,line,num);document.head.appendChild(style);// the server HTML already put a copy of the cover straight into <body> (see EARLY); take that one over,\n// so there is never a frame between the server cover and this one\nconst early=document.getElementById(EARLY_ID);const el=early??document.createElement(\"div\");el.removeAttribute(\"id\");el.className=\"sx-pt\";el.dataset.s=\"cover\";el.setAttribute(\"aria-hidden\",\"true\");if(!early)el.innerHTML=columnsHTML();const ct=document.createElement(\"div\");ct.className=\"sx-pt-count\";ct.dataset.on=\"0\";ct.setAttribute(\"aria-hidden\",\"true\");if(!early)document.body.append(el);document.body.append(ct);shared={el,ct,timer:0,busy:false,passing:false};document.addEventListener(\"click\",onClick,true);window.addEventListener(\"popstate\",()=>openLayer());}// first load. The cover hides the page while it is still loading:\n// - site already in the browser cache (visited before): no counter, a short roll-up as soon as the page\n//   is ready (at most 1.2 s);\n// - first visit: logo + counter that follows the real loading (images, then the load event), never\n//   faster than 1 s, never longer than 5 s; then the normal roll-up\nfunction bootLayer(){if(booted||!shared)return;booted=true;const{ct,el}=shared;const t0=performance.now();// \"ready\" = the page is parsed and its fonts are in. Images keep loading behind the paint (they are\n// lazy below the fold anyway), so a slow connection no longer holds the whole page back.\nlet fontsIn=false;try{document.fonts.ready.then(()=>fontsIn=true);}catch(e){fontsIn=true;}const ready=()=>fontsIn&&document.readyState!==\"loading\";let cached=false;try{cached=localStorage.getItem(VISITED_KEY)===\"1\"||sessionStorage.getItem(SEEN_KEY)===\"1\";}catch(e){}const remember=()=>{try{sessionStorage.setItem(SEEN_KEY,\"1\");localStorage.setItem(VISITED_KEY,\"1\");}catch(e){}};// phones: the short roll-up on the first visit too (the counter costs a slow phone ~2 s of blank screen)\nconst light=window.matchMedia(\"(max-width: 809.98px), (hover: none) and (pointer: coarse)\").matches;if(cached||light){remember();el.dataset.fast=\"1\";let done=false;const go=()=>{if(done)return;done=true;requestAnimationFrame(openLayer);};const wait=setInterval(()=>{if(ready()){clearInterval(wait);go();}},30);setTimeout(()=>{clearInterval(wait);go();},800);return;}// the navbar logo, large, with the percentage next to it; both grow in\nct.innerHTML=`<span class=\"logo\">Structule</span><span class=\"num\">0%</span>`;const num=ct.querySelector(\".num\");ct.dataset.on=\"1\";const progress=()=>{if(ready()||performance.now()-t0>COUNT_MAX)return 100;return Math.min(92,20+70*(performance.now()-t0)/COUNT_MAX);};let n=0;const tick=setInterval(()=>{const limit=100*(performance.now()-t0)/COUNT_MIN;const target=Math.min(progress(),limit);if(target>n)n=Math.min(target,n+Math.max(1,(target-n)*.25));num.textContent=`${Math.floor(n)}%`;if(n>=100){clearInterval(tick);remember();setTimeout(()=>requestAnimationFrame(openLayer),80);}},30);}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n */export default function PageTransition(props){const{color=\"#ECEBEE\",textColor=\"#7C1FFF\",numColor=\"#1B1B1E\",lineColor=\"#A8A7AB\",enabled=true}=props;const isStatic=useIsStaticRenderer();// the very first render (server HTML + hydration) draws the cover in place, so the page never flashes\n// before the script runs; every later mount renders nothing and uses the shared layer\nconst[inline,setInline]=useState(!hydrated);useEffect(()=>{if(isStatic)return;if(!enabled||window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches){document.getElementById(EARLY_ID)?.remove();if(shared)shared.el.dataset.s=\"idle\";hydrated=true;setInline(false);return;}install(color,textColor,lineColor,numColor);hydrated=true;setInline(false);bootLayer();},[isStatic,enabled]);if(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{width:40,height:40,background:color,opacity:.4},title:\"Page transition (runs on the live site)\"});}if(!inline||!enabled)return null;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:css(color,textColor,lineColor,numColor)+ssrCss}),/*#__PURE__*/_jsx(\"div\",{className:\"sx-pt\",\"data-s\":\"cover\",\"aria-hidden\":\"true\",dangerouslySetInnerHTML:{__html:columnsHTML()}}),/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:EARLY}})]});}addPropertyControls(PageTransition,{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#ECEBEE\"},textColor:{type:ControlType.Color,title:\"Logo\",defaultValue:\"#7C1FFF\"},numColor:{type:ControlType.Color,title:\"%\",defaultValue:\"#1B1B1E\"},// a touch darker than the page's own lines (#B4B3B6 on the page grey), because the paint is lighter\nlineColor:{type:ControlType.Color,title:\"Lines\",defaultValue:\"#A8A7AB\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PageTransition\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"40\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PageTransition.map","function clamp(t,e,i){return Math.max(t,Math.min(e,i))}class Animate{advance(t){if(!this.isRunning)return;let e=!1;if(this.lerp)this.value=function damp(t,e,i,s){return function lerp(t,e,i){return(1-i)*t+i*e}(t,e,1-Math.exp(-i*s))}(this.value,this.to,60*this.lerp,t),Math.round(this.value)===this.to&&(this.value=this.to,e=!0);else{this.currentTime+=t;const i=clamp(0,this.currentTime/this.duration,1);e=i>=1;const s=e?1:this.easing(i);this.value=this.from+(this.to-this.from)*s}e&&this.stop(),this.onUpdate?.(this.value,e)}stop(){this.isRunning=!1}fromTo(t,e,{lerp:i=.1,duration:s=1,easing:o=(t=>t),onStart:n,onUpdate:r}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,n?.(),this.onUpdate=r}}class Dimensions{constructor({wrapper:t,content:e,autoResize:i=!0,debounce:s=250}={}){this.wrapper=t,this.content=e,i&&(this.debouncedResize=function debounce(t,e){let i;return function(){let s=arguments,o=this;clearTimeout(i),i=setTimeout((function(){t.apply(o,s)}),e)}}(this.resize,s),this.wrapper===window?window.addEventListener(\"resize\",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),window.removeEventListener(\"resize\",this.debouncedResize,!1)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper===window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper===window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class Emitter{constructor(){this.events={}}emit(t,...e){let i=this.events[t]||[];for(let t=0,s=i.length;t<s;t++)i[t](...e)}on(t,e){return this.events[t]?.push(e)||(this.events[t]=[e]),()=>{this.events[t]=this.events[t]?.filter((t=>e!==t))}}off(t,e){this.events[t]=this.events[t]?.filter((t=>e!==t))}destroy(){this.events={}}}const t=100/6;class VirtualScroll{constructor(t,{wheelMultiplier:e=1,touchMultiplier:i=1}){this.element=t,this.wheelMultiplier=e,this.touchMultiplier=i,this.touchStart={x:null,y:null},this.emitter=new Emitter,window.addEventListener(\"resize\",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.addEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.destroy(),window.removeEventListener(\"resize\",this.onWindowResize,!1),this.element.removeEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.removeEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.removeEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.removeEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}onTouchStart=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0},this.emitter.emit(\"scroll\",{deltaX:0,deltaY:0,event:t})};onTouchMove=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,s=-(e-this.touchStart.x)*this.touchMultiplier,o=-(i-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:s,y:o},this.emitter.emit(\"scroll\",{deltaX:s,deltaY:o,event:t})};onTouchEnd=t=>{this.emitter.emit(\"scroll\",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})};onWheel=e=>{let{deltaX:i,deltaY:s,deltaMode:o}=e;i*=1===o?t:2===o?this.windowWidth:1,s*=1===o?t:2===o?this.windowHeight:1,i*=this.wheelMultiplier,s*=this.wheelMultiplier,this.emitter.emit(\"scroll\",{deltaX:i,deltaY:s,event:e})};onWindowResize=()=>{this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight}}class Lenis{constructor({wrapper:t=window,content:e=document.documentElement,wheelEventsTarget:i=t,eventsTarget:s=i,smoothWheel:o=!0,syncTouch:n=!1,syncTouchLerp:r=.075,touchInertiaMultiplier:l=35,duration:h,easing:a=(t=>Math.min(1,1.001-Math.pow(2,-10*t))),lerp:c=!h&&.1,infinite:u=!1,orientation:d=\"vertical\",gestureOrientation:p=\"vertical\",touchMultiplier:m=1,wheelMultiplier:v=1,autoResize:g=!0,prevent:w=!1,__experimental__naiveDimensions:S=!1}={}){this.__isScrolling=!1,this.__isStopped=!1,this.__isLocked=!1,this.onVirtualScroll=({deltaX:t,deltaY:e,event:i})=>{if(i.ctrlKey)return;const s=i.type.includes(\"touch\"),o=i.type.includes(\"wheel\");this.isTouching=\"touchstart\"===i.type||\"touchmove\"===i.type;if(this.options.syncTouch&&s&&\"touchstart\"===i.type&&!this.isStopped&&!this.isLocked)return void this.reset();const n=0===t&&0===e,r=\"vertical\"===this.options.gestureOrientation&&0===e||\"horizontal\"===this.options.gestureOrientation&&0===t;if(n||r)return;let l=i.composedPath();l=l.slice(0,l.indexOf(this.rootElement));const h=this.options.prevent;if(l.find((t=>{var e,i,n,r,l;return(\"function\"==typeof h?null==h?void 0:h(t):h)||(null===(e=t.hasAttribute)||void 0===e?void 0:e.call(t,\"data-lenis-prevent\"))||s&&(null===(i=t.hasAttribute)||void 0===i?void 0:i.call(t,\"data-lenis-prevent-touch\"))||o&&(null===(n=t.hasAttribute)||void 0===n?void 0:n.call(t,\"data-lenis-prevent-wheel\"))||(null===(r=t.classList)||void 0===r?void 0:r.contains(\"lenis\"))&&!(null===(l=t.classList)||void 0===l?void 0:l.contains(\"lenis-stopped\"))})))return;if(this.isStopped||this.isLocked)return void i.preventDefault();if(!(this.options.syncTouch&&s||this.options.smoothWheel&&o))return this.isScrolling=\"native\",void this.animate.stop();i.preventDefault();let a=e;\"both\"===this.options.gestureOrientation?a=Math.abs(e)>Math.abs(t)?e:t:\"horizontal\"===this.options.gestureOrientation&&(a=t);const c=s&&this.options.syncTouch,u=s&&\"touchend\"===i.type&&Math.abs(a)>5;u&&(a=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+a,Object.assign({programmatic:!1},c?{lerp:u?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}))},this.onNativeScroll=()=>{if(clearTimeout(this.__resetVelocityTimeout),delete this.__resetVelocityTimeout,this.__preventNextNativeScrollEvent)delete this.__preventNextNativeScrollEvent;else if(!1===this.isScrolling||\"native\"===this.isScrolling){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-t,this.direction=Math.sign(this.animatedScroll-t),this.isScrolling=\"native\",this.emit(),0!==this.velocity&&(this.__resetVelocityTimeout=setTimeout((()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()}),400))}},window.lenisVersion=\"1.1.2\",t!==document.documentElement&&t!==document.body||(t=window),this.options={wrapper:t,content:e,wheelEventsTarget:i,eventsTarget:s,smoothWheel:o,syncTouch:n,syncTouchLerp:r,touchInertiaMultiplier:l,duration:h,easing:a,lerp:c,infinite:u,gestureOrientation:p,orientation:d,touchMultiplier:m,wheelMultiplier:v,autoResize:g,prevent:w,__experimental__naiveDimensions:S},this.animate=new Animate,this.emitter=new Emitter,this.dimensions=new Dimensions({wrapper:t,content:e,autoResize:g}),this.updateClassName(),this.userData={},this.time=0,this.velocity=this.lastVelocity=0,this.isLocked=!1,this.isStopped=!1,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll=new VirtualScroll(s,{touchMultiplier:m,wheelMultiplier:v}),this.virtualScroll.on(\"scroll\",this.onVirtualScroll)}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName()}on(t,e){return this.emitter.on(t,e)}off(t,e){return this.emitter.off(t,e)}setScroll(t){this.isHorizontal?this.rootElement.scrollLeft=t:this.rootElement.scrollTop=t}resize(){this.dimensions.resize()}emit({userData:t={}}={}){this.userData=t,this.emitter.emit(\"scroll\",this),this.userData={}}reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){this.isStopped&&(this.isStopped=!1,this.reset())}stop(){this.isStopped||(this.isStopped=!0,this.animate.stop(),this.reset())}raf(t){const e=t-(this.time||t);this.time=t,this.animate.advance(.001*e)}scrollTo(t,{offset:e=0,immediate:i=!1,lock:s=!1,duration:o=this.options.duration,easing:n=this.options.easing,lerp:r=!o&&this.options.lerp,onStart:l,onComplete:h,force:a=!1,programmatic:c=!0,userData:u={}}={}){if(!this.isStopped&&!this.isLocked||a){if([\"top\",\"left\",\"start\"].includes(t))t=0;else if([\"bottom\",\"right\",\"end\"].includes(t))t=this.limit;else{let i;if(\"string\"==typeof t?i=document.querySelector(t):(null==t?void 0:t.nodeType)&&(i=t),i){if(this.options.wrapper!==window){const t=this.options.wrapper.getBoundingClientRect();e-=this.isHorizontal?t.left:t.top}const s=i.getBoundingClientRect();t=(this.isHorizontal?s.left:s.top)+this.animatedScroll}}if(\"number\"==typeof t){if(t+=e,t=Math.round(t),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):t=clamp(0,t,this.limit),i)return this.animatedScroll=this.targetScroll=t,this.setScroll(this.scroll),this.reset(),void(null==h||h(this));t!==this.targetScroll&&(c||(this.targetScroll=t),this.animate.fromTo(this.animatedScroll,t,{duration:o,easing:n,lerp:r,onStart:()=>{s&&(this.isLocked=!0),this.isScrolling=\"smooth\",null==l||l(this)},onUpdate:(t,e)=>{this.isScrolling=\"smooth\",this.lastVelocity=this.velocity,this.velocity=t-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=t,this.setScroll(this.scroll),c&&(this.targetScroll=t),e||this.emit({userData:u}),e&&(this.reset(),this.emit({userData:u}),null==h||h(this),this.__preventNextNativeScrollEvent=!0)}}))}}}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?\"x\":\"y\"]}get isHorizontal(){return\"horizontal\"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?function modulo(t,e){return(t%e+e)%e}(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isScrolling(){return this.__isScrolling}set isScrolling(t){this.__isScrolling!==t&&(this.__isScrolling=t,this.updateClassName())}get isStopped(){return this.__isStopped}set isStopped(t){this.__isStopped!==t&&(this.__isStopped=t,this.updateClassName())}get isLocked(){return this.__isLocked}set isLocked(t){this.__isLocked!==t&&(this.__isLocked=t,this.updateClassName())}get isSmooth(){return\"smooth\"===this.isScrolling}get className(){let t=\"lenis\";return this.isStopped&&(t+=\" lenis-stopped\"),this.isLocked&&(t+=\" lenis-locked\"),this.isScrolling&&(t+=\" lenis-scrolling\"),\"smooth\"===this.isScrolling&&(t+=\" lenis-smooth\"),t}updateClassName(){this.cleanUpClassName(),this.rootElement.className=`${this.rootElement.className} ${this.className}`.trim()}cleanUpClassName(){this.rootElement.className=this.rootElement.className.replace(/lenis(-\\w+)?/g,\"\").trim()}}export{Lenis as default};\n//# sourceMappingURL=lenis.mjs.map\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";import Lenis from\"lenis\";// Smooth wheel scrolling on desktop (off on touch devices and below 1024px).\n// Framer navigates client-side, so Lenis must never carry a scroll target from one page to the next:\n// - pressing a link or button kills the momentum immediately (the click lands, nothing keeps coasting),\n// - every route change (link / back / forward) re-syncs Lenis to the real scroll position of the new page.\n// Both layout templates render this component, so there is one shared instance and one history patch per window.\n// ---- tuning ----\nconst LERP=.065// share of the remaining distance per frame: lower = longer, softer ending (Lenis default 0.1)\n;const WHEEL=1.1// distance per wheel tick\n;const halt=()=>{const lenis=window.__sxLenis;if(lenis)lenis.scrollTo(window.scrollY,{immediate:true,force:true});};const resync=()=>{halt();const settle=()=>{const lenis=window.__sxLenis;if(!lenis)return;lenis.resize();halt();};requestAnimationFrame(()=>requestAnimationFrame(settle));setTimeout(settle,300);};function patchHistory(){const w=window;if(w.__sxHistoryPatched)return;w.__sxHistoryPatched=true;const push=history.pushState;history.pushState=function(...args){halt();const r=push.apply(this,args);resync();return r;};window.addEventListener(\"popstate\",resync);document.addEventListener(\"pointerdown\",e=>{if(e.target?.closest?.(\"a, button, [role=button]\"))halt();},true);}export default function SmartSmoothScroll(){useEffect(()=>{const touch=\"ontouchstart\"in window||navigator.maxTouchPoints>0||window.innerWidth<1024;if(touch)return;const w=window;w.__sxLenis?.destroy();// lerp mode instead of a fixed-length tween: every wheel tick adds to the target, so a hard\n// flick carries far and a light touch stays small; the page closes the gap by LERP of the\n// remaining distance per frame, which gives a long soft ease-out at the end.\nconst lenis=new Lenis({lerp:LERP,smoothWheel:true,wheelMultiplier:WHEEL,syncTouch:false});w.__sxLenis=lenis;patchHistory();resync();let frame=requestAnimationFrame(function raf(time){lenis.raf(time);frame=requestAnimationFrame(raf);});return()=>{cancelAnimationFrame(frame);if(w.__sxLenis===lenis){w.__sxLenis=null;lenis.destroy();}};},[]);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"none\"}});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmartSmoothScroll\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Smooth_scroll.map","// Generated by Framer (6b21612)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,PropertyOverrides,RenderTarget,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS,withFX}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Embed from\"https://framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/7LsYGOkyjLv3zWdmJA4n/Embed.js\";import Footer from\"#framer/local/canvasComponent/FF7dljYBM/FF7dljYBM.js\";import NavLinks from\"#framer/local/canvasComponent/l9GPG8fUR/l9GPG8fUR.js\";import CursorCrosshairV2 from\"#framer/local/codeFile/fp58xnT/Cursor.js\";import FooterReveal from\"#framer/local/codeFile/wZVU2hW/FooterReveal.js\";import ImageParallax from\"#framer/local/codeFile/S6Qapjg/ImageParallax.js\";import PageTransition from\"#framer/local/codeFile/PeKB5vj/PageTransition.js\";import SectionGrid from\"#framer/local/codeFile/AK0kA2r/SectionGrid.js\";import SmartSmoothScroll from\"#framer/local/codeFile/tlCxP1H/Smooth_scroll.js\";const PageTransitionFonts=getFonts(PageTransition);const FooterRevealFonts=getFonts(FooterReveal);const ImageParallaxFonts=getFonts(ImageParallax);const SmartSmoothScrollFonts=getFonts(SmartSmoothScroll);const CursorCrosshairV2Fonts=getFonts(CursorCrosshairV2);const NavLinksFonts=getFonts(NavLinks);const MotionDivWithFX=withFX(motion.div);const SectionGridFonts=getFonts(SectionGrid);const FooterFonts=getFonts(Footer);const EmbedFonts=getFonts(Embed);const breakpoints={FYqcM7_Il:\"(min-width: 1440px)\",hGoL_6KJE:\"(min-width: 1024px) and (max-width: 1439.98px)\",LHo5BfgCM:\"(max-width: 809.98px)\",ZKXthuZO2:\"(min-width: 810px) and (max-width: 1023.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-GA33N\";const variantClassNames={FYqcM7_Il:\"framer-v-54ufmd\",hGoL_6KJE:\"framer-v-qncarh\",LHo5BfgCM:\"framer-v-wxclgp\",ZKXthuZO2:\"framer-v-2xhcsk\"};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={hGoL_6KJE:[\".framer-GA33N .framer-b08esk { padding: 0px 80px 0px 80px; }\",\".framer-GA33N .framer-1u2kp2u { padding: 0px 80px 40px 80px; }\",\".framer-GA33N .framer-1tk3xrc-container { height: 100%; left: calc(50.00000000000002% - 118.5185185185185% / 2); top: calc(50.00000000000002% - 100% / 2); width: 119%; }\"],LHo5BfgCM:[\".framer-GA33N .framer-b08esk { padding: 0px 24px 0px 24px; }\",\".framer-GA33N .framer-1u2kp2u { padding: 0px 24px 40px 24px; }\",\".framer-GA33N .framer-1tk3xrc-container { height: 100%; left: calc(50.00000000000002% - 114.03508771929825% / 2); top: calc(49.85590778097985% - 100% / 2); width: 114%; }\"],ZKXthuZO2:[\".framer-GA33N .framer-b08esk { padding: 0px 48px 0px 48px; }\",\".framer-GA33N .framer-1u2kp2u { padding: 0px 48px 40px 48px; }\",\".framer-GA33N .framer-1tk3xrc-container { height: 100%; left: calc(50.00000000000002% - 113.4453781512605% / 2); top: calc(49.87341772151901% - 99.74683544303798% / 2); width: 113%; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={hGoL_6KJE:\".framer-qncarh-override\",LHo5BfgCM:\".framer-wxclgp-override\",ZKXthuZO2:\".framer-2xhcsk-override\"};const rules=[\".framer-GA33N.framer-1j3runr, .framer-GA33N .framer-1j3runr { display: block; }\",\".framer-GA33N.framer-54ufmd { align-content: center; align-items: center; background-color: var(--token-e312a9b5-2209-4da6-bbf8-70a2ccf3b5b2, #e2e1e4); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-GA33N .framer-1jkn61k-container { flex: none; height: 40px; left: 0px; order: -1000; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 40px; }\",\".framer-GA33N .framer-bf369s-container { flex: none; height: 1px; left: 0px; order: -999; position: absolute; top: 0px; width: 1px; }\",\".framer-GA33N .framer-18gog98-container { flex: none; height: 1px; left: 0px; order: -998; position: absolute; top: 0px; width: 1px; }\",\".framer-GA33N .framer-1kohalc-container { flex: none; height: auto; left: 0px; order: -997; position: absolute; top: 0px; width: auto; z-index: 1; }\",\".framer-GA33N .framer-h57gk5-container { flex: none; height: auto; left: 0px; order: -996; position: absolute; top: 0px; width: auto; z-index: 5; }\",\".framer-GA33N .framer-b08esk { -webkit-backdrop-filter: blur(8px); align-content: center; align-items: center; backdrop-filter: blur(8px); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; left: 50%; order: -995; overflow: visible; padding: 0px 120px 0px 120px; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 100%; z-index: 2; }\",\".framer-GA33N .framer-fuhcpb-container, .framer-GA33N .framer-1lfsor3-container { flex: none; height: auto; max-width: 1920px; position: relative; width: 100%; }\",\".framer-GA33N .framer-2t5euj { background-color: var(--token-d607af31-e48d-4751-bb72-383d86c98b00, rgba(43, 43, 45, 0.25)); flex: none; height: 1px; max-width: 1920px; overflow: hidden; position: relative; width: 100%; }\",\".framer-GA33N .framer-utcb72 { background: linear-gradient(270deg, var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, #7c1fff) 0%, var(--token-a340cc26-67d8-46d6-a7d5-1c24a414cd4c, rgba(255, 255, 255, 0.25)) 100%); bottom: 0px; flex: none; gap: 10px; overflow: visible; position: absolute; right: 0px; top: 0px; width: 200%; }\",\".framer-GA33N .framer-fwgu5e { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-GA33N .framer-4s0oqm { background-color: var(--token-d607af31-e48d-4751-bb72-383d86c98b00, rgba(43, 43, 45, 0.25)); flex: none; height: 1px; order: 1007; overflow: hidden; position: relative; width: 100%; }\",\".framer-GA33N .framer-1u2kp2u { align-content: center; align-items: center; background-color: var(--token-e312a9b5-2209-4da6-bbf8-70a2ccf3b5b2, #e2e1e4); display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 180px; height: min-content; justify-content: center; max-width: 2160px; order: 1008; overflow: visible; padding: 0px 120px 40px 120px; position: relative; width: 100%; }\",\".framer-GA33N .framer-1aq5x92-container { flex: none; height: 100%; left: 0px; pointer-events: none; position: absolute; top: 0px; width: 100%; }\",\".framer-GA33N .framer-1tk3xrc-container { flex: none; height: 100%; left: calc(50.00000000000002% - 120% / 2); position: absolute; top: calc(50.00000000000002% - 99.70588235294117% / 2); width: 120%; z-index: -1; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={FYqcM7_Il:\"(min-width: 1440px)\",hGoL_6KJE:\"(min-width: 1024px) and (max-width: 1439.98px)\",LHo5BfgCM:\"(max-width: 809.98px)\",ZKXthuZO2:\"(min-width: 810px) and (max-width: 1023.98px)\"};const humanReadableVariantMap={Desktop:\"FYqcM7_Il\",Laptop:\"hGoL_6KJE\",Phone:\"LHo5BfgCM\",Tablet:\"ZKXthuZO2\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"FYqcM7_Il\"};};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{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(!isBrowser())return true;if([\"ZKXthuZO2\",\"LHo5BfgCM\"].includes(baseVariant))return false;return true;};useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"FYqcM7_Il\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-e312a9b5-2209-4da6-bbf8-70a2ccf3b5b2, rgb(226, 225, 228)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-54ufmd\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1jkn61k-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"page transition\",isAuthoredByUser:true,layoutScroll:true,name:\"page transition\",nodeId:\"aRJu6rlJ7\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(PageTransition,{color:\"rgb(236, 235, 238)\",enabled:true,height:\"100%\",id:\"aRJu6rlJ7\",layoutId:\"aRJu6rlJ7\",lineColor:\"rgb(168, 167, 171)\",name:\"page transition\",numColor:\"rgb(27, 27, 30)\",style:{height:\"100%\",width:\"100%\"},textColor:\"rgb(124, 31, 255)\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-bf369s-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"footer reveal\",isAuthoredByUser:true,name:\"footer reveal\",nodeId:\"qLs_fElUc\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(FooterReveal,{height:\"100%\",id:\"qLs_fElUc\",layoutId:\"qLs_fElUc\",name:\"footer reveal\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-18gog98-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"image parallax\",isAuthoredByUser:true,name:\"image parallax\",nodeId:\"Txn2U56vA\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(ImageParallax,{height:\"100%\",id:\"Txn2U56vA\",layoutId:\"Txn2U56vA\",name:\"image parallax\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1kohalc-container\",isAuthoredByUser:true,nodeId:\"wskwesTxf\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(SmartSmoothScroll,{height:\"100%\",id:\"wskwesTxf\",layoutId:\"wskwesTxf\",width:\"100%\"})})}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-h57gk5-container hidden-2xhcsk hidden-wxclgp\",isAuthoredByUser:true,nodeId:\"uYi0aSWW8\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(CursorCrosshairV2,{arrowColor:\"var(--token-cd708a3c-25bb-4606-92f4-351c74f13945, rgb(27, 27, 30))\",arrowHoverColor:\"var(--token-cd708a3c-25bb-4606-92f4-351c74f13945, rgb(27, 27, 30))\",arrowOutline:\"rgb(255, 255, 255)\",arrowSize:18,defaultColor:\"rgb(179, 179, 182)\",defaultDotSize:9,flow:.5,height:\"100%\",heroArrowSize:32,heroScroll:40,heroSelector:'[data-framer-name=\"hero + curtain\"]',hoverColor:\"var(--token-4fcf50f5-6179-46db-b312-6d11d9cd19b5, rgb(124, 31, 255))\",hoverDotSize:13,id:\"uYi0aSWW8\",layoutId:\"uYi0aSWW8\",lineFade:90,lineGap:10,mode:\"arrow\",morph:true,rotate:true,showLines:true,width:\"100%\"})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-b08esk\",\"data-framer-layout-hint-center-x\":true,\"data-framer-name\":\"navbar\",transformTemplate:transformTemplate1,children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hGoL_6KJE:{width:\"min(100vw - 160px, 1920px)\"},LHo5BfgCM:{width:\"min(100vw - 48px, 1920px)\"},ZKXthuZO2:{width:\"min(100vw - 96px, 1920px)\"}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:83,width:\"min(100vw - 240px, 1920px)\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-fuhcpb-container\",nodeId:\"PDjX2YS_c\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{LHo5BfgCM:{variant:matchVariant(\"FKbEZPJLt\")}},children:/*#__PURE__*/_jsx(NavLinks,{height:\"100%\",id:\"PDjX2YS_c\",layoutId:\"PDjX2YS_c\",style:{maxWidth:\"100%\",width:\"100%\"},variant:matchVariant(\"fZfZdYOHc\"),width:\"100%\"})})})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-2t5euj\",\"data-framer-name\":\"progress bar\",children:/*#__PURE__*/_jsx(MotionDivWithFX,{__framer__styleTransformEffectEnabled:true,__framer__transformTargets:[{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:0,skewX:0,skewY:0,x:0,y:0}},{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0}}],__framer__transformTrigger:\"onScroll\",__perspectiveFX:false,__targetOpacity:1,className:\"framer-utcb72\",\"data-framer-name\":\"progress\",style:{transformPerspective:1200}})})]}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-fwgu5e\"}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-4s0oqm\"}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1u2kp2u\",\"data-framer-name\":\"footer\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1aq5x92-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"section grid\",isAuthoredByUser:true,name:\"section grid\",nodeId:\"pVCSEFLmY\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(SectionGrid,{dividers:\"2,4,6\",edgeBottom:false,edgeTop:false,fill:\"var(--token-e312a9b5-2209-4da6-bbf8-70a2ccf3b5b2, rgb(226, 225, 228))\",fillArea:\"band\",height:\"100%\",id:\"pVCSEFLmY\",inset:-1,layoutId:\"pVCSEFLmY\",line:\"rgba(43, 43, 45, 0.25)\",name:\"section grid\",sides:true,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hGoL_6KJE:{width:\"min(min(100vw, 2160px) - 160px, 1920px)\"},LHo5BfgCM:{width:\"min(min(100vw, 2160px) - 48px, 1920px)\"},ZKXthuZO2:{width:\"min(min(100vw, 2160px) - 96px, 1920px)\"}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:508,width:\"min(min(100vw, 2160px) - 240px, 1920px)\",y:1001,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1lfsor3-container\",nodeId:\"JvJ7D_QEM\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{hGoL_6KJE:{variant:matchVariant(\"a7Eyyzgee\")},LHo5BfgCM:{variant:matchVariant(\"rm3kfWLuK\")},ZKXthuZO2:{variant:matchVariant(\"a7Eyyzgee\")}},children:/*#__PURE__*/_jsx(Footer,{height:\"100%\",id:\"JvJ7D_QEM\",layoutId:\"JvJ7D_QEM\",style:{maxWidth:\"100%\",width:\"100%\"},variant:matchVariant(\"jrG4uFPXX\"),width:\"100%\"})})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1tk3xrc-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"ifQxNjCP9\",scopeId:\"ff1cxan6a\",children:/*#__PURE__*/_jsx(Embed,{height:\"100%\",html:'<div id=\"topo-wrap\">\\n  <canvas id=\"c\"></canvas>\\n</div>\\n\\n<style>\\n  #topo-wrap{\\n    position:absolute; inset:0;\\n    width:100%; height:100%;\\n    overflow:hidden;\\n  }\\n  #c{ width:100%; height:100%; display:block; }\\n</style>\\n\\n<script type=\"module\">\\n  // the noise library loads only when the footer is first revealed (not with the page)\\n  let Perlin = null;\\n  // decorative background: give the frame a title and hide it from screen readers\\n  try { const f = window.frameElement; if (f) { f.title = \"Decorative background\"; f.setAttribute(\"aria-hidden\", \"true\"); f.tabIndex = -1; } } catch(e) {}\\n\\n  // ---- Performance / subtle look\\n  let res = 12;                 // 9–14 (większe = lżej)\\n  const thresholdStep = 5;      // 5–8 (większe = mniej linii)\\n  const speed = 0.0004;         // 0.0004–0.0009\\n  const lineRGBA = \"rgba(235,235,235,0.25)\"; // szary + opacity\\n  const thickEvery = 2;         // co ile pr\\xf3g grubsza linia\\n  // ----\\n\\n  const canvas = document.getElementById(\"c\");\\n  const ctx = canvas.getContext(\"2d\");\\n\\n  let cols=0, rows=0;\\n  let z=0;\\n  let input=[];\\n  let noiseMin=999, noiseMax=-999;\\n  let currentThreshold=0;\\n\\n  function resize(){\\n    const wrap = canvas.parentElement.getBoundingClientRect();\\n    const dpr = window.devicePixelRatio || 1;\\n\\n    canvas.width = Math.floor(wrap.width * dpr);\\n    canvas.height = Math.floor(wrap.height * dpr);\\n    ctx.setTransform(dpr,0,0,dpr,0,0);\\n\\n    cols = Math.floor(wrap.width / res) + 2;\\n    rows = Math.floor(wrap.height / res) + 2;\\n  }\\n  window.addEventListener(\"resize\", resize);\\n\\n  function generateNoise(){\\n    input = [];\\n    noiseMin = 999; noiseMax = -999;\\n\\n    for(let y=0;y<rows;y++){\\n      input[y]=[];\\n      for(let x=0;x<cols;x++){\\n        const v = Perlin.noise(x*0.02, y*0.02, z) * 100;\\n        input[y][x]=v;\\n        if(v<noiseMin) noiseMin=v;\\n        if(v>noiseMax) noiseMax=v;\\n      }\\n    }\\n  }\\n\\n  const lerp = (x0,x1)=> (x0===x1?0: (currentThreshold-x0)/(x1-x0));\\n  const type = (nw,ne,se,sw)=> [nw,ne,se,sw].reduce((r,b)=>(r<<1)|b,0);\\n  const seg = (a,b)=>{ ctx.moveTo(a[0],a[1]); ctx.lineTo(b[0],b[1]); };\\n\\n  function placeLines(g,x,y){\\n    const nw=input[y][x], ne=input[y][x+1], se=input[y+1][x+1], sw=input[y+1][x];\\n    let a,b,c,d;\\n\\n    switch(g){\\n      case 1: case 14:\\n        c=[x*res + res*lerp(sw,se), y*res+res];\\n        d=[x*res, y*res + res*lerp(nw,sw)];\\n        seg(d,c); break;\\n\\n      case 2: case 13:\\n        b=[x*res+res, y*res + res*lerp(ne,se)];\\n        c=[x*res + res*lerp(sw,se), y*res+res];\\n        seg(b,c); break;\\n\\n      case 3: case 12:\\n        b=[x*res+res, y*res + res*lerp(ne,se)];\\n        d=[x*res, y*res + res*lerp(nw,sw)];\\n        seg(d,b); break;\\n\\n      case 4: case 11:\\n        a=[x*res + res*lerp(nw,ne), y*res];\\n        b=[x*res+res, y*res + res*lerp(ne,se)];\\n        seg(a,b); break;\\n\\n      case 5:\\n        a=[x*res + res*lerp(nw,ne), y*res];\\n        b=[x*res+res, y*res + res*lerp(ne,se)];\\n        c=[x*res + res*lerp(sw,se), y*res+res];\\n        d=[x*res, y*res + res*lerp(nw,sw)];\\n        seg(d,a); seg(c,b); break;\\n\\n      case 6: case 9:\\n        a=[x*res + res*lerp(nw,ne), y*res];\\n        c=[x*res + res*lerp(sw,se), y*res+res];\\n        seg(c,a); break;\\n\\n      case 7: case 8:\\n        a=[x*res + res*lerp(nw,ne), y*res];\\n        d=[x*res, y*res + res*lerp(nw,sw)];\\n        seg(d,a); break;\\n\\n      case 10:\\n        a=[x*res + res*lerp(nw,ne), y*res];\\n        b=[x*res+res, y*res + res*lerp(ne,se)];\\n        c=[x*res + res*lerp(sw,se), y*res+res];\\n        d=[x*res, y*res + res*lerp(nw,sw)];\\n        seg(a,b); seg(c,d); break;\\n    }\\n  }\\n\\n  function drawContours(){\\n    ctx.strokeStyle = lineRGBA;\\n    ctx.lineCap = \"round\";\\n    ctx.lineJoin = \"round\";\\n\\n    const min = Math.floor(noiseMin/thresholdStep)*thresholdStep;\\n    const max = Math.ceil(noiseMax/thresholdStep)*thresholdStep;\\n\\n    for(let t=min;t<max;t+=thresholdStep){\\n      currentThreshold=t;\\n      ctx.beginPath();\\n      ctx.lineWidth = (t % (thresholdStep*thickEvery) === 0) ? 1.4 : 1.0;\\n\\n      for(let y=0;y<rows-1;y++){\\n        for(let x=0;x<cols-1;x++){\\n          const A=input[y][x] > currentThreshold ? 1:0;\\n          const B=input[y][x+1] > currentThreshold ? 1:0;\\n          const C=input[y+1][x+1] > currentThreshold ? 1:0;\\n          const D=input[y+1][x] > currentThreshold ? 1:0;\\n          if((A&&B&&C&&D)||(!A&&!B&&!C&&!D)) continue;\\n          placeLines(type(A,B,C,D), x, y);\\n        }\\n      }\\n      ctx.stroke();\\n    }\\n  }\\n\\n  // animate only while the footer is actually revealed: it sits pinned behind the page (always \"on screen\"\\n  // geometrically), so the test is how close the page is to its end, measured in the top window\\n  let raf = null;\\n  const top = (()=>{ try { return window.parent && window.parent.document ? window.parent : null } catch(e){ return null } })();\\n  function revealed(){\\n    if(!top) return true;\\n    const d = top.document.documentElement;\\n    const footerH = (window.frameElement && window.frameElement.getBoundingClientRect().height) || top.innerHeight;\\n    return d.scrollHeight - (top.scrollY + top.innerHeight) < footerH + 100;\\n  }\\n  async function check(){\\n    const on = revealed();\\n    if(on && raf === null){\\n      if(!Perlin) Perlin = await import(\"https://esm.sh/@chriscourses/perlin-noise\");\\n      if(raf === null && revealed()) loop();\\n    }\\n    if(!on && raf !== null){ cancelAnimationFrame(raf); raf = null; }\\n  }\\n  if(top){ top.addEventListener(\"scroll\", check, { passive:true }); top.addEventListener(\"resize\", check); }\\n\\n  function loop(){\\n    const wrap = canvas.getBoundingClientRect();\\n    ctx.clearRect(0,0,wrap.width,wrap.height);\\n\\n    z += speed;\\n    generateNoise();\\n    drawContours();\\n\\n    raf = requestAnimationFrame(loop);\\n  }\\n\\n  resize();\\n  check();\\n</script>\\n',id:\"ifQxNjCP9\",layoutId:\"ifQxNjCP9\",radius:\"0px\",style:{height:\"100%\",width:\"100%\"},type:\"html\",url:\"\",width:\"100%\",zoom:1})})})]})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=selectors[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1440\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"hGoL_6KJE\":{\"layout\":[\"fixed\",\"fixed\"]},\"ZKXthuZO2\":{\"layout\":[\"fixed\",\"fixed\"]},\"LHo5BfgCM\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"FYqcM7_Il\":[\".framer-1jkn61k-container\",\".framer-bf369s-container\",\".framer-18gog98-container\",\".framer-1kohalc-container\",\".framer-h57gk5-container\",\".framer-b08esk\",\".framer-4s0oqm\",\".framer-1u2kp2u\"],\"hGoL_6KJE\":[\".framer-1jkn61k-container\",\".framer-bf369s-container\",\".framer-18gog98-container\",\".framer-1kohalc-container\",\".framer-h57gk5-container\",\".framer-b08esk\",\".framer-4s0oqm\",\".framer-1u2kp2u\"],\"ZKXthuZO2\":[\".framer-1jkn61k-container\",\".framer-bf369s-container\",\".framer-18gog98-container\",\".framer-1kohalc-container\",\".framer-b08esk\",\".framer-4s0oqm\",\".framer-1u2kp2u\"],\"LHo5BfgCM\":[\".framer-1jkn61k-container\",\".framer-bf369s-container\",\".framer-18gog98-container\",\".framer-1kohalc-container\",\".framer-b08esk\",\".framer-4s0oqm\",\".framer-1u2kp2u\"]}\n * @framerBreakpoints {\"FYqcM7_Il\":{\"min\":1440,\"canvasClassName\":\"framer-54ufmd-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1440,\"rootFontSize\":16},\"hGoL_6KJE\":{\"min\":1024,\"max\":1439,\"canvasClassName\":\"framer-qncarh-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Laptop\",\"width\":1024,\"rootFontSize\":16},\"ZKXthuZO2\":{\"min\":810,\"max\":1023,\"canvasClassName\":\"framer-2xhcsk-override\",\"minHeight\":1000,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"LHo5BfgCM\":{\"max\":809,\"canvasClassName\":\"framer-wxclgp-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant FYqcM7_Il\n * @framerLayoutTemplate true\n */const Framerff1cxan6a=withCSS(Component,css,\"framer-GA33N\");export default Framerff1cxan6a;Framerff1cxan6a.displayName=\"Home (section grid)\";Framerff1cxan6a.defaultProps={height:1e3,width:1440};addFonts(Framerff1cxan6a,[{explicitInter:true,fonts:[]},...PageTransitionFonts,...FooterRevealFonts,...ImageParallaxFonts,...SmartSmoothScrollFonts,...CursorCrosshairV2Fonts,...NavLinksFonts,...SectionGridFonts,...FooterFonts,...EmbedFonts],{supportsExplicitInterCodegen:true});Framerff1cxan6a.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(NavLinks,{},context),()=>forwardLoader(Footer,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerff1cxan6a\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerHitTargets\":\"{\\\"FYqcM7_Il\\\":[\\\".framer-1jkn61k-container\\\",\\\".framer-bf369s-container\\\",\\\".framer-18gog98-container\\\",\\\".framer-1kohalc-container\\\",\\\".framer-h57gk5-container\\\",\\\".framer-b08esk\\\",\\\".framer-4s0oqm\\\",\\\".framer-1u2kp2u\\\"],\\\"hGoL_6KJE\\\":[\\\".framer-1jkn61k-container\\\",\\\".framer-bf369s-container\\\",\\\".framer-18gog98-container\\\",\\\".framer-1kohalc-container\\\",\\\".framer-h57gk5-container\\\",\\\".framer-b08esk\\\",\\\".framer-4s0oqm\\\",\\\".framer-1u2kp2u\\\"],\\\"ZKXthuZO2\\\":[\\\".framer-1jkn61k-container\\\",\\\".framer-bf369s-container\\\",\\\".framer-18gog98-container\\\",\\\".framer-1kohalc-container\\\",\\\".framer-b08esk\\\",\\\".framer-4s0oqm\\\",\\\".framer-1u2kp2u\\\"],\\\"LHo5BfgCM\\\":[\\\".framer-1jkn61k-container\\\",\\\".framer-bf369s-container\\\",\\\".framer-18gog98-container\\\",\\\".framer-1kohalc-container\\\",\\\".framer-b08esk\\\",\\\".framer-4s0oqm\\\",\\\".framer-1u2kp2u\\\"]}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"1000\",\"framerLayoutTemplate\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerBreakpoints\":\"{\\\"FYqcM7_Il\\\":{\\\"min\\\":1440,\\\"canvasClassName\\\":\\\"framer-54ufmd-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1440,\\\"rootFontSize\\\":16},\\\"hGoL_6KJE\\\":{\\\"min\\\":1024,\\\"max\\\":1439,\\\"canvasClassName\\\":\\\"framer-qncarh-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Laptop\\\",\\\"width\\\":1024,\\\"rootFontSize\\\":16},\\\"ZKXthuZO2\\\":{\\\"min\\\":810,\\\"max\\\":1023,\\\"canvasClassName\\\":\\\"framer-2xhcsk-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"LHo5BfgCM\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-wxclgp-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"hGoL_6KJE\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"ZKXthuZO2\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"LHo5BfgCM\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1440\",\"framerDefaultVariant\":\"FYqcM7_Il\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport HomeSectionGrid from \"https://framerusercontent.com/modules/gOk1FohUg9JBYcSd7QMG/eKilFJnmL6nsAqBEzgXU/ff1cxan6a.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {I7LDXTSmX: \"11\", iKhAQfVia: \"222\", O9UXLst12: \"333\", R48yq5leG: \"444\", sQJWBBCFy: \"555\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/bb81GSAXfDfqbFlkOkHx/I8AwCK6WQBrtgFYu33dE/augiA20Il.js\")), path: \"/\"}, xaVhC_xTq: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/7DgjZEKlB1VFFhXXhn10/ZO3kb7r84n9kX0LpYcc6/xaVhC_xTq.js\")), path: \"/projects\"}, BQxSXX7Vv: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/mb9E9kxraUhRDMVVDMIe/l1glLm8538L2OF5EI6Zl/BQxSXX7Vv.js\")), path: \"/about\"}, DWCmTKfwD: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/FBTJK40MjczZOiBHzR7K/3P036QPXf75skCi06I8b/DWCmTKfwD.js\")), path: \"/privacy\"}, gLKvOJpje: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/fSLCByNGYHc1kZWUWhTw/5UNkCwgbUKpnqECnyZCw/gLKvOJpje.js\")), path: \"/terms\"}, VT71nEHMT: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/4ORcas2hd5KxmgIj8gxt/zO7WKuxtQxDpDlUOTar7/VT71nEHMT.js\")), path: \"/cookies\"}, ElzBhd0WH: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/yfWMs2M5zy78QUdPVn1F/izvlBzpHP95GFY5qe9qf/ElzBhd0WH.js\")), path: \"/blog\"}, jQl8KobkC: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/cXkftVvycoEHj9GWdHqQ/QUl015xL7tIiev4pPYec/jQl8KobkC.js\")), path: \"/contact\"}, yr4rfTpO1: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/lBv6i3lTqkiDWy0ujocc/dj9qjAjbBw6I0YlHsUnV/yr4rfTpO1.js\")), path: \"/404\"}, SWTHt0YqT: {elements: {D3fDa4OUN: \"zuk\", DCOqFk_in: \"about\", dQE9sb43w: \"projects-1\", DQleXY8OX: \"zuk-1\", fePhIbyLF: \"lab\", HO4Da77VY: \"future-1\", lJhWROTPw: \"process-1\", NmtELvftN: \"nfc\", NxdJuwHJq: \"current\", oN3Rx3bwb: \"nfc-1\", Ptnrbuy3U: \"about-1\", Q05mHu9oT: \"future\", Q5D61hw_o: \"current-1\", RgOadbqu0: \"process\", Tfvcqg5WX: \"projects\", TnRAgUPxt: \"lab-1\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/kwsAsYpcu80xmGtQSRrj/dM0m3CiTonN6VHr93ycP/SWTHt0YqT.js\")), path: \"/lab\"}, SPjMok9Z6: {collectionId: \"QdM8u0QuZ\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/rNStZEzg5XEkjtmUo3Vh/Ip9rwrUtomJNsdNWwse7/SPjMok9Z6.js\")), path: \"/blog/:ktuk2Xbs4\"}, p6RsvzDN9: {collectionId: \"r4v_cg9CW\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/wAipThPIk8deGbMNnGEE/nLh5hbop8j7XUZ4wil5b/p6RsvzDN9.js\")), path: \"/work/:SYvt2h1be/\"}}\r\n\r\n\t\tconst locales = [{code: \"en-US\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {QdM8u0QuZ: async () => (await import(\"https://framerusercontent.com/modules/jiavsebJC10SO5lgAiMe/mOHpvla0yx9pYpGoULt2/QdM8u0QuZ.js\"))?.[\"utils\"], r4v_cg9CW: async () => (await import(\"https://framerusercontent.com/modules/xfTfUu86dB38qFNgDkGy/bUWFCgq10JtPwpVaSTXt/r4v_cg9CW.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"9b7b34e02405e46e8fc744a7ffe7b0abc51b5fe63c4e9a1f18e55a47595f4def\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"xaVhC_xTq\":\r\ncase \"BQxSXX7Vv\":\r\ncase \"DWCmTKfwD\":\r\ncase \"gLKvOJpje\":\r\ncase \"VT71nEHMT\":\r\ncase \"ElzBhd0WH\":\r\ncase \"jQl8KobkC\":\r\ncase \"yr4rfTpO1\":\r\ncase \"SWTHt0YqT\":\r\ncase \"SPjMok9Z6\":\r\ncase \"p6RsvzDN9\":\r\nreturn React.createElement(HomeSectionGrid, {...props, key: \"HomeSectionGrid\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"xaVhC_xTq\":\r\ncase \"BQxSXX7Vv\":\r\ncase \"DWCmTKfwD\":\r\ncase \"gLKvOJpje\":\r\ncase \"VT71nEHMT\":\r\ncase \"ElzBhd0WH\":\r\ncase \"jQl8KobkC\":\r\ncase \"yr4rfTpO1\":\r\ncase \"SWTHt0YqT\":\r\ncase \"SPjMok9Z6\":\r\ncase \"p6RsvzDN9\":\r\nreturn [{hash: \"54ufmd\", mediaQuery: \"(min-width: 1440px)\"}, {hash: \"qncarh\", mediaQuery: \"(min-width: 1024px) and (max-width: 1439.98px)\"}, {hash: \"2xhcsk\", mediaQuery: \"(min-width: 810px) and (max-width: 1023.98px)\"}, {hash: \"wxclgp\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/lBv6i3lTqkiDWy0ujocc/dj9qjAjbBw6I0YlHsUnV/yr4rfTpO1.js\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://structule.com\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: false,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/1rYJrf10rKn7G44Az2pV/aolUVa0RtkIKMq6QJ3Ts/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}