{"version":3,"file":"shared-lib.CWM0YSfR.mjs","names":["React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts"],"sources":["https:/framerusercontent.com/modules/XslIFOzPzmmPdX7CPogp/9YX9bvuPEZBnO1xMrlXK/MUOTr9l6y.js","https:/framerusercontent.com/modules/NLWE5H255dgvaBczPmbv/pwvSGJrGZPYQaroFHkAc/KhtBWJLC8.js","https:/framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/Jx2Y4gq6eTurOxx3fNuZ/SmoothScroll_Prod.js","https:/framerusercontent.com/modules/wndnhXSKBygxLf0MWfbY/HRr8ocZbRXlQ3ssBzTD0/siteMetadata.js"],"sourcesContent":["// Generated by Framer (b135809)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Satoshi-regular\",\"FS;Satoshi-bold\",\"FS;Satoshi-bold italic\",\"FS;Satoshi-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Satoshi\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Satoshi\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/TTX2Z3BF3P6Y5BQT3IV2VNOK6FL22KUT/7QYRJOI3JIMYHGY6CH7SOIFRQLZOLNJ6/KFIAZD4RUMEZIYV6FQ3T3GP5PDBDB6JY.woff2\",weight:\"400\"},{cssFamilyName:\"Satoshi\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Satoshi\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/LAFFD4SDUCDVQEXFPDC7C53EQ4ZELWQI/PXCT3G6LO6ICM5I3NTYENYPWJAECAWDD/GHM6WVH6MILNYOOCXHXB5GTSGNTMGXZR.woff2\",weight:\"700\"},{cssFamilyName:\"Satoshi\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Satoshi\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/CDEBEFT2R7XKNGXSBBLZGMY4MMHZG75P/HEVKDGQCYDZ7Z6CDVR2ZQGBCTUD6ZARH/BKWEE3VKGTFABE37K2DTH625VUSN2N35.woff2\",weight:\"700\"},{cssFamilyName:\"Satoshi\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Satoshi\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/MPIFA4B3XXRNY2MJDGP6GOOOAF6EOCLO/W5E4ZFYPJ3V6JKMBGHB6YMITK6EWS2XA/QOMBWPST76ICDYF6WOBS7SQ7RBT67QW2.woff2\",weight:\"400\"}]}];export const css=['.framer-f8EQu .framer-styles-preset-7r8zme:not(.rich-text-wrapper), .framer-f8EQu .framer-styles-preset-7r8zme.rich-text-wrapper p { --framer-font-family: \"Satoshi\", \"Satoshi Placeholder\", sans-serif; --framer-font-family-bold: \"Satoshi\", \"Satoshi Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Satoshi\", \"Satoshi Placeholder\", sans-serif; --framer-font-family-italic: \"Satoshi\", \"Satoshi Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-6d75b1c6-f15a-4b60-a737-a5d77c682abc, #d7d7d7); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-f8EQu\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6d165e2)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/XslIFOzPzmmPdX7CPogp/9YX9bvuPEZBnO1xMrlXK/MUOTr9l6y.js\";const enabledGestures={hTiZpTdy4:{hover:true}};const cycleOrder=[\"hTiZpTdy4\",\"m94jhKoSq\"];const serializationHash=\"framer-iTPkL\";const variantClassNames={hTiZpTdy4:\"framer-v-1yb6bsw\",m94jhKoSq:\"framer-v-cfyo89\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const qJHoQzDck=undefined;const LigYIuCdg=undefined;const transition1={delay:0,duration:.4,ease:[.44,0,.56,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Desktop:\"hTiZpTdy4\",Mobile:\"m94jhKoSq\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,link,title,width,...props})=>{return{...props,LigYIuCdg:title??props.LigYIuCdg??\"Contact Us\",qJHoQzDck:link??props.qJHoQzDck,variant:humanReadableVariantMap[props.variant]??props.variant??\"hTiZpTdy4\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,LigYIuCdg,qJHoQzDck,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"hTiZpTdy4\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"m94jhKoSq\")return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:qJHoQzDck,motionChild:true,nodeId:\"hTiZpTdy4\",openInNewTab:false,scopeId:\"KhtBWJLC8\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1yb6bsw\",className,classNames)} framer-18tz6sx`,\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"hTiZpTdy4\",ref:refBinding,style:{...style},...addPropertyOverrides({\"hTiZpTdy4-hover\":{\"data-framer-name\":undefined},m94jhKoSq:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-7r8zme\",\"data-styles-preset\":\"MUOTr9l6y\",dir:\"auto\",style:{\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-dfee1807-bc5c-4803-a2f6-3d7435ea1579, rgb(255, 255, 255)))\"},children:\"Contact Us\"})}),className:\"framer-1bv1dnx\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"nqMPCpvJ6\",style:{\"--extracted-r6o4lv\":\"var(--token-dfee1807-bc5c-4803-a2f6-3d7435ea1579, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:LigYIuCdg,verticalAlignment:\"top\",withExternalLayout:true}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-to9qiv\",\"data-framer-name\":\"Border\",layoutDependency:layoutDependency,layoutId:\"nacFMk8tz\",style:{backgroundColor:\"var(--token-dfee1807-bc5c-4803-a2f6-3d7435ea1579, rgb(255, 255, 255))\",opacity:0},variants:{\"hTiZpTdy4-hover\":{opacity:1}}})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-iTPkL.framer-18tz6sx, .framer-iTPkL .framer-18tz6sx { display: block; }\",\".framer-iTPkL.framer-1yb6bsw { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px 0px 1px 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-iTPkL .framer-1bv1dnx { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-iTPkL .framer-to9qiv { flex: none; height: 1px; overflow: visible; position: relative; width: 3px; }\",\".framer-iTPkL.framer-v-cfyo89.framer-1yb6bsw { cursor: unset; }\",\".framer-iTPkL.framer-v-1yb6bsw.hover .framer-to9qiv { align-self: stretch; width: auto; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 26\n * @framerIntrinsicWidth 78\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"m94jhKoSq\":{\"layout\":[\"auto\",\"auto\"]},\"zBUpJI181\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"LigYIuCdg\":\"title\",\"qJHoQzDck\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerKhtBWJLC8=withCSS(Component,css,\"framer-iTPkL\");export default FramerKhtBWJLC8;FramerKhtBWJLC8.displayName=\"Main Button\";FramerKhtBWJLC8.defaultProps={height:26,width:78};addPropertyControls(FramerKhtBWJLC8,{variant:{options:[\"hTiZpTdy4\",\"m94jhKoSq\"],optionTitles:[\"Desktop\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum},LigYIuCdg:{defaultValue:\"Contact Us\",displayTextArea:false,title:\"Title\",type:ControlType.String},onLigYIuCdgChange:{changes:\"LigYIuCdg\",type:ControlType.ChangeHandler},qJHoQzDck:{title:\"Link\",type:ControlType.Link}});addFonts(FramerKhtBWJLC8,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerKhtBWJLC8\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"26\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"m94jhKoSq\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"zBUpJI181\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"78\",\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"LigYIuCdg\\\":\\\"title\\\",\\\"qJHoQzDck\\\":\\\"link\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./KhtBWJLC8.map","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{intensity=50}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;React.useEffect(()=>{if(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.\nlet 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;requestAnimationFrame(()=>{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=()=>requestAnimationFrame(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);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;},[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,{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\":{\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll_Prod.map","// Generated by Framer (b135809)\nexport default function metadata(params,activeLocale){return{description:\"Portrixe is a clean portfolio and agency landing page template, perfect for freelancers, creatives, agencies, and minimal portfolio showcases.\",favicon:\"https://framerusercontent.com/assets/ahaP1M1uvCYLMsLyvIHFMQvoAa0.svg\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/LD0EaSh1TV4h7S7LCF30uugq9M.png\",title:\"Creative Personal Portfolio & Agency\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}