{"version":3,"file":"script_main.CdIk1KRT.mjs","names":["React.useRef","React.useState","React.useMemo","x","React.useCallback","p","addPropertyOverrides","Center_Nav","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","useCallback","useRef","useState","addPropertyOverrides","RichText","Link","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","FootLink","TimeDate","serializationHash","variantClassNames","matchVariant","React.useContext","React.useMemo","humanReadableVariantMap","React.Fragment","getProps","useRef","React.useId","RichText","Navigation","FOOT","useRef","React.useId","PropertyOverrides","React.createElement","Home","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.LibraryFeaturesProvider","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","breakpoints","Framer.patchRoutesForABTesting","routeData","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/ldkbWzucphIxLS3cNGx5/ITnW3QSHoMynchqmabNc/SCRAMLELOGO.js","https:/framerusercontent.com/modules/SEE0dZyOb0WYTq8ICnyw/audqru0UwT6L8adZAs44/oa8941imD.js","https:/framerusercontent.com/modules/HYcHVPAbe8jLEeU7c4mp/QiycTxX7vdblEOi3o00G/Time.js","https:/framerusercontent.com/modules/33qw490J27beDPXFUg7r/Qeuj8g7xm7iEfH6JswxD/TT5faAo3r.js","https:/framerusercontent.com/modules/S7HuKvuO5nwTaINMPhnr/L1OwsPKbwqonvNqRBpXZ/UsRI__LJy.js","https:/framerusercontent.com/modules/Bk8a2Z4ESvmQtQCF0oyp/gT96T1xQCToWOVUzXG6i/Lg8c78aO9.js","framer:toplevel/main"],"sourcesContent":["/** @jsxRuntime classic *//** @jsx React.createElement */import*as React from\"react\";import{createPortal}from\"react-dom\";import{motion,useMotionValue,useMotionValueEvent,useTransform,animate,useVelocity}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const PARALLAX_SLICES=[{id:\"tt\",top:0,bottom:90,lagFactor:.012},{id:\"tm\",top:10,bottom:70,lagFactor:.006},{id:\"cc\",top:30,bottom:30,lagFactor:0},{id:\"bm\",top:70,bottom:10,lagFactor:-.006},{id:\"bb\",top:90,bottom:0,lagFactor:-.012}];function ScrambleLetter({char,delay,hold,appearDelay,appearDuration,hoverDuration,scrambleOnAppear,scrambleString,fontSize,font,color,isOutline,outlineColor,strokeWidth,charIndex,slotWidthMV,overrideDelta,clippingWidthMV,reelSpacingMV,scrambleKey}){const xValue=useMotionValue(0);const velocity=useVelocity(xValue);const directionRef=React.useRef(charIndex%2===0?1:-1);// Ref so the ResizeObserver closure always reads the latest value\nconst scrambleOnAppearRef=React.useRef(scrambleOnAppear);scrambleOnAppearRef.current=scrambleOnAppear;// True while a hover keyframe animation is in flight.\n// Suppresses baseline-tracking snaps so the clip/reel MV changes from\n// scramble overrides don't clobber the keyframe's landing position.\nconst isHoverAnimatingRef=React.useRef(false);const targetIdx=5;const hasAppeared=React.useRef(false);const containerRef=React.useRef(null);const[measuredWidth,setMeasuredWidth]=React.useState(0);const[showReel,setShowReel]=React.useState(false);// Refs so MotionValue event callbacks always see latest values\nconst measuredWidthRef=React.useRef(measuredWidth);measuredWidthRef.current=measuredWidth;const overrideDeltaRef=React.useRef(overrideDelta);overrideDeltaRef.current=overrideDelta;// ── Per-letter effective slot width: shared slotWidthMV + per-char delta ──\n// Updated via MotionValue subscription (no React render needed for animation)\nconst effectiveSlotWidthMV=useMotionValue(slotWidthMV.get()+overrideDelta);useMotionValueEvent(slotWidthMV,\"change\",v=>{effectiveSlotWidthMV.set(v+overrideDeltaRef.current);});// Also re-sync when overrideDelta changes (from React state update)\nReact.useEffect(()=>{effectiveSlotWidthMV.set(slotWidthMV.get()+overrideDelta);},[overrideDelta]);// ── Reel cell width: measuredWidth + reelSpacing ──────────────────────────\nconst rsMV=useMotionValue((measuredWidth||fontSize)+reelSpacingMV.get());useMotionValueEvent(reelSpacingMV,\"change\",rs=>{rsMV.set((measuredWidthRef.current||fontSize)+rs);});React.useEffect(()=>{rsMV.set((measuredWidth||fontSize)+reelSpacingMV.get());},[measuredWidth]);const getBaseline=(cw,step)=>cw/2-(targetIdx+.5)*step;const reelChars=React.useMemo(()=>{const base=(scrambleString||\"TOBYS\").split(\"\");const finalChar=char||\" \";const R=()=>base[Math.floor(Math.random()*base.length)];return[R(),finalChar,R(),R(),R(),finalChar,R(),R(),R(),finalChar,R()];},[scrambleString,char]);const textStyle={color,fontFamily:font?.fontFamily??\"Inter, sans-serif\",fontWeight:font?.fontWeight??900,fontStyle:font?.fontStyle??\"normal\",fontVariationSettings:font?.fontVariationSettings??undefined,letterSpacing:font?.letterSpacing??undefined,WebkitTextStroke:isOutline?`${strokeWidth}px ${outlineColor}`:\"none\",WebkitTextFillColor:isOutline?\"transparent\":color};// ── Measure glyph width ───────────────────────────────────────────────────\nReact.useLayoutEffect(()=>{// Reset appear state so the animation replays whenever this effect re-runs.\n// In Framer's canvas the component re-renders (without unmounting) when props\n// change, leaving hasAppeared=true and preventing the scramble from re-firing.\n// Resetting here ensures a fresh animation each time font/char/fontSize changes.\nhasAppeared.current=false;setShowReel(false);setMeasuredWidth(0);const measure=containerRef.current?.querySelector(\".measure\");if(!measure)return;const observer=new ResizeObserver(entries=>{for(const entry of entries){const w=entry.contentRect.width;if(w>0){setMeasuredWidth(w);if(!hasAppeared.current){const step=w+reelSpacingMV.get();const baseline=getBaseline(clippingWidthMV.get(),step);// When scrambleOnAppear is off, start already at baseline\n// so letters never flash at the off-screen reel position.\nxValue.set(scrambleOnAppearRef.current?baseline+3*directionRef.current*step:baseline);}setShowReel(true);}}});observer.observe(measure);return()=>observer.disconnect();},[fontSize,JSON.stringify(font),char]);// ── Baseline tracking via MotionValue subscriptions ───────────────────────\n// clippingWidth changes → re-centre reel\nuseMotionValueEvent(clippingWidthMV,\"change\",cw=>{if(!hasAppeared.current||measuredWidthRef.current===0)return;// Skip while hover keyframe is running — clip MV changes from scramble\n// overrides would otherwise snap xValue and corrupt the landing position.\nif(isHoverAnimatingRef.current)return;xValue.set(getBaseline(cw,measuredWidthRef.current+reelSpacingMV.get()));});// reelSpacing changes → cell size changes, re-centre\nuseMotionValueEvent(reelSpacingMV,\"change\",rs=>{if(!hasAppeared.current||measuredWidthRef.current===0)return;if(isHoverAnimatingRef.current)return;xValue.set(getBaseline(clippingWidthMV.get(),measuredWidthRef.current+rs));});// measuredWidth changes (React state) → re-centre\nReact.useEffect(()=>{if(!hasAppeared.current||measuredWidth===0)return;xValue.set(getBaseline(clippingWidthMV.get(),measuredWidth+reelSpacingMV.get()));},[measuredWidth]);// ── Initial scramble ──────────────────────────────────────────────────────\nReact.useEffect(()=>{if(!showReel||measuredWidth===0||hasAppeared.current)return;const step=measuredWidth+reelSpacingMV.get();const baseline=getBaseline(clippingWidthMV.get(),step);hasAppeared.current=true;// When scrambleOnAppear is disabled, skip the reel animation entirely —\n// the ResizeObserver already positioned xValue at baseline, so just mark done.\nif(!scrambleOnAppear)return;const controls=[];const scramble=async()=>{const anim=animate(xValue,baseline,{duration:appearDuration||1.5,delay:(appearDelay||0)+(hold||.2),ease:\"easeInOut\"});controls.push(anim);await anim;};scramble();return()=>controls.forEach(c=>c?.stop?.());},[measuredWidth,showReel,delay,hold,appearDuration,scrambleOnAppear]);// ── Hover re-scramble ─────────────────────────────────────────────────────\n// Two-phase chained animation to avoid the \"jump at end\" when scramble overrides\n// (scrambleClipWidth / scrambleCharGap) change the MotionValues during the animation.\n//\n// The problem with a single keyframe [start → far → baseline]:\n//   • baseline is computed ONCE at effect-fire time, using the current MV values\n//   • but scramble overrides quickly animate clippingWidthMV / reelSpacingMV away\n//     from their step values → the true landing baseline shifts\n//   • the reel ends up visually off-centre → visible jump\n//\n// Two-phase fix:\n//   Phase 1  (35% of duration):  current → farPos  — forward spin, easeOut\n//   Phase 2  (65% of duration):  farPos → baseline — settle; baseline is re-sampled\n//                                 from LIVE MV values at the moment phase 2 starts,\n//                                 so it always lands correctly whatever the MVs are doing\nReact.useEffect(()=>{if(scrambleKey===0||!hasAppeared.current||measuredWidth===0)return;const totalDur=hoverDuration||1.5;const p1Dur=totalDur*.35;const p2Dur=totalDur*.65;let anim1=null,anim2=null;// Use setTimeout for the stagger delay rather than Framer's delay option.\n// This keeps isHoverAnimatingRef=false during the wait so baseline tracking\n// stays active — letters remain correctly positioned as scramble overrides\n// change the MVs, preventing the \"blank letters staggering on\" glitch.\nconst timer=setTimeout(()=>{// Snapshot current xValue and MV state now that we're actually starting.\n// Baseline tracking has been running up to this point, so values are correct.\nisHoverAnimatingRef.current=true;const step0=measuredWidthRef.current+reelSpacingMV.get();const base0=getBaseline(clippingWidthMV.get(),step0);const farPos=base0+3*directionRef.current*step0;anim1=animate(xValue,[xValue.get(),farPos],{duration:p1Dur,ease:\"easeOut\",onComplete:()=>{// Phase 2: re-sample live MV values for the correct landing baseline.\nconst liveStep=measuredWidthRef.current+reelSpacingMV.get();const liveBaseline=getBaseline(clippingWidthMV.get(),liveStep);anim2=animate(xValue,liveBaseline,{duration:p2Dur,ease:\"easeOut\",onComplete:()=>{isHoverAnimatingRef.current=false;}});}});},delay*1e3);return()=>{clearTimeout(timer);anim1?.stop?.();anim2?.stop?.();isHoverAnimatingRef.current=false;};},[scrambleKey]);return /*#__PURE__*/React.createElement(motion.div,{ref:containerRef,style:{position:\"relative\",display:\"inline-flex\",width:effectiveSlotWidthMV,height:\"1.2em\",alignItems:\"center\",justifyContent:\"center\",overflow:\"visible\"}},/*#__PURE__*/React.createElement(\"span\",{className:\"measure\",style:{visibility:\"hidden\",pointerEvents:\"none\",display:\"inline-block\",whiteSpace:\"pre\",padding:0,...textStyle}},char===\" \"?\"\\xa0\":char),/*#__PURE__*/React.createElement(motion.div,{style:{position:\"absolute\",left:\"50%\",top:\"50%\",width:clippingWidthMV,height:\"140%\",transform:\"translate(-50%,-50%)\",overflow:\"hidden\",pointerEvents:\"none\",mixBlendMode:\"difference\"}},/*#__PURE__*/React.createElement(motion.div,{style:{position:\"absolute\",inset:0,display:\"flex\",flexDirection:\"row\",x:xValue,willChange:\"transform\",opacity:showReel?1:0}},reelChars.map((c,i)=>/*#__PURE__*/React.createElement(motion.span,{key:`b${i}`,style:{width:rsMV,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",height:\"100%\",flexShrink:0,whiteSpace:\"pre\",...textStyle}},c===\" \"?\"\\xa0\":c))),/*#__PURE__*/React.createElement(\"div\",{style:{opacity:showReel?.8:0,position:\"absolute\",inset:0,isolation:\"isolate\"}},PARALLAX_SLICES.map(slice=>/*#__PURE__*/React.createElement(SliceLayer,{key:slice.id,slice:slice,xValue:xValue,velocity:velocity,shearIntensity:2,rsMV:rsMV,textStyle:textStyle,reelChars:reelChars})))));}// ─── SliceLayer ───────────────────────────────────────────────────────────────\nfunction SliceLayer({slice,xValue,velocity,shearIntensity,rsMV,textStyle,reelChars}){const shearOffset=useTransform(velocity,v=>v*slice.lagFactor*(shearIntensity||1));const finalX=useTransform([xValue,shearOffset],([x,s])=>x+s);return /*#__PURE__*/React.createElement(motion.div,{style:{position:\"absolute\",inset:0,willChange:\"transform\",clipPath:`inset(${slice.top}% 0% ${slice.bottom}% 0%)`,x:finalX,mixBlendMode:\"difference\"}},/*#__PURE__*/React.createElement(\"div\",{style:{display:\"flex\",flexDirection:\"row\",height:\"100%\"}},reelChars.map((c,i)=>/*#__PURE__*/React.createElement(motion.span,{key:`s${i}`,style:{width:rsMV,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",height:\"100%\",flexShrink:0,whiteSpace:\"pre\",...textStyle}},c===\" \"?\"\\xa0\":c))));}// ─── ScrambleTumbler ──────────────────────────────────────────────────────────\nconst DEFAULT_STEP1={fontSize:270,slotWidth:255,spacing:-116,clippingWidth:153,reelSpacing:347,duration:2,widthOverrides:\"\",offsetX:0,offsetY:0};const DEFAULT_STEP2={fontSize:735,slotWidth:144,spacing:-308,clippingWidth:576,reelSpacing:174,duration:2,widthOverrides:\"\",offsetX:0,offsetY:0};const DEFAULT_STEP3={fontSize:1200,slotWidth:33,spacing:-500,clippingWidth:999,reelSpacing:0,duration:2,widthOverrides:\"\",offsetX:0,offsetY:0};// Shared easing curve — cubic ease-in-out\nconst cubicEaseInOut=x=>{const t=Math.max(0,Math.min(1,x));return t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;};// Parse \"Y:-50, W:-30\" → { Y: -50, W: -30 }\nfunction parseOverrides(str){const map={};if(!str)return map;str.split(\",\").forEach(part=>{const m=part.trim().match(/^(.):([+-]?\\d+(?:\\.\\d+)?)$/);if(m)map[m[1]]=parseFloat(m[2]);});return map;}// Lerp two parsed override maps — missing key treated as 0\nfunction lerpOverrides(fromStr,toStr,e){const from=parseOverrides(fromStr||\"\");const to=parseOverrides(toStr||\"\");const keys=new Set([...Object.keys(from),...Object.keys(to)]);const result={};keys.forEach(k=>{result[k]=(from[k]??0)+((to[k]??0)-(from[k]??0))*e;});return result;}const DEFAULT_STEPS=[DEFAULT_STEP1,DEFAULT_STEP2,DEFAULT_STEP3];export default function ScrambleTumbler({text=\"TOBYS.DESIGN\",color=\"#ABABAB\",font,isOutline=false,outlineColor=\"#000\",strokeWidth=1,stagger=.12,scrambleHold=.3,appearDelay=0,appearDuration=1.5,scrambleDuration=1.5,scrambleOnAppear=true,hoverDelay=0,fillViewport=false,stepDelay=.5,// Scramble-specific overrides — applied during hover, restored after\nscrambleClipWidth,scrambleCharGap,scrambleSlotWidth,scrollProgress,stepsState}){// Merge incoming array with defaults; fall back to built-in 3-step sequence\nconst steps=stepsState&&stepsState.length>0?stepsState:DEFAULT_STEPS;// Scroll mode: when scrollProgress is wired, scrub replaces RAF transitions.\nconst scrollMode=scrollProgress!==null&&scrollProgress!==undefined;const scrollProgressRef=React.useRef(scrollProgress);scrollProgressRef.current=scrollProgress;// Refs so the RAF closure always reads the latest values\nconst stepsRef=React.useRef(steps);stepsRef.current=steps;const holdRef=React.useRef(scrambleHold);holdRef.current=scrambleHold;const stepDelayRef=React.useRef(stepDelay);stepDelayRef.current=stepDelay;const scrollModeRef=React.useRef(scrollMode);scrollModeRef.current=scrollMode;// Tracks whether the initial appear animation has finished.\n// Used to let canvas prop edits update values without re-running the animation.\nconst animDoneRef=React.useRef(false);// Hover gate — hover scramble is blocked until this is true.\n// Becomes true when the step animation finishes (animDoneRef) OR when the\n// manual hoverDelay timer elapses, whichever comes first.\nconst hoverReadyRef=React.useRef(false);React.useEffect(()=>{hoverReadyRef.current=false;if(hoverDelay>0){const t=setTimeout(()=>{hoverReadyRef.current=true;},hoverDelay*1e3);return()=>clearTimeout(t);}},[]);// Timer that restores step MV values after a hover scramble completes\nconst scrambleReturnTimerRef=React.useRef(null);// Snapshot of MV values before scramble — so rapid re-hovers return to the\n// correct step values, not to mid-scramble values\nconst scrambleBaseRef=React.useRef(null);const isScramblingRef=React.useRef(false);// Motion values — ALL layout properties drive CSS directly via MotionValues,\n// bypassing React's render scheduler entirely for 60fps animation.\nconst firstStep=steps[0];const fontSizeMV=useMotionValue(firstStep.fontSize);const spacingMV=useMotionValue(firstStep.spacing);const slotWidthMV=useMotionValue(firstStep.slotWidth);const clippingWidthMV=useMotionValue(firstStep.clippingWidth);const reelSpacingMV=useMotionValue(firstStep.reelSpacing);const offsetXMV=useMotionValue(firstStep.offsetX??0);const offsetYMV=useMotionValue(firstStep.offsetY??0);// React state only for per-char width overrides — these are a map of char→delta and\n// can't be a plain MotionValue; they update at step boundaries (infrequent).\n// When both from/to steps have empty widthOverrides (most users), setOverrides\n// is never called inside the RAF tick, so no React renders happen during animation.\nconst[overrides,setOverrides]=React.useState(parseOverrides(firstStep.widthOverrides||\"\"));const overridesRef=React.useRef(parseOverrides(firstStep.widthOverrides||\"\"));// ── Core animation runner ────────────────────────────────────────────────\n// Drives Step[0] → Step[1] → … → Step[n-1] in a single RAF loop.\n// Each transition takes that step's own Duration; stepDelay pauses between them.\nconst runAnimation=React.useCallback(()=>{const del=holdRef.current*1e3;animDoneRef.current=false;const first=stepsRef.current[0]||DEFAULT_STEP1;fontSizeMV.set(first.fontSize);spacingMV.set(first.spacing);slotWidthMV.set(first.slotWidth);clippingWidthMV.set(first.clippingWidth);reelSpacingMV.set(first.reelSpacing);offsetXMV.set(first.offsetX??0);offsetYMV.set(first.offsetY??0);const firstOvr=parseOverrides(first.widthOverrides||\"\");overridesRef.current=firstOvr;setOverrides(firstOvr);// Scroll mode: letters still scramble on mount, but layout stays at\n// step 0 — scroll scrubs the transitions instead of time.\nif(scrollModeRef.current){animDoneRef.current=true;return()=>{};}let startTime=null;let rafId;let cancelled=false;const tick=now=>{if(cancelled)return;if(startTime===null)startTime=now+del;const elapsed=Math.max(0,now-startTime);const ss=stepsRef.current;const n=ss.length;const sdl=stepDelayRef.current*1e3;if(n<=1){animDoneRef.current=true;return;}// Each segment uses its own step's duration.\n// Compute totalDur and find current segment in one pass.\nlet from=ss[n-1],to=ss[n-1],e=1;let cursor=0,totalDur=0;for(let i=0;i<n-1;i++){const segDur=(ss[i].duration??2)*1e3;const isLast=i===n-2;const transEnd=cursor+segDur;const segEnd=isLast?transEnd:transEnd+sdl;totalDur=segEnd;if(elapsed<transEnd){from=ss[i];to=ss[i+1];e=cubicEaseInOut((elapsed-cursor)/segDur);break;}else if(!isLast&&elapsed<segEnd){from=to=ss[i+1];e=0;break;}cursor=segEnd;}const lerp=(a,b)=>a+(b-a)*e;fontSizeMV.set(lerp(from.fontSize,to.fontSize));spacingMV.set(lerp(from.spacing,to.spacing));slotWidthMV.set(lerp(from.slotWidth,to.slotWidth));clippingWidthMV.set(lerp(from.clippingWidth,to.clippingWidth));reelSpacingMV.set(lerp(from.reelSpacing,to.reelSpacing));offsetXMV.set(lerp(from.offsetX??0,to.offsetX??0));offsetYMV.set(lerp(from.offsetY??0,to.offsetY??0));// Overrides only cause React re-renders when non-empty strings are defined\nconst fromOvr=from.widthOverrides||\"\";const toOvr=to.widthOverrides||\"\";if(fromOvr||toOvr){const newOvr=lerpOverrides(fromOvr,toOvr,e);overridesRef.current=newOvr;setOverrides(newOvr);}else if(Object.keys(overridesRef.current).length>0){overridesRef.current={};setOverrides({});}if(elapsed<totalDur){rafId=requestAnimationFrame(tick);}else{animDoneRef.current=true;}};rafId=requestAnimationFrame(tick);return()=>{cancelled=true;cancelAnimationFrame(rafId);};},[]);// ── Appear animation — runs once on mount ────────────────────────────────\nReact.useEffect(()=>runAnimation(),[]);// ── Canvas editing: snap to whichever step was just changed ─────────────\nconst snapTo=s=>{fontSizeMV.set(s.fontSize);spacingMV.set(s.spacing);slotWidthMV.set(s.slotWidth);clippingWidthMV.set(s.clippingWidth);reelSpacingMV.set(s.reelSpacing);offsetXMV.set(s.offsetX??0);offsetYMV.set(s.offsetY??0);const ovr=parseOverrides(s.widthOverrides||\"\");overridesRef.current=ovr;setOverrides(ovr);};// ── Scroll scrub ─────────────────────────────────────────────────────────\n// Maps a 0–1 progress value across the step transitions, weighted by each\n// step's duration so a longer duration = more scroll range for that segment.\nconst scrubToProgress=React.useCallback(p=>{const ss=stepsRef.current;const n=ss.length;if(n<=1)return;// Each of the n-1 transitions gets a weight proportional to the FROM step's duration.\nconst weights=ss.slice(0,n-1).map(s=>Math.max(.01,s.duration??2));const totalW=weights.reduce((a,b)=>a+b,0);const clamped=Math.max(0,Math.min(1,p));let cursor=0;let from=ss[0],to=ss[Math.min(1,n-1)],e=0;for(let i=0;i<n-1;i++){const segEnd=cursor+weights[i]/totalW;if(clamped<=segEnd||i===n-2){from=ss[i];to=ss[i+1];const localT=(clamped-cursor)/(weights[i]/totalW);// Scroll-driven: use linear mapping — the user's hand already controls\n// pacing. Applying easing here makes the ends of each segment feel\n// unresponsive, especially when scrolling back (scale-down direction).\ne=Math.max(0,Math.min(1,localT));break;}cursor=segEnd;}const lerp=(a,b)=>a+(b-a)*e;fontSizeMV.set(lerp(from.fontSize,to.fontSize));spacingMV.set(lerp(from.spacing,to.spacing));slotWidthMV.set(lerp(from.slotWidth,to.slotWidth));clippingWidthMV.set(lerp(from.clippingWidth,to.clippingWidth));reelSpacingMV.set(lerp(from.reelSpacing,to.reelSpacing));offsetXMV.set(lerp(from.offsetX??0,to.offsetX??0));offsetYMV.set(lerp(from.offsetY??0,to.offsetY??0));const fromOvr=from.widthOverrides||\"\";const toOvr=to.widthOverrides||\"\";if(fromOvr||toOvr){const newOvr=lerpOverrides(fromOvr,toOvr,e);overridesRef.current=newOvr;setOverrides(newOvr);}else if(Object.keys(overridesRef.current).length>0){overridesRef.current={};setOverrides({});}},[]);// Drive scrub whenever scrollProgress prop changes\nReact.useEffect(()=>{if(!scrollMode)return;scrubToProgress(scrollProgress);},[scrollProgress,scrollMode]);// Increments on each hover to trigger a re-scramble in every ScrambleLetter\nconst[scrambleKey,setScrambleKey]=React.useState(0);const prevStepsJsonRef=React.useRef(\"\");React.useEffect(()=>{if(!animDoneRef.current)return;const ss=stepsRef.current;if(ss.length===0)return;const currJson=JSON.stringify(stepsState);const prevJson=prevStepsJsonRef.current;prevStepsJsonRef.current=currJson;try{const prev=prevJson?JSON.parse(prevJson):[];let idx=ss.length-1// default: last step\n;if(ss.length===prev.length){// Same length — find the first step that differs\nfor(let i=0;i<ss.length;i++){if(JSON.stringify(ss[i])!==JSON.stringify(prev[i])){idx=i;break;}}}// If length changed (add/remove), snap to last (idx already = ss.length - 1)\nsnapTo(ss[idx]);}catch{snapTo(ss[ss.length-1]);}},[JSON.stringify(stepsState)]);const reelBase=React.useMemo(()=>(text||\"TOBYS\").replace(/\\s/g,\"\")||\"OTYWSLE\",[text]);// fillViewport uses position:fixed + a portal in canvas mode only.\n// In canvas, Framer positions frames with CSS transforms which trap position:fixed —\n// the portal escapes to document.body so the component actually fills the viewport.\n// In preview / published, we render normally (no portal, no fixed) so that parent\n// frame scale animations (scroll-driven scale-down etc.) continue to work naturally.\nconst isCanvas=RenderTarget.current()===RenderTarget.canvas;const wrapperStyle=fillViewport&&isCanvas?{position:\"fixed\",inset:0,zIndex:9999,display:\"flex\",alignItems:\"center\",justifyContent:\"flex-start\",overflow:\"hidden\"}:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"flex-start\",overflow:\"hidden\"};const inner=/*#__PURE__*/React.createElement(\"div\",{style:wrapperStyle,onMouseEnter:()=>{// Block hover while step animation is running, or until hoverDelay elapses.\nconst ready=hoverReadyRef.current||animDoneRef.current;if(!ready)return;hoverReadyRef.current=true// once open, stays open\n;setScrambleKey(k=>k+1);const hasOverrides=scrambleClipWidth!=null||scrambleCharGap!=null||scrambleSlotWidth!=null;if(!hasOverrides)return;// Only snapshot step values on first hover (not on rapid re-hover)\nif(!isScramblingRef.current){scrambleBaseRef.current={clip:clippingWidthMV.get(),reel:reelSpacingMV.get(),slot:slotWidthMV.get()};}isScramblingRef.current=true;clearTimeout(scrambleReturnTimerRef.current);// Animate MVs to scramble values (quick snap in)\nconst inDur=.12;if(scrambleClipWidth!=null)animate(clippingWidthMV,scrambleClipWidth,{duration:inDur,ease:\"easeOut\"});if(scrambleCharGap!=null)animate(reelSpacingMV,scrambleCharGap,{duration:inDur,ease:\"easeOut\"});if(scrambleSlotWidth!=null)animate(slotWidthMV,scrambleSlotWidth,{duration:inDur,ease:\"easeOut\"});// Schedule restore after the last letter finishes scrambling\nconst returnDelay=((text?.length??1)-1)*(stagger||0)+(scrambleDuration||1.5);scrambleReturnTimerRef.current=setTimeout(()=>{const base=scrambleBaseRef.current;if(!base)return;isScramblingRef.current=false;const outDur=.4;if(scrambleClipWidth!=null)animate(clippingWidthMV,base.clip,{duration:outDur,ease:\"easeOut\"});if(scrambleCharGap!=null)animate(reelSpacingMV,base.reel,{duration:outDur,ease:\"easeOut\"});if(scrambleSlotWidth!=null)animate(slotWidthMV,base.slot,{duration:outDur,ease:\"easeOut\"});},returnDelay*1e3);}},/*#__PURE__*/React.createElement(motion.div,{style:{fontSize:fontSizeMV,display:\"flex\",flexDirection:\"row\",alignItems:\"center\",justifyContent:\"flex-start\",whiteSpace:\"nowrap\",x:offsetXMV,y:offsetYMV}},(text||\"\").split(\"\").map((c,i)=>// Each letter sits in a slotWidth-wide flex item.\n    // spacingMV drives marginRight — supports negative values\n    // (overlap) unlike CSS gap, and enables hover animation.\n    /*#__PURE__*/React.createElement(motion.div,{key:i,style:{flexShrink:0,marginRight:spacingMV}},/*#__PURE__*/React.createElement(ScrambleLetter,{char:c,fontSize:steps[0]?.fontSize??DEFAULT_STEP1.fontSize,font:font,color:color,outlineColor:outlineColor,delay:i*stagger,hold:scrambleHold,appearDelay:appearDelay+i*stagger,appearDuration:appearDuration,hoverDuration:scrambleDuration,scrambleOnAppear:scrambleOnAppear,scrambleString:reelBase,isOutline:isOutline,strokeWidth:strokeWidth,charIndex:i,slotWidthMV:slotWidthMV,overrideDelta:overrides[c]??0,clippingWidthMV:clippingWidthMV,reelSpacingMV:reelSpacingMV,scrambleKey:scrambleKey})))));// Portal only in canvas mode — escapes Framer's infinite-canvas transforms\n// so the fixed-position div actually covers the viewport while editing.\n// In preview / published we return inner directly so parent scale/scroll\n// animations affect the component normally.\nif(fillViewport&&isCanvas&&typeof document!==\"undefined\"){return /*#__PURE__*/createPortal(inner,document.body);}return inner;}// ─── Property controls ────────────────────────────────────────────────────────\nconst layoutControls=defaults=>({duration:{type:ControlType.Number,title:\"Duration\",description:\"Transition time from this step to the next (ignored on the last step)\",defaultValue:defaults.duration,min:.1,max:20,step:.1},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:defaults.fontSize,min:10,max:1200},slotWidth:{type:ControlType.Number,title:\"Letter Width\",description:\"Width of each letter's container box. Letter Gap adds space between box edges. Clip Width can overflow this box on both sides to create the blend overlap effect.\",defaultValue:defaults.slotWidth,min:0,max:800,unit:\"px\"},spacing:{type:ControlType.Number,title:\"Letter Gap\",description:\"Gap between letter containers\",defaultValue:defaults.spacing,min:-500,max:500},clippingWidth:{type:ControlType.Number,title:\"Clip Width\",description:\"Visual window per letter — if wider than Letter Width, the reel overflows into neighbouring slots creating the blend overlap effect\",defaultValue:defaults.clippingWidth,min:0,max:1e3,unit:\"px\"},reelSpacing:{type:ControlType.Number,title:\"Char Gap\",description:\"Distance between characters within each reel\",defaultValue:defaults.reelSpacing,min:0,max:500,unit:\"px\"},widthOverrides:{type:ControlType.String,title:\"Width Overrides\",defaultValue:defaults.widthOverrides??\"\",placeholder:\"Y:-50, W:-30\",description:'Per-character letter width delta for this step. Format: char:delta — e.g. \"Y:-50\" makes Y 50px narrower. Comma-separate multiple entries.'},offsetX:{type:ControlType.Number,title:\"Offset X\",description:\"Horizontal position of the text block within the component (px from left edge). Lerps smoothly between steps.\",defaultValue:0,min:-2e3,max:2e3,step:1},offsetY:{type:ControlType.Number,title:\"Offset Y\",description:\"Vertical offset from the component's vertical centre (px). Negative moves up, positive moves down. Lerps smoothly between steps.\",defaultValue:0,min:-2e3,max:2e3,step:1}});addPropertyControls(ScrambleTumbler,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"TOBYS.DESIGN\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#ABABAB\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontFamily:\"Inter\",fontWeight:900,fontStyle:\"normal\"}},// ── Scroll scrub ─────────────────────────────────────────────────────\nscrollProgress:{type:ControlType.Number,title:\"Scroll Progress\",description:\"Connect to a Framer Scroll component's scrollYProgress (0–1). When wired, scroll scrubs the step transitions instead of time. Each step's Duration controls how much scroll range its transition occupies.\",defaultValue:undefined,min:0,max:1,step:.001,optional:true},// ── Steps array — add/remove steps freely ────────────────────────────\nstepsState:{type:ControlType.Array,title:\"Steps\",control:{type:ControlType.Object,controls:layoutControls(DEFAULT_STEP1)},defaultValue:DEFAULT_STEPS},// ── Hover scramble overrides ──────────────────────────────────────────\n// When set, these temporarily replace the step values during hover scramble,\n// then smoothly restore to the step values once all letters finish.\nscrambleClipWidth:{type:ControlType.Number,title:\"Scramble Clip Width\",description:\"Clip Width during hover scramble. Leave unset to use the current step value. Widens the visible window while letters spin, then snaps back.\",defaultValue:undefined,min:0,max:4e3,step:1,unit:\"px\",optional:true},scrambleCharGap:{type:ControlType.Number,title:\"Scramble Char Gap\",description:\"Char Gap during hover scramble. Leave unset to use the current step value.\",defaultValue:undefined,min:0,max:500,step:1,unit:\"px\",optional:true},scrambleSlotWidth:{type:ControlType.Number,title:\"Scramble Letter Width\",description:\"Letter Width during hover scramble. Leave unset to use the current step value.\",defaultValue:undefined,min:0,max:800,step:1,unit:\"px\",optional:true},// ── Layout ───────────────────────────────────────────────────────────\nfillViewport:{type:ControlType.Boolean,title:\"Fill Viewport\",description:\"When on, the component ignores its Framer frame size and fills the full browser viewport. Useful when the component is inside scaled or nested frames.\",defaultValue:false},// ── Timing ───────────────────────────────────────────────────────────\nscrambleOnAppear:{type:ControlType.Boolean,title:\"Scramble on Appear\",description:\"When off, letters snap directly to their settled position on load — no reel spin. Hover scramble is unaffected.\",defaultValue:true},appearDelay:{type:ControlType.Number,title:\"Appear Delay\",description:\"Seconds to wait before the first letter starts appearing. Per-letter stagger is controlled by the Stagger setting. Has no effect when Scramble on Appear is off.\",defaultValue:0,min:0,max:10,step:.1,hidden:p=>!p.scrambleOnAppear},appearDuration:{type:ControlType.Number,title:\"Appear Duration\",description:\"Speed of the initial reel fly-in animation in seconds. Has no effect when Scramble on Appear is off.\",defaultValue:1.5,min:.1,max:10,step:.1,hidden:p=>!p.scrambleOnAppear},scrambleDuration:{type:ControlType.Number,title:\"Hover Duration\",description:\"Speed of the hover re-scramble reel animation in seconds\",defaultValue:1.5,min:.1,max:10,step:.1},hoverDelay:{type:ControlType.Number,title:\"Hover Lock\",description:\"Seconds after load before hover scramble is enabled. Set this to match your total step animation time to prevent hover triggering mid-animation. Leave at 0 to auto-unlock when the step animation finishes.\",defaultValue:0,min:0,max:30,step:.5},stepDelay:{type:ControlType.Number,title:\"Step Pause\",description:\"Pause at Step 2 before continuing to Step 3\",defaultValue:.5,min:0,max:5,step:.1},stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:.12,step:.01},scrambleHold:{type:ControlType.Number,title:\"Initial Hold\",defaultValue:.3,min:0,max:2,step:.1},// ── Outline ───────────────────────────────────────────────────────────\nisOutline:{type:ControlType.Boolean,title:\"Outline\",defaultValue:false},outlineColor:{type:ControlType.Color,title:\"Stroke Color\",defaultValue:\"#000\",hidden:p=>!p.isOutline},strokeWidth:{type:ControlType.Number,title:\"Stroke Width\",defaultValue:1,min:1,max:10,step:.5,hidden:p=>!p.isOutline}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrambleTumbler\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SCRAMLELOGO.map","// Generated by Framer (b6e2e7c)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,Link,ResolveLinks,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS,withVariantAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import ScrambleTumbler from\"https://framerusercontent.com/modules/ldkbWzucphIxLS3cNGx5/ITnW3QSHoMynchqmabNc/SCRAMLELOGO.js\";import Center_Nav from\"https://framerusercontent.com/modules/jGeXWVYUHaYSWZXyJCjm/nQpDci6ImZ02mtDBjGZe/bARsLbSUg.js\";const ScrambleTumblerFonts=getFonts(ScrambleTumbler);const Center_NavFonts=getFonts(Center_Nav);const Center_NavWithVariantAppearEffect=withVariantAppearEffect(Center_Nav);const cycleOrder=[\"mMrQtusR5\",\"j0R2k6hlu\",\"v9thSKazV\",\"q4Rn8DyuA\"];const serializationHash=\"framer-4NfQ3\";const variantClassNames={j0R2k6hlu:\"framer-v-1lh2nr0\",mMrQtusR5:\"framer-v-1uxiaqi\",q4Rn8DyuA:\"framer-v-gv2v2p\",v9thSKazV:\"framer-v-2bepge\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const E1OczQfj9vJt4NMmK4=undefined;const transition1={bounce:.4,delay:0,duration:.9,type:\"spring\"};const transformTemplate1=(_,t)=>`translateY(-50%) ${t}`;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={\"Variant 4\":\"v9thSKazV\",\"Variant 5\":\"q4Rn8DyuA\",Home:\"mMrQtusR5\",Tablet:\"j0R2k6hlu\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"mMrQtusR5\"};};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,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"mMrQtusR5\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1uxiaqi\",className,classNames),\"data-framer-name\":\"Home\",layoutDependency:layoutDependency,layoutId:\"mMrQtusR5\",ref:refBinding,style:{backgroundColor:\"rgba(43, 43, 43, 0.43)\",borderBottomLeftRadius:24,borderBottomRightRadius:24,borderTopLeftRadius:24,borderTopRightRadius:24,...style},...addPropertyOverrides({j0R2k6hlu:{\"data-framer-name\":\"Tablet\"},q4Rn8DyuA:{\"data-framer-name\":\"Variant 5\"},v9thSKazV:{\"data-framer-name\":\"Variant 4\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1kstkec\",layoutDependency:layoutDependency,layoutId:\"J0QTBSzNB\",children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"XGN3SG7v_\",scopeId:\"oa8941imD\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-f3lxff framer-3ru2l\",\"data-framer-name\":\"Left Part\",layoutDependency:layoutDependency,layoutId:\"XGN3SG7v_\",style:{borderBottomLeftRadius:12,borderBottomRightRadius:12,borderTopLeftRadius:12,borderTopRightRadius:12},transformTemplate:transformTemplate1,...addPropertyOverrides({v9thSKazV:{transformTemplate:undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-18l3r0i\",layoutDependency:layoutDependency,layoutId:\"E0UBel8Vi\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-16pcr5x-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"v3gGW0vBQ-container\",nodeId:\"v3gGW0vBQ\",rendersWithMotion:true,scopeId:\"oa8941imD\",style:{scale:1},variants:{q4Rn8DyuA:{scale:.09},v9thSKazV:{originX:0,scale:.1}},children:/*#__PURE__*/_jsx(ScrambleTumbler,{appearDelay:1,appearDuration:1,color:\"var(--token-8ce07430-19aa-464f-83d7-2b4eb92ebb52, rgb(255, 255, 255))\",fillViewport:true,font:{fontFamily:'\"BDO Grotesk Variable\", sans-serif',fontFeatureSettings:\"'dlig' on, 'ss05' on, 'ss04' on, 'ss03' on, 'ss02' on, 'ss01' on\",fontSize:\"12px\",fontStyle:\"normal\",fontWeight:1e3,letterSpacing:\"0em\",lineHeight:\"1em\"},height:\"100%\",hoverDelay:0,id:\"v3gGW0vBQ\",isOutline:false,layoutId:\"v3gGW0vBQ\",outlineColor:\"rgb(0, 0, 0)\",scrambleClipWidth:1200,scrambleDuration:2,scrambleHold:1,scrambleOnAppear:false,stagger:.3,stepDelay:0,stepsState:[{clippingWidth:1,duration:1,fontSize:487,offsetX:0,offsetY:0,reelSpacing:0,slotWidth:240,spacing:5,widthOverrides:\"\"},{clippingWidth:36,duration:1,fontSize:505,offsetX:0,offsetY:0,reelSpacing:500,slotWidth:240,spacing:5,widthOverrides:\"\"},{clippingWidth:1e3,duration:2,fontSize:1200,offsetX:0,offsetY:0,reelSpacing:0,slotWidth:0,spacing:289,widthOverrides:\"\"},{clippingWidth:287,duration:2,fontSize:181,offsetX:0,offsetY:0,reelSpacing:347,slotWidth:261,spacing:-116,widthOverrides:\"O:-50,Y:-60\"}],strokeWidth:1,style:{height:\"100%\",width:\"100%\"},text:\"TOBYS\",width:\"100%\"})})})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:E1OczQfj9vJt4NMmK4,implicitPathVariables:undefined},{href:E1OczQfj9vJt4NMmK4,implicitPathVariables:undefined},{href:E1OczQfj9vJt4NMmK4,implicitPathVariables:undefined},{href:E1OczQfj9vJt4NMmK4,implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:18,width:\"939px\",y:(componentViewport?.y||0)+(12+((componentViewport?.height||48)-24-18)/2)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1qc98se-container\",layoutDependency:layoutDependency,layoutId:\"Os7O2ytL3-container\",nodeId:\"Os7O2ytL3\",rendersWithMotion:true,scopeId:\"oa8941imD\",children:/*#__PURE__*/_jsx(Center_NavWithVariantAppearEffect,{__framer__animateOnce:false,__framer__scrollDirection:{direction:\"down\",target:\"XIZnkIkN3\"},__framer__threshold:.5,__framer__variantAppearEffectEnabled:true,gtlJKivq6:resolvedLinks[0],height:\"100%\",id:\"Os7O2ytL3\",layoutId:\"Os7O2ytL3\",style:{width:\"100%\"},width:\"100%\",...addPropertyOverrides({j0R2k6hlu:{gtlJKivq6:resolvedLinks[1]},q4Rn8DyuA:{gtlJKivq6:resolvedLinks[3]},v9thSKazV:{gtlJKivq6:resolvedLinks[2]}},baseVariant,gestureVariant)})})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-4NfQ3.framer-3ru2l, .framer-4NfQ3 .framer-3ru2l { display: block; }\",\".framer-4NfQ3.framer-1uxiaqi { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: 48px; justify-content: center; overflow: visible; padding: 12px 20px 12px 20px; position: relative; width: 981px; }\",\".framer-4NfQ3 .framer-1kstkec { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-4NfQ3 .framer-f3lxff { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; left: 0px; min-height: 20px; overflow: visible; padding: 0px; position: absolute; text-decoration: none; top: 50%; width: 220px; z-index: 1; }\",\".framer-4NfQ3 .framer-18l3r0i { align-content: center; align-items: center; bottom: -676px; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; justify-content: center; left: -128px; overflow: visible; padding: 0px; position: absolute; right: -873px; top: -167px; z-index: 1; }\",\".framer-4NfQ3 .framer-16pcr5x-container { flex: 100 0 0px; height: calc(var(--framer-viewport-height, 100vh) * 0.835); mix-blend-mode: difference; position: relative; width: 1px; z-index: 1; }\",\".framer-4NfQ3 .framer-1qc98se-container { flex: none; height: auto; position: relative; width: 939px; z-index: 2; }\",\".framer-4NfQ3.framer-v-2bepge .framer-f3lxff { left: unset; min-height: 408px; position: relative; top: unset; }\",\".framer-4NfQ3.framer-v-gv2v2p .framer-16pcr5x-container { order: 0; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 48\n * @framerIntrinsicWidth 981\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"j0R2k6hlu\":{\"layout\":[\"fixed\",\"fixed\"]},\"v9thSKazV\":{\"layout\":[\"fixed\",\"fixed\"]},\"q4Rn8DyuA\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Frameroa8941imD=withCSS(Component,css,\"framer-4NfQ3\");export default Frameroa8941imD;Frameroa8941imD.displayName=\"Navigation\";Frameroa8941imD.defaultProps={height:48,width:981};addPropertyControls(Frameroa8941imD,{variant:{options:[\"mMrQtusR5\",\"j0R2k6hlu\",\"v9thSKazV\",\"q4Rn8DyuA\"],optionTitles:[\"Home\",\"Tablet\",\"Variant 4\",\"Variant 5\"],title:\"Variant\",type:ControlType.Enum}});const variationAxes=[{defaultValue:400,maxValue:900,minValue:300,name:\"Weight\",tag:\"wght\"}];addFonts(Frameroa8941imD,[{explicitInter:true,fonts:[{cssFamilyName:\"BDO Grotesk Variable\",source:\"builtIn\",style:\"normal\",uiFamilyName:\"BDO Grotesk\",url:\"https://framerusercontent.com/assets/FcybOZJ2ipUdK2dQmwN3gFVAvuk.woff2\",variationAxes,weight:\"1000\"}]},...ScrambleTumblerFonts,...Center_NavFonts],{supportsExplicitInterCodegen:true});Frameroa8941imD.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Center_Nav,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Frameroa8941imD\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"981\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"j0R2k6hlu\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"v9thSKazV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"q4Rn8DyuA\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"48\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useLocaleCode}from\"framer\";import{startTransition,useCallback,useEffect,useRef,useState}from\"react\";const fontStack=`\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;function formatTimeOrDate(outputType,{showYear,showMonth,showWeekday,showMinutes,showSeconds},timeFormat,monthFormat,localCode){const date=new Date;const onlyYearIsShown=!showWeekday&&!showMonth&&showYear;switch(outputType){case\"date\":return new Intl.DateTimeFormat(localCode,{weekday:showWeekday?\"long\":undefined,day:onlyYearIsShown?undefined:\"numeric\",month:showMonth?monthFormat:undefined,year:showYear?\"numeric\":undefined}).format(date);case\"time\":return new Intl.DateTimeFormat(localCode,{hour:\"numeric\",minute:showMinutes?\"numeric\":undefined,second:showSeconds&&showMinutes?\"numeric\":undefined,hour12:timeFormat===\"12h\"}).format(date);default:return new Intl.DateTimeFormat(localCode).format(date);}}const defaultProps={height:20,width:140,outputType:\"time\",color:\"#999\",timeFormat:\"24h\",showYear:true,showMonth:true,showWeekday:true,showMinutes:true,showSeconds:true,monthFormat:\"long\",alignment:\"center\"};/**\n * TIME AND DATE\n * FORKED FROM PROTOTYPING\n *\n * @framerIntrinsicWidth 140\n * @framerIntrinsicHeight 20\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export function Time(props){const mergedProps={...defaultProps,...props};const{outputType,timeFormat,showYear,showMonth,showWeekday,// showHours,\nshowMinutes,showSeconds,monthFormat,color,font,tabularFont}=mergedProps;const localCode=useLocaleCode();const getTextContent=useCallback(()=>formatTimeOrDate(outputType,{showYear,showMonth,showWeekday,// showHours,\n    showMinutes,showSeconds},timeFormat,monthFormat,localCode),[localCode,monthFormat,outputType,showMinutes,showMonth,showSeconds,showWeekday,showYear,timeFormat]);const timeoutRef=useRef()// FIXME: With React 19, we can remove this and return a cleanup from the ref callback\n;const updateCountdown=useCallback(node=>{if(node===null){// React calls w/ `null` on unmount or if the ref function changes.\nclearTimeout(timeoutRef.current);return;}let prev;const tick=()=>{const date=new Date;const next=new Date().setSeconds(date.getSeconds()+1,0)-+date;timeoutRef.current=setTimeout(tick,next);const textContent=getTextContent();if(prev!==textContent){node.textContent=textContent;prev=textContent;}};tick();},[getTextContent]);const[visible,setIsVisible]=useState(false);const isCanvas=RenderTarget.current()===RenderTarget.canvas;useEffect(()=>{startTransition(()=>setIsVisible(true));// Don’t want real time on Canvas\nif(isCanvas)return;},[isCanvas]);return /*#__PURE__*/_jsx(\"p\",{suppressHydrationWarning:true,style:{margin:0,padding:0,color,fontFamily:fontStack,fontWeight:500,fontSize:16,lineHeight:1,visibility:visible?\"visible\":\"hidden\",...font,fontVariantNumeric:tabularFont?\"tabular-nums\":\"normal\",whiteSpace:\"nowrap\"},ref:isCanvas?undefined:updateCountdown,children:getTextContent()});}Time.displayName=\"Time & Date\";addPropertyControls(Time,{outputType:{title:\"Type\",type:ControlType.Enum,displaySegmentedControl:true,options:[\"date\",\"time\"],optionTitles:[\"Date\",\"Time\"],defaultValue:defaultProps.outputType},showWeekday:{title:\"Day\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:defaultProps.showWeekday,hidden:props=>props.outputType!==\"date\"},showMonth:{title:\"Month\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:defaultProps.showMonth,hidden:props=>props.outputType!==\"date\"},monthFormat:{title:\"Format\",type:ControlType.Enum,options:[\"short\",\"long\",\"numeric\"],optionTitles:[\"Short\",\"Long\",\"Numeric\"],defaultValue:defaultProps.monthFormat,hidden:props=>props.outputType!==\"date\"||!props.showMonth},showYear:{title:\"Year\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:defaultProps.showYear,hidden:props=>props.outputType!==\"date\"},timeFormat:{title:\"Format\",type:ControlType.Enum,options:[\"12h\",\"24h\"],optionTitles:[\"12h\",\"24h\"],displaySegmentedControl:true,defaultValue:defaultProps.timeFormat,hidden:props=>props.outputType!==\"time\"},// showHours: {\n//     title: \"Hours\",\n//     type: ControlType.Boolean,\n//     enabledTitle: \"Show\",\n//     disabledTitle: \"Hide\",\n//     defaultValue: defaultProps.showHours,\n//     hidden: (props) => props.outputType !== \"time\",\n// },\nshowMinutes:{title:\"Minutes\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:defaultProps.showMinutes,hidden:props=>props.outputType!==\"time\"},showSeconds:{title:\"Seconds\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:defaultProps.showSeconds,hidden:props=>props.outputType!==\"time\"||!props.showMinutes},font:{type:ControlType.Font,controls:\"extended\"},tabularFont:{title:\"Tabular\",type:ControlType.Boolean,defaultValue:true},color:{type:ControlType.Color,defaultValue:defaultProps.color}});\nexport const __FramerMetadata__ = {\"exports\":{\"Time\":{\"type\":\"reactComponent\",\"name\":\"Time\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"20\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"140\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Time.map","// Generated by Framer (4a2adb5)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Link from\"https://framerusercontent.com/modules/kZbIUpIRvztQczSQUHdc/mgfupHcB5UbBMBWfmeDK/yzJSw3SAN.js\";const RichTextWithFX=withFX(RichText);const LinkFonts=getFonts(Link);const cycleOrder=[\"T28S0M2pv\",\"iJ1uZYjbm\"];const serializationHash=\"framer-z7Bvc\";const variantClassNames={iJ1uZYjbm:\"framer-v-17lv7pv\",T28S0M2pv:\"framer-v-akjzth\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const Ew0KFUASw=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const animation={filter:\"blur(0.3px)\",opacity:.2,rotate:0,rotateX:180,rotateY:0,scale:1,skewX:0,skewY:0,x:-20,y:20};const transition2={bounce:0,delay:.1,duration:1,type:\"spring\"};const textEffect={effect:animation,startDelay:1,tokenization:\"character\",transition:transition2,trigger:\"onMount\",type:\"appear\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};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:\"T28S0M2pv\",Tablet:\"iJ1uZYjbm\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,links,width,...props})=>{return{...props,Ew0KFUASw:links??props.Ew0KFUASw,variant:humanReadableVariantMap[props.variant]??props.variant??\"T28S0M2pv\"};};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,Ew0KFUASw,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"T28S0M2pv\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-akjzth\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"T28S0M2pv\",ref:refBinding,style:{...style},...addPropertyOverrides({iJ1uZYjbm:{\"data-framer-name\":\"Tablet\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-82xfol\",\"data-framer-name\":\"Connect\",layoutDependency:layoutDependency,layoutId:\"IjFuCkDIT\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ce3h0x\",\"data-framer-name\":\"More\",layoutDependency:layoutDependency,layoutId:\"TdLqMwx1o\",children:/*#__PURE__*/_jsx(RichTextWithFX,{__framer__styleTransformEffectEnabled:true,__framer__transformTargets:[{target:{opacity:.5,rotate:0,rotateX:0,rotateY:0,scale:.1,skewX:0,skewY:0,x:0,y:0}},{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0}}],__framer__transformTrigger:\"onScroll\",__fromCanvasComponent:true,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U291cmNlIENvZGUgUHJvLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Source Code Pro\", monospace',\"--framer-font-open-type-features\":\"'salt' on\",\"--framer-font-size\":\"13px\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(128, 128, 128))\"},children:\"CONTACT\"})}),className:\"framer-li7wig\",effect:textEffect,fonts:[\"GF;Source Code Pro-regular\"],layoutDependency:layoutDependency,layoutId:\"HMMcf0n5J\",style:{\"--extracted-r6o4lv\":\"rgb(128, 128, 128)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"center\",withExternalLayout:true,...addPropertyOverrides({iJ1uZYjbm:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7U291cmNlIENvZGUgUHJvLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Source Code Pro\", monospace',\"--framer-font-open-type-features\":\"'salt' on\",\"--framer-font-size\":\"13px\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(128, 128, 128))\"},children:\"CONTACT\"})}),verticalAlignment:\"bottom\"}},baseVariant,gestureVariant)})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ho3r36\",layoutDependency:layoutDependency,layoutId:\"JA0M8q0mT\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:28,y:(componentViewport?.y||0)+(0+((componentViewport?.height||200)-0-40)/2)+0+6,...addPropertyOverrides({iJ1uZYjbm:{height:40,y:(componentViewport?.y||0)+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-54vc0l-container\",\"data-framer-cursor\":Ew0KFUASw,layoutDependency:layoutDependency,layoutId:\"IrK2x_vO8-container\",nodeId:\"IrK2x_vO8\",rendersWithMotion:true,scopeId:\"TT5faAo3r\",children:/*#__PURE__*/_jsx(Link,{height:\"100%\",id:\"IrK2x_vO8\",layoutId:\"IrK2x_vO8\",M1FWFeBTO:\"Email\",QX2HS1G_9:20,variant:matchVariant(\"Xt8WY9Whg\"),width:\"100%\",ZQHdTNpJf:\"mailto:hello@tobys.design\",...addPropertyOverrides({iJ1uZYjbm:{style:{height:\"100%\"}}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:28,y:(componentViewport?.y||0)+(0+((componentViewport?.height||200)-0-40)/2)+0+6,...addPropertyOverrides({iJ1uZYjbm:{height:40,y:(componentViewport?.y||0)+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-w7sapf-container\",\"data-framer-cursor\":Ew0KFUASw,layoutDependency:layoutDependency,layoutId:\"NhdadGC3w-container\",nodeId:\"NhdadGC3w\",rendersWithMotion:true,scopeId:\"TT5faAo3r\",children:/*#__PURE__*/_jsx(Link,{height:\"100%\",id:\"NhdadGC3w\",layoutId:\"NhdadGC3w\",M1FWFeBTO:\"Phone\",QX2HS1G_9:20,variant:matchVariant(\"Xt8WY9Whg\"),width:\"100%\",ZQHdTNpJf:\"+tel:61404322297\",...addPropertyOverrides({iJ1uZYjbm:{style:{height:\"100%\"}}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:28,y:(componentViewport?.y||0)+(0+((componentViewport?.height||200)-0-40)/2)+0+6,...addPropertyOverrides({iJ1uZYjbm:{height:40,y:(componentViewport?.y||0)+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ufpmgp-container\",\"data-framer-cursor\":Ew0KFUASw,layoutDependency:layoutDependency,layoutId:\"h5g_CxNHi-container\",nodeId:\"h5g_CxNHi\",rendersWithMotion:true,scopeId:\"TT5faAo3r\",children:/*#__PURE__*/_jsx(Link,{height:\"100%\",id:\"h5g_CxNHi\",layoutId:\"h5g_CxNHi\",M1FWFeBTO:\"LinkedIn\",QX2HS1G_9:20,variant:matchVariant(\"Xt8WY9Whg\"),width:\"100%\",ZQHdTNpJf:\"https://www.linkedin.com/in/ybot/\",...addPropertyOverrides({iJ1uZYjbm:{style:{height:\"100%\"}}},baseVariant,gestureVariant)})})})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-z7Bvc.framer-9ft65o, .framer-z7Bvc .framer-9ft65o { display: block; }\",\".framer-z7Bvc.framer-akjzth { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-z7Bvc .framer-82xfol { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 12px; height: 40px; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 329px; }\",\".framer-z7Bvc .framer-1ce3h0x { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 100%; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-z7Bvc .framer-li7wig { flex: none; height: 100%; position: relative; white-space: pre; width: auto; }\",\".framer-z7Bvc .framer-1ho3r36 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 12px; height: 100%; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-z7Bvc .framer-54vc0l-container, .framer-z7Bvc .framer-w7sapf-container, .framer-z7Bvc .framer-ufpmgp-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-z7Bvc.framer-v-17lv7pv.framer-akjzth { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 24px; justify-content: flex-start; }\",\".framer-z7Bvc.framer-v-17lv7pv .framer-82xfol { gap: 24px; width: min-content; }\",\".framer-z7Bvc.framer-v-17lv7pv .framer-1ce3h0x { align-content: flex-end; align-items: flex-end; }\",\".framer-z7Bvc.framer-v-17lv7pv .framer-li7wig { height: 24px; }\",\".framer-z7Bvc.framer-v-17lv7pv .framer-54vc0l-container, .framer-z7Bvc.framer-v-17lv7pv .framer-w7sapf-container, .framer-z7Bvc.framer-v-17lv7pv .framer-ufpmgp-container { height: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 329\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"iJ1uZYjbm\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"Ew0KFUASw\":\"links\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerTT5faAo3r=withCSS(Component,css,\"framer-z7Bvc\");export default FramerTT5faAo3r;FramerTT5faAo3r.displayName=\"FootLink\";FramerTT5faAo3r.defaultProps={height:40,width:329};addPropertyControls(FramerTT5faAo3r,{variant:{options:[\"T28S0M2pv\",\"iJ1uZYjbm\"],optionTitles:[\"Desktop\",\"Tablet\"],title:\"Variant\",type:ControlType.Enum},Ew0KFUASw:{description:\"\",title:\"Links\",type:ControlType.CustomCursor}});addFonts(FramerTT5faAo3r,[{explicitInter:true,fonts:[{cssFamilyName:\"Source Code Pro\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Source Code Pro\",url:\"https://fonts.gstatic.com/s/sourcecodepro/v31/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQhMthTXUcdJg.woff2\",weight:\"400\"}]},...LinkFonts],{supportsExplicitInterCodegen:true});FramerTT5faAo3r.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Link,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerTT5faAo3r\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"40\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"329\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"iJ1uZYjbm\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"Ew0KFUASw\\\":\\\"links\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (4a2adb5)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Time as TimeDate}from\"https://framerusercontent.com/modules/HYcHVPAbe8jLEeU7c4mp/QiycTxX7vdblEOi3o00G/Time.js\";import FootLink from\"https://framerusercontent.com/modules/33qw490J27beDPXFUg7r/Qeuj8g7xm7iEfH6JswxD/TT5faAo3r.js\";const FootLinkFonts=getFonts(FootLink);const TimeDateFonts=getFonts(TimeDate);const cycleOrder=[\"qihqjyNUQ\",\"bxqdMWhcs\"];const serializationHash=\"framer-QfYDI\";const variantClassNames={bxqdMWhcs:\"framer-v-6bligq\",qihqjyNUQ:\"framer-v-10g6xxb\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};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:\"qihqjyNUQ\",Mobile:\"bxqdMWhcs\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"qihqjyNUQ\"};};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,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"qihqjyNUQ\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-10g6xxb\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"qihqjyNUQ\",ref:refBinding,style:{...style},...addPropertyOverrides({bxqdMWhcs:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1f32gju\",\"data-framer-name\":\"----FOOTER----\",layoutDependency:layoutDependency,layoutId:\"Uga6RP9s0\",style:{borderBottomLeftRadius:0,transformPerspective:1200},variants:{bxqdMWhcs:{borderBottomLeftRadius:48}},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:40,width:\"1200px\",...addPropertyOverrides({bxqdMWhcs:{width:\"1160px\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-b5v5gi-container\",layoutDependency:layoutDependency,layoutId:\"Azc_UcAh_-container\",nodeId:\"Azc_UcAh_\",rendersWithMotion:true,scopeId:\"UsRI__LJy\",children:/*#__PURE__*/_jsx(FootLink,{height:\"100%\",id:\"Azc_UcAh_\",layoutId:\"Azc_UcAh_\",style:{height:\"100%\",maxWidth:\"100%\"},variant:matchVariant(\"T28S0M2pv\"),width:\"100%\",...addPropertyOverrides({bxqdMWhcs:{style:{height:\"100%\",maxWidth:\"100%\",width:\"100%\"},variant:matchVariant(\"iJ1uZYjbm\")}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-10y7ut2\",layoutDependency:layoutDependency,layoutId:\"thBBst6ug\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ucfnu7\",layoutDependency:layoutDependency,layoutId:\"EbvnWRVdS\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1yZWd1bGFy\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-size\":\"10px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(128, 128, 128))\"},children:\"\\xa9\"})}),className:\"framer-1228imb\",\"data-framer-name\":\"\\xa9\",fonts:[\"FS;Satoshi-regular\"],layoutDependency:layoutDependency,layoutId:\"TVhLw6KgS\",style:{\"--extracted-r6o4lv\":\"rgb(128, 128, 128)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-d547n7-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"a5bsflkiO-container\",nodeId:\"a5bsflkiO\",rendersWithMotion:true,scopeId:\"UsRI__LJy\",children:/*#__PURE__*/_jsx(TimeDate,{color:\"rgb(128, 128, 128)\",font:{fontFamily:'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',fontSize:\"10px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"1em\"},height:\"100%\",id:\"a5bsflkiO\",layoutId:\"a5bsflkiO\",monthFormat:\"long\",outputType:\"date\",showMinutes:true,showMonth:false,showSeconds:false,showWeekday:false,showYear:true,tabularFont:false,timeFormat:\"12h\",width:\"100%\"})})})]}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1yZWd1bGFy\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-size\":\"10px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(128, 128, 128))\"},children:\"Toby Skyring\"})}),className:\"framer-rp4tl9\",\"data-framer-name\":\"TOBYS.design\",fonts:[\"FS;Satoshi-regular\"],layoutDependency:layoutDependency,layoutId:\"HfDZlFesS\",style:{\"--extracted-r6o4lv\":\"rgb(128, 128, 128)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"center\",withExternalLayout:true})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-QfYDI.framer-19yniy9, .framer-QfYDI .framer-19yniy9 { display: block; }\",\".framer-QfYDI.framer-10g6xxb { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: 40px; justify-content: flex-end; overflow: visible; padding: 36px 0px 0px 0px; position: relative; width: 1200px; }\",\".framer-QfYDI .framer-1f32gju { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: wrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px 115px 0px 115px; position: relative; transform-style: preserve-3d; width: 1200px; z-index: 1; }\",\".framer-QfYDI .framer-b5v5gi-container { flex: none; height: 40px; max-width: 1200px; position: relative; width: auto; z-index: 1; }\",\".framer-QfYDI .framer-10y7ut2 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: 40px; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: 198px; }\",\".framer-QfYDI .framer-1ucfnu7 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 3px; height: 29px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-QfYDI .framer-1228imb { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-QfYDI .framer-d547n7-container { flex: none; height: auto; position: relative; width: auto; z-index: 2; }\",\".framer-QfYDI .framer-rp4tl9 { flex: none; height: 29px; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-QfYDI.framer-v-6bligq.framer-10g6xxb { padding: 30px 10px 30px 10px; width: 480px; }\",\".framer-QfYDI.framer-v-6bligq .framer-1f32gju { align-content: flex-start; align-items: flex-start; gap: 0px; justify-content: flex-start; padding: 60px 20px 60px 20px; }\",\".framer-QfYDI.framer-v-6bligq .framer-b5v5gi-container { flex: 1 0 0px; order: 0; width: 1px; }\",\".framer-QfYDI.framer-v-6bligq .framer-10y7ut2 { justify-content: flex-start; order: 1; width: min-content; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"bxqdMWhcs\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerUsRI__LJy=withCSS(Component,css,\"framer-QfYDI\");export default FramerUsRI__LJy;FramerUsRI__LJy.displayName=\"--FOOT--\";FramerUsRI__LJy.defaultProps={height:40,width:1200};addPropertyControls(FramerUsRI__LJy,{variant:{options:[\"qihqjyNUQ\",\"bxqdMWhcs\"],optionTitles:[\"Desktop\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerUsRI__LJy,[{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\"}]},...FootLinkFonts,...TimeDateFonts],{supportsExplicitInterCodegen:true});FramerUsRI__LJy.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(FootLink,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerUsRI__LJy\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"bxqdMWhcs\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"40\",\"framerIntrinsicWidth\":\"1200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b6e2e7c)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,ControlType,cx,forwardLoader,GeneratedComponentContext,getFonts,PropertyOverrides,RenderTarget,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS,withFX,withOptimizedAppearEffect,withVariantAppearEffect}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Navigation from\"#framer/local/canvasComponent/oa8941imD/oa8941imD.js\";import FOOT from\"#framer/local/canvasComponent/UsRI__LJy/UsRI__LJy.js\";const NavigationFonts=getFonts(Navigation);const NavigationWithVariantAppearEffect=withVariantAppearEffect(Navigation);const ContainerWithOptimizedAppearEffect=withOptimizedAppearEffect(Container);const FOOTFonts=getFonts(FOOT);const ContainerWithFX=withFX(Container);const MotionDivWithOptimizedAppearEffect=withOptimizedAppearEffect(motion.div);const breakpoints={J_KHJ0ASU:\"(min-width: 1200px)\",XSDGgokPc:\"(max-width: 1199.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-T5J3E\";const variantClassNames={J_KHJ0ASU:\"framer-v-r7046d\",XSDGgokPc:\"framer-v-1tn7q3s\"};const ttIGU8hiX=undefined;const transition1={bounce:.5,delay:.1,duration:.6,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transformPerspective:1200,transition:transition1,x:0,y:0};const animation1={opacity:1,rotate:0,rotateX:-93,rotateY:0,scale:1,skewX:0,skewY:0,transformPerspective:1200,x:0,y:0};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const transition2={bounce:.2,delay:0,duration:3,type:\"spring\"};const animation2={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation3={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:50};const breakpointRules={XSDGgokPc:[\".framer-T5J3E .framer-obdxgs-container { left: calc(50.00000000000002% - 100% / 2); width: 100%; }\",\".framer-T5J3E .framer-1gsjzd3-container { height: 630px; }\",\".framer-T5J3E .framer-ifweyr { width: 100%; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={XSDGgokPc:\".framer-1tn7q3s-override\"};const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-T5J3E.framer-13ewnrp, .framer-T5J3E .framer-13ewnrp { display: block; }\",'.framer-T5J3E.framer-r7046d { --selection-background-color: var(--token-04ae2048-da19-472a-9faf-5fd06232e080, #d9d9d9) /* {\"name\":\"Headings\"} */; --selection-color: var(--token-7b3bf30e-65f7-4cb4-ba22-c3ecbe3743d5, #ff0077) /* {\"name\":\"Vivid\"} */; align-content: center; align-items: center; background-color: var(--token-0581d3a0-a21e-4efe-b918-9b7748922940, #2b2b2b); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }',\".framer-T5J3E .framer-obdxgs-container { flex: none; height: 48px; left: calc(50.00000000000002% - 981px / 2); order: -1000; position: var(--framer-canvas-fixed-position, fixed); top: 41px; transform-style: preserve-3d; width: 981px; will-change: var(--framer-will-change-effect-override, transform); z-index: 10; }\",\".framer-T5J3E .framer-15not8p { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-T5J3E .framer-1gsjzd3-container { flex: none; height: auto; order: 1002; position: relative; width: 100%; z-index: 1; }\",\".framer-T5J3E .framer-ifweyr { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; order: 1003; overflow: visible; padding: 0px; position: relative; width: 980px; }\",\".framer-T5J3E .framer-epib88 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; will-change: var(--framer-will-change-effect-override, transform); }\",\".framer-T5J3E .framer-1m9ayw1 { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px 0px 0px 2px; position: relative; width: 100%; }\",\".framer-T5J3E .framer-jcniqa { background-color: #23113d; flex: none; height: 4px; overflow: visible; position: relative; width: 1px; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }','.framer-T5J3E[data-selection=\"true\"] * ::selection, .framer-T5J3E [data-selection=\"true\"] * ::selection { color: var(--selection-color, none); background-color: var(--selection-background-color, none); }'];const mediaQueries={J_KHJ0ASU:\"(min-width: 1200px)\",XSDGgokPc:\"(max-width: 1199.98px)\"};const humanReadableVariantMap={Desktop:\"J_KHJ0ASU\",Tablet:\"XSDGgokPc\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,navchange,width,...props})=>{return{...props,ttIGU8hiX:navchange??props.ttIGU8hiX,variant:humanReadableVariantMap[props.variant]??props.variant??\"J_KHJ0ASU\"};};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,ttIGU8hiX,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"J_KHJ0ASU\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-0581d3a0-a21e-4efe-b918-9b7748922940, rgb(43, 43, 43)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-r7046d\",className),\"data-layout-template\":true,\"data-selection\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{XSDGgokPc:{width:\"100vw\"}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:48,width:\"981px\",y:40.5,children:/*#__PURE__*/_jsx(ContainerWithOptimizedAppearEffect,{animate:animation,className:\"framer-obdxgs-container\",\"data-framer-appear-id\":\"obdxgs\",initial:animation1,layoutScroll:true,nodeId:\"TzpkgxZfS\",optimized:true,rendersWithMotion:true,scopeId:\"Lg8c78aO9\",style:{originY:0,transformPerspective:1200},children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{XSDGgokPc:{variant:matchVariant(\"j0R2k6hlu\")}},children:/*#__PURE__*/_jsx(NavigationWithVariantAppearEffect,{__framer__animateOnce:false,__framer__targets:[{ref:ttIGU8hiX,target:\"jhQrqtjun\"}],__framer__threshold:0,__framer__variantAppearEffectEnabled:true,height:\"100%\",id:\"TzpkgxZfS\",layoutId:\"TzpkgxZfS\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"mMrQtusR5\"),width:\"100%\"})})})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-15not8p\"}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{XSDGgokPc:{height:630}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:40,width:\"100vw\",y:1e3,children:/*#__PURE__*/_jsx(ContainerWithFX,{__framer__spring:{damping:60,delay:0,duration:.3,ease:[.44,0,.56,1],mass:1,stagger:0,stiffness:500,type:\"spring\"},__framer__styleTransformEffectEnabled:true,__framer__transformTargets:[{target:{opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:40}},{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0}}],__framer__transformTrigger:\"onScroll\",__perspectiveFX:false,__targetOpacity:1,className:\"framer-1gsjzd3-container\",nodeId:\"A7Z4Cs2Pq\",rendersWithMotion:true,scopeId:\"Lg8c78aO9\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{XSDGgokPc:{style:{height:\"100%\",width:\"100%\"}}},children:/*#__PURE__*/_jsx(FOOT,{height:\"100%\",id:\"A7Z4Cs2Pq\",layoutId:\"A7Z4Cs2Pq\",style:{width:\"100%\"},variant:matchVariant(\"qihqjyNUQ\"),width:\"100%\"})})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-ifweyr\",\"data-framer-name\":\"Row\",children:/*#__PURE__*/_jsx(MotionDivWithOptimizedAppearEffect,{animate:animation2,className:\"framer-epib88\",\"data-framer-appear-id\":\"epib88\",initial:animation3,optimized:true,children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-1m9ayw1\",\"data-framer-name\":\"PL\",children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-jcniqa\"})})})})]}),/*#__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 800\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"XSDGgokPc\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"ttIGU8hiX\":\"navchange\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"J_KHJ0ASU\":[\".framer-obdxgs-container\",\".framer-1gsjzd3-container\",\".framer-ifweyr\"],\"XSDGgokPc\":[\".framer-obdxgs-container\",\".framer-1gsjzd3-container\",\".framer-ifweyr\"]}\n * @framerBreakpoints {\"J_KHJ0ASU\":{\"min\":1200,\"canvasClassName\":\"framer-r7046d-override\",\"minHeight\":800,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"XSDGgokPc\":{\"max\":1199,\"canvasClassName\":\"framer-1tn7q3s-override\",\"minHeight\":800,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16}}\n * @framerDefaultVariant J_KHJ0ASU\n * @framerLayoutTemplate true\n */const FramerLg8c78aO9=withCSS(Component,css,\"framer-T5J3E\");export default FramerLg8c78aO9;FramerLg8c78aO9.displayName=\"Home\";FramerLg8c78aO9.defaultProps={height:800,width:1200};addPropertyControls(FramerLg8c78aO9,{ttIGU8hiX:{title:\"navchange\",type:ControlType.ScrollSectionRef}});addFonts(FramerLg8c78aO9,[{explicitInter:true,fonts:[]},...NavigationFonts,...FOOTFonts],{supportsExplicitInterCodegen:true});FramerLg8c78aO9.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Navigation,{},context),forwardLoader(FOOT,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerLg8c78aO9\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerBreakpoints\":\"{\\\"J_KHJ0ASU\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-r7046d-override\\\",\\\"minHeight\\\":800,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"XSDGgokPc\\\":{\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-1tn7q3s-override\\\",\\\"minHeight\\\":800,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16}}\",\"framerLayoutTemplate\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"XSDGgokPc\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"800\",\"framerHitTargets\":\"{\\\"J_KHJ0ASU\\\":[\\\".framer-obdxgs-container\\\",\\\".framer-1gsjzd3-container\\\",\\\".framer-ifweyr\\\"],\\\"XSDGgokPc\\\":[\\\".framer-obdxgs-container\\\",\\\".framer-1gsjzd3-container\\\",\\\".framer-ifweyr\\\"]}\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"ttIGU8hiX\\\":\\\"navchange\\\"}\",\"framerIntrinsicWidth\":\"1200\",\"framerDefaultVariant\":\"J_KHJ0ASU\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport { ResolveLinks, useSiteRefs } from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport Home from \"https://framerusercontent.com/modules/Bk8a2Z4ESvmQtQCF0oyp/gT96T1xQCToWOVUzXG6i/Lg8c78aO9.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {aqzkacRQF: \"work3\", B0CnPidQH: \"222\", CBGvvZP50: \"projects-1\", CxM_e54JB: \"sidework\", Fh3CLHB7K: \"projtitle\", G_SI7Ayo1: \"trigWond\", hZYyo_H2p: \"ss\", iFoUxoqFn: \"sidetitle\", iTmfFSMiD: \"thanks\", JD5PPsXem: \"projects\", jkjfFjs5x: \"gogo\", PafCKP7vl: \"work1\", pIish5rPo: \"111\", QAI8v2fMM: \"trigPipe\", TmmgGkXpW: \"trigysk\", tv1bwQvSr: \"work2\", xlyOw5Q_X: \"balloontrig\", XqPBXhGId: \"333\", XvWNgeEGH: \"working\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/d4xWT7kF1VrtqX8weNIi/tW0MhQo1QzAdQnPaJVmB/augiA20Il.js\")), path: \"/\"}, ygkaIHCP7: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/R2c07ZM7uQy9nNHAZWAh/8P8dzL1dXJlGkJtGtWAY/ygkaIHCP7.js\")), path: \"/homenaway\"}, nun0I7r8v: {elements: {FFyKXBhQj: \"trigysk\", mFpzPNemm: \"projects\", N3PquA0yf: \"working\", Paz_VuCwh: \"projects-1\", uyF9FUFpN: \"ss\", Ve9Y7H2dO: \"trigPipe\", zuuaOIl7n: \"trigWond\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/NPdRQ9pkWXi2laHHOmag/2sOAiucvcG1mmDlk9BTe/nun0I7r8v.js\")), path: \"/homes\"}, FCRf6duyC: {elements: {gVXZTJlR1: \"footloose\", ovC5XkpuW: \"menu-trigger\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/bDitxJtaXWUiqYVS1JlC/vdobJShvjJuv2snwhHSj/FCRf6duyC.js\")), path: \"/about\"}, GVWfso1kU: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/5s2hNB0tX8a3s2sJxfHX/f2rndCJWF9LscnmtocJ5/GVWfso1kU.js\")), path: \"/404\"}, vhY8Su0H2: {elements: {bnM7f58HW: \"hero\", D3bL9dwis: \"context\", EbeDjOBCF: \"solu2\", fkeDVFbMp: \"discovery\", JWx_i85u4: \"solu2-1\", m2gJ7dirl: \"goals-1\", MSRaRYBIB: \"goals\", nSGCHYvOa: \"intro\", QBFZV6uxz: \"g1\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/x7L5eO0v7Wz6YjVHq2HL/nc4qkKcGNeEcnjlVPPkK/vhY8Su0H2.js\")), path: \"/work/pipeline-2\"}, jSCUILc2E: {elements: {c8YOLuYfZ: \"context\", ckvcuqYlK: \"solu2\", d1DGHMygR: \"solu2-12\", DFCPLJLAK: \"goals\", ghnv4E20J: \"goals-1\", Hjau5eqEi: \"solu2-2\", hZLIK7pyn: \"solu2-4\", JzjGmeyON: \"images\", KEi7tzApF: \"intro\", mCzkVEnIv: \"solu2-8\", p4Vx3VxJ4: \"solu2-7\", p9Get3DAV: \"solu2-9\", QREeDrmOI: \"hero\", rpY3jrHF5: \"solu2-6\", sdxiF7aTo: \"2\", t8y9OW3Tz: \"3\", tcOYTaoaY: \"solu2-3\", tn9T4uchj: \"solu2-5\", vbp5lD0Iv: \"solu2-13\", wivTMpVqR: \"solu2-1\", XwvgYU8BU: \"discovery\", Z1jQqBDeu: \"solu2-10\", z8PvYRTI1: \"solu2-11\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/jNa1UWbGxJOoIeI7wE4g/tAVTZlBrJZYnk1dlupmT/jSCUILc2E.js\")), path: \"/work/ysk\"}, T0F4P4SP3: {elements: {cDnKLSK5z: \"solu2-1\", jjLPSk4BK: \"solu2\", VlUWsudKl: \"hero\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/2smCi7Zw9IxiYffrUnO9/f2wEIfjat2YkPdA6eSLh/T0F4P4SP3.js\")), path: \"/work/westpactwonder\"}, gF221M8yu: {elements: {hRRaLV6ls: \"work\", ioYbZNpSt: \"trigy1\", RKp3uXnhd: \"trigger2\", ynfzFIOnE: \"menu-trigger\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/u6JGXPCHYMu49mtTHv10/WQJSOLfDrITXScdfKidB/gF221M8yu.js\")), path: \"/work/pipeline-2/shaping\"}, B0uxd6NqR: {elements: {Jg7mnHQgI: \"menu-trigger\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ouZDZHtMAggUwb4u4WgK/OFBxxCqfwHFKn5bRYmS0/B0uxd6NqR.js\")), path: \"/work/pipeline-2/delivery\"}, PCeclxI0Y: {elements: {btMsUBVty: \"menu-trigger\", hXIzmG8mB: \"1\", JOgB15doZ: \"1-1\", PircvQDeP: \"1-2\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/0YrIK5b9oy7PBWWZHwKy/gMdNaUE9qWU15f4jPSTD/PCeclxI0Y.js\")), path: \"/work/pipeline-2/discovery\"}, YujJd7vHO: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/YzXqqzrM0MvWNN2paq98/LdBfGnRZFIZYysTPoY0j/YujJd7vHO.js\")), path: \"/gfx/doppler\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {}\r\n\t\tconst framerSiteId = \"690ef957d2ec5a49256bb4eeb39c1169cc0a6d3a114fe296b4ba364b0b1a4e58\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const props1 = {ttIGU8hiX: {href: {hash: \":jkjfFjs5x\", webPageId: \"augiA20Il\"}, refKey: true}}\r\nconst props2 = {...props1, ttIGU8hiX: {href: {hash: \":xhbQ31zeP\", webPageId: \"S2PEMtvj9\"}, refKey: true}}\r\nconst props3 = {...props1, ttIGU8hiX: undefined}\r\nconst siteRef = useSiteRefs()\r\nconst templateProps = {augiA20Il: props1, B0uxd6NqR: props3, FCRf6duyC: props3, gF221M8yu: props3, GVWfso1kU: props3, iBUE4k16r: props3, iIIFLOzCR: props3, jSCUILc2E: props3, PCeclxI0Y: props3, S2PEMtvj9: props2, T0F4P4SP3: props3, TltfVGIRh: props3, vhY8Su0H2: props3, VOd_hxs8g: props3, YtFybAlYx: props3, YujJd7vHO: props3}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"S2PEMtvj9\":\r\ncase \"FCRf6duyC\":\r\ncase \"GVWfso1kU\":\r\ncase \"iBUE4k16r\":\r\ncase \"TltfVGIRh\":\r\ncase \"iIIFLOzCR\":\r\ncase \"vhY8Su0H2\":\r\ncase \"jSCUILc2E\":\r\ncase \"T0F4P4SP3\":\r\ncase \"gF221M8yu\":\r\ncase \"B0uxd6NqR\":\r\ncase \"PCeclxI0Y\":\r\ncase \"VOd_hxs8g\":\r\ncase \"YujJd7vHO\":\r\ncase \"YtFybAlYx\":\r\nreturn React.createElement(ResolveLinks, {links: [props[\"ttIGU8hiX\"]]}, (resolvedLinks) => React.createElement(Home, {...props, key: \"Home\", style, ttIGU8hiX: siteRef(resolvedLinks[0])}, children(true)));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"S2PEMtvj9\":\r\ncase \"FCRf6duyC\":\r\ncase \"GVWfso1kU\":\r\ncase \"iBUE4k16r\":\r\ncase \"TltfVGIRh\":\r\ncase \"iIIFLOzCR\":\r\ncase \"vhY8Su0H2\":\r\ncase \"jSCUILc2E\":\r\ncase \"T0F4P4SP3\":\r\ncase \"gF221M8yu\":\r\ncase \"B0uxd6NqR\":\r\ncase \"PCeclxI0Y\":\r\ncase \"VOd_hxs8g\":\r\ncase \"YujJd7vHO\":\r\ncase \"YtFybAlYx\":\r\nreturn [{hash: \"r7046d\", mediaQuery: \"(min-width: 1200px)\"}, {hash: \"1tn7q3s\", mediaQuery: \"(max-width: 1199.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\texport async function getPageRoot({ routeId, pathVariables, localeId, collectionItemId }) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\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\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/5s2hNB0tX8a3s2sJxfHX/f2rndCJWF9LscnmtocJ5/GVWfso1kU.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: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://tobys.design\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: false,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/Wu0xqFOlLfNkY27VZhAL/d3dO62FVn7r3rGcqmHqd/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithFeaturesContext = React.createElement(\r\n\t\t\t\tFramer.LibraryFeaturesProvider,\r\n\t\t\t\t{\r\n\t\t\t\t\tchildren: content,\r\n\t\t\t\t\tvalue: {autobahnNavigation: true, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, synchronousNavigationOnDesktop: false, yieldOnTap: false}\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: contentWithFeaturesContext\r\n\t\t\t})\r\n\r\n\t\t\tconst effect = {enter: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.4, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"100%\", y: \"0px\"}, exit: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.4, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"-100%\", y: \"0px\"}}\r\nconst effect1 = {enter: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.4, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"-100%\", y: \"0px\"}, exit: {opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.4, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"100%\", y: \"0px\"}}\r\nconst effect2 = {enter: {opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.2, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"0px\"}, exit: {opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.2, duration: 0.2, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"0px\"}}\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {global: {enter: {mask: {angle: 270, type: \"wipe\", width: \"0%\"}, opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0.6, duration: 0.6, ease: [0.73, 0, 0.33, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"30%\"}, exit: {mask: {angle: 270, type: \"wipe\", width: \"0%\"}, opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.7, ease: [0.73, 0, 0.33, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"-30%\"}}, routes: {B0uxd6NqR: {augiA20Il: effect2}, FCRf6duyC: {augiA20Il: effect}, jSCUILc2E: {augiA20Il: effect1}, vhY8Su0H2: {augiA20Il: effect1}}}\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\r\n\t\tif (isBrowser) {\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\t// Fallback support for stack gaps\r\n\t\t\tFramer.installFlexboxGapWorkaroundIfNeeded()\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, pathVariables, 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\tpathVariables = routeData.pathVariables\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 serverRouteExperimentEnabled = true\r\n\t\t\t\t\tconst serverRoute = serverRouteExperimentEnabled && 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\tpathVariables,\r\n\t\t\t\t\tcollectionItemId: routeData?.collectionItemId,\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\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\t  const utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\t  const [slug] = Object.values(pathVariables)\r\n\t\t\t  if (utils && typeof slug === \"string\") {\r\n\t\t\t\t  collectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t  }\r\n\t\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: framerSiteId ?? null,\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\tif (true) Framer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}