{"version":3,"file":"script_main.ChJCahd4.mjs","names":["useRef","React.useId","React.createElement","Blank","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/5Xehah35H4T2cx8cw43u/PP69xALc28P3EC9NJSFu/SmoothScroller.js","https:/framerusercontent.com/modules/ViVKQW8JH7LMa1fAHUiW/P6k3Oi69WBewcNDThy7n/m3ndynaw_.js","framer:toplevel/main"],"sourcesContent":["// SmoothScroller.tsx\n// Framer Code Component - Lenis-based smooth scroll\n//\n// HOW TO USE:\n// 1. Drop one <SmoothScroller /> into your shared header/nav layer\n//    (so it persists across page navigations).\n// 2. Publish or preview - the effect doesn't run on the canvas.\n//\n// MODES:\n// - Duration: deliberate glide with a fixed-length ease curve.\n//   Best for editorial/professional sites. Uses expo.out easing.\n// - Lerp: elastic catch-up that follows the cursor velocity.\n//   Best for portfolios and immersive sites with a more reactive feel.\n//\n// Touch devices intentionally use the OS-native scroll - Lenis only\n// smooths wheel/trackpad input.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const LENIS_URL=\"https://unpkg.com/lenis@1.3.4/dist/lenis.min.js\";// Load Lenis once, share the promise so multiple instances don't double-load\nlet lenisLoadPromise=null;function loadLenis(){if(typeof window===\"undefined\")return Promise.reject();if(window.Lenis)return Promise.resolve(window.Lenis);if(lenisLoadPromise)return lenisLoadPromise;lenisLoadPromise=new Promise((resolve,reject)=>{const script=document.createElement(\"script\");script.src=LENIS_URL;script.async=true;script.onload=()=>{const Lenis=window.Lenis;if(Lenis)resolve(Lenis);else reject(new Error(\"Lenis loaded but not on window\"));};script.onerror=()=>reject(new Error(\"Failed to load Lenis\"));document.head.appendChild(script);});return lenisLoadPromise;}export default function SmoothScroller({mode=\"duration\",duration=.8,lerp=.1,wheelMultiplier=1.2,resetOnNavigate=true}){useEffect(()=>{// Don't run inside the Framer canvas\nif(RenderTarget.current()===RenderTarget.canvas)return;if(typeof window===\"undefined\")return;let lenis=null;let rafId=0;let disposed=false;let teardown=null;loadLenis().then(Lenis=>{if(disposed)return;// Kill any pre-existing instance (hot reload / re-mount)\nconst existing=window.__lenis;if(existing&&typeof existing.destroy===\"function\"){existing.destroy();}// expo.out easing - the IOH curve, only used in duration mode\nconst expoOut=t=>Math.min(1,1.001-Math.pow(2,-10*t));// Build config based on mode. Lenis treats the two modes as\n// mutually exclusive - you pick one or the other.\nconst baseConfig={orientation:\"vertical\",gestureOrientation:\"vertical\",smoothWheel:true,wheelMultiplier,syncTouch:false,anchors:true,allowNestedScroll:true};const config=mode===\"duration\"?{...baseConfig,duration,easing:expoOut}:{...baseConfig,lerp};lenis=new Lenis(config);window.__lenis=lenis;const raf=time=>{lenis.raf(time);rafId=requestAnimationFrame(raf);};rafId=requestAnimationFrame(raf);// Reset scroll on Framer route changes\nconst handleRouteChange=()=>{if(!resetOnNavigate)return;lenis.scrollTo(0,{immediate:true,force:true});};window.addEventListener(\"popstate\",handleRouteChange);const origPush=history.pushState;const origReplace=history.replaceState;history.pushState=function(...args){origPush.apply(this,args);handleRouteChange();};history.replaceState=function(...args){origReplace.apply(this,args);handleRouteChange();};teardown=()=>{cancelAnimationFrame(rafId);window.removeEventListener(\"popstate\",handleRouteChange);history.pushState=origPush;history.replaceState=origReplace;lenis?.destroy();delete window.__lenis;};}).catch(err=>{console.warn(\"[SmoothScroller] Lenis failed to load:\",err);});return()=>{disposed=true;teardown?.();};},[mode,duration,lerp,wheelMultiplier,resetOnNavigate]);// Canvas placeholder so the component is visible & selectable in the editor.\nif(RenderTarget.current()===RenderTarget.canvas){return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"rgba(0, 153, 255, 0.08)\",border:\"1px dashed rgba(0, 153, 255, 0.6)\",borderRadius:6,color:\"#0099ff\",fontFamily:\"-apple-system, BlinkMacSystemFont, system-ui, sans-serif\",fontSize:11,fontWeight:500,letterSpacing:.2,textAlign:\"center\",padding:8,boxSizing:\"border-box\"},children:[\"Smooth Scroller\",/*#__PURE__*/_jsx(\"br\",{}),/*#__PURE__*/_jsxs(\"span\",{style:{opacity:.65,fontSize:10},children:[\"(\",mode,\")\"]})]});}return null;}addPropertyControls(SmoothScroller,{mode:{type:ControlType.Enum,title:\"Mode\",defaultValue:\"duration\",options:[\"duration\",\"lerp\"],optionTitles:[\"Duration\",\"Lerp\"],displaySegmentedControl:true},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:.8,min:.4,max:3,step:.1,displayStepper:true,hidden:props=>props.mode!==\"duration\"},lerp:{type:ControlType.Number,title:\"Lerp\",defaultValue:.1,min:.03,max:.3,step:.01,displayStepper:true,hidden:props=>props.mode!==\"lerp\"},wheelMultiplier:{type:ControlType.Number,title:\"Wheel Speed\",defaultValue:1.2,min:.3,max:2,step:.1,displayStepper:true},resetOnNavigate:{type:ControlType.Boolean,title:\"Reset Scroll\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroller\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroller.map","// Generated by Framer (f36d8c8)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,ControlType,cx,GeneratedComponentContext,getFonts,RenderTarget,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import SmoothScroller from\"https://framerusercontent.com/modules/5Xehah35H4T2cx8cw43u/PP69xALc28P3EC9NJSFu/SmoothScroller.js\";const SmoothScrollerFonts=getFonts(SmoothScroller);const breakpoints={C5FE5R7j4:\"(min-width: 810px) and (max-width: 1199.98px)\",l4wHm9SWb:\"(max-width: 809.98px)\",qYNMSJaWa:\"(min-width: 1200px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-fAPJ1\";const variantClassNames={C5FE5R7j4:\"framer-v-2akgpq\",l4wHm9SWb:\"framer-v-ihqw9q\",qYNMSJaWa:\"framer-v-162urjq\"};const BZWhrGGhN=undefined;const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-fAPJ1.framer-igup5o, .framer-fAPJ1 .framer-igup5o { display: block; }\",\".framer-fAPJ1.framer-162urjq { align-content: center; align-items: center; background-color: #ffffff; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-fAPJ1 .framer-zrl8c9-container { flex: none; height: auto; left: 50%; position: absolute; top: -1000px; transform: translateX(-50%); width: auto; z-index: 1; }\",\".framer-fAPJ1 .framer-11mx9jp { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={C5FE5R7j4:\"(min-width: 810px) and (max-width: 1199.98px)\",l4wHm9SWb:\"(max-width: 809.98px)\",qYNMSJaWa:\"(min-width: 1200px)\"};const humanReadableVariantMap={Desktop:\"qYNMSJaWa\",Phone:\"l4wHm9SWb\",Tablet:\"C5FE5R7j4\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,smoothScroll,width,...props})=>{return{...props,BZWhrGGhN:smoothScroll??props.BZWhrGGhN??true,variant:humanReadableVariantMap[props.variant]??props.variant??\"qYNMSJaWa\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,BZWhrGGhN,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"qYNMSJaWa\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: rgb(255, 255, 255); } @media (min-width: 810px) and (max-width: 1199.98px) { :root { font-size: 93.75%; } } @media (max-width: 809.98px) { :root { font-size: 87.5%; } }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-162urjq\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[BZWhrGGhN!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-zrl8c9-container\",\"data-framer-layout-hint-center-x\":true,isAuthoredByUser:true,isModuleExternal:true,nodeId:\"RcbNnceQF\",scopeId:\"m3ndynaw_\",children:/*#__PURE__*/_jsx(SmoothScroller,{duration:.8,height:\"100%\",id:\"RcbNnceQF\",layoutId:\"RcbNnceQF\",lerp:.1,mode:\"duration\",resetOnNavigate:true,wheelMultiplier:1.2,width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-11mx9jp\"})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"C5FE5R7j4\":{\"layout\":[\"fixed\",\"fixed\"]},\"l4wHm9SWb\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"BZWhrGGhN\":\"smoothScroll\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"qYNMSJaWa\":[\".framer-zrl8c9-container\"],\"C5FE5R7j4\":[\".framer-zrl8c9-container\"],\"l4wHm9SWb\":[\".framer-zrl8c9-container\"]}\n * @framerBreakpoints {\"qYNMSJaWa\":{\"min\":1200,\"canvasClassName\":\"framer-162urjq-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"C5FE5R7j4\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-2akgpq-override\",\"minHeight\":1000,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":15},\"l4wHm9SWb\":{\"max\":809,\"canvasClassName\":\"framer-ihqw9q-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":14}}\n * @framerDefaultVariant qYNMSJaWa\n * @framerLayoutTemplate true\n */const Framerm3ndynaw_=withCSS(Component,css,\"framer-fAPJ1\");export default Framerm3ndynaw_;Framerm3ndynaw_.displayName=\"Blank\";Framerm3ndynaw_.defaultProps={height:1e3,width:1200};addPropertyControls(Framerm3ndynaw_,{BZWhrGGhN:{defaultValue:true,title:\"Smooth Scroll\",type:ControlType.Boolean}});addFonts(Framerm3ndynaw_,[{explicitInter:true,fonts:[]},...SmoothScrollerFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerm3ndynaw_\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerLayoutTemplate\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"BZWhrGGhN\\\":\\\"smoothScroll\\\"}\",\"framerIntrinsicWidth\":\"1200\",\"framerColorSyntax\":\"true\",\"framerDefaultVariant\":\"qYNMSJaWa\",\"framerBreakpoints\":\"{\\\"qYNMSJaWa\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-162urjq-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"C5FE5R7j4\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-2akgpq-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":15},\\\"l4wHm9SWb\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-ihqw9q-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":14}}\",\"framerHitTargets\":\"{\\\"qYNMSJaWa\\\":[\\\".framer-zrl8c9-container\\\"],\\\"C5FE5R7j4\\\":[\\\".framer-zrl8c9-container\\\"],\\\"l4wHm9SWb\\\":[\\\".framer-zrl8c9-container\\\"]}\",\"framerIntrinsicHeight\":\"1000\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"C5FE5R7j4\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"l4wHm9SWb\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport Blank from \"https://framerusercontent.com/modules/ViVKQW8JH7LMa1fAHUiW/P6k3Oi69WBewcNDThy7n/m3ndynaw_.js\";\r\n\r\n\t\tconst routes = {f6S8zNoXD: {elements: {avfslayDj: \"web-grid-wp\", Qt1DE6IB8: \"web-grid\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Lfke74S4CQ3cpyXpnOkF/sJcpHIJhkYcmrcVqsNGu/f6S8zNoXD.js\")), path: \"/\"}, hS0IHMcsQ: {collectionId: \"G59BRf_yW\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/g322F1RsLOwlL42rVmDC/AsGJzqwZ5INEccljnGam/hS0IHMcsQ.js\")), path: \"/feedback/:g75gi87zG\"}}\r\n\r\n\t\tconst locales = [{code: \"en-AU\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {G59BRf_yW: async () => (await import(\"https://framerusercontent.com/modules/UbpbUuW9GRBQ9rmyQLXn/O5vyq8tiaFPRfZCelaSz/G59BRf_yW.js\"))?.[\"utils\"], Hdy1IzWqC: async () => (await import(\"https://framerusercontent.com/modules/lBcNTLvmpavA0ZZr81Ag/J9Z9j0rVRGwVR9QGyj8f/Hdy1IzWqC.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"a8dae449befc4b8c302d5211ee88686a700edc9e6d7e60f24b0e07e6a9ca56bf\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const props1 = {BZWhrGGhN: false}\r\nconst templateProps = {Uk_F9LHHG: props1}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"Uk_F9LHHG\":\r\nreturn React.createElement(Blank, {...props, key: \"Blank\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"Uk_F9LHHG\":\r\nreturn [{hash: \"ihqw9q\", mediaQuery: \"(max-width: 809.98px)\"}, {hash: \"2akgpq\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"162urjq\", mediaQuery: \"(min-width: 1200px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"__framer-not-found-page\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://tigermedia.io\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: false,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/xbbNdn14m069mc1D2wI3/WDDC4gPYjVf5lOAItjCG/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {global: {enter: {mask: {type: \"circle\", x: \"100%\", y: \"0%\"}, opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.1, duration: 0.7, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"0px\"}}, routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}