{"version":3,"file":"shared-lib.DP6Tr2V8.mjs","names":["useMemo","useState","useRef","useState","useRef","c","mask","SVG","getProps","Icon","React.forwardRef","mask","SVG","getProps","Icon","React.forwardRef","mask","SVG","getProps","Icon","React.forwardRef","React.forwardRef","__esmMin","pe","init_npm_react_18_3_1","init_ssg_sandbox_shims","window","_e","Ha","p","c","J","init_jsx_runtime","ce","de","motion","cx","init_framer_CaDWdxiz","ControlType","withCSS","RenderTarget","addPropertyControls","containerStyles","emptyStateStyle","init_constants","init_useOnNavigationTargetChange","init_useConstant","init_colorFromToken","init_isMotionValue","init_useUniqueClassName","init_variantUtils","init_isBrowser","init_useOnChange","init_useAutoMotionValue","init_useFontControls","useIsOnCanvas","init_useRenderTarget","init_useControlledState","init_propUtils","init_OIjZRBmWDcIE2B6qgG1j","init_default_utils","Embed","type","url","EmbedUrl","html","EmbedHtml","Instructions","getMinHeight","style","centerTextStyle","hasAutoHeight","onCanvas","state","setState","isLastEffect","load","response","isBlocked","message","error","ErrorMessage","LoadingIndicator","iframeStyle","border","radius","getSandbox","result","props","hasSplineViewer","hasComment","EmbedHtmlWithScripts","EmbedHtmlInsideIframe","EmbedHtmlWithoutScripts","ref","iframeHeight","setIframeHeight","iframeWindow","handleMessage","event","data","height","srcDoc","currentStyle","div","executeScripts","htmlStyle","node","script","name","value","child","init_Embed","navigateInApp","norm","routeId","ROUTES","st","w","clickedAt","installSiteFx","reduce","toast","toastTimer","notify","COPY_NOTE","isPhoto","t","raf","scan","img","show","freezeMap","d","f","still","BP","maps","mapTimer","scanAll","schedule","main","pageRoot","root","r","tip","card","hideTimer","removeTimer","hideTip","wordAt","walker","n","text","items","at","range","hit","x","y","showTip","showing","h","left","rect","above","fitsBelow","useAbove","below","top","warmCovers","g","HOME_GROUPS","later","rootsFor","named","el","hitAt","onHome","rafMove","lastMove","ev","target","down","start","installTileSlideshow","lists","pick","best","bestW","srcset","m","part","src","getList","cached","href","re","all","tag","wide","l","im","done","res","sleep","ms","cur","run","dwell","stop","layer","play","tile","list","my","imgs","wrap","z","fails","i","ok","next","prev","tileOf","SiteHeader","rawLinks","links","isCanvas","open","setOpen","hidden","setHidden","scrolled","setScrolled","hoverMark","setHoverMark","hoverTimer","rootRef","openRef","mounted","setMounted","path","setPath","onPop","lastY","travel","ticking","onScroll","dy","s","hideOnScroll","frame","EASE","onKey","onResize","active","showTimer","longTimer","longPress","lastType","sx","sy","end","e","move","up","cancel","leave","click","menu","isActive","u","css","ink","SANS","muted","Icon","isCollapsed","collapse","words","renderName","head","tail","wi","c$1","live","ci","ch","renderMark","onClick","subtitle","sheet","paper","rule","delay","SERIF","tagline","socials","COVERS","linkControl","init_SiteHeader","init_npm_react_dom_18_3_1","mask$3","SVG$3","getProps$3","Icon$3","init_JiUMjIJeF","rest","animated","restProps","className","mask$2","SVG$2","getProps$2","Icon$2","init_KE4YEuNPh","mask$1","SVG$1","getProps$1","Icon$1","init_SISVZzHDN","mask","SVG","getProps","init_Zp4x_2YD5"],"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/SYUf4cLJfNi6I3vji9xo/eka9iQ5yZo56scIiWcj1/SiteHeader.js","https:/framerusercontent.com/modules/UhBWODqqO6Tz8ypRyAOy/DgVO8afD0IwB1zxM3tMr/JiUMjIJeF.js","https:/framerusercontent.com/modules/Nb90D8viPZPXGnAlifZE/792iGz9cVkk3fqp3IOcz/KE4YEuNPh.js","https:/framerusercontent.com/modules/jLIBpOF9DKbX6xYCfWY0/UzyRvp4sMcmPpTBzuoW4/SISVZzHDN.js","https:/framerusercontent.com/modules/wiOLJ0c6p40a60nwzGLZ/ebkrG9YyY7CmRl1WGxDO/Zp4x_2YD5.js"],"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","// JElkPhoto site header: wordmark + \"Photography\" + nav; collapses to a menu sheet on phones.\n// Also hosts site-wide polish (it's on every page): in-app page changes for the nav links, a soft\n// page-enter fade, images that fade in as they load, and SmugMug-style photo copy protection.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const SERIF='\"Newsreader\", \"Newsreader Placeholder\", Georgia, serif';const SANS='\"Schibsted Grotesk\", \"Schibsted Grotesk Placeholder\", system-ui, sans-serif';const EASE=\"cubic-bezier(0.22, 1, 0.36, 1)\";const BP=810// below this width the nav collapses into the menu\n;const norm=u=>(u||\"/\").replace(/\\/$/,\"\")||\"/\";// Framer page ids for the nav targets, so header links change pages in-app (no white reload flash)\nconst ROUTES={\"/\":\"augiA20Il\",\"/portfolio\":\"CnjfKTSPY\",\"/about\":\"uRccVxEC8\",\"/book\":\"pXIwPELCZ\",\"/search\":\"dDMmHh0fM\"};const COPY_NOTE=\"\\xa9 Jonah Elkowitz. All photos are protected by copyright and may not be downloaded or used without permission.\";// home page: hovering (mouse/trackpad) or tapping (touch) a category word shows that gallery's cover\nconst COVERS={politics:{label:\"Politics\",href:\"/galleries/politics\",src:\"https://framerusercontent.com/images/PkloW9nFB6NU9BXZO4ckRZP0w.webp?scale-down-to=512\"},sports:{label:\"Sports\",href:\"/galleries/sports\",src:\"https://framerusercontent.com/images/wd8BWkjM8ad0KouYwroiGS8LWRQ.webp?scale-down-to=512\"},commercial:{label:\"Commercial\",href:\"/galleries/commercial\",src:\"https://framerusercontent.com/images/nHFtHadXKwUtUYy1ZFWelX9Q2w.webp?scale-down-to=512\"},events:{label:\"Events\",href:\"/galleries/events\",src:\"https://framerusercontent.com/images/aDAljO6Be7fseDTAF1Od93iWeA.jpg?scale-down-to=512\"}};// each group only matches inside its own layer, so \"commercial\" in one never triggers the other\nconst HOME_GROUPS=[{layer:\"Statement text\",items:[{word:\"news\",...COVERS.politics},{word:\"sports\",...COVERS.sports},{word:\"commercial work\",...COVERS.commercial}]},{layer:\"Meta\",below:true,items:[{word:\"editorial\",...COVERS.politics},{word:\"commercial\",...COVERS.commercial},{word:\"events\",...COVERS.events}]}];function navigateInApp(e,url){if(typeof window===\"undefined\"||!e||e.defaultPrevented)return false;if(e.button!==undefined&&e.button!==0)return false;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return false;const p=norm(url);const routeId=ROUTES[p];const st=window.history.state;if(!routeId||!st||!st.routeId)return false// Framer's router not detected: let the browser navigate\n;e.preventDefault();if(norm(window.location.pathname)===p){window.scrollTo({top:0,behavior:\"smooth\"});return true;}const w=window;const clickedAt=Date.now();const state={routeId,pathVariables:{},localeId:st.localeId||\"default\"};w.__jeTop=true;window.history.pushState(state,\"\",p);window.dispatchEvent(new PopStateEvent(\"popstate\",{state}));// safety net: if Framer didn't swap the page in, fall back to a normal page load\nsetTimeout(()=>{if(norm(window.location.pathname)===p&&!((w.__jeSwapAt||0)>=clickedAt))window.location.assign(p);},1600);return true;}// installed once per page load; survives the header remounting on every page change\nfunction installSiteFx(){const w=window;if(w.__jeFx)return;w.__jeFx=true;const reduce=!!window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;// copy protection, like SmugMug: no right-click/long-press save or drag on photos, with a notice\nlet toast=null;let toastTimer=null;const notify=()=>{if(!toast){toast=document.createElement(\"div\");toast.className=\"je-toast\";toast.setAttribute(\"role\",\"status\");toast.setAttribute(\"aria-live\",\"polite\");toast.textContent=COPY_NOTE;document.body.appendChild(toast);void toast.offsetWidth;}toast.classList.add(\"je-toast-on\");clearTimeout(toastTimer);toastTimer=setTimeout(()=>toast&&toast.classList.remove(\"je-toast-on\"),3200);};const PHOTO='img, picture, svg image, [data-framer-name=\"Photo\"], [data-framer-name=\"Gallery tile\"], .hs-stage, .glb-root, [data-framer-background-image-wrapper]';const isPhoto=t=>!!(t&&t.closest&&t.closest(PHOTO));window.addEventListener(\"contextmenu\",e=>{if(isPhoto(e.target)){e.preventDefault();notify();}},true);window.addEventListener(\"dragstart\",e=>{if(isPhoto(e.target)){e.preventDefault();notify();}},true);window.addEventListener(\"keydown\",e=>{if((e.metaKey||e.ctrlKey)&&!e.shiftKey&&(e.key===\"s\"||e.key===\"S\")){e.preventDefault();notify();}},true);// images fade in as they arrive instead of painting in strips\nconst SKIP='[data-framer-name=\"Photo card\"], .hs-slide, .glb-root, .jh-wrap';let raf=0;const scan=()=>{raf=0;document.querySelectorAll(\"#main img:not([data-je-seen])\").forEach(node=>{const img=node;img.setAttribute(\"data-je-seen\",\"\");if(img.closest(SKIP)||img.complete&&img.naturalWidth)return;img.setAttribute(\"data-je-fx\",\"\");img.setAttribute(\"data-je-wait\",\"\");const show=()=>img.removeAttribute(\"data-je-wait\");img.addEventListener(\"load\",show,{once:true});img.addEventListener(\"error\",show,{once:true});setTimeout(show,8e3);});};// footer Manhattan outline: draws itself in on larger screens and on the phone home page; other pages on phones show it already drawn\nconst MAP_STILL=\"#mh-svg .mh{-webkit-animation:none!important;animation:none!important;stroke-dashoffset:0!important;fill-opacity:.45!important}\";const freezeMap=f=>{try{const d=f.contentDocument;if(!d||!d.getElementById(\"mh-svg\"))return false;const still=window.innerWidth<BP&&norm(window.location.pathname)!==\"/\";let st=d.getElementById(\"mh-still\");if(still&&!st){st=d.createElement(\"style\");st.id=\"mh-still\";st.textContent=MAP_STILL;(d.head||d.documentElement).appendChild(st);}else if(!still&&st)st.remove();return true;}catch(e){return false;}};const maps=()=>{document.querySelectorAll('iframe[srcdoc*=\"mh-svg\"]').forEach(node=>{const f=node;freezeMap(f);if(!f.hasAttribute(\"data-je-map\")){f.setAttribute(\"data-je-map\",\"\");f.addEventListener(\"load\",()=>freezeMap(f));}});};let mapTimer=null;window.addEventListener(\"resize\",()=>{clearTimeout(mapTimer);mapTimer=setTimeout(maps,150);});const scanAll=()=>{scan();maps();};const schedule=()=>{if(!raf)raf=requestAnimationFrame(scanAll);};// soft fade/rise for the incoming page whenever the page content is swapped in-app\nconst main=document.getElementById(\"main\");const pageRoot=()=>main?Array.from(main.children).find(c=>c.tagName===\"DIV\"&&c.id!==\"overlay\"):undefined;let root=pageRoot();if(main){new MutationObserver(()=>{const r=pageRoot();if(r&&r!==root){root=r;w.__jeSwapAt=Date.now();if(w.__jeTop){w.__jeTop=false;window.scrollTo(0,0);}if(!reduce){r.classList.add(\"je-enter\");setTimeout(()=>r.classList.remove(\"je-enter\"),900);}}schedule();}).observe(main,{childList:true,subtree:true});}schedule();// home page category thumbnails: hover with a mouse/trackpad, tap on touch screens.\n// Reads the word from the text's position, so Framer's own markup is never changed.\n// one card element, reused: moving to another word swaps its photo and slides it over,\n// so an outgoing card never fades out underneath the incoming one\nlet tip=null// the card while it is showing\n;let card=null// the card element, also while it fades out\n;let hideTimer=null;let removeTimer=null;const hideTip=()=>{clearTimeout(hideTimer);if(!tip||!card)return;tip=null;const c=card;c.classList.remove(\"je-thumb-on\");removeTimer=setTimeout(()=>{c.remove();if(card===c)card=null;},300);};const wordAt=(root,items,x,y)=>{const walker=document.createTreeWalker(root,NodeFilter.SHOW_TEXT);for(let n=walker.nextNode();n;n=walker.nextNode()){const text=(n.textContent||\"\").toLowerCase();for(const t of items){const at=text.indexOf(t.word);if(at<0)continue;const range=document.createRange();range.setStart(n,at);range.setEnd(n,at+t.word.length);const rects=Array.from(range.getClientRects());const hit=rects.find(r=>x>=r.left-8&&x<=r.right+8&&y>=r.top-8&&y<=r.bottom+8);if(hit)return{t,rect:hit};}}return null;};const showTip=(t,rect,below=false)=>{clearTimeout(hideTimer);clearTimeout(removeTimer);const showing=!!card&&card.classList.contains(\"je-thumb-on\");if(!card){card=document.createElement(\"a\");card.className=\"je-thumb\";card.appendChild(document.createElement(\"img\"));card.appendChild(document.createElement(\"span\"));document.body.appendChild(card);}const a=card;const img=a.querySelector(\"img\");a.href=t.href;a.dataset.word=t.word;a.setAttribute(\"aria-label\",`${t.label} gallery`);if(img.getAttribute(\"src\")!==t.src)img.src=t.src;img.alt=\"\";img.decoding=\"async\";a.querySelector(\"span\").textContent=`${t.label} →`;a.classList.toggle(\"je-thumb-move\",showing);const w=Math.min(240,window.innerWidth*.62);const h=w*(2/3)+30;const left=Math.max(12,Math.min(window.innerWidth-w-12,rect.left+rect.width/2-w/2));const above=rect.top-h-10;const fitsBelow=rect.bottom+10+h<=window.innerHeight-12;const useAbove=below?!fitsBelow&&above>=12:above>=12;const top=useAbove?above:rect.bottom+10;a.style.width=`${w}px`;a.style.left=`${left}px`;a.style.top=`${top}px`;a.style.transformOrigin=useAbove?\"50% 100%\":\"50% 0%\";if(!showing)void a.offsetWidth;a.classList.add(\"je-thumb-on\");tip=a;};// fetch the cover photos ahead of time so a swapped card never shows an empty frame, but only\n// after the page itself has loaded, so they never compete with the first slide\nif(norm(window.location.pathname)===\"/\"){const warmCovers=()=>{for(const g of HOME_GROUPS)for(const t of g.items)new Image().src=t.src;};const later=()=>{const w=window;if(w.requestIdleCallback)w.requestIdleCallback(warmCovers,{timeout:4e3});else setTimeout(warmCovers,1500);};if(document.readyState===\"complete\")later();else window.addEventListener(\"load\",later,{once:true});}// the category word under the pointer, found by position rather than by event target:\n// on Framer pages text layers often don't receive pointer events (the frame behind does),\n// so look up each group's layer by name, or (fallback) the text block containing its words\nconst rootsFor=g=>{const named=Array.from(document.querySelectorAll(`[data-framer-name=\"${g.layer}\"]`));if(named.length)return named;return Array.from(document.querySelectorAll(\"#main h1, #main h2, #main p\")).filter(el=>{const text=(el.textContent||\"\").toLowerCase();return g.items.every(t=>text.includes(t.word));});};const hitAt=(_target,x,y)=>{for(const g of HOME_GROUPS){for(const root of rootsFor(g)){const r=root.getBoundingClientRect();// skip hidden breakpoints and blocks nowhere near the pointer\nif(!r.width||x<r.left-12||x>r.right+12||y<r.top-12||y>r.bottom+12)continue;const hit=wordAt(root,g.items,x,y);if(hit)return{...hit,below:!!g.below};}}return null;};const onHome=()=>norm(window.location.pathname)===\"/\";// mouse / trackpad: show on hover, keep it while the pointer is on the word or the card\nlet rafMove=0;let lastMove=null;window.addEventListener(\"pointermove\",e=>{if(e.pointerType!==\"mouse\")return;lastMove=e;if(rafMove)return;rafMove=requestAnimationFrame(()=>{rafMove=0;const ev=lastMove;if(!ev||!tip&&!onHome())return;const target=ev.target;if(tip&&tip.contains(target)){clearTimeout(hideTimer);return;}const hit=hitAt(target,ev.clientX,ev.clientY);if(hit){clearTimeout(hideTimer);if(!tip||tip.dataset.word!==hit.t.word)showTip(hit.t,hit.rect,hit.below);}else if(tip){clearTimeout(hideTimer);hideTimer=setTimeout(hideTip,180);}});},{passive:true});// iPhone Safari sends no \"click\" for taps on plain text, so watch the touch itself\nlet down=null;window.addEventListener(\"pointerdown\",e=>{down=e.pointerType===\"mouse\"?null:{x:e.clientX,y:e.clientY,t:Date.now()};},{capture:true,passive:true});window.addEventListener(\"pointerup\",e=>{const start=down;down=null;if(!start||e.pointerType===\"mouse\")return;// a drag or long press is scrolling or selecting, not a tap\nif(Math.hypot(e.clientX-start.x,e.clientY-start.y)>10||Date.now()-start.t>600)return;if(!tip&&!onHome())return;const target=e.target;if(tip&&tip.contains(target))return;// let the gallery link open\nconst hit=hitAt(target,e.clientX,e.clientY);if(!hit||tip&&tip.dataset.word===hit.t.word){hideTip()// tap elsewhere, or the same word again, closes it\n;return;}showTip(hit.t,hit.rect,hit.below);},{capture:true,passive:true});window.addEventListener(\"scroll\",hideTip,{passive:true});window.addEventListener(\"popstate\",hideTip);installTileSlideshow(reduce);}// portfolio tiles: while the mouse rests on a gallery tile, crossfade through that gallery's photos;\n// moving away fades back to the cover. Mouse only (never touch), and not for reduced-motion visitors.\nfunction installTileSlideshow(reduce){if(reduce||typeof fetch!==\"function\")return;const TILE='a[data-framer-name=\"Gallery tile\"]';const DWELL=450// ms the pointer must rest on a tile before anything loads\n;const HOLD=1700// ms each photo stays up\n;const MAX=8// photos per gallery, then it loops (keeps bandwidth bounded)\n;const lists=new Map;const pick=(srcset,src)=>{// the same 1024px file the gallery page itself uses, so the browser cache is shared\nlet best=\"\";let bestW=0;String(srcset||\"\").split(\",\").forEach(part=>{const m=part.trim().match(/^(\\S+)\\s+(\\d+)w$/);if(!m)return;const w=+m[2];if(!best||(bestW<1024?w>bestW:w>=1024&&w<bestW)){best=m[1];bestW=w;}});return(best||src||\"\").replace(/&amp;/g,\"&\");};const getList=href=>{const cached=lists.get(href);if(cached)return cached;// the gallery page already lists its photos, so this always matches what is in the gallery\nconst p=fetch(href,{credentials:\"same-origin\"}).then(r=>r.ok?r.text():\"\").then(html=>{const re=/data-framer-name=\"Photo card\"[\\s\\S]*?<img\\b([^>]*)>/g;const all=[];let m;while((m=re.exec(html))&&all.length<40){const tag=m[1];const at=n=>(tag.match(new RegExp(\"\\\\b\"+n+'=\"([^\"]*)\"',\"i\"))||[])[1]||\"\";const src=pick(at(\"srcset\"),at(\"src\"));if(!/^https:\\/\\/framerusercontent\\.com\\/images\\//.test(src))continue;all.push({ar:+at(\"width\")/(+at(\"height\")||1)||1.5,src});}// tiles are landscape: prefer landscape photos so nothing is cropped oddly\nconst wide=all.filter(x=>x.ar>=1.2);return(wide.length>=4?wide:all).slice(0,MAX).map(x=>x.src);}).catch(()=>[]);lists.set(href,p);p.then(l=>{if(!l.length)lists.delete(href);});return p;};const load=src=>new Promise(res=>{const im=new Image;im.decoding=\"async\";im.src=src;const done=()=>res(!!im.naturalWidth);if(im.decode)im.decode().then(done,done);else{im.onload=done;im.onerror=done;}setTimeout(()=>res(false),1e4);});const sleep=ms=>new Promise(r=>setTimeout(r,ms));let cur=null;let run=0;let dwell=0;const stop=()=>{clearTimeout(dwell);run++;const c=cur;cur=null;if(!c||!c.layer)return;const layer=c.layer;layer.classList.remove(\"je-ts-on\");setTimeout(()=>layer.remove(),600);};const play=async(state,my)=>{const tile=state.tile;const list=await getList(tile.href);if(my!==run||!tile.isConnected||!list.length)return;const layer=document.createElement(\"div\");layer.className=\"je-ts\";layer.setAttribute(\"aria-hidden\",\"true\");const imgs=[new Image,new Image];imgs.forEach(im=>{im.alt=\"\";im.decoding=\"async\";im.draggable=false;layer.appendChild(im);});const wrap=tile.querySelector(\"[data-framer-background-image-wrapper]\");if(wrap)wrap.after(layer);else tile.prepend(layer);state.layer=layer;let z=1;let fails=0;for(let i=0;my===run;i++){const src=list[i%list.length];const ok=await load(src);if(my!==run)return;if(!tile.isConnected)return stop();if(!ok){if(++fails>=3)return;continue;}fails=0;const next=imgs[i%2];const prev=imgs[(i+1)%2];next.src=src;try{if(next.decode)await next.decode();}catch(e){}if(my!==run)return;// the new photo fades in on top; the old one stays solid underneath until it has\nnext.style.zIndex=String(++z);next.classList.add(\"je-ts-show\");prev.classList.remove(\"je-ts-show\");layer.classList.add(\"je-ts-on\");if(list.length<2)return;load(list[(i+1)%list.length])// have the next one ready\n;await sleep(HOLD);}};const start=tile=>{stop();const my=++run;const state={tile,layer:null};cur=state;dwell=setTimeout(()=>play(state,my),DWELL);};const tileOf=t=>t&&t.closest?t.closest(TILE):null;document.addEventListener(\"pointerover\",e=>{if(e.pointerType!==\"mouse\")return;const tile=tileOf(e.target);if(tile===(cur?cur.tile:null))return;if(tile)start(tile);else stop();},{passive:true});// picks it back up if the pointer was already resting on a tile (after a scroll, or a tab switch)\ndocument.addEventListener(\"pointermove\",e=>{if(cur||e.pointerType!==\"mouse\")return;const tile=tileOf(e.target);if(tile)start(tile);},{passive:true});document.documentElement.addEventListener(\"mouseleave\",stop);document.addEventListener(\"visibilitychange\",()=>{if(document.hidden)stop();});window.addEventListener(\"scroll\",()=>{if(cur&&!cur.tile.matches(\":hover\"))stop();},{passive:true});}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1200\n */export default function SiteHeader(props){const{name,subtitle,links:rawLinks,socials,tagline,ink,paper,muted,rule,hideOnScroll,collapse}=props;// Always show a Search link (after the page links, on desktop and in the phone menu) unless one is already set\nconst links=(rawLinks||[]).some(l=>norm(l.url)===\"/search\")?rawLinks||[]:[...rawLinks||[],{label:\"Search\",url:\"/search\"}];const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[open,setOpen]=useState(false);const[hidden,setHidden]=useState(false);const[scrolled,setScrolled]=useState(false);const[hoverMark,setHoverMark]=useState(false);const hoverTimer=useRef(null);const rootRef=useRef(null);const openRef=useRef(false);openRef.current=open;const[mounted,setMounted]=useState(false);const[path,setPath]=useState(\"/\");useEffect(()=>{setMounted(true);setPath(norm(window.location.pathname));if(!isCanvas)installSiteFx();const onPop=()=>{setPath(norm(window.location.pathname));setHidden(false);setOpen(false);};window.addEventListener(\"popstate\",onPop);return()=>{window.removeEventListener(\"popstate\",onPop);clearTimeout(hoverTimer.current);};},[]);// hide while scrolling down, reveal on scroll up; collapse wordmark once past the top\nuseEffect(()=>{if(isCanvas||typeof window===\"undefined\")return;let lastY=window.scrollY;let travel=0// distance scrolled in the current direction (+ down, - up)\n;let ticking=false;const onScroll=()=>{if(ticking)return;ticking=true;requestAnimationFrame(()=>{const y=Math.max(0,window.scrollY);const dy=y-lastY;// two thresholds so small scrolls near the top don't flip it back and forth\nsetScrolled(s=>s?y>24:y>80);// add up distance per direction so slow trackpad scrolls react the same as fast flicks\nif(dy!==0)travel=dy>0===travel>0||travel===0?travel+dy:dy;if(!openRef.current&&hideOnScroll){if(y<90)setHidden(false);else if(travel>24)setHidden(true);else if(travel<-16)setHidden(false);}lastY=y;ticking=false;});};window.addEventListener(\"scroll\",onScroll,{passive:true});onScroll();return()=>window.removeEventListener(\"scroll\",onScroll);},[isCanvas,hideOnScroll]);// slide the whole sticky header frame (the Framer layer that contains this component)\nuseEffect(()=>{if(isCanvas)return;const el=rootRef.current;if(!el)return;const frame=el.closest('[data-framer-name=\"Header\"]')||el;frame.style.transition=`transform .55s ${EASE}`;frame.style.willChange=\"transform\";frame.style.transform=hidden&&!open?\"translateY(-110%)\":\"translateY(0)\";},[hidden,open,isCanvas]);useEffect(()=>{if(typeof document===\"undefined\")return;const html=document.documentElement;html.style.overflow=open?\"hidden\":\"\";document.body.style.overflow=open?\"hidden\":\"\";const onKey=e=>e.key===\"Escape\"&&setOpen(false);const onResize=()=>window.innerWidth>=BP&&setOpen(false);window.addEventListener(\"keydown\",onKey);window.addEventListener(\"resize\",onResize);return()=>{window.removeEventListener(\"keydown\",onKey);window.removeEventListener(\"resize\",onResize);html.style.overflow=\"\";document.body.style.overflow=\"\";};},[open]);// portfolio tiles: press and hold to hide the label (like SmugMug's hover), let go or move away to bring it back\nuseEffect(()=>{if(isCanvas||typeof document===\"undefined\")return;const TILE='[data-framer-name=\"Gallery tile\"]';let active=null;let showTimer=null;let longTimer=null;let longPress=false;let lastType=\"mouse\";let sx=0;let sy=0;const tileOf=t=>t&&t.closest?t.closest(TILE):null;const end=()=>{clearTimeout(showTimer);clearTimeout(longTimer);if(active)active.classList.remove(\"je-peek\");active=null;};const down=e=>{const tile=tileOf(e.target);if(!tile||e.pointerType===\"mouse\"&&e.button!==0)return;end();active=tile;lastType=e.pointerType||\"mouse\";longPress=false;sx=e.clientX;sy=e.clientY;// a short delay on touch so a scroll that starts on a tile doesn't flash the label\nshowTimer=setTimeout(()=>active&&active.classList.add(\"je-peek\"),lastType===\"mouse\"?0:140);longTimer=setTimeout(()=>longPress=true,350);};const move=e=>{if(!active)return;if(e.pointerType===\"mouse\"){if(tileOf(e.target)!==active){end();longPress=false;}}else if(Math.hypot(e.clientX-sx,e.clientY-sy)>12){end();longPress=false;}};const up=()=>end();const cancel=()=>{end();longPress=false;};const leave=e=>{if(active&&e.target===active)cancel();};// a long hold is a peek, not a click: don't open the gallery when it's released\nconst click=e=>{if(longPress&&tileOf(e.target)){e.preventDefault();e.stopPropagation();}longPress=false;};const menu=e=>{if(lastType!==\"mouse\"&&tileOf(e.target))e.preventDefault();};// window, not document: Framer wraps document pointer/click listeners and can run them late\nwindow.addEventListener(\"pointerdown\",down,true);window.addEventListener(\"pointermove\",move,true);window.addEventListener(\"pointerup\",up,true);window.addEventListener(\"pointercancel\",cancel,true);window.addEventListener(\"pointerleave\",leave,true);window.addEventListener(\"click\",click,true);window.addEventListener(\"contextmenu\",menu,true);window.addEventListener(\"blur\",cancel);return()=>{end();window.removeEventListener(\"pointerdown\",down,true);window.removeEventListener(\"pointermove\",move,true);window.removeEventListener(\"pointerup\",up,true);window.removeEventListener(\"pointercancel\",cancel,true);window.removeEventListener(\"pointerleave\",leave,true);window.removeEventListener(\"click\",click,true);window.removeEventListener(\"contextmenu\",menu,true);window.removeEventListener(\"blur\",cancel);};},[isCanvas]);const isActive=u=>norm(u)===\"/\"?path===\"/\":path===norm(u)||path.startsWith(norm(u)+\"/\");const css=`\n    .jh-root{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;padding:18px 40px 16px;gap:24px}\n    .jh-mark{display:flex;flex-direction:column;gap:5px;text-decoration:none;color:${ink};min-width:0}\n    .jh-name{font-family:${SANS};font-weight:700;font-size:36px;line-height:1;letter-spacing:-0.045em;white-space:nowrap;display:inline-flex}\n    .jh-sub{font-family:${SANS};font-weight:500;font-size:11px;line-height:1;letter-spacing:0.28em;text-transform:uppercase;color:${muted};padding-left:1px}\n    .jh-nav{display:flex;align-items:center;gap:28px}\n    .jh-link{position:relative;font-family:${SANS};font-weight:500;font-size:16px;letter-spacing:-0.01em;color:${ink};text-decoration:none;padding:6px 0}\n    .jh-link::after{content:\"\";position:absolute;left:0;right:0;bottom:2px;height:1px;background:${ink};transform:scaleX(0);transform-origin:right;transition:transform .45s ${EASE}}\n    .jh-link:hover::after,.jh-link[data-active=\"true\"]::after{transform:scaleX(1);transform-origin:left}\n    .jh-burger{display:none;width:44px;height:44px;margin-right:-10px;padding:0;border:0;background:transparent;cursor:pointer;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}\n    .jh-wrap{container-type:inline-size;width:100%}\n    @container (max-width:1199px){.jh-root{padding:18px 28px 16px}}\n    @container (max-width:${BP-1}px){\n      .jh-root{padding:14px 20px 12px}\n      .jh-name{font-size:28px}\n      .jh-sub{font-size:10px;letter-spacing:0.26em}\n      .jh-nav{display:none}\n      .jh-burger{display:flex}\n    }\n    .jh-sheetbar{padding:14px 20px 12px}\n    @media (prefers-reduced-motion: reduce){.jh-name span{transition:none!important}}\n    .jh-sheetbar .jh-name{font-size:28px}\n    .jh-sheetbar .jh-sub{font-size:10px;letter-spacing:0.26em}\n    @font-face{font-family:'JE Montserrat SM';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXp-p7K4KLg.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}\n    @font-face{font-family:'JE Montserrat SM';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw3aXp-p7K4KLjztg.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}\n    [data-framer-name=\"Gallery tile\"]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}\n    [data-framer-name=\"Gallery tile\"] img{-webkit-user-drag:none;user-drag:none}\n    [data-framer-name=\"Gallery tile\"] [data-framer-name=\"Label overlay\"]{transition:opacity .6s cubic-bezier(.4,0,.2,1)!important}\n    [data-framer-name=\"Gallery tile\"] [data-framer-name=\"Gallery name\"]{transition:transform .6s ${EASE}!important}\n    [data-framer-name=\"Gallery tile\"].je-peek [data-framer-name=\"Label overlay\"],[data-framer-name=\"Gallery tile\"]:focus-visible [data-framer-name=\"Label overlay\"]{opacity:0!important}\n    [data-framer-name=\"Gallery tile\"]:has(:focus-visible) [data-framer-name=\"Label overlay\"]{opacity:0!important}\n    [data-framer-name=\"Gallery tile\"].je-peek [data-framer-name=\"Gallery name\"],[data-framer-name=\"Gallery tile\"]:focus-visible [data-framer-name=\"Gallery name\"]{transform:translateY(-6px)}\n    [data-framer-name=\"Gallery tile\"]:has(:focus-visible) [data-framer-name=\"Gallery name\"]{transform:translateY(-6px)}\n    @media (hover:hover){[data-framer-name=\"Gallery tile\"]:hover [data-framer-name=\"Label overlay\"]{opacity:0!important}[data-framer-name=\"Gallery tile\"]:hover [data-framer-name=\"Gallery name\"]{transform:translateY(-6px)}}\n    [data-framer-name=\"Label overlay\"] p{font-family:'JE Montserrat SM',Montserrat,sans-serif!important;font-weight:800!important;font-synthesis:weight!important;letter-spacing:3px!important}\n    @media (max-width:809px){[data-framer-name=\"Label overlay\"] p{letter-spacing:2px!important}}\n    [data-framer-name=\"Gallery tile\"]{overflow:hidden}\n    [data-framer-name=\"Gallery tile\"] img{transition:transform 1.1s ${EASE}!important;will-change:transform;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}\n    @media (hover:hover){[data-framer-name=\"Gallery tile\"]:hover img{transform:scale(1.04) translateZ(0)}}\n    [data-framer-name=\"Gallery tile\"].je-peek img,[data-framer-name=\"Gallery tile\"]:focus-visible img{transform:scale(1.04) translateZ(0)}\n    [data-framer-name=\"Gallery tile\"]:has(:focus-visible) img{transform:scale(1.04) translateZ(0)}\n    img{-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n    a,button{-webkit-tap-highlight-color:transparent}\n    img[data-je-fx]{transition:opacity .6s ease}\n    img[data-je-wait]{opacity:0!important}\n    @keyframes jeEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}\n    .je-enter > :not([data-framer-name=\"Header\"]){animation:jeEnter .55s ${EASE} both}\n    .je-toast{position:fixed;left:50%;bottom:24px;z-index:100000;max-width:min(560px, calc(100vw - 32px));box-sizing:border-box;padding:12px 18px;border-radius:10px;background:rgba(18,19,20,.92);color:#fff;font-family:${SANS};font-size:13px;line-height:1.45;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.18);opacity:0;transform:translate(-50%, 12px);transition:opacity .3s ease, transform .45s ${EASE};pointer-events:none}\n    .je-toast.je-toast-on{opacity:1;transform:translate(-50%, 0)}\n    .je-thumb{position:fixed;z-index:9000;display:block;padding:6px 6px 0;background:#fff;border-radius:10px;box-shadow:0 10px 34px rgba(0,0,0,.2);text-decoration:none;color:#121314;opacity:0;transform:scale(.94) translateY(6px);transition:opacity .25s ease, transform .4s ${EASE};-webkit-tap-highlight-color:transparent}\n    .je-thumb.je-thumb-on{opacity:1;transform:none}\n    #jh-thumb{display:none!important}\n    html.jelk-glass:has([data-framer-name=\"About hero\"]) [data-framer-name=\"Header\"]{background-color:rgba(244,244,241,.88)!important}\n    .je-ts{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s ease}\n    .je-ts.je-ts-on{opacity:1}\n    [data-framer-name=\"Gallery tile\"] .je-ts img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0s linear .8s, transform 1.1s ${EASE}!important}\n    [data-framer-name=\"Gallery tile\"] .je-ts img.je-ts-show{opacity:1;transition:opacity .8s ease, transform 1.1s ${EASE}!important}\n    .je-thumb.je-thumb-move{transition:opacity .25s ease, transform .4s ${EASE}, left .35s ${EASE}, top .35s ${EASE}}\n    .je-thumb img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px;background:#ecebe7}\n    .je-thumb span{display:block;padding:7px 4px 8px;font-family:${SANS};font-size:12px;font-weight:500;letter-spacing:.02em}\n    @media (prefers-reduced-motion: reduce){.je-thumb{transition:opacity .2s ease!important;transform:none!important}}\n    @media (prefers-reduced-motion: reduce){.je-enter > *{animation:none!important}[data-framer-name=\"Gallery tile\"] img,[data-framer-name=\"Gallery tile\"] [data-framer-name=\"Gallery name\"]{transition:none!important}}`;const Icon=({x})=>/*#__PURE__*/_jsxs(\"span\",{\"aria-hidden\":true,style:{position:\"relative\",display:\"block\",width:26,height:12},children:[/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",right:0,top:x?5.25:0,width:26,height:1.5,background:ink,borderRadius:1,transform:x?\"rotate(45deg)\":\"none\",transition:`top .35s ${EASE}, transform .45s ${EASE}`}}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",right:0,top:x?5.25:10.5,width:x?26:16,height:1.5,background:ink,borderRadius:1,transform:x?\"rotate(-45deg)\":\"none\",transition:`top .35s ${EASE}, transform .45s ${EASE}, width .35s ${EASE}`}})]});const collapseEnabled=collapse===\"always\"||collapse===\"home\"&&path===\"/\";const isCollapsed=collapseEnabled&&scrolled&&!hoverMark;// \"Jonah Elkowitz\" -> \"JE\": tails of each word fade and drift away while the initials glide together.\n// One smooth curve, no overshoot, so the wordmark folds and unfolds without bouncing.\nconst FOLD=\"cubic-bezier(.4,0,.2,1)\";const words=String(name||\"\").trim().split(/\\s+/);const renderName=live=>/*#__PURE__*/_jsx(\"span\",{className:\"jh-name\",\"aria-hidden\":live?undefined:true,children:words.map((w,wi)=>{const head=w.slice(0,1);const tail=w.slice(1)+(wi<words.length-1?\"\\xa0\":\"\");const c=live&&isCollapsed;return /*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",alignItems:\"baseline\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\"},children:head}),/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-grid\",gridTemplateColumns:c?\"0fr\":\"1fr\",transition:`grid-template-columns ${c?.6:.7}s ${FOLD}`},children:/*#__PURE__*/_jsx(\"span\",{style:{overflow:\"hidden\",minWidth:0,whiteSpace:\"pre\",display:\"inline-block\",// the tight letter-spacing lets the last glyph (the \"z\") draw past its box;\n    // pad the clip so it isn't shaved off, and pull the padding back out of the layout\n    paddingRight:c?0:\"0.08em\",marginRight:c?0:\"-0.08em\"},children:tail.split(\"\").map((ch,ci)=>{const n=tail.length;// collapse: last letter leaves first; expand: letters return left to right as space opens\n    const d=c?(n-1-ci)*.014:ci*.018+.16;return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",transform:c?\"translateX(-0.18em)\":\"none\",opacity:c?0:1,filter:c?\"blur(3px)\":\"none\",transition:c?`transform .5s ${EASE} ${d}s, opacity .4s ease ${d}s, filter .4s ease ${d}s`:`transform .55s ${EASE} ${d}s, opacity .45s ease ${d}s, filter .45s ease ${d}s`},children:ch},ci);})})})]},wi);})});const renderMark=(live,onClick)=>/*#__PURE__*/_jsxs(\"a\",{href:\"/\",className:\"jh-mark\",onClick:e=>{if(onClick)onClick();navigateInApp(e,\"/\");},\"aria-label\":`${name} \\u2014 home`,onMouseEnter:live?()=>{clearTimeout(hoverTimer.current);setHoverMark(true);}:undefined,// short grace period so brushing past the edge doesn't make it stutter\n    onMouseLeave:live?()=>{clearTimeout(hoverTimer.current);hoverTimer.current=setTimeout(()=>setHoverMark(false),220);}:undefined,children:[renderName(live),subtitle?/*#__PURE__*/_jsx(\"span\",{className:\"jh-sub\",style:{opacity:live&&isCollapsed?0:1,transform:live&&isCollapsed?\"translateY(-4px)\":\"none\",transition:`opacity .4s ease, transform .6s ${EASE}`},children:subtitle}):null]});const sheet=/*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Site menu\",\"aria-hidden\":!open,style:{position:\"fixed\",inset:0,zIndex:9999,background:paper,color:ink,display:\"flex\",flexDirection:\"column\",clipPath:open?\"inset(0 0 0 0)\":\"inset(0 0 100% 0)\",WebkitClipPath:open?\"inset(0 0 0 0)\":\"inset(0 0 100% 0)\",transition:`clip-path .6s ${EASE}, -webkit-clip-path .6s ${EASE}, visibility 0s linear ${open?\"0s\":\".6s\"}`,pointerEvents:open?\"auto\":\"none\",visibility:open?\"visible\":\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"jh-root jh-sheetbar\",style:{borderBottom:`1px solid ${rule}`},children:[renderMark(false,()=>setOpen(false)),/*#__PURE__*/_jsx(\"button\",{className:\"jh-burger\",style:{display:\"flex\"},\"aria-label\":\"Close menu\",onClick:()=>setOpen(false),children:/*#__PURE__*/_jsx(Icon,{x:true})})]}),/*#__PURE__*/_jsx(\"nav\",{style:{flex:1,display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",padding:\"0 20px\"},children:links.map((l,i)=>{const delay=open?.18+i*.06:0;return /*#__PURE__*/_jsxs(\"a\",{href:l.url,onClick:e=>{setOpen(false);navigateInApp(e,l.url);},style:{display:\"flex\",alignItems:\"baseline\",gap:14,padding:\"14px 0\",borderTop:i===0?\"none\":`1px solid ${rule}`,textDecoration:\"none\",color:ink,opacity:open?1:0,transform:open?\"translateY(0)\":\"translateY(18px)\",transition:`opacity .55s ${EASE} ${delay}s, transform .7s ${EASE} ${delay}s`},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:SANS,fontSize:11,fontWeight:500,letterSpacing:\"0.08em\",color:muted,width:22,flexShrink:0},children:String(i+1).padStart(2,\"0\")}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:SERIF,fontSize:46,lineHeight:1.05,letterSpacing:\"-0.025em\",fontStyle:isActive(l.url)?\"italic\":\"normal\"},children:l.label})]},i);})}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"18px 20px 28px\",borderTop:`1px solid ${rule}`,opacity:open?1:0,transition:`opacity .5s ${EASE} ${open?.45:0}s`},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:SANS,fontSize:11,letterSpacing:\"0.08em\",textTransform:\"uppercase\",color:muted,marginBottom:12},children:tagline}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8},children:socials.map((s,i)=>/*#__PURE__*/_jsx(\"a\",{href:s.url,target:\"_blank\",rel:\"noopener noreferrer\",style:{fontFamily:SANS,fontSize:13,fontWeight:500,color:ink,textDecoration:\"none\",padding:\"7px 12px\",border:`1px solid ${rule}`,borderRadius:999},children:s.label},i))})]})]});return /*#__PURE__*/_jsxs(\"div\",{className:\"jh-wrap\",ref:rootRef,children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),/*#__PURE__*/_jsxs(\"div\",{className:\"jh-root\",children:[renderMark(true),/*#__PURE__*/_jsx(\"nav\",{className:\"jh-nav\",\"aria-label\":\"Primary\",children:links.filter(l=>l.inNav!==false&&norm(l.url)!==\"/\").map((l,i)=>/*#__PURE__*/_jsx(\"a\",{href:l.url,className:\"jh-link\",\"data-active\":isActive(l.url),onClick:e=>navigateInApp(e,l.url),children:l.label===\"Book a shoot\"?\"Book\":l.label},i))}),/*#__PURE__*/_jsx(\"button\",{className:\"jh-burger\",\"aria-label\":\"Open menu\",\"aria-expanded\":open,onClick:()=>setOpen(true),children:/*#__PURE__*/_jsx(Icon,{x:false})})]}),mounted?/*#__PURE__*/createPortal(sheet,document.body):null]});}SiteHeader.defaultProps={name:\"Jonah Elkowitz\",subtitle:\"Photography\",hideOnScroll:true,collapse:\"home\",tagline:\"New York \\xb7 Editorial & commercial\",ink:\"#121314\",paper:\"#F1F1EE\",muted:\"#8A8A85\",rule:\"rgba(18,19,20,0.12)\",links:[{label:\"Home\",url:\"/\"},{label:\"Portfolio\",url:\"/portfolio\"},{label:\"About\",url:\"/about\"},{label:\"Book a shoot\",url:\"/book\"}],socials:[{label:\"Instagram\",url:\"https://www.instagram.com/jonahelkowitz/\"},{label:\"LinkedIn\",url:\"https://www.linkedin.com/in/jonah-elkowitz-011630189/\"},{label:\"X\",url:\"https://twitter.com/jonahelkowitz\"},{label:\"Shutterstock\",url:\"https://www.shutterstock.com/g/Jonah+Elkowitz\"}]};const linkControl={type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\"},url:{type:ControlType.String,title:\"URL\"}}};addPropertyControls(SiteHeader,{name:{type:ControlType.String,title:\"Name\"},subtitle:{type:ControlType.String,title:\"Subtitle\"},hideOnScroll:{type:ControlType.Boolean,title:\"Hide on scroll\"},collapse:{type:ControlType.Enum,title:\"Initials on scroll\",options:[\"home\",\"always\",\"never\"],optionTitles:[\"Home only\",\"All pages\",\"Off\"]},links:{type:ControlType.Array,title:\"Links\",control:linkControl},socials:{type:ControlType.Array,title:\"Socials\",control:linkControl},tagline:{type:ControlType.String,title:\"Menu tagline\"},ink:{type:ControlType.Color,title:\"Ink\"},paper:{type:ControlType.Color,title:\"Paper\"},muted:{type:ControlType.Color,title:\"Muted\"},rule:{type:ControlType.Color,title:\"Rule\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SiteHeader\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteHeader.map","// Generated by Framer (f8e97a5)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-jXu1C\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" id=\"638467681\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 20.447 20.452 L 16.893 20.452 L 16.893 14.883 C 16.893 13.555 16.866 11.846 15.041 11.846 C 13.188 11.846 12.905 13.291 12.905 14.785 L 12.905 20.452 L 9.351 20.452 L 9.351 9 L 12.765 9 L 12.765 10.561 L 12.811 10.561 C 13.288 9.661 14.448 8.711 16.181 8.711 C 19.782 8.711 20.448 11.081 20.448 14.166 L 20.448 20.452 Z M 5.337 7.433 C 4.789 7.433 4.264 7.216 3.877 6.828 C 3.49 6.441 3.273 5.916 3.274 5.368 C 3.275 4.228 4.199 3.304 5.339 3.305 C 6.479 3.306 7.403 4.23 7.402 5.37 C 7.401 6.51 6.477 7.434 5.337 7.433 Z M 7.119 20.452 L 3.555 20.452 L 3.555 9 L 7.119 9 Z M 22.225 0 L 1.771 0 C 0.792 0 0 0.774 0 1.729 L 0 22.271 C 0 23.227 0.792 24 1.771 24 L 22.222 24 C 23.2 24 24 23.227 24 22.271 L 24 1.729 C 24 0.774 23.2 0 22.222 0 Z\" fill=\"rgb(10, 102, 194)\" height=\"24px\" id=\"uI5v5lcHY\" width=\"24px\"/></svg>',style:{...style}});});const css=[`.framer-jXu1C { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; user-select: none; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"LinkedIn\",\"color\":{\"type\":\"static\",\"value\":\"rgb(10,102,194)\"},\"set\":{\"localId\":\"vectorSet/EBsjGvPRZ\",\"id\":\"EBsjGvPRZ\",\"moduleId\":\"l2coCPA8oe3dp3FxMWlj\"}}\n */const Icon=withCSS(Component,css,\"framer-jXu1C\");Icon.displayName=\"LinkedIn\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"LinkedIn\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"rgb(10,102,194)\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/EBsjGvPRZ\\\",\\\"id\\\":\\\"EBsjGvPRZ\\\",\\\"moduleId\\\":\\\"l2coCPA8oe3dp3FxMWlj\\\"}}\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f8e97a5)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-ivURL\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" id=\"3970300417\" role=\"presentation\" viewBox=\"0 0 23 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 13.976 10.162 L 22.719 0 L 20.647 0 L 13.056 8.824 L 6.993 0 L 0 0 L 9.168 13.343 L 0 24 L 2.072 24 L 10.088 14.682 L 16.491 24 L 23.484 24 Z M 11.139 13.461 L 10.21 12.132 L 2.818 1.56 L 6 1.56 L 11.965 10.092 L 12.894 11.421 L 20.648 22.511 L 17.466 22.511 Z\" fill=\"rgb(0, 0, 0)\" height=\"24px\" id=\"Ff6nslYoV\" width=\"23.483999999999998px\"/></svg>',style:{...style}});});const css=[`.framer-ivURL { -webkit-mask: ${mask}; aspect-ratio: 0.9583333333333334; display: block; mask: ${mask}; user-select: none; width: 23px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 23\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"X\",\"color\":{\"type\":\"static\",\"value\":\"rgb(0,0,0)\"},\"set\":{\"localId\":\"vectorSet/EBsjGvPRZ\",\"id\":\"EBsjGvPRZ\",\"moduleId\":\"l2coCPA8oe3dp3FxMWlj\"}}\n */const Icon=withCSS(Component,css,\"framer-ivURL\");Icon.displayName=\"X\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"23\",\"framerVector\":\"{\\\"name\\\":\\\"X\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"rgb(0,0,0)\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/EBsjGvPRZ\\\",\\\"id\\\":\\\"EBsjGvPRZ\\\",\\\"moduleId\\\":\\\"l2coCPA8oe3dp3FxMWlj\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f8e97a5)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-GKLFL\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" id=\"723450786\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><defs ><radialGradient cx=\"0.29998589937128006\" cy=\"1.069948743157377\" gradient-transform=\"translate(0.29998589937128006, 1.069948743157377) scale(1 1) translate(-0.29998589937128006, -1.069948743157377)\" id=\"K9KE3dor9-723450786-radial-gradient\" r=\"1.5\"><stop offset=\"0\" stop-color=\"rgb(253, 244, 151)\"/><stop offset=\"0.05\" stop-color=\"rgb(253, 244, 151)\"/><stop offset=\"0.45\" stop-color=\"rgb(253, 89, 73)\"/><stop offset=\"0.6\" stop-color=\"rgb(214, 36, 159)\"/><stop offset=\"0.9\" stop-color=\"rgb(40, 90, 235)\"/></radialGradient></defs><path d=\"M 7.03 0.085 C 5.753 0.145 4.881 0.349 4.12 0.648 C 3.32 0.951 2.595 1.424 1.996 2.036 C 1.387 2.636 0.916 3.362 0.616 4.163 C 0.321 4.927 0.12 5.801 0.064 7.077 C 0.008 8.355 -0.005 8.765 0.001 12.024 C 0.008 15.283 0.022 15.691 0.084 16.971 C 0.145 18.248 0.348 19.12 0.647 19.882 C 0.955 20.671 1.367 21.339 2.035 22.005 C 2.636 22.615 3.363 23.086 4.164 23.385 C 4.927 23.68 5.8 23.881 7.077 23.937 C 8.355 23.993 8.766 24.006 12.024 24 C 15.281 23.993 15.692 23.979 16.971 23.918 C 18.251 23.858 19.118 23.653 19.881 23.355 C 20.682 23.052 21.406 22.579 22.004 21.967 C 22.614 21.366 23.085 20.64 23.384 19.838 C 23.679 19.075 23.88 18.202 23.935 16.926 C 23.991 15.646 24.005 15.236 23.998 11.978 C 23.992 8.72 23.978 8.311 23.917 7.031 C 23.857 5.751 23.653 4.883 23.353 4.12 C 23.051 3.32 22.577 2.596 21.966 1.997 C 21.366 1.387 20.64 0.916 19.838 0.617 C 19.074 0.323 18.202 0.121 16.924 0.067 C 15.647 0.01 15.236 -0.005 11.977 0.001 C 8.718 0.009 8.31 0.022 7.03 0.085 M 7.17 21.778 C 6 21.728 5.365 21.533 4.942 21.37 C 4.421 21.178 3.949 20.873 3.56 20.475 C 3.161 20.089 2.853 19.618 2.66 19.097 C 2.495 18.674 2.297 18.039 2.243 16.869 C 2.183 15.605 2.171 15.225 2.163 12.021 C 2.157 8.817 2.169 8.438 2.224 7.173 C 2.274 6.004 2.47 5.368 2.632 4.945 C 2.848 4.384 3.109 3.985 3.527 3.563 C 3.914 3.164 4.385 2.856 4.906 2.663 C 5.329 2.498 5.963 2.302 7.133 2.246 C 8.398 2.186 8.777 2.174 11.981 2.166 C 15.184 2.16 15.564 2.172 16.831 2.228 C 17.999 2.278 18.635 2.472 19.058 2.636 C 19.618 2.852 20.018 3.111 20.44 3.531 C 20.861 3.951 21.121 4.348 21.34 4.909 C 21.505 5.331 21.702 5.965 21.757 7.136 C 21.817 8.401 21.831 8.781 21.837 11.984 C 21.842 15.187 21.831 15.567 21.776 16.832 C 21.725 18.002 21.531 18.637 21.368 19.062 C 21.152 19.622 20.891 20.022 20.472 20.442 C 20.086 20.842 19.615 21.149 19.094 21.342 C 18.672 21.507 18.036 21.704 16.868 21.76 C 15.602 21.82 15.223 21.832 12.018 21.839 C 8.814 21.846 8.436 21.833 7.17 21.779 M 16.953 5.587 C 16.954 6.17 17.306 6.694 17.844 6.916 C 18.383 7.139 19.002 7.014 19.413 6.602 C 19.825 6.189 19.947 5.569 19.723 5.032 C 19.499 4.494 18.973 4.144 18.39 4.145 C 17.595 4.147 16.952 4.792 16.953 5.587 M 5.839 12.013 C 5.846 15.416 8.61 18.169 12.013 18.163 C 15.416 18.156 18.169 15.392 18.162 11.989 C 18.113 8.617 15.362 5.91 11.989 5.917 C 8.616 5.923 5.875 8.64 5.839 12.013 M 8 12.009 C 7.996 9.8 9.783 8.006 11.992 8.001 C 14.201 7.997 15.996 9.784 16 11.993 C 16.005 14.202 14.217 15.997 12.008 16.001 C 10.947 16.003 9.929 15.584 9.178 14.835 C 8.426 14.087 8.002 13.07 8 12.009\" fill=\"url(%23K9KE3dor9-723450786-radial-gradient)\" height=\"24.001568659739974px\" id=\"K9KE3dor9\" width=\"24.00000164526171px\"/></svg>',style:{...style}});});const css=[`.framer-GKLFL { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; user-select: none; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Instagram\",\"set\":{\"localId\":\"vectorSet/EBsjGvPRZ\",\"id\":\"EBsjGvPRZ\",\"moduleId\":\"l2coCPA8oe3dp3FxMWlj\"}}\n */const Icon=withCSS(Component,css,\"framer-GKLFL\");Icon.displayName=\"Instagram\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerVector\":\"{\\\"name\\\":\\\"Instagram\\\",\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/EBsjGvPRZ\\\",\\\"id\\\":\\\"EBsjGvPRZ\\\",\\\"moduleId\\\":\\\"l2coCPA8oe3dp3FxMWlj\\\"}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"24\",\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f8e97a5)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-Ktkbb\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" id=\"304069774\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 7.754 18.761 L 13.067 18.761 C 13.91 18.759 14.593 18.076 14.594 17.233 L 14.594 11.473 L 19.831 11.473 L 19.831 17.233 C 19.831 20.969 16.803 23.998 13.067 24 L 7.754 24 L 7.754 18.761 M 12.075 5.237 L 6.765 5.237 C 5.921 5.237 5.237 5.92 5.235 6.764 L 5.235 12.525 L 0 12.525 L 0 6.764 C 0 4.97 0.712 3.249 1.981 1.98 C 3.25 0.712 4.971 -0.001 6.765 0 L 12.075 0 Z\" fill=\"rgb(238, 43, 36)\" height=\"24.000000251654633px\" id=\"qXfSxtFZ0\" transform=\"translate(2.085 0)\" width=\"19.830999922017128px\"/></svg>',style:{...style}});});const css=[`.framer-Ktkbb { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; user-select: none; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Shutterstock\",\"color\":{\"type\":\"static\",\"value\":\"rgb(238,43,36)\"},\"set\":{\"localId\":\"vectorSet/EBsjGvPRZ\",\"id\":\"EBsjGvPRZ\",\"moduleId\":\"l2coCPA8oe3dp3FxMWlj\"}}\n */const Icon=withCSS(Component,css,\"framer-Ktkbb\");Icon.displayName=\"Shutterstock\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"Shutterstock\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"rgb(238,43,36)\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/EBsjGvPRZ\\\",\\\"id\\\":\\\"EBsjGvPRZ\\\",\\\"moduleId\\\":\\\"l2coCPA8oe3dp3FxMWlj\\\"}}\",\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}