{"version":3,"file":"script_main.D4acLtho.mjs","names":["ATTR","React.useState","React.useRef","CSS","place","locked","React.useRef","owner","ATTR","_Fragment","Navigation","NavigationInfo","useRef","React.useId","PropertyOverrides","UserComponent","Home","Edit","Briefcase","Grid","ShoppingBag","User","Mail","React.createElement","Main","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/bHxeQ2iR1BasgdwpMdG0/RDIiX0VCCQQ2QlS4vVCN/Intro.js","https:/framerusercontent.com/modules/Qj2SNDykzbTZVyobcDy6/CE3C0rs8kOjv3u4AKvKH/ScrollBar.js","https:/framerusercontent.com/modules/9LsRwnjpJvSSvUcpTaky/KKJwOtWaH7yIsqK0JztS/SmoothScroll.js","https:/framerusercontent.com/modules/WZHQ7SOIgxS8pst8JxcL/GdF8VRdEAngq7CHqhdgc/nN7NjryMn.js","framer:toplevel/main"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * Sidefolio Intro — a short opening for the site.\n * A line draws in at the middle of the screen and fills. Then the fill colour and the counter fade, the\n * quiet track line runs to both edges and splits in two: the halves of the screen carry it away and the\n * page opens from the middle (or simply fades, see \"Exit\"). \"Stretch Colour\" picks what runs to the\n * edges: the track colour, the fill colour, or a colour of its own (\"Stretch Line\"); \"Stretch Opacity\"\n * makes that line quieter without touching the line that fills.\n * A small counter can run from 0 to 100 together with the fill; its text is set with Framer's own font\n * control (\"Number Font\": family, weight, size, line height, letter spacing) and the \"Number\" colour.\n *\n * Place one instance in the page layout. On the canvas it shows nothing, unless \"Canvas Preview\" picks a still\n * frame to look at while changing colours, the line or the counter. On the published site it follows\n * \"Show\". In the editor's Preview it ignores \"Show\" and plays every time Preview starts or a setting\n * changes, so it can be tuned there.\n *\n * It reads nothing from the page: no layer names, no texts, no CMS. Every part leaves through CSS alone,\n * so the screen is never left covered when scripts are slow or blocked, and it never catches a click.\n * Visitors who ask their device for reduced motion do not get it at all.\n *\n * \"Show\" decides how often a visitor sees it:\n *   Once per visit   — the first page they open; not again until the tab is closed\n *   First visit only — once, then never again on that device\n *   Every page load  — on every full load or refresh\n *   Off              — never\n * Moving between pages inside the site never plays it again.\n */const KEY=\"sf-intro\";const ATTR=\"data-sf-intro\";const EASES={smooth:\"cubic-bezier(0.76, 0, 0.24, 1)\",gentle:\"cubic-bezier(0.65, 0, 0.35, 1)\",swift:\"cubic-bezier(0.22, 1, 0.36, 1)\",linear:\"linear\"};const LINE={width:120,thickness:2,round:true,edges:true,carry:\"track\",dim:100};const COUNTER={show:true,position:\"above\",align:\"center\",gap:12,prefix:\"\",suffix:\"\",zeros:false};// used only until the \"Number Font\" control has a value\nconst FONT={fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontWeight:500,fontSize:14,lineHeight:\"1.3em\",letterSpacing:\"0em\"};const TIMING={delay:0,draw:.4,fill:.7,stretch:.4,open:.9,ease:\"smooth\"};// One clock for the whole page load, shared by every copy of the component (Framer may keep one copy per\n// breakpoint). 0 = nothing decided yet, -1 = not shown on this load, otherwise the moment it is over.\n// It survives moving between pages inside the site; a full load starts from 0 again.\nlet endsAt=0;function over(){return endsAt===-1||endsAt>0&&Date.now()>=endsAt;}const CSS=[\".sf-intro{position:fixed;inset:0;z-index:2147483000;pointer-events:none;animation:sf-intro-gone 0.01s linear var(--sf-gone-at) forwards}\",\".sf-intro-half{position:absolute;left:0;right:0;background:var(--sf-bg);animation:sf-intro-up var(--sf-open) var(--sf-ease) var(--sf-open-at) forwards}\",\".sf-intro-top{top:0;bottom:50%}\",\".sf-intro-bottom{top:50%;bottom:0;animation-name:sf-intro-down}\",// each half keeps its share of the line on its inner edge\n\".sf-intro-edge{position:absolute;left:0;right:0;background:var(--sf-carry);opacity:0;animation:sf-intro-edge var(--sf-open) ease-out var(--sf-open-at) forwards}\",\".sf-intro-top .sf-intro-edge{bottom:0;height:var(--sf-above)}\",\".sf-intro-bottom .sf-intro-edge{top:0;height:var(--sf-below)}\",\".sf-intro-line{position:absolute;left:0;right:0;top:calc(50% - var(--sf-above));height:var(--sf-thick);background:var(--sf-track);clip-path:inset(0 50% round var(--sf-round));animation:sf-intro-draw var(--sf-draw) cubic-bezier(0.22,1,0.36,1) var(--sf-delay) forwards,sf-intro-ink var(--sf-ink-time) linear var(--sf-stretch-at) forwards,sf-intro-stretch var(--sf-stretch) var(--sf-ease) var(--sf-stretch-at) forwards,sf-intro-dim var(--sf-stretch) ease-out var(--sf-stretch-at) forwards,sf-intro-hand 0.01s linear var(--sf-open-at) forwards}\",\".sf-intro-fill{position:absolute;top:0;bottom:0;left:calc(50% - var(--sf-width) / 2);width:var(--sf-width);background:var(--sf-ink);transform:scaleX(0);transform-origin:left center;animation:sf-intro-fill var(--sf-fill) cubic-bezier(0.65,0,0.35,1) var(--sf-fill-at) forwards}\",// the counter: a whole number that CSS itself counts up, so it runs before any script has loaded\n'@property --sf-n{syntax:\"<integer>\";initial-value:0;inherits:false}','@counter-style sf-intro-000{system:extends decimal;pad:3 \"0\"}',\".sf-intro-count{position:absolute;left:calc(50% - var(--sf-width) / 2);width:var(--sf-width);display:block;margin:0;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--sf-count);opacity:0;counter-reset:sf-n var(--sf-n);animation:sf-intro-show var(--sf-draw) ease-out var(--sf-delay) forwards,sf-intro-count var(--sf-fill) cubic-bezier(0.65,0,0.35,1) var(--sf-fill-at) forwards,sf-intro-fade 0.25s ease-out var(--sf-stretch-at) forwards}\",\".sf-intro-count::before{content:var(--sf-prefix) counter(sf-n) var(--sf-suffix)}\",\".sf-intro-count[data-zeros=on]::before{content:var(--sf-prefix) counter(sf-n,sf-intro-000) var(--sf-suffix)}\",\".sf-intro-count[data-at=above]{bottom:calc(50% + var(--sf-above) + var(--sf-gap))}\",\".sf-intro-count[data-at=below]{top:calc(50% + var(--sf-below) + var(--sf-gap))}\",\"@keyframes sf-intro-show{to{opacity:1}}\",\"@keyframes sf-intro-count{to{--sf-n:100}}\",// Stretch Colour: Track or Custom — the fill colour leaves together with the counter\n\".sf-intro:not([data-carry=ink]) .sf-intro-fill{animation:sf-intro-fill var(--sf-fill) cubic-bezier(0.65,0,0.35,1) var(--sf-fill-at) forwards,sf-intro-fade 0.25s ease-out var(--sf-stretch-at) forwards}\",// Exit: Fade — the halves stay where they are and the whole screen fades with the line\n\".sf-intro[data-exit=fade] .sf-intro-half{animation-name:sf-intro-fade}\",\".sf-intro[data-exit=fade] .sf-intro-line{animation:sf-intro-draw var(--sf-draw) cubic-bezier(0.22,1,0.36,1) var(--sf-delay) forwards,sf-intro-ink var(--sf-ink-time) linear var(--sf-stretch-at) forwards,sf-intro-stretch var(--sf-stretch) var(--sf-ease) var(--sf-stretch-at) forwards,sf-intro-dim var(--sf-stretch) ease-out var(--sf-stretch-at) forwards,sf-intro-fade var(--sf-open) var(--sf-ease) var(--sf-open-at) forwards}\",\".sf-intro[data-exit=fade] .sf-intro-edge,.sf-intro[data-edges=off] .sf-intro-edge{display:none}\",\"@keyframes sf-intro-draw{to{clip-path:inset(0 calc(50% - var(--sf-width) / 2) round var(--sf-round))}}\",\"@keyframes sf-intro-fill{to{transform:scaleX(1)}}\",\"@keyframes sf-intro-ink{to{background:var(--sf-carry)}}\",\"@keyframes sf-intro-stretch{from{clip-path:inset(0 calc(50% - var(--sf-width) / 2) round var(--sf-round))}to{clip-path:inset(0 0 round 0px)}}\",\"@keyframes sf-intro-dim{to{opacity:var(--sf-dim)}}\",\"@keyframes sf-intro-hand{to{opacity:0}}\",\"@keyframes sf-intro-up{to{transform:translateY(-100%)}}\",\"@keyframes sf-intro-down{to{transform:translateY(100%)}}\",\"@keyframes sf-intro-edge{from{opacity:var(--sf-dim)}to{opacity:0}}\",\"@keyframes sf-intro-fade{to{opacity:0}}\",\"@keyframes sf-intro-gone{from,to{visibility:hidden}}\",// a visitor who has already seen it, and anyone who asked for less motion\n\"html[\"+ATTR+\"=off] .sf-intro{display:none}\",\"@media (prefers-reduced-motion:reduce){.sf-intro{display:none}}\",// Canvas Preview: still frames, only on the canvas\n\".sf-intro[data-stage],.sf-intro[data-stage] *{animation:none !important;transition:none !important}\",\".sf-intro[data-stage]{visibility:visible}\",\"@media (prefers-reduced-motion:reduce){.sf-intro[data-stage]{display:block}}\",\".sf-intro[data-stage=fill] .sf-intro-line,.sf-intro[data-stage=full] .sf-intro-line{clip-path:inset(0 calc(50% - var(--sf-width) / 2) round var(--sf-round))}\",\".sf-intro[data-stage=fill] .sf-intro-fill{transform:scaleX(0.6)}\",\".sf-intro[data-stage=full] .sf-intro-fill{transform:scaleX(1)}\",\".sf-intro[data-stage=fill] .sf-intro-count{opacity:1;--sf-n:60}\",\".sf-intro[data-stage=full] .sf-intro-count{opacity:1;--sf-n:100}\",\".sf-intro[data-stage=stretch] .sf-intro-line{clip-path:inset(0 0 round 0px);background:var(--sf-carry);opacity:var(--sf-dim)}\",\".sf-intro[data-stage=stretch] .sf-intro-fill,.sf-intro[data-stage=split] .sf-intro-fill,.sf-intro[data-stage=split] .sf-intro-line{opacity:0}\",\".sf-intro[data-stage=split] .sf-intro-top{transform:translateY(-22%)}\",\".sf-intro[data-stage=split] .sf-intro-bottom{transform:translateY(22%)}\",\".sf-intro[data-stage=split] .sf-intro-edge{opacity:calc(var(--sf-dim) * 0.7)}\",\".sf-intro[data-stage=split][data-exit=fade] .sf-intro-half{transform:none;opacity:0.5}\"].join(\"\");// Runs while the published page is still being read, before anything is painted. It leaves a mark on\n// <html>: \"off\" for a visitor who has already seen the intro (so it is not shown even for a moment),\n// \"on\" otherwise. The mark also tells the component it is on the published site: the editor's Preview\n// builds the page in the browser and never runs this.\nfunction earlyCheck(store){const remember=store?\"try{var s=window.\"+store+';if(s.getItem(\"'+KEY+'\")){m=\"off\"}else{s.setItem(\"'+KEY+'\",\"1\")}}catch(e){}':\"\";return'(function(){var d=document.documentElement;if(document.readyState!==\"loading\"||d.hasAttribute(\"'+ATTR+'\"))return;var m=\"on\";'+remember+'d.setAttribute(\"'+ATTR+'\",m)})()';}// Framer reports the same render target for the editor's Preview and for the published site, so the\n// two are told apart here: the editor's own addresses, or a framed page that never got the mark above.\nfunction inEditor(){if(typeof window===\"undefined\")return false;if(/(^|\\.)(framer\\.com|framercanvas\\.com)$/.test(window.location.hostname))return true;let framed=true;try{framed=window.self!==window.top;}catch(e){}return framed&&!document.documentElement.hasAttribute(ATTR);}function seconds(value,fallback){const n=Number(value);return isFinite(n)&&n>=0?n:fallback;}export default function Intro(props){const show=props.show||\"visit\";const exit=props.exit===\"fade\"?\"fade\":\"split\";const line={...LINE,...props.line||{}};const counter={...COUNTER,...props.counter||{}};const timing={...TIMING,...props.timing||{}};const delay=seconds(timing.delay,TIMING.delay);const draw=seconds(timing.draw,TIMING.draw);const fill=seconds(timing.fill,TIMING.fill);const stretch=seconds(timing.stretch,TIMING.stretch);const open=seconds(timing.open,TIMING.open);// each step starts a touch before the one before it has ended, so the motion never stops dead\nconst fillAt=delay+draw*.75;const stretchAt=fillAt+fill;const openAt=stretchAt+stretch*.875;const goneAt=openAt+open+.05;const sec=n=>Math.round(n*1e3)/1e3+\"s\";const onCanvas=RenderTarget.current()===RenderTarget.canvas;const vars0={size:null};const stage=[\"fill\",\"full\",\"stretch\",\"split\"].indexOf(props.canvasPreview)!==-1?props.canvasPreview:\"off\";const inPreview=!onCanvas&&inEditor();// In Preview it starts again whenever a setting changes; this is the list of settings it watches.\nconst settings=inPreview?JSON.stringify([show,exit,props.background,props.ink,props.track,props.stretch,props.count,props.font,line,counter,timing]):\"\";// a copy that mounts after the decision was made (a page change) never starts it again\nconst[done,setDone]=React.useState(()=>!inPreview&&endsAt!==0);const boxRef=React.useRef(null);const[area,setArea]=React.useState({w:1200,h:800});// Canvas Preview: find the frame around the layer and cover it (sizes from offsetWidth, not affected by zoom)\nReact.useEffect(()=>{if(!onCanvas||stage===\"off\")return;let n=boxRef.current?boxRef.current.parentElement:null;let found=null;for(let i=0;n&&i<12;i++){if(n.offsetWidth>=200&&n.offsetHeight>=200){found={w:n.offsetWidth,h:Math.min(n.offsetHeight,1200)};break;}n=n.parentElement;}if(found&&(found.w!==area.w||found.h!==area.h))setArea(found);},[onCanvas,stage]);React.useEffect(()=>{if(onCanvas||show===\"off\")return;if(inPreview){setDone(false);const previewTimer=window.setTimeout(()=>setDone(true),goneAt*1e3+400);return()=>window.clearTimeout(previewTimer);}if(endsAt===0){const mark=document.documentElement.getAttribute(ATTR);let seen=mark===\"off\";if(mark===null&&show!==\"load\"){// the early check did not run: decide here instead\ntry{const store=show===\"first\"?window.localStorage:window.sessionStorage;if(store.getItem(KEY))seen=true;else store.setItem(KEY,\"1\");}catch(e){}}endsAt=seen?-1:Date.now()+goneAt*1e3+400;}if(over()){setDone(true);return;}const timer=window.setTimeout(()=>setDone(true),endsAt-Date.now());return()=>window.clearTimeout(timer);},[settings]);if(onCanvas&&stage===\"off\")return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"}});if(onCanvas)vars0.size={position:\"absolute\",top:0,left:0,right:\"auto\",bottom:\"auto\",width:area.w,height:area.h};if(!onCanvas&&(done||show===\"off\"))return null;const carry=line.carry===\"ink\"||line.carry===\"custom\"?line.carry:\"track\";const thick=Math.max(1,Math.round(Number(line.thickness)||LINE.thickness));const above=Math.ceil(thick/2);const width=Math.max(1,Number(line.width)||LINE.width);const vars={\"--sf-bg\":props.background,\"--sf-ink\":props.ink,\"--sf-track\":props.track,\"--sf-carry\":carry===\"ink\"?props.ink:carry===\"custom\"?props.stretch||props.track:props.track,\"--sf-dim\":String(Math.min(100,Math.max(0,isFinite(Number(line.dim))?Number(line.dim):100))/100),// with the fill colour the switch must be instant (the fill only covers the short line)\n\"--sf-ink-time\":carry===\"ink\"?\"0.01s\":\"0.25s\",\"--sf-count\":props.count,\"--sf-gap\":Math.max(0,Number(counter.gap)||0)+\"px\",\"--sf-prefix\":JSON.stringify(String(counter.prefix||\"\")),\"--sf-suffix\":JSON.stringify(String(counter.suffix||\"\")),\"--sf-width\":\"min(\"+width+\"px, 100% - 48px)\",\"--sf-thick\":thick+\"px\",\"--sf-above\":above+\"px\",\"--sf-below\":thick-above+\"px\",\"--sf-round\":line.round?thick/2+\"px\":\"0px\",\"--sf-ease\":EASES[timing.ease]||EASES.smooth,\"--sf-delay\":sec(delay),\"--sf-draw\":sec(draw),\"--sf-fill\":sec(fill),\"--sf-fill-at\":sec(fillAt),\"--sf-stretch\":sec(stretch),\"--sf-stretch-at\":sec(stretchAt),\"--sf-open\":sec(open),\"--sf-open-at\":sec(openAt),\"--sf-gone-at\":sec(goneAt)};const store=show===\"first\"?\"localStorage\":show===\"visit\"?\"sessionStorage\":\"\";return /*#__PURE__*/_jsxs(\"div\",{ref:boxRef,style:{display:\"contents\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),inPreview||onCanvas?null:/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:earlyCheck(store)}}),/*#__PURE__*/_jsxs(\"div\",{className:\"sf-intro\",\"data-exit\":exit,\"data-edges\":line.edges?\"on\":\"off\",\"data-carry\":carry,\"data-stage\":onCanvas?stage:undefined,\"aria-hidden\":\"true\",style:vars0.size?{...vars,...vars0.size}:vars,children:[/*#__PURE__*/_jsx(\"div\",{className:\"sf-intro-half sf-intro-top\",children:/*#__PURE__*/_jsx(\"div\",{className:\"sf-intro-edge\"})}),/*#__PURE__*/_jsx(\"div\",{className:\"sf-intro-half sf-intro-bottom\",children:/*#__PURE__*/_jsx(\"div\",{className:\"sf-intro-edge\"})}),/*#__PURE__*/_jsx(\"div\",{className:\"sf-intro-line\",children:/*#__PURE__*/_jsx(\"div\",{className:\"sf-intro-fill\"})}),counter.show?/*#__PURE__*/_jsx(\"span\",{className:\"sf-intro-count\",\"data-at\":counter.position===\"below\"?\"below\":\"above\",\"data-zeros\":counter.zeros?\"on\":\"off\",style:{...FONT,...props.font||{},textAlign:counter.align===\"left\"||counter.align===\"right\"?counter.align:\"center\"}}):null]},settings)]});}Intro.displayName=\"Intro\";addPropertyControls(Intro,{show:{type:ControlType.Enum,title:\"Show\",options:[\"visit\",\"first\",\"load\",\"off\"],optionTitles:[\"Once per visit\",\"First visit only\",\"Every page load\",\"Off\"],defaultValue:\"visit\"},canvasPreview:{type:ControlType.Enum,title:\"Canvas Preview\",description:\"A still frame on the canvas, to see design changes. Only the canvas; the site is not affected.\",options:[\"off\",\"fill\",\"full\",\"stretch\",\"split\"],optionTitles:[\"Off\",\"Filling\",\"Full Line\",\"Stretch\",\"Split\"],defaultValue:\"off\"},exit:{type:ControlType.Enum,title:\"Exit\",options:[\"split\",\"fade\"],optionTitles:[\"Split\",\"Fade\"],displaySegmentedControl:true,defaultValue:\"split\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#0A0A0A\"},ink:{type:ControlType.Color,title:\"Line\",defaultValue:\"#FAFAFA\"},track:{type:ControlType.Color,title:\"Track\",defaultValue:\"rgba(255,255,255,0.08)\"},stretch:{type:ControlType.Color,title:\"Stretch Line\",defaultValue:\"#8A8A8A\",hidden:props=>!props.line||props.line.carry!==\"custom\"},count:{type:ControlType.Color,title:\"Number\",defaultValue:\"#A1A1A1\"},font:{// Framer's own font control: family, weight, size, line height, letter spacing\ntype:ControlType.Font,title:\"Number Font\",controls:\"extended\",defaultFontType:\"sans-serif\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:14,lineHeight:\"1.3em\",letterSpacing:\"0em\",variant:\"Medium\"}},line:{type:ControlType.Object,title:\"Line Size\",controls:{width:{type:ControlType.Number,title:\"Width\",defaultValue:LINE.width,min:24,max:800,step:4,unit:\"px\",displayStepper:true},thickness:{type:ControlType.Number,title:\"Thickness\",defaultValue:LINE.thickness,min:1,max:12,step:1,unit:\"px\",displayStepper:true},round:{type:ControlType.Boolean,title:\"Round Ends\",defaultValue:LINE.round},carry:{type:ControlType.Enum,title:\"Stretch Colour\",description:\"What runs to the edges once the line is full. Custom uses the Stretch Line colour.\",options:[\"track\",\"ink\",\"custom\"],optionTitles:[\"Track\",\"Line\",\"Custom\"],defaultValue:LINE.carry},dim:{type:ControlType.Number,title:\"Stretch Opacity\",description:\"How strong the line is while it runs to the edges and splits.\",defaultValue:LINE.dim,min:0,max:100,step:5,unit:\"%\"},edges:{type:ControlType.Boolean,title:\"Split Lines\",description:\"With Exit: Split, each half of the screen carries half of the line away.\",defaultValue:LINE.edges}}},counter:{type:ControlType.Object,title:\"Counter\",controls:{show:{type:ControlType.Boolean,title:\"Show\",defaultValue:COUNTER.show},position:{type:ControlType.Enum,title:\"Position\",options:[\"above\",\"below\"],optionTitles:[\"Above\",\"Below\"],displaySegmentedControl:true,defaultValue:COUNTER.position},align:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:COUNTER.align},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:COUNTER.gap,min:0,max:80,step:1,unit:\"px\",displayStepper:true},prefix:{type:ControlType.String,title:\"Prefix\",placeholder:\"Loading \",defaultValue:COUNTER.prefix},suffix:{type:ControlType.String,title:\"Suffix\",placeholder:\"%\",defaultValue:COUNTER.suffix},zeros:{type:ControlType.Boolean,title:\"Leading Zeros\",description:\"000 to 100 instead of 0 to 100.\",defaultValue:COUNTER.zeros}}},timing:{type:ControlType.Object,title:\"Timing\",controls:{delay:{type:ControlType.Number,title:\"Start Delay\",defaultValue:TIMING.delay,min:0,max:3,step:.05,unit:\"s\"},draw:{type:ControlType.Number,title:\"Draw In\",defaultValue:TIMING.draw,min:0,max:3,step:.05,unit:\"s\"},fill:{type:ControlType.Number,title:\"Fill\",defaultValue:TIMING.fill,min:0,max:5,step:.05,unit:\"s\"},stretch:{type:ControlType.Number,title:\"Stretch\",defaultValue:TIMING.stretch,min:0,max:3,step:.05,unit:\"s\"},open:{type:ControlType.Number,title:\"Open\",defaultValue:TIMING.open,min:.1,max:3,step:.05,unit:\"s\"},ease:{type:ControlType.Enum,title:\"Easing\",options:[\"smooth\",\"gentle\",\"swift\",\"linear\"],optionTitles:[\"Smooth\",\"Gentle\",\"Swift\",\"Linear\"],defaultValue:TIMING.ease}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Intro\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Intro.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * Sidefolio Scroll Bar — a slim scroll bar of its own in place of the browser's one, on every page.\n * Place one instance in the page layout. On the canvas it shows nothing; it works in Preview and on the\n * published site.\n *\n * - The bar follows the page, can be dragged, and a click on its track jumps there (mouse only).\n * - It hides itself when the page rests and comes back on scroll, or when the mouse nears the right edge.\n * - It widens under the mouse and while it is dragged. On phones and tablets it shows while the page moves\n *   and its thumb can be dragged with a finger (turn \"Touch Devices\" off to keep the device's own).\n * - Inner scroll areas (a menu list, search results) keep their own bars. While a dialog locks the page,\n *   the bar steps aside.\n *\n * Safe start: the browser's bar is hidden by a tiny script that runs while the page is being read (no jump\n * of the layout). If the site's scripts never start, the browser's bar is not hidden at all; if they start\n * but this component does not come up within a few seconds of the page loading, the browser's bar is\n * brought back. It reads nothing from the page content: no layer names, texts or CMS.\n */const ATTR=\"data-sf-scrollbar\";const DRAG=\"data-sf-scrollbar-drag\";const READY=\"__sfScrollBarReady\";const SIZE={width:4,hoverWidth:8,radius:99,minLength:48};const PLACE={edge:4,top:4,bottom:4};const BEHAVIOUR={autoHide:true,hideAfter:1.2,track:\"hover\",jump:true,touch:true};// Only one copy drives the bar (Framer may keep one copy per breakpoint).\nlet owner=null;const CSS=[// the browser's own bar, only for the page itself and only once the safe start has marked the page\n\"html[\"+ATTR+\"]{scrollbar-width:none}\",\"html[\"+ATTR+\"]::-webkit-scrollbar,html[\"+ATTR+\"] body::-webkit-scrollbar{display:none;width:0;height:0;background:transparent}\",\"html[\"+DRAG+\"],html[\"+DRAG+\"] *{user-select:none !important;-webkit-user-select:none !important;cursor:grabbing !important}\",\".sf-sb{position:fixed;top:var(--sf-sb-top);bottom:var(--sf-sb-bottom);right:var(--sf-sb-edge);width:var(--sf-sb-hit);z-index:2147482000;pointer-events:none;opacity:0;transition:opacity .3s ease}\",\".sf-sb[data-on=true]{opacity:1}\",\".sf-sb[data-on=true][data-coarse=false]{pointer-events:auto}\",\".sf-sb[data-empty=true],.sf-sb[data-locked=true]{display:none}\",\".sf-sb-track{position:absolute;top:0;bottom:0;right:0;width:var(--sf-sb-w);border-radius:var(--sf-sb-r);background:var(--sf-sb-track);transition:width .2s ease,opacity .2s ease}\",\".sf-sb[data-track=hover]:not([data-hover=true]):not([data-drag=true]) .sf-sb-track,.sf-sb[data-track=never] .sf-sb-track{opacity:0}\",\".sf-sb-thumb{position:absolute;top:0;right:0;width:var(--sf-sb-w);border-radius:var(--sf-sb-r);background:var(--sf-sb-thumb);transition:width .2s ease,background-color .2s ease;will-change:transform;touch-action:none;cursor:grab}\",// a finger needs more than a few pixels to catch the thumb\n'.sf-sb-thumb::before{content:\"\";position:absolute;top:-6px;bottom:-6px;right:-4px;left:-14px}',\".sf-sb[data-on=true][data-coarse=true] .sf-sb-thumb{pointer-events:auto}\",\".sf-sb[data-hover=true] .sf-sb-thumb,.sf-sb[data-drag=true] .sf-sb-thumb{width:var(--sf-sb-hw);background:var(--sf-sb-thumb-h)}\",\".sf-sb[data-hover=true] .sf-sb-track,.sf-sb[data-drag=true] .sf-sb-track{width:var(--sf-sb-hw)}\",\"@media (prefers-reduced-motion:reduce){.sf-sb,.sf-sb-track,.sf-sb-thumb{transition:none}}\"].join(\"\");const COARSE=\"(hover: none) and (pointer: coarse)\";// Runs while the published page is still being read: hides the browser's bar before anything is painted,\n// and brings it back if this component has not come up a few seconds after the page has loaded.\nfunction safeStart(touch){return'(function(){var d=document.documentElement;if(document.readyState!==\"loading\"||d.hasAttribute(\"'+ATTR+'\"))return;'+(touch?\"\":'if(window.matchMedia&&window.matchMedia(\"'+COARSE+'\").matches)return;')+'d.setAttribute(\"'+ATTR+'\",\"\");var c=function(){setTimeout(function(){if(!window.'+READY+')d.removeAttribute(\"'+ATTR+'\")},4000)};if(document.readyState===\"complete\")c();else window.addEventListener(\"load\",c)})()';}function num(value,fallback,lo,hi){const n=Number(value);return isFinite(n)?Math.min(hi,Math.max(lo,n)):fallback;}// move the page at once (also when CSS asks for smooth scrolling); older browsers get the plain form\nfunction place(y){try{window.scrollTo({top:y,behavior:\"instant\"});}catch(err){window.scrollTo(0,y);}}// asks the Smooth Scroll (if the site has it) to stop gliding, so the bar takes over from a still page\nfunction stopGlide(){try{window.dispatchEvent(new Event(\"sf:scroll-stop\"));}catch(err){}}function locked(){const h=window.getComputedStyle(document.documentElement);const b=window.getComputedStyle(document.body);return/(hidden|clip)/.test(h.overflowY)||/(hidden|clip)/.test(b.overflowY);}export default function ScrollBar(props){const onCanvas=RenderTarget.current()===RenderTarget.canvas;const size={...SIZE,...props.size||{}};const at={...PLACE,...props.position||{}};const how={...BEHAVIOUR,...props.behaviour||{}};const width=num(size.width,SIZE.width,1,24);const hoverWidth=Math.max(width,num(size.hoverWidth,SIZE.hoverWidth,1,32));const radius=num(size.radius,SIZE.radius,0,99);const minLength=num(size.minLength,SIZE.minLength,8,400);const edge=num(at.edge,PLACE.edge,0,64);const top=num(at.top,PLACE.top,0,400);const bottom=num(at.bottom,PLACE.bottom,0,400);const autoHide=how.autoHide!==false;const hideAfter=num(how.hideAfter,BEHAVIOUR.hideAfter,.2,10);const track=how.track===\"always\"||how.track===\"never\"?how.track:\"hover\";const jump=how.jump!==false;const touch=how.touch!==false;const barRef=React.useRef(null);const thumbRef=React.useRef(null);React.useEffect(()=>{if(onCanvas||owner)return;const bar=barRef.current;const thumb=thumbRef.current;if(!bar||!thumb)return;const me=Symbol(\"scroll-bar\");owner=me;const root=document.documentElement;const w=window;const coarseQuery=window.matchMedia?window.matchMedia(COARSE):null;const isCoarse=()=>!!(coarseQuery&&coarseQuery.matches);const active=()=>touch||!isCoarse();w[READY]=true;const g={trackH:0,thumbH:0,max:0,raf:0,hideTimer:0,hover:false,drag:false,startY:0,startScroll:0,pointer:-1};const set=(k,v)=>{if(bar.getAttribute(k)!==v)bar.setAttribute(k,v);};const measure=()=>{g.trackH=Math.max(0,window.innerHeight-top-bottom);const docH=Math.max(document.documentElement.scrollHeight,document.body?document.body.scrollHeight:0);g.max=Math.max(0,docH-window.innerHeight);g.thumbH=g.max>0?Math.min(g.trackH,Math.max(minLength,g.trackH*window.innerHeight/docH)):g.trackH;thumb.style.height=g.thumbH+\"px\";set(\"data-empty\",g.max<2||!active()?\"true\":\"false\");set(\"data-coarse\",isCoarse()?\"true\":\"false\");set(\"data-locked\",locked()?\"true\":\"false\");};const paint=()=>{g.raf=0;const room=g.trackH-g.thumbH;const y=g.max>0?Math.min(g.max,Math.max(0,window.scrollY))/g.max*room:0;thumb.style.transform=\"translate3d(0,\"+y+\"px,0)\";};const schedule=()=>{if(!g.raf)g.raf=window.requestAnimationFrame(paint);};const show=()=>{set(\"data-on\",\"true\");window.clearTimeout(g.hideTimer);if(autoHide&&!g.hover&&!g.drag)g.hideTimer=window.setTimeout(hide,hideAfter*1e3);};const hide=()=>{if(g.hover||g.drag||!autoHide)return;set(\"data-on\",\"false\");};// the browser's bar goes away only when this bar can take over\nconst claim=()=>{if(active())root.setAttribute(ATTR,\"\");else root.removeAttribute(ATTR);};const onScroll=()=>{schedule();show();};const onResize=()=>{claim();measure();schedule();};// the mouse near the right edge brings the bar back\nconst onMove=e=>{if(e.pointerType!==\"mouse\"||g.drag)return;if(e.clientX>=window.innerWidth-(edge+hoverWidth+12))show();};const onEnter=e=>{if(e.pointerType!==\"mouse\")return;g.hover=true;set(\"data-hover\",\"true\");show();};const onLeave=e=>{if(e.pointerType!==\"mouse\")return;g.hover=false;set(\"data-hover\",\"false\");show();};const onThumbDown=e=>{if(e.pointerType===\"mouse\"&&e.button!==0)return;e.preventDefault();e.stopPropagation();stopGlide();measure();g.drag=true;g.pointer=e.pointerId;g.startY=e.clientY;g.startScroll=window.scrollY;try{thumb.setPointerCapture(e.pointerId);}catch(err){}set(\"data-drag\",\"true\");root.setAttribute(DRAG,\"\");show();};const onThumbMove=e=>{if(!g.drag||e.pointerId!==g.pointer)return;e.preventDefault();const room=g.trackH-g.thumbH;if(room<=0)return;place(g.startScroll+(e.clientY-g.startY)*g.max/room);};const onThumbUp=e=>{if(!g.drag||e.pointerId!==g.pointer)return;g.drag=false;g.pointer=-1;try{thumb.releasePointerCapture(e.pointerId);}catch(err){}set(\"data-drag\",\"false\");root.removeAttribute(DRAG);show();};// a click on the track (not on the thumb) brings that part of the page into view\nconst onTrackDown=e=>{if(e.target===thumb||thumb.contains(e.target))return;if(e.pointerType!==\"mouse\"||e.button!==0||!jump)return;e.preventDefault();stopGlide();measure();const box=bar.getBoundingClientRect();const room=g.trackH-g.thumbH;if(room<=0)return;const y=Math.min(room,Math.max(0,e.clientY-box.top-g.thumbH/2));const to=y/room*g.max;try{window.scrollTo({top:to,behavior:\"smooth\"});}catch(err){window.scrollTo(0,to);}show();};claim();measure();paint();if(!autoHide)show();window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",onResize);window.addEventListener(\"pointermove\",onMove,{passive:true});bar.addEventListener(\"pointerenter\",onEnter);bar.addEventListener(\"pointerleave\",onLeave);bar.addEventListener(\"pointerdown\",onTrackDown);thumb.addEventListener(\"pointerdown\",onThumbDown);thumb.addEventListener(\"pointermove\",onThumbMove);thumb.addEventListener(\"pointerup\",onThumbUp);thumb.addEventListener(\"pointercancel\",onThumbUp);if(coarseQuery&&coarseQuery.addEventListener)coarseQuery.addEventListener(\"change\",onResize);// the page grows or shrinks (images, lists), or a dialog locks it\nconst grow=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(onResize):null;if(grow){grow.observe(document.documentElement);if(document.body)grow.observe(document.body);}const lock=typeof MutationObserver!==\"undefined\"?new MutationObserver(onResize):null;if(lock){lock.observe(document.documentElement,{attributes:true,attributeFilter:[\"style\",\"class\"]});if(document.body)lock.observe(document.body,{attributes:true,attributeFilter:[\"style\",\"class\"]});}return()=>{window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"pointermove\",onMove);bar.removeEventListener(\"pointerenter\",onEnter);bar.removeEventListener(\"pointerleave\",onLeave);bar.removeEventListener(\"pointerdown\",onTrackDown);thumb.removeEventListener(\"pointerdown\",onThumbDown);thumb.removeEventListener(\"pointermove\",onThumbMove);thumb.removeEventListener(\"pointerup\",onThumbUp);thumb.removeEventListener(\"pointercancel\",onThumbUp);if(coarseQuery&&coarseQuery.removeEventListener)coarseQuery.removeEventListener(\"change\",onResize);if(grow)grow.disconnect();if(lock)lock.disconnect();window.cancelAnimationFrame(g.raf);window.clearTimeout(g.hideTimer);root.removeAttribute(ATTR);root.removeAttribute(DRAG);w[READY]=false;if(owner===me)owner=null;};},[onCanvas,width,hoverWidth,radius,minLength,edge,top,bottom,autoHide,hideAfter,track,jump,touch]);if(onCanvas)return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"}});const vars={\"--sf-sb-top\":top+\"px\",\"--sf-sb-bottom\":bottom+\"px\",\"--sf-sb-edge\":edge+\"px\",\"--sf-sb-hit\":Math.max(hoverWidth,12)+\"px\",\"--sf-sb-w\":width+\"px\",\"--sf-sb-hw\":hoverWidth+\"px\",\"--sf-sb-r\":radius+\"px\",\"--sf-sb-thumb\":props.thumb,\"--sf-sb-thumb-h\":props.thumbHover||props.thumb,\"--sf-sb-track\":props.track};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:safeStart(touch)}}),/*#__PURE__*/_jsxs(\"div\",{ref:barRef,className:\"sf-sb\",\"data-on\":autoHide?\"false\":\"true\",\"data-track\":track,\"data-coarse\":\"false\",\"data-empty\":\"false\",\"data-locked\":\"false\",\"aria-hidden\":\"true\",style:vars,children:[/*#__PURE__*/_jsx(\"div\",{className:\"sf-sb-track\"}),/*#__PURE__*/_jsx(\"div\",{ref:thumbRef,className:\"sf-sb-thumb\",style:{height:minLength}})]})]});}ScrollBar.displayName=\"Scroll Bar\";addPropertyControls(ScrollBar,{thumb:{type:ControlType.Color,title:\"Thumb\",defaultValue:\"#8A8A8A\"},thumbHover:{type:ControlType.Color,title:\"Thumb Hover\",defaultValue:\"#A1A1A1\"},track:{type:ControlType.Color,title:\"Track\",defaultValue:\"rgba(255,255,255,0.06)\"},size:{type:ControlType.Object,title:\"Size\",controls:{width:{type:ControlType.Number,title:\"Width\",defaultValue:SIZE.width,min:1,max:24,step:1,unit:\"px\",displayStepper:true},hoverWidth:{type:ControlType.Number,title:\"Hover Width\",defaultValue:SIZE.hoverWidth,min:1,max:32,step:1,unit:\"px\",displayStepper:true},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:SIZE.radius,min:0,max:99,step:1,unit:\"px\"},minLength:{type:ControlType.Number,title:\"Min Length\",description:\"The shortest the thumb gets on long pages.\",defaultValue:SIZE.minLength,min:8,max:400,step:4,unit:\"px\"}}},position:{type:ControlType.Object,title:\"Position\",controls:{edge:{type:ControlType.Number,title:\"From Edge\",defaultValue:PLACE.edge,min:0,max:64,step:1,unit:\"px\",displayStepper:true},top:{type:ControlType.Number,title:\"Top Inset\",defaultValue:PLACE.top,min:0,max:400,step:1,unit:\"px\"},bottom:{type:ControlType.Number,title:\"Bottom Inset\",defaultValue:PLACE.bottom,min:0,max:400,step:1,unit:\"px\"}}},behaviour:{type:ControlType.Object,title:\"Behaviour\",controls:{autoHide:{type:ControlType.Boolean,title:\"Auto Hide\",defaultValue:BEHAVIOUR.autoHide},hideAfter:{type:ControlType.Number,title:\"Hide After\",defaultValue:BEHAVIOUR.hideAfter,min:.2,max:10,step:.1,unit:\"s\",hidden:p=>p.autoHide===false},track:{type:ControlType.Enum,title:\"Track\",options:[\"hover\",\"always\",\"never\"],optionTitles:[\"On Hover\",\"Always\",\"Never\"],defaultValue:BEHAVIOUR.track},jump:{type:ControlType.Boolean,title:\"Click to Jump\",description:\"A click on the track scrolls there.\",defaultValue:BEHAVIOUR.jump},touch:{type:ControlType.Boolean,title:\"Touch Devices\",description:\"Off: phones and tablets keep their own bar.\",defaultValue:BEHAVIOUR.touch}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollBar.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * Sidefolio Smooth Scroll — the page glides when it is scrolled with a mouse wheel or a trackpad.\n * Place one instance in the page layout (it then works on every page). On the canvas it shows nothing.\n *\n * What it does, and what it leaves to the browser:\n * - Only wheel and trackpad scrolling of the page glides. Touch, keyboard and the scrollbar stay native.\n * - Moving to another page stops the glide at once, so the new page always opens at its top.\n * - Anything else that moves the page (a \"Back to top\" link, a menu, the browser) also stops the glide,\n *   and so does grabbing the Scroll Bar (it sends \"sf:scroll-stop\").\n * - Links to a section of the same page (#…) glide to that section.\n * - Areas that scroll on their own (a menu list, search results, a code block) keep their native scrolling,\n *   as does anything marked data-lenis-prevent.\n * - Visitors who ask their device for reduced motion get the native scroll.\n * - \"Smooth\" off: the wheel scrolls the page natively (the browser keeps it fluid even while the page is\n *   busy loading or animating); links to a section of the same page still glide there.\n * - \"Steady Cursor\" (on by default): while the page glides, the pointer keeps the shape it had when the glide\n *   began (a hand over a link, an arrow elsewhere) instead of flickering as links pass under it. Hover effects\n *   still follow, clicks still work, and moving the mouse or the end of the glide gives the pointer back.\n * - \"Calm Hover\" (off by default): while the page glides under a still mouse, cards and links do not light up one after\n *   another and the pointer does not flicker. Moving the mouse brings hover back at once, and a click made\n *   during the glide still reaches what is under the pointer.\n * It reads nothing from the page content: no layer names, texts or CMS.\n */// Only one copy drives the page (Framer may keep one copy per breakpoint).\nlet owner=null;function clamp(n,lo,hi){return Math.min(hi,Math.max(lo,n));}function limit(){return Math.max(0,document.documentElement.scrollHeight-window.innerHeight);}// true when the wheel is over an area that can still scroll on its own in that direction\nfunction scrollsInside(start,dy){let n=start instanceof Element?start:null;while(n&&n!==document.body&&n!==document.documentElement){if(n.hasAttribute(\"data-lenis-prevent\")||n.hasAttribute(\"data-lenis-prevent-wheel\"))return true;const s=window.getComputedStyle(n);if(/(auto|scroll|overlay)/.test(s.overflowY)&&n.scrollHeight>n.clientHeight+1){const room=dy>0?n.scrollTop+n.clientHeight<n.scrollHeight-1:n.scrollTop>0;if(room)return true;}n=n.parentElement;}return false;}// the page is locked (an open dialog or menu has stopped it from scrolling)\nfunction locked(){const h=window.getComputedStyle(document.documentElement);const b=window.getComputedStyle(document.body);return/(hidden|clip)/.test(h.overflowY)||/(hidden|clip)/.test(b.overflowY);}function linkOf(e){const t=e.target;const a=t&&t.closest?t.closest(\"a[href]\"):null;return a instanceof HTMLAnchorElement?a:null;}const ATTR=\"data-sf-gliding\";const CURSOR=\"data-sf-cursor\";// while gliding, nothing on the page reacts to the still mouse (the page itself keeps receiving the wheel)\nconst CALM_CSS=\"html[\"+ATTR+\"] body,html[\"+ATTR+\"] body *{pointer-events:none !important}\";// Move the page at once. \"instant\" also overrides a smooth scroll-behavior set in CSS; a browser that does\n// not know that value gets the plain form instead of an error.\nfunction place(y){try{window.scrollTo({top:y,behavior:\"instant\"});}catch(err){window.scrollTo(0,y);}}const KEYS=[\"ArrowUp\",\"ArrowDown\",\"PageUp\",\"PageDown\",\"Home\",\"End\",\" \"];export default function SmoothScroll(props){const onCanvas=RenderTarget.current()===RenderTarget.canvas;const smooth=props.smooth!==false;const duration=clamp(Number(props.duration)||1.2,.2,4);const calm=props.calm===true;const steady=props.steady!==false;React.useEffect(()=>{if(onCanvas||owner)return;if(window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;// the wheel glides only with \"Smooth\" on; section links glide either way\nconst me=Symbol(\"smooth-scroll\");owner=me;// the glide closes 99% of the distance in \"Duration\" seconds\nconst tau=duration/4.6;const st={target:window.scrollY,current:window.scrollY,placed:-1,raf:0,last:0};const root=document.documentElement;let calmTimer=0;// a press made while the page was calm: where it happened, so its click can be handed on\nlet press=null;let style=null;// where the mouse is, and the pointer shape kept while gliding\nconst mouse={x:-1,y:-1};let cursorTimer=0;const cursorStyle=document.createElement(\"style\");cursorStyle.setAttribute(\"data-sf-smooth-cursor\",\"\");document.head.appendChild(cursorStyle);const holdCursor=()=>{if(!steady||mouse.x<0)return;window.clearTimeout(cursorTimer);cursorTimer=0;if(root.hasAttribute(CURSOR))return;const el=document.elementFromPoint(mouse.x,mouse.y);let shape=el?window.getComputedStyle(el).cursor:\"default\";if(!shape||shape===\"auto\")shape=\"default\";cursorStyle.textContent=\"html[\"+CURSOR+\"],html[\"+CURSOR+\"] *{cursor:\"+shape+\" !important}\";root.setAttribute(CURSOR,\"\");};const freeCursor=()=>{window.clearTimeout(cursorTimer);cursorTimer=0;if(root.hasAttribute(CURSOR))root.removeAttribute(CURSOR);};if(calm){style=document.createElement(\"style\");style.setAttribute(\"data-sf-smooth-scroll\",\"\");style.textContent=CALM_CSS;document.head.appendChild(style);}const calmOn=()=>{if(!calm)return;window.clearTimeout(calmTimer);calmTimer=0;if(!root.hasAttribute(ATTR))root.setAttribute(ATTR,\"\");};const calmOff=()=>{window.clearTimeout(calmTimer);calmTimer=0;if(root.hasAttribute(ATTR))root.removeAttribute(ATTR);};const stop=()=>{if(st.raf)window.cancelAnimationFrame(st.raf);st.raf=0;st.last=0;st.placed=-1;st.target=st.current=window.scrollY;calmOff();freeCursor();};const step=t=>{const dt=st.last?Math.min(.05,(t-st.last)/1e3):1/60;st.last=t;st.current+=(st.target-st.current)*(1-Math.exp(-dt/tau));if(Math.abs(st.target-st.current)<.5)st.current=st.target;// the last few pixels are not visible movement: hover comes back as the page settles\nif(!calmTimer&&root.hasAttribute(ATTR)&&Math.abs(st.target-st.current)<4)calmTimer=window.setTimeout(calmOff,120);place(st.current);st.placed=window.scrollY;if(st.current!==st.target)st.raf=window.requestAnimationFrame(step);else{st.raf=0;st.last=0;if(!calmTimer&&root.hasAttribute(ATTR))calmTimer=window.setTimeout(calmOff,120);if(!cursorTimer&&root.hasAttribute(CURSOR))cursorTimer=window.setTimeout(freeCursor,80);}};const glideTo=y=>{if(!st.raf)st.current=window.scrollY;st.target=clamp(y,0,limit());if(!st.raf)st.raf=window.requestAnimationFrame(step);};const onWheel=e=>{if(e.defaultPrevented||e.ctrlKey)return;// pinch zoom\nif(Math.abs(e.deltaX)>Math.abs(e.deltaY))return;// sideways\nif(scrollsInside(e.target,e.deltaY)||locked())return;const dy=e.deltaY*(e.deltaMode===1?16:e.deltaMode===2?window.innerHeight:1);e.preventDefault();calmOn();holdCursor();glideTo((st.raf?st.target:window.scrollY)+dy);};// something else moved the page while it was gliding: let that win\nconst onScroll=()=>{if(st.raf&&Math.abs(window.scrollY-st.placed)>2)stop();};// a link to another page: stop before the page changes, so the new page opens at its top\nconst onClickFirst=e=>{// a click pressed while the page was calm lands on the page itself: hand it to what is under the pointer\nif(press){const at=press;press=null;if(Date.now()-at.t<1500&&(e.target===root||e.target===document.body)){const el=document.elementFromPoint(at.x,at.y);if(el instanceof HTMLElement&&el!==root&&el!==document.body){e.preventDefault();e.stopImmediatePropagation();el.click();return;}}}const a=linkOf(e);if(!a)return;let url;try{url=new URL(a.href,window.location.href);}catch(err){return;}if(url.origin!==window.location.origin||url.pathname!==window.location.pathname)stop();};// a link to a section of this page glides there (unless something else already handled it)\nconst onClickLast=e=>{if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const a=linkOf(e);if(!a||a.target&&a.target!==\"_self\")return;let url;try{url=new URL(a.href,window.location.href);}catch(err){return;}if(url.origin!==window.location.origin||url.pathname!==window.location.pathname||!url.hash)return;let id=url.hash.slice(1);try{id=decodeURIComponent(id);}catch(err){}const el=id?document.getElementById(id):null;if(!el)return;e.preventDefault();const margin=parseFloat(window.getComputedStyle(el).scrollMarginTop)||0;glideTo(el.getBoundingClientRect().top+window.scrollY-margin);try{window.history.replaceState(window.history.state,\"\",url.hash);}catch(err){}};// the visitor moves the mouse: hover comes back at once (the browser's own updates while scrolling\n// have no movement)\nconst onMove=e=>{if(e.pointerType===\"mouse\"){mouse.x=e.clientX;mouse.y=e.clientY;}if(e.movementX||e.movementY){if(root.hasAttribute(ATTR))calmOff();if(root.hasAttribute(CURSOR))freeCursor();}};const onPress=e=>{if(!root.hasAttribute(ATTR))return;calmOff();press=e.button===0?{x:e.clientX,y:e.clientY,t:Date.now()}:null;};const onKey=e=>{if(st.raf&&KEYS.indexOf(e.key)!==-1)stop();};const onResize=()=>{if(st.raf)st.target=clamp(st.target,0,limit());};if(smooth)window.addEventListener(\"wheel\",onWheel,{passive:false,capture:true});window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"click\",onClickFirst,true);window.addEventListener(\"click\",onClickLast);window.addEventListener(\"keydown\",onKey);window.addEventListener(\"popstate\",stop);window.addEventListener(\"sf:scroll-stop\",stop);window.addEventListener(\"resize\",onResize);window.addEventListener(\"pointermove\",onMove,{passive:true});window.addEventListener(\"pointerdown\",onPress,true);return()=>{stop();if(style)style.remove();cursorStyle.remove();root.removeAttribute(CURSOR);if(smooth)window.removeEventListener(\"wheel\",onWheel,{capture:true});window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"click\",onClickFirst,true);window.removeEventListener(\"click\",onClickLast);window.removeEventListener(\"keydown\",onKey);window.removeEventListener(\"popstate\",stop);window.removeEventListener(\"sf:scroll-stop\",stop);window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"pointermove\",onMove);window.removeEventListener(\"pointerdown\",onPress,true);if(owner===me)owner=null;};},[onCanvas,smooth,duration,calm,steady]);if(onCanvas)return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"}});return null;}SmoothScroll.displayName=\"Smooth Scroll\";addPropertyControls(SmoothScroll,{smooth:{type:ControlType.Boolean,title:\"Smooth\",defaultValue:true},duration:{type:ControlType.Number,title:\"Duration\",description:\"How long the page keeps gliding after the wheel stops.\",defaultValue:1.2,min:.2,max:3,step:.1,unit:\"s\",hidden:props=>props.smooth===false},steady:{type:ControlType.Boolean,title:\"Steady Cursor\",description:\"While the page glides, the pointer keeps its shape instead of flickering over links.\",defaultValue:true,hidden:props=>props.smooth===false},calm:{type:ControlType.Boolean,title:\"Calm Hover\",description:\"While the page glides under a still mouse, hover effects and the pointer stay put. Off: the browser's usual behaviour.\",defaultValue:false,hidden:props=>props.smooth===false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll.map","// Generated by Framer (ec6c716)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,getPropertyControls,PropertyOverrides,RenderTarget,ResolveLinks,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,useRouter,withCodeBoundaryForOverrides,withCSS,withMappedReactProps}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Home from\"https://framerusercontent.com/modules/3lkdhee81jUSTW6RHOMv/e7mANpUGyte0G5Z3ppW8/uc9A39LmK.js\";import Briefcase from\"https://framerusercontent.com/modules/7aj9RUBjfBYQEboQo6kO/shHKeC6Pvh5xAWplAhg2/QaGTj_vKN.js\";import UserComponent from\"https://framerusercontent.com/modules/Fr5EvEJXRFHa0uEpb7pr/HPfYwKdKrHvsjQsmqX6Z/a661J9_RI.js\";import User from\"https://framerusercontent.com/modules/gtelDtBCVTm2ttzb5coZ/On0mTrusI9e7nyKE7lZ1/FyACz4lRe.js\";import ShoppingBag from\"https://framerusercontent.com/modules/Jyav4cLZKMP1haFOTMGF/jVbwZrIVfWi1YMcIW0hg/rUtOTWaeg.js\";import Edit from\"https://framerusercontent.com/modules/KgaB1DpZjMgv0q4SGVDN/WBIyypr0GguJJ2gkb8Xh/X1jBwqdJ1.js\";import Mail from\"https://framerusercontent.com/modules/QL65NekRyGlej8APmFiL/EfJhiBMusrx6SCmF9LfF/aE7ozwXux.js\";import Grid from\"https://framerusercontent.com/modules/xA4i8NjUUGg7e9k2bOvW/HA8kMYo0wpjUooI95JJ8/JIdnepOAw.js\";import Navigation,*as NavigationInfo from\"#framer/local/canvasComponent/mbO9f7EnI/mbO9f7EnI.js\";import Intro from\"#framer/local/codeFile/C1NcSa7/Intro.js\";import{withSearchHotkey}from\"#framer/local/codeFile/kHENZLI/SearchShortcut.js\";import ScrollBar from\"#framer/local/codeFile/jDZ2RYo/ScrollBar.js\";import SmoothScroll from\"#framer/local/codeFile/L431paP/SmoothScroll.js\";const NavigationFonts=getFonts(Navigation);const NavigationWithSearchHotkeyq7fjuqWithMappedReactProps15fevzz=withMappedReactProps(withCodeBoundaryForOverrides(Navigation,{nodeId:\"HhdDVqTTA\",override:withSearchHotkey,scopeId:\"nN7NjryMn\"}),NavigationInfo);const IntroFonts=getFonts(Intro);const SmoothScrollFonts=getFonts(SmoothScroll);const ScrollBarFonts=getFonts(ScrollBar);const NavigationControls=getPropertyControls(Navigation);const breakpoints={FnQmsLnJC:\"(min-width: 810px) and (max-width: 1199.98px)\",K1VMoAbmX:\"(min-width: 1200px)\",rhq7jtVz3:\"(max-width: 809.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-5yuXy\";const variantClassNames={FnQmsLnJC:\"framer-v-1ftelr4\",K1VMoAbmX:\"framer-v-1cnw3ja\",rhq7jtVz3:\"framer-v-1sjev2k\"};const Q4SvPFvMM=undefined;const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={FnQmsLnJC:[\".framer-5yuXy.framer-1cnw3ja { padding: 96px 16px 16px 16px; }\",\".framer-5yuXy .framer-q7fjuq-container { height: auto; right: 16px; top: 16px; width: unset; z-index: 6; }\"],rhq7jtVz3:[\".framer-5yuXy.framer-1cnw3ja { padding: 80px 8px 8px 8px; }\",\".framer-5yuXy .framer-q7fjuq-container { height: auto; left: 8px; right: 8px; top: 8px; width: unset; z-index: 6; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={FnQmsLnJC:\".framer-1ftelr4-override\",rhq7jtVz3:\".framer-1sjev2k-override\"};const rules=[\".framer-5yuXy.framer-7ttunz, .framer-5yuXy .framer-7ttunz { display: block; }\",'.framer-5yuXy.framer-1cnw3ja { --selection-background-color: var(--token-9cf0210b-3e37-4a49-907f-f7f420ca468d, #0a0a0a) /* {\"name\":\"Text Primary\"} */; --selection-color: var(--token-5b5b05c3-ddd3-4de8-8cfb-8c4c09c7572a, #f4f4f4) /* {\"name\":\"Background\"} */; align-content: center; align-items: center; background-color: var(--token-5b5b05c3-ddd3-4de8-8cfb-8c4c09c7572a); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 16px 16px 16px 292px; position: relative; width: 100%; }',\".framer-5yuXy .framer-q7fjuq-container { flex: none; height: calc(min(var(--framer-viewport-height, 100vh), 100%) * 1); left: 16px; order: -1000; position: var(--framer-canvas-fixed-position, fixed); top: 0px; view-transition-name: framer-5yuXy-q7fjuq-exclude; width: 260px; z-index: 5; }\",\"::view-transition-group(framer-5yuXy-q7fjuq-exclude), ::view-transition-new(framer-5yuXy-q7fjuq-exclude), ::view-transition-old(framer-5yuXy-q7fjuq-exclude) { animation: none !important; }\",\".framer-5yuXy .framer-7fleqy-container { -webkit-user-select: none; flex: none; height: 1px; left: 0px; order: -999; pointer-events: none; position: var(--framer-canvas-fixed-position, fixed); top: 0px; user-select: none; width: 1px; z-index: 10; }\",\".framer-5yuXy .framer-x6voy8 { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-5yuXy .framer-1vh2pi1-container { flex: none; height: 1px; left: 0px; order: 1003; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 1px; }\",\".framer-5yuXy .framer-dg091u-container { flex: none; height: 1px; left: 0px; order: 1004; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 1px; z-index: 9; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }','.framer-5yuXy[data-selection=\"true\"] * ::selection, .framer-5yuXy [data-selection=\"true\"] * ::selection { color: var(--selection-color, none); background-color: var(--selection-background-color, none); }'];const mediaQueries={FnQmsLnJC:\"(min-width: 810px) and (max-width: 1199.98px)\",K1VMoAbmX:\"(min-width: 1200px)\",rhq7jtVz3:\"(max-width: 809.98px)\"};const humanReadableVariantMap={Desktop:\"K1VMoAbmX\",Phone:\"rhq7jtVz3\",Tablet:\"FnQmsLnJC\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const humanReadableEnumMap={\"Extra 1\":\"Oq0DIMhRP\",\"Extra 2\":\"oculnLK_X\",\"Extra 3\":\"pmeykUXtv\",About:\"NQ0zflYfi\",Blog:\"gwnf58riT\",Contact:\"qhRnW_zYw\",Home:\"f6NldN1XN\",None:\"dHFeg5H10\",Services:\"aIC8b9MNr\",Store:\"jt2kWH9sm\",Work:\"hNqERtPiO\"};const getProps=({activePage,height,id,width,...props})=>{return{...props,Q4SvPFvMM:humanReadableEnumMap[activePage]??activePage??props.Q4SvPFvMM??\"f6NldN1XN\",variant:humanReadableVariantMap[props.variant]??props.variant??\"K1VMoAbmX\"};};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,Q4SvPFvMM,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"K1VMoAbmX\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-5b5b05c3-ddd3-4de8-8cfb-8c4c09c7572a); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1cnw3ja\",className),\"data-layout-template\":true,\"data-selection\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{webPageId:\"FjuMBBHXy\"},implicitPathVariables:undefined},{href:{webPageId:\"v6bd2SlHw\"},implicitPathVariables:undefined},{href:{webPageId:\"mpNW7dE4i\"},implicitPathVariables:undefined},{href:{webPageId:\"wiFKe2Lqq\"},implicitPathVariables:undefined},{href:{webPageId:\"KcK9fMPZG\"},implicitPathVariables:undefined},{href:{webPageId:\"DXJ_Yao8a\"},implicitPathVariables:undefined},{href:{webPageId:\"DXJ_Yao8a\"},implicitPathVariables:undefined},{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{webPageId:\"FjuMBBHXy\"},implicitPathVariables:undefined},{href:{webPageId:\"v6bd2SlHw\"},implicitPathVariables:undefined},{href:{webPageId:\"mpNW7dE4i\"},implicitPathVariables:undefined},{href:{webPageId:\"wiFKe2Lqq\"},implicitPathVariables:undefined},{href:{webPageId:\"KcK9fMPZG\"},implicitPathVariables:undefined},{href:{webPageId:\"DXJ_Yao8a\"},implicitPathVariables:undefined},{href:{webPageId:\"DXJ_Yao8a\"},implicitPathVariables:undefined},{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{webPageId:\"FjuMBBHXy\"},implicitPathVariables:undefined},{href:{webPageId:\"v6bd2SlHw\"},implicitPathVariables:undefined},{href:{webPageId:\"mpNW7dE4i\"},implicitPathVariables:undefined},{href:{webPageId:\"wiFKe2Lqq\"},implicitPathVariables:undefined},{href:{webPageId:\"KcK9fMPZG\"},implicitPathVariables:undefined},{href:{webPageId:\"DXJ_Yao8a\"},implicitPathVariables:undefined},{href:{webPageId:\"DXJ_Yao8a\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{FnQmsLnJC:{height:900,width:\"calc(100vw - 32px)\",y:16},rhq7jtVz3:{height:900,width:\"calc(100vw - 16px)\",y:8}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:1e3,width:\"260px\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-q7fjuq-container\",\"data-framer-name\":\"Navigation\",layoutScroll:true,name:\"Navigation\",nodeId:\"HhdDVqTTA\",rendersWithMotion:true,scopeId:\"nN7NjryMn\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{FnQmsLnJC:{DStBDvw5n:resolvedLinks[13],m8xOmLtv8:resolvedLinks[12],ofypdmwyv:resolvedLinks[8],PoidVCSwT:resolvedLinks[10],style:{width:\"100%\"},unH8UNDNO:resolvedLinks[15],variant:matchVariant(\"gP1wmuiTc\"),vblPsulJ_:resolvedLinks[11],WNDB32Cc3:resolvedLinks[9],wwxtW73_W:resolvedLinks[14]},rhq7jtVz3:{DStBDvw5n:resolvedLinks[21],m8xOmLtv8:resolvedLinks[20],ofypdmwyv:resolvedLinks[16],PoidVCSwT:resolvedLinks[18],style:{width:\"100%\"},unH8UNDNO:resolvedLinks[23],variant:matchVariant(\"AW7izw82x\"),vblPsulJ_:resolvedLinks[19],WNDB32Cc3:resolvedLinks[17],wwxtW73_W:resolvedLinks[22]}},children:/*#__PURE__*/_jsx(NavigationWithSearchHotkeyq7fjuqWithMappedReactProps15fevzz,{aFrnHKSNb:\"Start a project\",Ak5H8ptLh:\"\",Cyt_4ol77:UserComponent,D5QST9W68:\"About\",DStBDvw5n:resolvedLinks[5],ePynNuFXr:\"\",F5qc4lCYP:\"Services\",fqLVLNta0:Home,fw0cBmLTx:\"Home\",fYb9VDPXK:Edit,GFWzaZIDS:UserComponent,height:\"100%\",hSm_Mondb:\"Search\",id:\"HhdDVqTTA\",iFNagttGQ:\"Connect\",J7bPQwwXL:Briefcase,layoutId:\"HhdDVqTTA\",m8xOmLtv8:resolvedLinks[4],name:\"Navigation\",ofypdmwyv:resolvedLinks[0],OxXKGAIiW:\"Store\",PaRvWcyTg:\"Theme\",PoidVCSwT:resolvedLinks[2],QsAn3oQvM:Q4SvPFvMM,quh4uprOP:\"Work\",REYRsAYeu:Grid,saS8QaMur:\"\",sqEcWTyn_:\"Main\",style:{height:\"100%\",width:\"100%\"},SYsF7DDVn:\"Blog\",TKKUYnXlO:ShoppingBag,unH8UNDNO:resolvedLinks[7],variant:matchVariant(\"PlidoN07I\"),vblPsulJ_:resolvedLinks[3],width:\"100%\",wm5GoIfGb:UserComponent,WNDB32Cc3:resolvedLinks[1],wwxtW73_W:resolvedLinks[6],Y7RuuIIAv:\"Contact\",ygRf9UxZm:User,z0vw_l4Gn:Mail})})})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-7fleqy-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Intro\",isAuthoredByUser:true,layoutScroll:true,name:\"Intro\",nodeId:\"KK9BaunjI\",scopeId:\"nN7NjryMn\",children:/*#__PURE__*/_jsx(Intro,{background:\"var(--token-5b5b05c3-ddd3-4de8-8cfb-8c4c09c7572a)\",canvasPreview:\"off\",count:\"var(--token-d3aabc30-6270-4802-81e6-196b1ff6f91f)\",counter:{align:\"center\",gap:12,position:\"above\",prefix:\"\",show:true,suffix:\"\",zeros:false},exit:\"split\",font:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontFeatureSettings:\"'zero' on\",fontSize:\"calc(var(--framer-root-font-size, 1rem) * 1)\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"0em\",lineHeight:\"1.3em\"},height:\"100%\",id:\"KK9BaunjI\",ink:\"var(--token-9cf0210b-3e37-4a49-907f-f7f420ca468d)\",layoutId:\"KK9BaunjI\",line:{carry:\"track\",dim:100,edges:true,round:true,thickness:2,width:200},name:\"Intro\",show:\"load\",stretch:\"var(--token-4459319f-0155-493d-b113-c130e15baee5)\",style:{height:\"100%\",width:\"100%\"},timing:{delay:0,draw:.3,ease:\"smooth\",fill:.5,open:.7,stretch:.35},track:\"var(--token-789768dc-6684-4e23-b984-36c9dd9e2c8f, rgba(0, 0, 0, 0.06))\",width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-x6voy8\"}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1vh2pi1-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Smooth Scroll\",isAuthoredByUser:true,layoutScroll:true,name:\"Smooth Scroll\",nodeId:\"t3oMSUJwM\",scopeId:\"nN7NjryMn\",children:/*#__PURE__*/_jsx(SmoothScroll,{calm:false,duration:1.2,height:\"100%\",id:\"t3oMSUJwM\",layoutId:\"t3oMSUJwM\",name:\"Smooth Scroll\",smooth:false,steady:true,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-dg091u-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Scroll Bar\",isAuthoredByUser:true,layoutScroll:true,name:\"Scroll Bar\",nodeId:\"CtunZvu1j\",scopeId:\"nN7NjryMn\",children:/*#__PURE__*/_jsx(ScrollBar,{behaviour:{autoHide:true,hideAfter:1.2,jump:true,touch:false,track:\"hover\"},height:\"100%\",id:\"CtunZvu1j\",layoutId:\"CtunZvu1j\",name:\"Scroll Bar\",position:{bottom:4,edge:4,top:4},size:{hoverWidth:8,minLength:48,radius:99,width:4},style:{height:\"100%\",width:\"100%\"},thumb:\"var(--token-c4c9a226-ab38-43f3-a063-5cae79326060)\",thumbHover:\"var(--token-944a5ffb-c76e-462b-bafe-97f8989a7dfb)\",track:\"var(--token-789768dc-6684-4e23-b984-36c9dd9e2c8f)\",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\"]},\"FnQmsLnJC\":{\"layout\":[\"fixed\",\"fixed\"]},\"rhq7jtVz3\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"Q4SvPFvMM\":\"activePage\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"K1VMoAbmX\":[\".framer-q7fjuq-container\",\".framer-7fleqy-container\",\".framer-1vh2pi1-container\",\".framer-dg091u-container\"],\"FnQmsLnJC\":[\".framer-q7fjuq-container\",\".framer-7fleqy-container\",\".framer-1vh2pi1-container\",\".framer-dg091u-container\"],\"rhq7jtVz3\":[\".framer-q7fjuq-container\",\".framer-7fleqy-container\",\".framer-1vh2pi1-container\",\".framer-dg091u-container\"]}\n * @framerBreakpoints {\"K1VMoAbmX\":{\"min\":1200,\"canvasClassName\":\"framer-1cnw3ja-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"FnQmsLnJC\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-1ftelr4-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"rhq7jtVz3\":{\"max\":809,\"canvasClassName\":\"framer-1sjev2k-override\",\"minHeight\":1000,\"viewportHeight\":800,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant K1VMoAbmX\n * @framerLayoutTemplate true\n */const FramernN7NjryMn=withCSS(Component,css,\"framer-5yuXy\");export default FramernN7NjryMn;FramernN7NjryMn.displayName=\"Main\";FramernN7NjryMn.defaultProps={height:1e3,width:1200};addPropertyControls(FramernN7NjryMn,{Q4SvPFvMM:NavigationControls?.[\"QsAn3oQvM\"]&&{...NavigationControls[\"QsAn3oQvM\"],defaultValue:\"f6NldN1XN\",description:undefined,hidden:undefined,title:\"Active Page\"}});addFonts(FramernN7NjryMn,[{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/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{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/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{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/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{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/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{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/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"}]},...NavigationFonts,...IntroFonts,...SmoothScrollFonts,...ScrollBarFonts],{supportsExplicitInterCodegen:true});FramernN7NjryMn.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(Navigation,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramernN7NjryMn\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerLayoutTemplate\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"FnQmsLnJC\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"rhq7jtVz3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerDefaultVariant\":\"K1VMoAbmX\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"Q4SvPFvMM\\\":\\\"activePage\\\"}\",\"framerIntrinsicHeight\":\"1000\",\"framerComponentViewportWidth\":\"true\",\"framerHitTargets\":\"{\\\"K1VMoAbmX\\\":[\\\".framer-q7fjuq-container\\\",\\\".framer-7fleqy-container\\\",\\\".framer-1vh2pi1-container\\\",\\\".framer-dg091u-container\\\"],\\\"FnQmsLnJC\\\":[\\\".framer-q7fjuq-container\\\",\\\".framer-7fleqy-container\\\",\\\".framer-1vh2pi1-container\\\",\\\".framer-dg091u-container\\\"],\\\"rhq7jtVz3\\\":[\\\".framer-q7fjuq-container\\\",\\\".framer-7fleqy-container\\\",\\\".framer-1vh2pi1-container\\\",\\\".framer-dg091u-container\\\"]}\",\"framerBreakpoints\":\"{\\\"K1VMoAbmX\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-1cnw3ja-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"FnQmsLnJC\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-1ftelr4-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"rhq7jtVz3\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-1sjev2k-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\"}},\"__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 Main from \"https://framerusercontent.com/modules/WZHQ7SOIgxS8pst8JxcL/GdF8VRdEAngq7CHqhdgc/nN7NjryMn.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {A7ywQRhDk: \"work\", C9fIc4ENB: \"testimonials\", DmPge1Xx5: \"hero\", sh_C1ESvZ: \"store\", Vk9dpGGWB: \"services\", x0k16zbj3: \"top\", zoOpni0fz: \"blog\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/xlSS71PdakAnEvO85r1q/sZNsJKqwjAdwi8SMu2ys/augiA20Il.js\")), path: \"/\"}, FjuMBBHXy: {elements: {azy7bUfHz: \"top\", cHdcxyKTD: \"experience\", FonB3XSDf: \"intro\", KQaBMFE0P: \"awards\", Q_2RMmGac: \"clients\", zD2lV79Km: \"tools\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/n097E6IdICQoxGrabOGD/klIeMHuckzPNqH8jjABV/FjuMBBHXy.js\")), path: \"/about\"}, DXJ_Yao8a: {elements: {doPB3POh9: \"contact-form\", GhGDsdhqZ: \"page-header\", QvYTh97iz: \"faqs\", RYmkLHcw0: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/zLwK8H6nFomXI48u6bBR/TcrYQ3aUoNRhoz8QynX9/DXJ_Yao8a.js\")), path: \"/contact\"}, v6bd2SlHw: {elements: {AgltLgQad: \"projects\", GQHa6Q96e: \"top\", WXW46Xhe9: \"page-header\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pBeJZmfOT4JVqFOfpuV5/1Np9wxToQie82gAYcg7M/v6bd2SlHw.js\")), path: \"/work\"}, mpNW7dE4i: {elements: {bwyDT4B_u: \"top\", jgp_NGVxm: \"testimonials\", LWsrP48jP: \"services-grid\", yhoHOGxct: \"page-header\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/n5fyiAjYngY1HTxnumkL/Z1I79BpaQdBMS5eL9rCa/mpNW7dE4i.js\")), path: \"/services\"}, wiFKe2Lqq: {elements: {ltP6hpaOQ: \"top\", o5m_cGpHG: \"products\", vVHJ5kPVo: \"page-header\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/AvOzPRH0ri85wvzj7Vrh/x0Cpwhi93b7A8AR8BbQw/wiFKe2Lqq.js\")), path: \"/store\"}, KcK9fMPZG: {elements: {F9VxPiaeP: \"page-header\", RPdjIpe2c: \"articles\", sZHItFblp: \"newsletter\", xFTvAyqmw: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/NHhNHIXALjMMPIYCgfaG/CXcsobDOeFINAOWyQS4R/KcK9fMPZG.js\")), path: \"/blog\"}, PZO1jQBwg: {elements: {i7QvX3FEg: \"explore\", VhU9ku67n: \"top\", yRlnyHwwO: \"page-header\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Pld0a2zt05zxznVrt4GD/LljZrNH0M0y0ZoGtsFqc/PZO1jQBwg.js\")), path: \"/404\"}, O6Ek3GaW3: {elements: {AxxfMBa0h: \"components\", DCEQgvryh: \"typography\", Ms7QAz7in: \"code-components\", tK4vyGP1E: \"hero\", ucFAXwynm: \"top\", wGccvyX4P: \"colours\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/iYg3ZIs8OQ1XgNFNKmdb/StopiaqFa4sqN7h4ns0m/O6Ek3GaW3.js\")), path: \"/design-system\"}, RIFTgwqFs: {collectionId: \"wqUE5E28l\", elements: {Et5x1VepL: \"more-work\", PuHmjLWtv: \"top\", ViTAYsvMs: \"project-header\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/4qwjdc5uXUmOkuyUy1lH/BKvMu2PO2EHfxrc2Cxm9/RIFTgwqFs.js\")), path: \"/work/:jKjU08ePq\"}, qiV_hMHub: {collectionId: \"iwjz7CZDG\", elements: {gKdLuJXkk: \"included\", gkT7vL5fm: \"process\", GRSowvMk1: \"top\", gWY1WQLxw: \"service-header\", hUs8yz5Oc: \"related-work\", quXZjrDiA: \"other-services\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/7CEpPkRmXkP01hR2C1i2/B962wcIHEewIrh8JCLfM/qiV_hMHub.js\")), path: \"/services/:a52mumvN1\"}, jUm6PDaOs: {collectionId: \"VRSz2ddS2\", elements: {DzX37XpkS: \"product\", JKYPENAby: \"more\", R0st7nYp7: \"top\", y0aI4ESx7: \"details\", Y7_jUdGru: \"newsletter\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/eHZSZyjke55Z4s7auihP/4jkya2zERAmCFfN5lJna/jUm6PDaOs.js\")), path: \"/store/:BghsfRyfS\"}, ZqfxfoyUH: {collectionId: \"Hgjni5C4d\", elements: {nbyWODsiI: \"article-header\", vp5803EG2: \"top\", VwnN_X17q: \"keep-reading\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/REaSbCdMBf7EdBtaDiQk/Xl47s3bNy5nK2N1Btyk7/ZqfxfoyUH.js\")), path: \"/blog/:FGm208S1E\"}, NAkSzqkPj: {collectionId: \"dLnYLb0Ln\", elements: {adkiPUFw4: \"page-header\", xH8nM_N50: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/LHDthuRntXjNBKKvMJcQ/yUT5f8Z30FRUGs5OPC3C/NAkSzqkPj.js\")), path: \"/legals/:q2KfnfspW\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {dLnYLb0Ln: async () => (await import(\"https://framerusercontent.com/modules/mnAUtuMGkFkO1AgGjC7i/pFK5BDen6JNetBcsaS14/dLnYLb0Ln.js\"))?.[\"utils\"], H2GBaTc0Q: async () => (await import(\"https://framerusercontent.com/modules/PM7d8oaIF73ClqRku02w/kVgLB2UDOv47jBl4CZu7/H2GBaTc0Q.js\"))?.[\"utils\"], Hgjni5C4d: async () => (await import(\"https://framerusercontent.com/modules/QBkgyC6EXTfw7ysodGBv/rGpHg80SCUddUaW4G000/Hgjni5C4d.js\"))?.[\"utils\"], iwjz7CZDG: async () => (await import(\"https://framerusercontent.com/modules/pF0Bl0LtwTHpXQ8xJB19/nntgkd6ORjgJNfsAyAW2/iwjz7CZDG.js\"))?.[\"utils\"], ptF4wr1GY: async () => (await import(\"https://framerusercontent.com/modules/ohsHFZhAogWod7X9OPEy/OWirGbmpyWMrDDTPJnMI/ptF4wr1GY.js\"))?.[\"utils\"], UvBDfg9AL: async () => (await import(\"https://framerusercontent.com/modules/eawArY332PqUx5xhbIYj/tcVGTYNGkORDMHO0cW28/UvBDfg9AL.js\"))?.[\"utils\"], VRSz2ddS2: async () => (await import(\"https://framerusercontent.com/modules/xTDWw4Ic0bPL6Nmv15q5/ooWKGbiMsmvCAWCRSYT8/VRSz2ddS2.js\"))?.[\"utils\"], wqUE5E28l: async () => (await import(\"https://framerusercontent.com/modules/S9JGDhtcNi7b1pHeZpUn/8aiCsb09p1yvmcgQs0n7/wqUE5E28l.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"2a9f187281b3986eee974347a67e0166d3137205260ca27646296e0a880584d1\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const props1 = {Q4SvPFvMM: \"f6NldN1XN\"}\r\nconst props2 = {...props1, Q4SvPFvMM: \"NQ0zflYfi\"}\r\nconst props3 = {...props1, Q4SvPFvMM: \"qhRnW_zYw\"}\r\nconst props4 = {...props1, Q4SvPFvMM: \"hNqERtPiO\"}\r\nconst props5 = {...props1, Q4SvPFvMM: \"aIC8b9MNr\"}\r\nconst props6 = {...props1, Q4SvPFvMM: \"jt2kWH9sm\"}\r\nconst props7 = {...props1, Q4SvPFvMM: \"gwnf58riT\"}\r\nconst props8 = {...props1, Q4SvPFvMM: \"dHFeg5H10\"}\r\nconst templateProps = {augiA20Il: props1, DXJ_Yao8a: props3, FjuMBBHXy: props2, jUm6PDaOs: props6, KcK9fMPZG: props7, mpNW7dE4i: props5, NAkSzqkPj: props8, O6Ek3GaW3: props8, PZO1jQBwg: props8, qiV_hMHub: props5, RIFTgwqFs: props4, v6bd2SlHw: props4, wiFKe2Lqq: props6, ZqfxfoyUH: props7}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"FjuMBBHXy\":\r\ncase \"DXJ_Yao8a\":\r\ncase \"v6bd2SlHw\":\r\ncase \"mpNW7dE4i\":\r\ncase \"wiFKe2Lqq\":\r\ncase \"KcK9fMPZG\":\r\ncase \"PZO1jQBwg\":\r\ncase \"O6Ek3GaW3\":\r\ncase \"RIFTgwqFs\":\r\ncase \"qiV_hMHub\":\r\ncase \"jUm6PDaOs\":\r\ncase \"ZqfxfoyUH\":\r\ncase \"NAkSzqkPj\":\r\nreturn React.createElement(Main, {...props, key: \"Main\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"FjuMBBHXy\":\r\ncase \"DXJ_Yao8a\":\r\ncase \"v6bd2SlHw\":\r\ncase \"mpNW7dE4i\":\r\ncase \"wiFKe2Lqq\":\r\ncase \"KcK9fMPZG\":\r\ncase \"PZO1jQBwg\":\r\ncase \"O6Ek3GaW3\":\r\ncase \"RIFTgwqFs\":\r\ncase \"qiV_hMHub\":\r\ncase \"jUm6PDaOs\":\r\ncase \"ZqfxfoyUH\":\r\ncase \"NAkSzqkPj\":\r\nreturn [{hash: \"1cnw3ja\", mediaQuery: \"(min-width: 1200px)\"}, {hash: \"1ftelr4\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1sjev2k\", 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/Pld0a2zt05zxznVrt4GD/LljZrNH0M0y0ZoGtsFqc/PZO1jQBwg.js\")),\r\n\t\t\t\t\tisReducedMotion: true,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: true,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://sidefolio-template.framer.website\",\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/rZu9S8A7fQC1ffdXM25t/w39W3rJqINHuTCFVGVYH/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: {opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1.04, transition: {damping: 30, delay: 0.1, duration: 0.55, ease: [0.22, 1, 0.36, 1], mass: 1, stagger: 0, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"0%\"}, exit: {opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 0.97, transition: {damping: 30, delay: 0, duration: 0.35, ease: [0.4, 0, 0.24, 1], mass: 1, stagger: 0, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"0%\"}}, 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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"}