{"version":3,"file":"script_main.BNdnOYA9.mjs","names":["Nav","Footer","useRef","React.useId","PropertyOverrides","React.createElement","Template1","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","React.Suspense","React.lazy"],"sources":["https:/framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/VCjqndCnvtR7DP1njQil/SmoothScroll_Prod.js","https:/framerusercontent.com/modules/XaGMys5YYKHZtGXytTvu/zbttJDRHWNatKwHsmKMD/GzQfD9jHu.js","framer:toplevel/main"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const clamp=(value,min,max)=>Math.max(min,Math.min(max,value));function isPhoneDevice(){return window.matchMedia(\"(max-width: 767px)\").matches||/iPhone|iPod|Android.+Mobile|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);}function canScrollBy(node,delta){const limit=node.scrollHeight-node.clientHeight;return delta>0&&node.scrollTop<limit-1||delta<0&&node.scrollTop>1;}// Walks composedPath() so panels inside shadow DOM still count.\n// Returns the first nested scroller that can move in this direction, or one\n// at its edge whose overscroll-behavior forbids chaining to the page.\nfunction findNestedScroller(path,delta){for(const node of path){if(!(node instanceof HTMLElement))continue;if(node===document.documentElement||node===document.body)break;if(node.scrollHeight-node.clientHeight<1)continue;const style=getComputedStyle(node);if(!/^(auto|scroll|overlay)$/.test(style.overflowY))continue;if(canScrollBy(node,delta))return node;if(/^(contain|none)$/.test(style.overscrollBehaviorY))return node;}return null;}// How much of the viewport top is covered by fixed or sticky bars (headers,\n// banners, floating nav pills), so anchors land below them with zero\n// configuration. Hit-tests dense rows through the top band (compact floating\n// bars) plus a few lower rows, and walks ancestors, so a sticky header that\n// sits below a banner and has not stuck yet still counts at its stuck spot.\nfunction measureHeader(){const width=window.innerWidth;const height=window.innerHeight;const band=height*.1;const rows=[height*.12,height*.2,height*.3];for(let y=1;y<=band+12;y+=12)rows.push(y);const seen=new Set;let bottom=0;for(const y of rows){for(const x of[.25,.5,.75]){for(const hit of document.elementsFromPoint(width*x,y)){for(let node=hit;node;node=node.parentElement){if(node===document.body||seen.has(node))break;seen.add(node);const style=getComputedStyle(node);if(style.position!==\"fixed\"&&style.position!==\"sticky\")continue;if(style.visibility===\"hidden\"||style.opacity===\"0\")continue;const rect=node.getBoundingClientRect();if(rect.height<=0||rect.height>=height*.4)continue;// Wide bars, or a nav pill across the centre line.\nconst centred=rect.left<=width/2&&rect.right>=width/2&&rect.width>=120;if(rect.width<width*.4&&!centred)continue;let top=rect.top;if(style.position===\"sticky\"){// Pinned to the top (not `top: auto`), in a containing\n// block that starts in the first screen of the page\n// and is at least a screen taller than the bar: a site\n// header, not a section title. Judged on the whole\n// block, not the part left below the current scroll\n// position, so it still counts near the page end.\nconst stick=Number.parseFloat(style.top);// Skip `display: contents` wrappers, which have no\n// box of their own.\nlet parent=node.parentElement;while(parent&&getComputedStyle(parent).display===\"contents\"){parent=parent.parentElement;}if(Number.isNaN(stick)||!parent)continue;const range=parent.getBoundingClientRect();if(range.top+window.scrollY>height)continue;if(range.height-rect.height<height)continue;top=stick;}if(top>band||top+rect.height<=0)continue;bottom=Math.max(bottom,top+rect.height);}}}}return Math.round(bottom);}/**\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n */export default function SmoothScroll(props){const{enabled=true,intensity=50}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;React.useEffect(()=>{if(!enabled||isCanvas||typeof window===\"undefined\")return;window.__framerUniversitySmoothScroll?.release();if(isPhoneDevice())return;const motionQuery=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const rootStyle=document.documentElement.style;const previousPadding=rootStyle.scrollPaddingTop;// A site that already sets scroll-padding-top keeps it.\nconst authoredPadding=!previousPadding&&(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)>0;let current=window.scrollY;let target=current;let frame=0;let previousTime=0;let stopped=false;let gesture=null;const normalized=clamp(intensity,0,100)/100;const response=normalized<=.5?.22-.12*(normalized/.5):.1-.07*((normalized-.5)/.5);const writeScroll=top=>{window.scrollTo({top,behavior:\"instant\"});};// Chrome fires `scrollend` after every instant programmatic scroll,\n// so a glide would fire one per frame, and Framer's router saves the\n// position with history.replaceState on each. Hold them while the\n// page glides and deliver one when it ends, like a native smooth\n// scroll.\nconst pendingFrames=new Set;const requestOwnedFrame=callback=>{const id=requestAnimationFrame(time=>{pendingFrames.delete(id);callback(time);});pendingFrames.add(id);return id;};let scrollEndHeld=false;const onScrollEnd=event=>{if(event.target!==document)return;if(frame&&event.isTrusted){event.stopImmediatePropagation();scrollEndHeld=true;return;}scrollEndHeld=false;};// A glide that stopped without a later write of its own gets the held\n// scrollend delivered after this frame's scroll events.\nconst flushScrollEnd=()=>{if(!scrollEndHeld)return;requestOwnedFrame(()=>{if(!scrollEndHeld||frame)return;scrollEndHeld=false;document.dispatchEvent(new Event(\"scrollend\",{bubbles:true}));});};const stop=()=>{if(frame)cancelAnimationFrame(frame);frame=0;previousTime=0;current=target=window.scrollY;flushScrollEnd();};const hasStopScroll=()=>{if(document.querySelector(\"style[data-frameruni-stop-scroll]\")){return true;}const htmlOverflow=getComputedStyle(document.documentElement).overflowY;const bodyOverflow=getComputedStyle(document.body).overflowY;return htmlOverflow===\"hidden\"||htmlOverflow===\"clip\"||bodyOverflow===\"hidden\"||bodyOverflow===\"clip\";};const syncStoppedState=()=>{const nextStopped=hasStopScroll();if(nextStopped&&!stopped)stop();if(!nextStopped&&stopped){current=target=window.scrollY;}stopped=nextStopped;};const scheduleFrame=()=>{frame=requestAnimationFrame(advanceFrame);};const advanceFrame=time=>{if(stopped||motionQuery.matches){stop();return;}// Real elapsed time, uncapped: when the main thread is starved the\n// glide catches up on the next frame instead of running in slow\n// motion (the exponential mix stays bounded for any delta).\nconst deltaTime=previousTime?Math.max(0,(time-previousTime)/1e3):1/60;previousTime=time;if(step(deltaTime))scheduleFrame();else{frame=0;previousTime=0;flushScrollEnd();}};// One interpolation step; returns true while still gliding.\nconst step=deltaTime=>{const mix=1-Math.exp(-response*60*deltaTime);current+=(target-current)*mix;if(Math.abs(target-current)<.35)current=target;writeScroll(current);return current!==target;};// Page scroll range, read once per gesture (and again at the cached\n// edge or after a resize) so the wheel path does not force layout on\n// every event.\nlet cachedLimit=-1;const scrollLimit=()=>{if(cachedLimit<0){cachedLimit=Math.max(0,document.documentElement.scrollHeight-window.innerHeight);}return cachedLimit;};const jumpTo=nextTarget=>{if(frame)cancelAnimationFrame(frame);frame=0;previousTime=0;current=target=nextTarget;writeScroll(nextTarget);flushScrollEnd();};const animateTo=nextTarget=>{if(motionQuery.matches){jumpTo(nextTarget);return;}current=window.scrollY;target=nextTarget;previousTime=0;if(current===target)return;if(!frame)scheduleFrame();};// Applied as scroll-padding-top so Framer's own anchor links, the\n// browser's deep-link jump, and our click handler all share it.\nconst applyHeaderOffset=()=>{if(previousPadding||authoredPadding)return;const value=measureHeader();rootStyle.scrollPaddingTop=value?`${value}px`:previousPadding;};// Fixes a hash target that landed flush with the top, under the header.\nconst alignHashTarget=()=>{if(stopped||!window.location.hash)return;let id=window.location.hash.slice(1);try{id=decodeURIComponent(id);}catch{return;}const element=document.getElementById(id);if(!element)return;applyHeaderOffset();const padding=Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0;const margin=Number.parseFloat(getComputedStyle(element).scrollMarginTop)||0;if(padding<1)return;if(Math.abs(element.getBoundingClientRect().top-margin)>2)return;jumpTo(resolveScrollTarget(element));};const resolveScrollTarget=value=>{const limit=Math.max(0,document.documentElement.scrollHeight-window.innerHeight);if(typeof value===\"number\")return clamp(value,0,limit);const element=value instanceof HTMLElement?value:value===\"#\"||value===\"#top\"?null:document.getElementById(value.replace(/^#/,\"\"));if(!element)return 0;const style=getComputedStyle(element);const rootStyle=getComputedStyle(document.documentElement);const margin=Number.parseFloat(style.scrollMarginTop)||0;const padding=Number.parseFloat(rootStyle.scrollPaddingTop)||0;return clamp(element.getBoundingClientRect().top+window.scrollY-margin-padding,0,limit);};const onWheel=event=>{if(stopped||motionQuery.matches||event.ctrlKey||!event.cancelable)return;const multiplier=event.deltaMode===WheelEvent.DOM_DELTA_LINE?16:event.deltaMode===WheelEvent.DOM_DELTA_PAGE?window.innerHeight:1;const delta=event.deltaY*multiplier;if(!delta)return;// Native-style latching: a gesture stays with the scroller it\n// started on. A nested panel at its edge only chains to the page\n// on the next gesture, and page momentum is not hijacked by a\n// panel that slides under the pointer.\nconst path=event.composedPath();const continuing=gesture&&event.timeStamp-gesture.time<150&&(!gesture.node||path.includes(gesture.node));const owner=continuing?gesture.node:findNestedScroller(path,delta);gesture={node:owner,time:event.timeStamp};if(owner){if(!canScrollBy(owner,delta))event.preventDefault();return;}// Once this page gesture is ours, keep ownership even when the\n// clamped target cannot move. Letting edge events fall through lets\n// native scrolling race the active interpolation and causes bounce.\nevent.preventDefault();// Re-read the range at a gesture start or at the cached edge\n// (lazy content may have grown); otherwise reuse it.\nif(!continuing||target+delta>scrollLimit())cachedLimit=-1;const nextTarget=clamp(target+delta,0,scrollLimit());if(nextTarget===target)return;target=nextTarget;if(frame)return;// Idle: take the first step now, inside the wheel event, so the\n// page moves this frame instead of waiting for the next rAF. The\n// next frame integrates from this handler, so the curve is the\n// same, just one frame earlier.\ncurrent=window.scrollY;scheduleFrame();// rAF time is the frame start: a frame that began before this\n// handler ran is the same frame, so it adds no second step.\npreviousTime=performance.now();if(!step(1/60)){cancelAnimationFrame(frame);frame=0;previousTime=0;flushScrollEnd();}};const onScroll=()=>{const actual=window.scrollY;if(frame&&Math.abs(actual-current)<=1)return;if(frame)cancelAnimationFrame(frame);frame=0;previousTime=0;current=target=actual;flushScrollEnd();};const onClick=event=>{const clickable=event.composedPath().find(node=>node instanceof HTMLElement&&node.matches(\"a[href], button\"));if(!clickable)return;stop();if(!(clickable instanceof HTMLAnchorElement))return;if(event.defaultPrevented)return;if(event.button!==0)return;if(event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)return;if(clickable.hasAttribute(\"download\"))return;if(clickable.target&&clickable.target!==\"\"&&clickable.target!==\"_self\"){return;}const url=new URL(clickable.href,window.location.href);const currentUrl=new URL(window.location.href);const isSamePage=url.origin===currentUrl.origin&&url.pathname===currentUrl.pathname&&url.search===currentUrl.search;if(!isSamePage||!url.hash)return;let hash=url.hash;try{hash=decodeURIComponent(url.hash);}catch{return;}const element=document.getElementById(hash.slice(1));if(!element&&hash!==\"#top\"&&hash!==\"#\")return;event.preventDefault();if(window.location.hash===url.hash){history.replaceState(history.state,\"\",url.hash);}else{history.pushState(history.state,\"\",url.hash);}animateTo(resolveScrollTarget(element??hash));};const onHashChange=()=>requestOwnedFrame(alignHashTarget);// Re-measure before any same-page hash link runs (ours, Framer's\n// Links, or the browser's), so breakpoint and late headers count.\nconst onClickCapture=event=>{const link=event.composedPath().find(node=>node instanceof HTMLAnchorElement&&node.hash);if(link)applyHeaderOffset();};let resizeTimer=0;const onResize=()=>{cachedLimit=-1;clearTimeout(resizeTimer);resizeTimer=window.setTimeout(applyHeaderOffset,100);};let alignFrame=requestAnimationFrame(()=>{alignFrame=requestAnimationFrame(alignHashTarget);});const attributeObserver=new MutationObserver(records=>{const relevant=records.some(record=>record.type===\"attributes\"&&(record.target===document.documentElement||record.target===document.body));if(relevant)syncStoppedState();});const markerObserver=new MutationObserver(records=>{const relevant=records.some(record=>[...record.addedNodes,...record.removedNodes].some(node=>node instanceof Element&&(node.matches(\"style[data-frameruni-stop-scroll]\")||Boolean(node.querySelector(\"style[data-frameruni-stop-scroll]\")))));if(relevant)syncStoppedState();});attributeObserver.observe(document.documentElement,{attributes:true,attributeFilter:[\"style\",\"class\"]});attributeObserver.observe(document.body,{attributes:true,attributeFilter:[\"style\",\"class\"]});markerObserver.observe(document.head,{subtree:true,childList:true});markerObserver.observe(document.body,{subtree:true,childList:true});const release=()=>{stop();cancelAnimationFrame(alignFrame);pendingFrames.forEach(cancelAnimationFrame);pendingFrames.clear();clearTimeout(resizeTimer);rootStyle.scrollPaddingTop=previousPadding;window.removeEventListener(\"hashchange\",onHashChange);window.removeEventListener(\"popstate\",onHashChange);window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"load\",onResize);window.removeEventListener(\"click\",onClickCapture,true);attributeObserver.disconnect();markerObserver.disconnect();window.removeEventListener(\"wheel\",onWheel);window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"scrollend\",onScrollEnd,true);window.removeEventListener(\"touchstart\",stop);window.removeEventListener(\"click\",onClick);motionQuery.removeEventListener(\"change\",stop);if(window.__framerUniversitySmoothScroll?.release===release){delete window.__framerUniversitySmoothScroll;}};window.__framerUniversitySmoothScroll={release};window.addEventListener(\"wheel\",onWheel,{passive:false});window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"scrollend\",onScrollEnd,true);window.addEventListener(\"touchstart\",stop,{passive:true});window.addEventListener(\"click\",onClick);window.addEventListener(\"hashchange\",onHashChange);window.addEventListener(\"popstate\",onHashChange);window.addEventListener(\"resize\",onResize);window.addEventListener(\"load\",onResize);window.addEventListener(\"click\",onClickCapture,true);motionQuery.addEventListener(\"change\",stop);syncStoppedState();applyHeaderOffset();return release;},[enabled,intensity,isCanvas]);return /*#__PURE__*/_jsx(\"div\",{\"data-build\":\"smooth-scroll-prod-20261005-01\",\"aria-hidden\":\"true\",\"data-smooth-scroll-host\":\"\",style:{position:\"relative\",width:\"100%\",height:\"100%\",minWidth:isCanvas?24:0,minHeight:isCanvas?24:0,boxSizing:\"border-box\",border:\"none\",borderRadius:0,pointerEvents:\"none\"}});}addPropertyControls(SmoothScroll,{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},intensity:{type:ControlType.Number,title:\"Intensity\",min:0,max:100,step:1,defaultValue:50,unit:\"%\",displayStepper:true,description:\"More components at [Framer University](https://frameruni.link/cc).\"}});SmoothScroll.displayName=\"Smooth Scroll\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll_Prod.map","// Generated by Framer (3280217)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,PropertyOverrides,RenderTarget,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS,withVariantAppearEffect}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import SmoothScroll from\"https://framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/VCjqndCnvtR7DP1njQil/SmoothScroll_Prod.js\";import Nav from\"#framer/local/canvasComponent/blX3MlTZN/blX3MlTZN.js\";import Footer from\"#framer/local/canvasComponent/s32KTa05G/s32KTa05G.js\";const NavFonts=getFonts(Nav);const NavWithVariantAppearEffect=withVariantAppearEffect(Nav);const FooterFonts=getFonts(Footer);const SmoothScrollFonts=getFonts(SmoothScroll);const breakpoints={tVRaKR_Yv:\"(min-width: 1200px)\",v8PNq9MwI:\"(max-width: 809.98px)\",xoUiZxuRM:\"(min-width: 810px) and (max-width: 1199.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-nD6TY\";const variantClassNames={tVRaKR_Yv:\"framer-v-1lqs4df\",v8PNq9MwI:\"framer-v-10vciwo\",xoUiZxuRM:\"framer-v-1mw0149\"};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={v8PNq9MwI:[\".framer-nD6TY .framer-2lcvdh { left: 0px; padding: 0px 10px 0px 10px; right: 0px; width: unset; }\"],xoUiZxuRM:[\".framer-nD6TY .framer-2lcvdh { padding: 0px 24px 0px 24px; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={v8PNq9MwI:\".framer-10vciwo-override\",xoUiZxuRM:\".framer-1mw0149-override\"};const rules=[\".framer-nD6TY.framer-1ohetd9, .framer-nD6TY .framer-1ohetd9 { display: block; }\",\".framer-nD6TY.framer-1lqs4df { align-content: center; align-items: center; background-color: var(--token-6716c7c2-c9b9-4f9b-bd9b-1e14893089d1); 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-nD6TY .framer-kw3ptg-container { flex: none; height: auto; left: 50%; max-width: 1400px; order: -1000; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 100%; z-index: 10; }\",\".framer-nD6TY .framer-2lcvdh { align-content: center; align-items: center; bottom: 0px; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; left: calc(50.00000000000002% - min(1400px, 100%) / 2); max-width: 1400px; order: -999; overflow: var(--overflow-clip-fallback, clip); padding: 0px 40px 0px 40px; pointer-events: none; position: absolute; top: 0px; width: 100%; z-index: 5; }\",\".framer-nD6TY .framer-1mbq1e0, .framer-nD6TY .framer-oegan1 { background-color: var(--token-456c479a-8974-4997-828e-03028874ce5f); flex: none; height: 100%; position: relative; width: 1px; z-index: 1; }\",\".framer-nD6TY .framer-ezbxsn { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-nD6TY .framer-19u3zg1-container { flex: none; height: auto; order: 1003; position: relative; width: 100%; z-index: 5; }\",\".framer-nD6TY .framer-hswfrf-container { flex: none; height: auto; left: 0px; order: 1004; position: absolute; top: 0px; width: auto; z-index: 1; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={tVRaKR_Yv:\"(min-width: 1200px)\",v8PNq9MwI:\"(max-width: 809.98px)\",xoUiZxuRM:\"(min-width: 810px) and (max-width: 1199.98px)\"};const humanReadableVariantMap={Desktop:\"tVRaKR_Yv\",Phone:\"v8PNq9MwI\",Tablet:\"xoUiZxuRM\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"tVRaKR_Yv\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"tVRaKR_Yv\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-6716c7c2-c9b9-4f9b-bd9b-1e14893089d1); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1lqs4df\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:60,width:\"min(100vw, 1400px)\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-kw3ptg-container\",\"data-framer-layout-hint-center-x\":true,layoutScroll:true,nodeId:\"ld0rjcVyr\",rendersWithMotion:true,scopeId:\"GzQfD9jHu\",transformTemplate:transformTemplate1,children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{v8PNq9MwI:{__framer__variantAppearEffectEnabled:undefined,variant:matchVariant(\"YIPKhRWr7\")},xoUiZxuRM:{__framer__variantAppearEffectEnabled:undefined,variant:matchVariant(\"Zv1olBVkl\")}},children:/*#__PURE__*/_jsx(NavWithVariantAppearEffect,{__framer__animateOnce:false,__framer__scrollDirection:{direction:\"down\",target:\"b9zFFEXPW\"},__framer__threshold:0,__framer__variantAppearEffectEnabled:true,height:\"100%\",id:\"ld0rjcVyr\",layoutId:\"ld0rjcVyr\",style:{maxWidth:\"100%\",width:\"100%\"},variant:matchVariant(\"qgZiKbVv5\"),width:\"100%\"})})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2lcvdh\",\"data-framer-name\":\"Row\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"framer-1mbq1e0\",\"data-framer-name\":\"Guide Left\"}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-oegan1\",\"data-framer-name\":\"Guide Right\"})]}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-ezbxsn\"}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:732,width:\"100vw\",y:1e3,children:/*#__PURE__*/_jsx(Container,{className:\"framer-19u3zg1-container\",nodeId:\"L_D2ia10S\",scopeId:\"GzQfD9jHu\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{v8PNq9MwI:{variant:matchVariant(\"WgxccogsS\")},xoUiZxuRM:{variant:matchVariant(\"IvjpdqrV2\")}},children:/*#__PURE__*/_jsx(Footer,{height:\"100%\",id:\"L_D2ia10S\",layoutId:\"L_D2ia10S\",style:{width:\"100%\"},variant:matchVariant(\"nxUlLuKh5\"),width:\"100%\"})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-hswfrf-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"jlotxKgRb\",scopeId:\"GzQfD9jHu\",children:/*#__PURE__*/_jsx(SmoothScroll,{enabled:true,height:\"100%\",id:\"jlotxKgRb\",intensity:14,layoutId:\"jlotxKgRb\",width:\"100%\"})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=selectors[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"xoUiZxuRM\":{\"layout\":[\"fixed\",\"fixed\"]},\"v8PNq9MwI\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"tVRaKR_Yv\":[\".framer-kw3ptg-container\",\".framer-19u3zg1-container\",\".framer-hswfrf-container\"],\"xoUiZxuRM\":[\".framer-kw3ptg-container\",\".framer-19u3zg1-container\",\".framer-hswfrf-container\"],\"v8PNq9MwI\":[\".framer-kw3ptg-container\",\".framer-19u3zg1-container\",\".framer-hswfrf-container\"]}\n * @framerBreakpoints {\"tVRaKR_Yv\":{\"min\":1200,\"canvasClassName\":\"framer-1lqs4df-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"xoUiZxuRM\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-1mw0149-override\",\"minHeight\":1000,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"v8PNq9MwI\":{\"max\":809,\"canvasClassName\":\"framer-10vciwo-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant tVRaKR_Yv\n * @framerLayoutTemplate true\n */const FramerGzQfD9jHu=withCSS(Component,css,\"framer-nD6TY\");export default FramerGzQfD9jHu;FramerGzQfD9jHu.displayName=\"Template\";FramerGzQfD9jHu.defaultProps={height:1e3,width:1200};addFonts(FramerGzQfD9jHu,[{explicitInter:true,fonts:[]},...NavFonts,...FooterFonts,...SmoothScrollFonts],{supportsExplicitInterCodegen:true});FramerGzQfD9jHu.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(Nav,{},context),()=>forwardLoader(Footer,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerGzQfD9jHu\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"1000\",\"framerIntrinsicWidth\":\"1200\",\"framerHitTargets\":\"{\\\"tVRaKR_Yv\\\":[\\\".framer-kw3ptg-container\\\",\\\".framer-19u3zg1-container\\\",\\\".framer-hswfrf-container\\\"],\\\"xoUiZxuRM\\\":[\\\".framer-kw3ptg-container\\\",\\\".framer-19u3zg1-container\\\",\\\".framer-hswfrf-container\\\"],\\\"v8PNq9MwI\\\":[\\\".framer-kw3ptg-container\\\",\\\".framer-19u3zg1-container\\\",\\\".framer-hswfrf-container\\\"]}\",\"framerDefaultVariant\":\"tVRaKR_Yv\",\"framerAutoSizeImages\":\"true\",\"framerBreakpoints\":\"{\\\"tVRaKR_Yv\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-1lqs4df-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"xoUiZxuRM\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-1mw0149-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"v8PNq9MwI\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-10vciwo-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"xoUiZxuRM\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"v8PNq9MwI\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerLayoutTemplate\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"__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 Template1 from \"https://framerusercontent.com/modules/XaGMys5YYKHZtGXytTvu/zbttJDRHWNatKwHsmKMD/GzQfD9jHu.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {AuOgf9b9m: \"customers\", NSiD1MB3C: \"integrations\", uVohBYcgl: \"title\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/qmGXWhaOTwwmOY01IkeL/JA6pyDti26Lz3UY2QHQc/augiA20Il.js\")), path: \"/\"}, aFdRhROAN: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8I1bp2S6UphmEzXhpfWX/g7ivv7zRWKU8CdyjL80Y/aFdRhROAN.js\")), path: \"/pricing\"}, VD43dz3pn: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/twJkdDspo3ovCcc40lnw/IISkBBsR1h9mhx7eDLb3/VD43dz3pn.js\")), path: \"/features\"}, nk2QZqLZY: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/YI5oYqftNWe73py9H7Tv/FRd5LFiguZTvHcp70ebu/nk2QZqLZY.js\")), path: \"/about\"}, c5xcoPwPJ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/u47xVxAIRFst8z8t4sxn/n9HBlzeR3memlFjnDdQi/c5xcoPwPJ.js\")), path: \"/contact\"}, dksmWJbwE: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/1Kmaj0OfajxnxwBkAwQx/mvpSBcnUQWcQsec1lDtM/dksmWJbwE.js\")), path: \"/blog\"}, YhdMOCg8S: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/jgKaO51W7Kvxmnln1YBK/soEaqvH1DPn4uHuXQRE7/YhdMOCg8S.js\")), path: \"/404\"}, Vj_Kqvrx2: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/DvYT27Rno5cH95k8Z5hh/yJkh6M93MpfseDqXoIbh/Vj_Kqvrx2.js\")), path: \"/privacy\"}, clTO_e75d: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Oea1AQepJCng1vzIZXz0/Mpz0wkHBh8e86xFgkUAh/clTO_e75d.js\")), path: \"/terms\"}, lBGx755o1: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ux4WtrGVnUaDIGErakAZ/5OFGBvXXBmlWi68U3K7Y/lBGx755o1.js\")), path: \"/customers\"}, X8qoto2AY: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ZZpdeL0lbvlZ9N0WSr2T/FqlnAuQ0gYXMa7pNQV85/X8qoto2AY.js\")), path: \"/design-system\"}, K5FHMUtoc: {collectionId: \"yVbkOuMiZ\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/JboKG3TT9VEjoLwmYf6M/Qsr90YJbK6WUJiW2XRYm/K5FHMUtoc.js\")), path: \"/blog/:m8nTnBAkf\"}, NJQWyOjKz: {collectionId: \"Yq4Mpae4Y\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/hDLNBzsz18lbZAMMiW78/Fv2VALyqxrOYkDAZbiGJ/NJQWyOjKz.js\")), path: \"/blog/category/:aIlGxBixN\"}, ozT_wEaa1: {collectionId: \"SOWzyUTKV\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/AuHPyOxSsmnBVive5oUZ/awRQeldVr4IZ9qQgM2v7/ozT_wEaa1.js\")), path: \"/customers/:FQNbsqlYI\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {SOWzyUTKV: async () => (await import(\"https://framerusercontent.com/modules/pUB9ltUzCqxZpZxtmm0E/TR2w29pt2pVahV0DnaYL/SOWzyUTKV.js\"))?.[\"utils\"], Yq4Mpae4Y: async () => (await import(\"https://framerusercontent.com/modules/tnoohhy84ARxF7t855Mw/cuOT3uW4VBVXLCMdooJw/Yq4Mpae4Y.js\"))?.[\"utils\"], yVbkOuMiZ: async () => (await import(\"https://framerusercontent.com/modules/ipLQokkfn2faxcSkiCFk/evXmhuGuucAvc07AVixc/yVbkOuMiZ.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"55d9c098d059175f1387dcf2ca73de086a8478007062201d9ff093cb4ea7cdbd\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"aFdRhROAN\":\r\ncase \"VD43dz3pn\":\r\ncase \"nk2QZqLZY\":\r\ncase \"c5xcoPwPJ\":\r\ncase \"dksmWJbwE\":\r\ncase \"YhdMOCg8S\":\r\ncase \"Vj_Kqvrx2\":\r\ncase \"clTO_e75d\":\r\ncase \"lBGx755o1\":\r\ncase \"X8qoto2AY\":\r\ncase \"K5FHMUtoc\":\r\ncase \"NJQWyOjKz\":\r\ncase \"ozT_wEaa1\":\r\nreturn React.createElement(Template1, {...props, key: \"Template1\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"aFdRhROAN\":\r\ncase \"VD43dz3pn\":\r\ncase \"nk2QZqLZY\":\r\ncase \"c5xcoPwPJ\":\r\ncase \"dksmWJbwE\":\r\ncase \"YhdMOCg8S\":\r\ncase \"Vj_Kqvrx2\":\r\ncase \"clTO_e75d\":\r\ncase \"lBGx755o1\":\r\ncase \"X8qoto2AY\":\r\ncase \"K5FHMUtoc\":\r\ncase \"NJQWyOjKz\":\r\ncase \"ozT_wEaa1\":\r\nreturn [{hash: \"1lqs4df\", mediaQuery: \"(min-width: 1200px)\"}, {hash: \"1mw0149\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"10vciwo\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/jgKaO51W7Kvxmnln1YBK/soEaqvH1DPn4uHuXQRE7/YhdMOCg8S.js\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://saasyio.framer.ai\",\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: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/4Hd3c40WnoBp7H1nRHTS/YSSwWuiZ55jyjIHrSTtl/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: {angle: 270, type: \"wipe\", width: \"100%\"}, opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.4, 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\t;(function () {\r\n\t\t\tif (!isBrowser) return\r\n\r\n\t\t\tReact.startTransition(() => {\r\n\t\t\t\tReactDOM.hydrateRoot(\r\n\t\t\t\t\tdocument.getElementById(\"__framer-badge-container\"),\r\n\t\t\t\t\tReact.createElement(React.Suspense, {}, React.createElement(React.lazy(() => import(\"__framer-badge\"))))\r\n\t\t\t\t)\r\n\t\t\t})\r\n\t\t})()\r\n\t"],"mappings":"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"}