{"version":3,"file":"script_main.L-sP3mFy.mjs","names":["x","d","debounce","className","useRef","_Fragment","Children","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","useState","index","addPropertyOverrides","enabledGestures","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","addPropertyOverrides","Logo","NavLink","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","getProps","className","addPropertyOverrides","ArrowRight","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts","ButtonCursorFonts","ButtonCursor","HeaderFonts","Header","serializationHash","variantClassNames","transition1","matchVariant","React.useContext","React.useMemo","humanReadableVariantMap","React.Fragment","getProps","cursor","useRef","React.useId","className","Header","Lenis","Footer","DotCursor","ButtonCursor","Component","useRef","React.useId","PropertyOverrides","className","React.createElement","Template1","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.LibraryFeaturesProvider","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","breakpoints","Framer.patchRoutesForABTesting","routeData","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder","React.Suspense","React.lazy"],"sources":["https:/unpkg.com/lenis@1.3.19/dist/lenis.mjs","https:/unpkg.com/lenis@1.3.19/dist/lenis-snap.mjs","https:/framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/qosszBZXoEqfEMp4XhZk/Lenis.js","https:/framerusercontent.com/modules/DahA4BQpNn46cKCvopKx/r3tOPSGvVfOOJrXT5g1i/ar6L8acwZ.js","https:/framerusercontent.com/modules/nCHxtXz6uqq1WVU5GP8Z/EQnJn75w9rD6j2U8enWU/SVG_Icon.js","https:/framerusercontent.com/modules/PA1taXoEIPf9adrMLlXK/aUuyJYuc5TFdmKewWSLY/peH6B6WGd.js","https:/framerusercontent.com/modules/7PASp35dB7jsy7KHZTvN/sLlD2QLbzaE0iMZ6Owlb/QdP_ZpeoO.js","https:/framerusercontent.com/modules/qWXc86Mgrtt3h78sDulX/E7xZCIcnCQShwN5vHgtO/KWJFL9E3H.js","https:/framerusercontent.com/modules/ZnPvt3p8tRHPv2g55vMm/N1fNa2LSWvMX3s3cAhgL/wMlbZgCyp.js","https:/framerusercontent.com/modules/sagOi2Md0vb9dKi6HXOW/Nrce1FpGUZ7NkH62txux/QAIAuI3Ju.js","https:/framerusercontent.com/modules/SFpQFWTjMvOdKiLXENdK/YUWgIBclfpqmFl00gTKQ/d0yqL45Kj.js","framer:toplevel/main"],"sourcesContent":["// package.json\nvar version = \"1.3.19\";\n\n// packages/core/src/maths.ts\nfunction clamp(min, input, max) {\n  return Math.max(min, Math.min(input, max));\n}\nfunction lerp(x, y, t) {\n  return (1 - t) * x + t * y;\n}\nfunction damp(x, y, lambda, deltaTime) {\n  return lerp(x, y, 1 - Math.exp(-lambda * deltaTime));\n}\nfunction modulo(n, d) {\n  return (n % d + d) % d;\n}\n\n// packages/core/src/animate.ts\nvar Animate = class {\n  isRunning = false;\n  value = 0;\n  from = 0;\n  to = 0;\n  currentTime = 0;\n  // These are instanciated in the fromTo method\n  lerp;\n  duration;\n  easing;\n  onUpdate;\n  /**\n   * Advance the animation by the given delta time\n   *\n   * @param deltaTime - The time in seconds to advance the animation\n   */\n  advance(deltaTime) {\n    if (!this.isRunning) return;\n    let completed = false;\n    if (this.duration && this.easing) {\n      this.currentTime += deltaTime;\n      const linearProgress = clamp(0, this.currentTime / this.duration, 1);\n      completed = linearProgress >= 1;\n      const easedProgress = completed ? 1 : this.easing(linearProgress);\n      this.value = this.from + (this.to - this.from) * easedProgress;\n    } else if (this.lerp) {\n      this.value = damp(this.value, this.to, this.lerp * 60, deltaTime);\n      if (Math.round(this.value) === this.to) {\n        this.value = this.to;\n        completed = true;\n      }\n    } else {\n      this.value = this.to;\n      completed = true;\n    }\n    if (completed) {\n      this.stop();\n    }\n    this.onUpdate?.(this.value, completed);\n  }\n  /** Stop the animation */\n  stop() {\n    this.isRunning = false;\n  }\n  /**\n   * Set up the animation from a starting value to an ending value\n   * with optional parameters for lerping, duration, easing, and onUpdate callback\n   *\n   * @param from - The starting value\n   * @param to - The ending value\n   * @param options - Options for the animation\n   */\n  fromTo(from, to, { lerp: lerp2, duration, easing, onStart, onUpdate }) {\n    this.from = this.value = from;\n    this.to = to;\n    this.lerp = lerp2;\n    this.duration = duration;\n    this.easing = easing;\n    this.currentTime = 0;\n    this.isRunning = true;\n    onStart?.();\n    this.onUpdate = onUpdate;\n  }\n};\n\n// packages/core/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(this, args);\n    }, delay);\n  };\n}\n\n// packages/core/src/dimensions.ts\nvar Dimensions = class {\n  constructor(wrapper, content, { autoResize = true, debounce: debounceValue = 250 } = {}) {\n    this.wrapper = wrapper;\n    this.content = content;\n    if (autoResize) {\n      this.debouncedResize = debounce(this.resize, debounceValue);\n      if (this.wrapper instanceof Window) {\n        window.addEventListener(\"resize\", this.debouncedResize);\n      } else {\n        this.wrapperResizeObserver = new ResizeObserver(this.debouncedResize);\n        this.wrapperResizeObserver.observe(this.wrapper);\n      }\n      this.contentResizeObserver = new ResizeObserver(this.debouncedResize);\n      this.contentResizeObserver.observe(this.content);\n    }\n    this.resize();\n  }\n  width = 0;\n  height = 0;\n  scrollHeight = 0;\n  scrollWidth = 0;\n  // These are instanciated in the constructor as they need information from the options\n  debouncedResize;\n  wrapperResizeObserver;\n  contentResizeObserver;\n  destroy() {\n    this.wrapperResizeObserver?.disconnect();\n    this.contentResizeObserver?.disconnect();\n    if (this.wrapper === window && this.debouncedResize) {\n      window.removeEventListener(\"resize\", this.debouncedResize);\n    }\n  }\n  resize = () => {\n    this.onWrapperResize();\n    this.onContentResize();\n  };\n  onWrapperResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.width = window.innerWidth;\n      this.height = window.innerHeight;\n    } else {\n      this.width = this.wrapper.clientWidth;\n      this.height = this.wrapper.clientHeight;\n    }\n  };\n  onContentResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.scrollHeight = this.content.scrollHeight;\n      this.scrollWidth = this.content.scrollWidth;\n    } else {\n      this.scrollHeight = this.wrapper.scrollHeight;\n      this.scrollWidth = this.wrapper.scrollWidth;\n    }\n  };\n  get limit() {\n    return {\n      x: this.scrollWidth - this.width,\n      y: this.scrollHeight - this.height\n    };\n  }\n};\n\n// packages/core/src/emitter.ts\nvar Emitter = class {\n  events = {};\n  /**\n   * Emit an event with the given data\n   * @param event Event name\n   * @param args Data to pass to the event handlers\n   */\n  emit(event, ...args) {\n    const callbacks = this.events[event] || [];\n    for (let i = 0, length = callbacks.length; i < length; i++) {\n      callbacks[i]?.(...args);\n    }\n  }\n  /**\n   * Add a callback to the event\n   * @param event Event name\n   * @param cb Callback function\n   * @returns Unsubscribe function\n   */\n  on(event, cb) {\n    if (this.events[event]) {\n      this.events[event].push(cb);\n    } else {\n      this.events[event] = [cb];\n    }\n    return () => {\n      this.events[event] = this.events[event]?.filter((i) => cb !== i);\n    };\n  }\n  /**\n   * Remove a callback from the event\n   * @param event Event name\n   * @param callback Callback function\n   */\n  off(event, callback) {\n    this.events[event] = this.events[event]?.filter((i) => callback !== i);\n  }\n  /**\n   * Remove all event listeners and clean up\n   */\n  destroy() {\n    this.events = {};\n  }\n};\n\n// packages/core/src/virtual-scroll.ts\nvar LINE_HEIGHT = 100 / 6;\nvar listenerOptions = { passive: false };\nfunction getDeltaMultiplier(deltaMode, size) {\n  if (deltaMode === 1) return LINE_HEIGHT;\n  if (deltaMode === 2) return size;\n  return 1;\n}\nvar VirtualScroll = class {\n  constructor(element, options = { wheelMultiplier: 1, touchMultiplier: 1 }) {\n    this.element = element;\n    this.options = options;\n    window.addEventListener(\"resize\", this.onWindowResize);\n    this.onWindowResize();\n    this.element.addEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.addEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.addEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.addEventListener(\"touchend\", this.onTouchEnd, listenerOptions);\n  }\n  touchStart = {\n    x: 0,\n    y: 0\n  };\n  lastDelta = {\n    x: 0,\n    y: 0\n  };\n  window = {\n    width: 0,\n    height: 0\n  };\n  emitter = new Emitter();\n  /**\n   * Add an event listener for the given event and callback\n   *\n   * @param event Event name\n   * @param callback Callback function\n   */\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  /** Remove all event listeners and clean up */\n  destroy() {\n    this.emitter.destroy();\n    window.removeEventListener(\"resize\", this.onWindowResize);\n    this.element.removeEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.removeEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchend\",\n      this.onTouchEnd,\n      listenerOptions\n    );\n  }\n  /**\n   * Event handler for 'touchstart' event\n   *\n   * @param event Touch event\n   */\n  onTouchStart = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: 0,\n      y: 0\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX: 0,\n      deltaY: 0,\n      event\n    });\n  };\n  /** Event handler for 'touchmove' event */\n  onTouchMove = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    const deltaX = -(clientX - this.touchStart.x) * this.options.touchMultiplier;\n    const deltaY = -(clientY - this.touchStart.y) * this.options.touchMultiplier;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: deltaX,\n      y: deltaY\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX,\n      deltaY,\n      event\n    });\n  };\n  onTouchEnd = (event) => {\n    this.emitter.emit(\"scroll\", {\n      deltaX: this.lastDelta.x,\n      deltaY: this.lastDelta.y,\n      event\n    });\n  };\n  /** Event handler for 'wheel' event */\n  onWheel = (event) => {\n    let { deltaX, deltaY, deltaMode } = event;\n    const multiplierX = getDeltaMultiplier(deltaMode, this.window.width);\n    const multiplierY = getDeltaMultiplier(deltaMode, this.window.height);\n    deltaX *= multiplierX;\n    deltaY *= multiplierY;\n    deltaX *= this.options.wheelMultiplier;\n    deltaY *= this.options.wheelMultiplier;\n    this.emitter.emit(\"scroll\", { deltaX, deltaY, event });\n  };\n  onWindowResize = () => {\n    this.window = {\n      width: window.innerWidth,\n      height: window.innerHeight\n    };\n  };\n};\n\n// packages/core/src/lenis.ts\nvar defaultEasing = (t) => Math.min(1, 1.001 - 2 ** (-10 * t));\nvar Lenis = class {\n  _isScrolling = false;\n  // true when scroll is animating\n  _isStopped = false;\n  // true if user should not be able to scroll - enable/disable programmatically\n  _isLocked = false;\n  // same as isStopped but enabled/disabled when scroll reaches target\n  _preventNextNativeScrollEvent = false;\n  _resetVelocityTimeout = null;\n  _rafId = null;\n  /**\n   * Whether or not the user is touching the screen\n   */\n  isTouching;\n  /**\n   * The time in ms since the lenis instance was created\n   */\n  time = 0;\n  /**\n   * User data that will be forwarded through the scroll event\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   userData: {\n   *     foo: 'bar'\n   *   }\n   * })\n   */\n  userData = {};\n  /**\n   * The last velocity of the scroll\n   */\n  lastVelocity = 0;\n  /**\n   * The current velocity of the scroll\n   */\n  velocity = 0;\n  /**\n   * The direction of the scroll\n   */\n  direction = 0;\n  /**\n   * The options passed to the lenis instance\n   */\n  options;\n  /**\n   * The target scroll value\n   */\n  targetScroll;\n  /**\n   * The animated scroll value\n   */\n  animatedScroll;\n  // These are instanciated here as they don't need information from the options\n  animate = new Animate();\n  emitter = new Emitter();\n  // These are instanciated in the constructor as they need information from the options\n  dimensions;\n  // This is not private because it's used in the Snap class\n  virtualScroll;\n  constructor({\n    wrapper = window,\n    content = document.documentElement,\n    eventsTarget = wrapper,\n    smoothWheel = true,\n    syncTouch = false,\n    syncTouchLerp = 0.075,\n    touchInertiaExponent = 1.7,\n    duration,\n    // in seconds\n    easing,\n    lerp: lerp2 = 0.1,\n    infinite = false,\n    orientation = \"vertical\",\n    // vertical, horizontal\n    gestureOrientation = orientation === \"horizontal\" ? \"both\" : \"vertical\",\n    // vertical, horizontal, both\n    touchMultiplier = 1,\n    wheelMultiplier = 1,\n    autoResize = true,\n    prevent,\n    virtualScroll,\n    overscroll = true,\n    autoRaf = false,\n    anchors = false,\n    autoToggle = false,\n    // https://caniuse.com/?search=transition-behavior\n    allowNestedScroll = false,\n    __experimental__naiveDimensions = false,\n    naiveDimensions = __experimental__naiveDimensions,\n    stopInertiaOnNavigate = false\n  } = {}) {\n    window.lenisVersion = version;\n    if (!window.lenis) {\n      window.lenis = {};\n    }\n    window.lenis.version = version;\n    if (orientation === \"horizontal\") {\n      window.lenis.horizontal = true;\n    }\n    if (syncTouch === true) {\n      window.lenis.touch = true;\n    }\n    if (!wrapper || wrapper === document.documentElement) {\n      wrapper = window;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.options = {\n      wrapper,\n      content,\n      eventsTarget,\n      smoothWheel,\n      syncTouch,\n      syncTouchLerp,\n      touchInertiaExponent,\n      duration,\n      easing,\n      lerp: lerp2,\n      infinite,\n      gestureOrientation,\n      orientation,\n      touchMultiplier,\n      wheelMultiplier,\n      autoResize,\n      prevent,\n      virtualScroll,\n      overscroll,\n      autoRaf,\n      anchors,\n      autoToggle,\n      allowNestedScroll,\n      naiveDimensions,\n      stopInertiaOnNavigate\n    };\n    this.dimensions = new Dimensions(wrapper, content, { autoResize });\n    this.updateClassName();\n    this.targetScroll = this.animatedScroll = this.actualScroll;\n    this.options.wrapper.addEventListener(\"scroll\", this.onNativeScroll);\n    this.options.wrapper.addEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    if (this.options.anchors || this.options.stopInertiaOnNavigate) {\n      this.options.wrapper.addEventListener(\n        \"click\",\n        this.onClick\n      );\n    }\n    this.options.wrapper.addEventListener(\n      \"pointerdown\",\n      this.onPointerDown\n    );\n    this.virtualScroll = new VirtualScroll(eventsTarget, {\n      touchMultiplier,\n      wheelMultiplier\n    });\n    this.virtualScroll.on(\"scroll\", this.onVirtualScroll);\n    if (this.options.autoToggle) {\n      this.checkOverflow();\n      this.rootElement.addEventListener(\"transitionend\", this.onTransitionEnd);\n    }\n    if (this.options.autoRaf) {\n      this._rafId = requestAnimationFrame(this.raf);\n    }\n  }\n  /**\n   * Destroy the lenis instance, remove all event listeners and clean up the class name\n   */\n  destroy() {\n    this.emitter.destroy();\n    this.options.wrapper.removeEventListener(\"scroll\", this.onNativeScroll);\n    this.options.wrapper.removeEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    this.options.wrapper.removeEventListener(\n      \"pointerdown\",\n      this.onPointerDown\n    );\n    if (this.options.anchors || this.options.stopInertiaOnNavigate) {\n      this.options.wrapper.removeEventListener(\n        \"click\",\n        this.onClick\n      );\n    }\n    this.virtualScroll.destroy();\n    this.dimensions.destroy();\n    this.cleanUpClassName();\n    if (this._rafId) {\n      cancelAnimationFrame(this._rafId);\n    }\n  }\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  off(event, callback) {\n    return this.emitter.off(event, callback);\n  }\n  onScrollEnd = (e) => {\n    if (!(e instanceof CustomEvent)) {\n      if (this.isScrolling === \"smooth\" || this.isScrolling === false) {\n        e.stopPropagation();\n      }\n    }\n  };\n  dispatchScrollendEvent = () => {\n    this.options.wrapper.dispatchEvent(\n      new CustomEvent(\"scrollend\", {\n        bubbles: this.options.wrapper === window,\n        // cancelable: false,\n        detail: {\n          lenisScrollEnd: true\n        }\n      })\n    );\n  };\n  get overflow() {\n    const property = this.isHorizontal ? \"overflow-x\" : \"overflow-y\";\n    return getComputedStyle(this.rootElement)[property];\n  }\n  checkOverflow() {\n    if ([\"hidden\", \"clip\"].includes(this.overflow)) {\n      this.internalStop();\n    } else {\n      this.internalStart();\n    }\n  }\n  onTransitionEnd = (event) => {\n    if (event.propertyName.includes(\"overflow\")) {\n      this.checkOverflow();\n    }\n  };\n  setScroll(scroll) {\n    if (this.isHorizontal) {\n      this.options.wrapper.scrollTo({ left: scroll, behavior: \"instant\" });\n    } else {\n      this.options.wrapper.scrollTo({ top: scroll, behavior: \"instant\" });\n    }\n  }\n  onClick = (event) => {\n    const path = event.composedPath();\n    const linkElements = path.filter(\n      (node) => node instanceof HTMLAnchorElement && node.href\n    );\n    const linkElementsUrls = linkElements.map(\n      (element) => new URL(element.href)\n    );\n    const currentUrl = new URL(window.location.href);\n    if (this.options.anchors) {\n      const anchorElementUrl = linkElementsUrls.find(\n        (targetUrl) => currentUrl.host === targetUrl.host && currentUrl.pathname === targetUrl.pathname && targetUrl.hash\n      );\n      if (anchorElementUrl) {\n        const options = typeof this.options.anchors === \"object\" && this.options.anchors ? this.options.anchors : void 0;\n        const target = `#${anchorElementUrl.hash.split(\"#\")[1]}`;\n        this.scrollTo(target, options);\n        return;\n      }\n    }\n    if (this.options.stopInertiaOnNavigate) {\n      const hasPageLinkElementUrl = linkElementsUrls.some(\n        (targetUrl) => currentUrl.host === targetUrl.host && currentUrl.pathname !== targetUrl.pathname\n      );\n      if (hasPageLinkElementUrl) {\n        this.reset();\n        return;\n      }\n    }\n  };\n  onPointerDown = (event) => {\n    if (event.button === 1) {\n      this.reset();\n    }\n  };\n  onVirtualScroll = (data) => {\n    if (typeof this.options.virtualScroll === \"function\" && this.options.virtualScroll(data) === false)\n      return;\n    const { deltaX, deltaY, event } = data;\n    this.emitter.emit(\"virtual-scroll\", { deltaX, deltaY, event });\n    if (event.ctrlKey) return;\n    if (event.lenisStopPropagation) return;\n    const isTouch = event.type.includes(\"touch\");\n    const isWheel = event.type.includes(\"wheel\");\n    this.isTouching = event.type === \"touchstart\" || event.type === \"touchmove\";\n    const isClickOrTap = deltaX === 0 && deltaY === 0;\n    const isTapToStop = this.options.syncTouch && isTouch && event.type === \"touchstart\" && isClickOrTap && !this.isStopped && !this.isLocked;\n    if (isTapToStop) {\n      this.reset();\n      return;\n    }\n    const isUnknownGesture = this.options.gestureOrientation === \"vertical\" && deltaY === 0 || this.options.gestureOrientation === \"horizontal\" && deltaX === 0;\n    if (isClickOrTap || isUnknownGesture) {\n      return;\n    }\n    let composedPath = event.composedPath();\n    composedPath = composedPath.slice(0, composedPath.indexOf(this.rootElement));\n    const prevent = this.options.prevent;\n    const gestureOrientation = Math.abs(deltaX) >= Math.abs(deltaY) ? \"horizontal\" : \"vertical\";\n    if (composedPath.find(\n      (node) => node instanceof HTMLElement && (typeof prevent === \"function\" && prevent?.(node) || node.hasAttribute?.(\"data-lenis-prevent\") || gestureOrientation === \"vertical\" && node.hasAttribute?.(\"data-lenis-prevent-vertical\") || gestureOrientation === \"horizontal\" && node.hasAttribute?.(\"data-lenis-prevent-horizontal\") || isTouch && node.hasAttribute?.(\"data-lenis-prevent-touch\") || isWheel && node.hasAttribute?.(\"data-lenis-prevent-wheel\") || this.options.allowNestedScroll && this.hasNestedScroll(node, {\n        deltaX,\n        deltaY\n      }))\n    ))\n      return;\n    if (this.isStopped || this.isLocked) {\n      if (event.cancelable) {\n        event.preventDefault();\n      }\n      return;\n    }\n    const isSmooth = this.options.syncTouch && isTouch || this.options.smoothWheel && isWheel;\n    if (!isSmooth) {\n      this.isScrolling = \"native\";\n      this.animate.stop();\n      event.lenisStopPropagation = true;\n      return;\n    }\n    let delta = deltaY;\n    if (this.options.gestureOrientation === \"both\") {\n      delta = Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX;\n    } else if (this.options.gestureOrientation === \"horizontal\") {\n      delta = deltaX;\n    }\n    if (!this.options.overscroll || this.options.infinite || this.options.wrapper !== window && this.limit > 0 && (this.animatedScroll > 0 && this.animatedScroll < this.limit || this.animatedScroll === 0 && deltaY > 0 || this.animatedScroll === this.limit && deltaY < 0)) {\n      event.lenisStopPropagation = true;\n    }\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    const isSyncTouch = isTouch && this.options.syncTouch;\n    const isTouchEnd = isTouch && event.type === \"touchend\";\n    const hasTouchInertia = isTouchEnd;\n    if (hasTouchInertia) {\n      delta = Math.sign(this.velocity) * Math.abs(this.velocity) ** this.options.touchInertiaExponent;\n    }\n    this.scrollTo(this.targetScroll + delta, {\n      programmatic: false,\n      ...isSyncTouch ? {\n        lerp: hasTouchInertia ? this.options.syncTouchLerp : 1\n      } : {\n        lerp: this.options.lerp,\n        duration: this.options.duration,\n        easing: this.options.easing\n      }\n    });\n  };\n  /**\n   * Force lenis to recalculate the dimensions\n   */\n  resize() {\n    this.dimensions.resize();\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.emit();\n  }\n  emit() {\n    this.emitter.emit(\"scroll\", this);\n  }\n  onNativeScroll = () => {\n    if (this._resetVelocityTimeout !== null) {\n      clearTimeout(this._resetVelocityTimeout);\n      this._resetVelocityTimeout = null;\n    }\n    if (this._preventNextNativeScrollEvent) {\n      this._preventNextNativeScrollEvent = false;\n      return;\n    }\n    if (this.isScrolling === false || this.isScrolling === \"native\") {\n      const lastScroll = this.animatedScroll;\n      this.animatedScroll = this.targetScroll = this.actualScroll;\n      this.lastVelocity = this.velocity;\n      this.velocity = this.animatedScroll - lastScroll;\n      this.direction = Math.sign(\n        this.animatedScroll - lastScroll\n      );\n      if (!this.isStopped) {\n        this.isScrolling = \"native\";\n      }\n      this.emit();\n      if (this.velocity !== 0) {\n        this._resetVelocityTimeout = setTimeout(() => {\n          this.lastVelocity = this.velocity;\n          this.velocity = 0;\n          this.isScrolling = false;\n          this.emit();\n        }, 400);\n      }\n    }\n  };\n  reset() {\n    this.isLocked = false;\n    this.isScrolling = false;\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.lastVelocity = this.velocity = 0;\n    this.animate.stop();\n  }\n  /**\n   * Start lenis scroll after it has been stopped\n   */\n  start() {\n    if (!this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.removeProperty(\"overflow\");\n      return;\n    }\n    this.internalStart();\n  }\n  internalStart() {\n    if (!this.isStopped) return;\n    this.reset();\n    this.isStopped = false;\n    this.emit();\n  }\n  /**\n   * Stop lenis scroll\n   */\n  stop() {\n    if (this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.setProperty(\"overflow\", \"clip\");\n      return;\n    }\n    this.internalStop();\n  }\n  internalStop() {\n    if (this.isStopped) return;\n    this.reset();\n    this.isStopped = true;\n    this.emit();\n  }\n  /**\n   * RequestAnimationFrame for lenis\n   *\n   * @param time The time in ms from an external clock like `requestAnimationFrame` or Tempus\n   */\n  raf = (time) => {\n    const deltaTime = time - (this.time || time);\n    this.time = time;\n    this.animate.advance(deltaTime * 1e-3);\n    if (this.options.autoRaf) {\n      this._rafId = requestAnimationFrame(this.raf);\n    }\n  };\n  /**\n   * Scroll to a target value\n   *\n   * @param target The target value to scroll to\n   * @param options The options for the scroll\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   offset: 100,\n   *   duration: 1,\n   *   easing: (t) => 1 - Math.cos((t * Math.PI) / 2),\n   *   lerp: 0.1,\n   *   onStart: () => {\n   *     console.log('onStart')\n   *   },\n   *   onComplete: () => {\n   *     console.log('onComplete')\n   *   },\n   * })\n   */\n  scrollTo(_target, {\n    offset = 0,\n    immediate = false,\n    lock = false,\n    programmatic = true,\n    // called from outside of the class\n    lerp: lerp2 = programmatic ? this.options.lerp : void 0,\n    duration = programmatic ? this.options.duration : void 0,\n    easing = programmatic ? this.options.easing : void 0,\n    onStart,\n    onComplete,\n    force = false,\n    // scroll even if stopped\n    userData\n  } = {}) {\n    if ((this.isStopped || this.isLocked) && !force) return;\n    let target = _target;\n    let adjustedOffset = offset;\n    if (typeof target === \"string\" && [\"top\", \"left\", \"start\", \"#\"].includes(target)) {\n      target = 0;\n    } else if (typeof target === \"string\" && [\"bottom\", \"right\", \"end\"].includes(target)) {\n      target = this.limit;\n    } else {\n      let node = null;\n      if (typeof target === \"string\") {\n        node = document.querySelector(target);\n        if (!node) {\n          if (target === \"#top\") {\n            target = 0;\n          } else {\n            console.warn(\"Lenis: Target not found\", target);\n          }\n        }\n      } else if (target instanceof HTMLElement && target?.nodeType) {\n        node = target;\n      }\n      if (node) {\n        if (this.options.wrapper !== window) {\n          const wrapperRect = this.rootElement.getBoundingClientRect();\n          adjustedOffset -= this.isHorizontal ? wrapperRect.left : wrapperRect.top;\n        }\n        const rect = node.getBoundingClientRect();\n        target = (this.isHorizontal ? rect.left : rect.top) + this.animatedScroll;\n      }\n    }\n    if (typeof target !== \"number\") return;\n    target += adjustedOffset;\n    target = Math.round(target);\n    if (this.options.infinite) {\n      if (programmatic) {\n        this.targetScroll = this.animatedScroll = this.scroll;\n        const distance = target - this.animatedScroll;\n        if (distance > this.limit / 2) {\n          target -= this.limit;\n        } else if (distance < -this.limit / 2) {\n          target += this.limit;\n        }\n      }\n    } else {\n      target = clamp(0, target, this.limit);\n    }\n    if (target === this.targetScroll) {\n      onStart?.(this);\n      onComplete?.(this);\n      return;\n    }\n    this.userData = userData ?? {};\n    if (immediate) {\n      this.animatedScroll = this.targetScroll = target;\n      this.setScroll(this.scroll);\n      this.reset();\n      this.preventNextNativeScrollEvent();\n      this.emit();\n      onComplete?.(this);\n      this.userData = {};\n      requestAnimationFrame(() => {\n        this.dispatchScrollendEvent();\n      });\n      return;\n    }\n    if (!programmatic) {\n      this.targetScroll = target;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.animate.fromTo(this.animatedScroll, target, {\n      duration,\n      easing,\n      lerp: lerp2,\n      onStart: () => {\n        if (lock) this.isLocked = true;\n        this.isScrolling = \"smooth\";\n        onStart?.(this);\n      },\n      onUpdate: (value, completed) => {\n        this.isScrolling = \"smooth\";\n        this.lastVelocity = this.velocity;\n        this.velocity = value - this.animatedScroll;\n        this.direction = Math.sign(this.velocity);\n        this.animatedScroll = value;\n        this.setScroll(this.scroll);\n        if (programmatic) {\n          this.targetScroll = value;\n        }\n        if (!completed) this.emit();\n        if (completed) {\n          this.reset();\n          this.emit();\n          onComplete?.(this);\n          this.userData = {};\n          requestAnimationFrame(() => {\n            this.dispatchScrollendEvent();\n          });\n          this.preventNextNativeScrollEvent();\n        }\n      }\n    });\n  }\n  preventNextNativeScrollEvent() {\n    this._preventNextNativeScrollEvent = true;\n    requestAnimationFrame(() => {\n      this._preventNextNativeScrollEvent = false;\n    });\n  }\n  hasNestedScroll(node, { deltaX, deltaY }) {\n    const time = Date.now();\n    if (!node._lenis) node._lenis = {};\n    const cache = node._lenis;\n    let hasOverflowX;\n    let hasOverflowY;\n    let isScrollableX;\n    let isScrollableY;\n    let hasOverscrollBehaviorX;\n    let hasOverscrollBehaviorY;\n    let scrollWidth;\n    let scrollHeight;\n    let clientWidth;\n    let clientHeight;\n    if (time - (cache.time ?? 0) > 2e3) {\n      cache.time = Date.now();\n      const computedStyle = window.getComputedStyle(node);\n      cache.computedStyle = computedStyle;\n      hasOverflowX = [\"auto\", \"overlay\", \"scroll\"].includes(\n        computedStyle.overflowX\n      );\n      hasOverflowY = [\"auto\", \"overlay\", \"scroll\"].includes(\n        computedStyle.overflowY\n      );\n      hasOverscrollBehaviorX = [\"auto\"].includes(\n        computedStyle.overscrollBehaviorX\n      );\n      hasOverscrollBehaviorY = [\"auto\"].includes(\n        computedStyle.overscrollBehaviorY\n      );\n      cache.hasOverflowX = hasOverflowX;\n      cache.hasOverflowY = hasOverflowY;\n      if (!(hasOverflowX || hasOverflowY)) return false;\n      scrollWidth = node.scrollWidth;\n      scrollHeight = node.scrollHeight;\n      clientWidth = node.clientWidth;\n      clientHeight = node.clientHeight;\n      isScrollableX = scrollWidth > clientWidth;\n      isScrollableY = scrollHeight > clientHeight;\n      cache.isScrollableX = isScrollableX;\n      cache.isScrollableY = isScrollableY;\n      cache.scrollWidth = scrollWidth;\n      cache.scrollHeight = scrollHeight;\n      cache.clientWidth = clientWidth;\n      cache.clientHeight = clientHeight;\n      cache.hasOverscrollBehaviorX = hasOverscrollBehaviorX;\n      cache.hasOverscrollBehaviorY = hasOverscrollBehaviorY;\n    } else {\n      isScrollableX = cache.isScrollableX;\n      isScrollableY = cache.isScrollableY;\n      hasOverflowX = cache.hasOverflowX;\n      hasOverflowY = cache.hasOverflowY;\n      scrollWidth = cache.scrollWidth;\n      scrollHeight = cache.scrollHeight;\n      clientWidth = cache.clientWidth;\n      clientHeight = cache.clientHeight;\n      hasOverscrollBehaviorX = cache.hasOverscrollBehaviorX;\n      hasOverscrollBehaviorY = cache.hasOverscrollBehaviorY;\n    }\n    if (!(hasOverflowX && isScrollableX || hasOverflowY && isScrollableY)) {\n      return false;\n    }\n    const orientation = Math.abs(deltaX) >= Math.abs(deltaY) ? \"horizontal\" : \"vertical\";\n    let scroll;\n    let maxScroll;\n    let delta;\n    let hasOverflow;\n    let isScrollable;\n    let hasOverscrollBehavior;\n    if (orientation === \"horizontal\") {\n      scroll = Math.round(node.scrollLeft);\n      maxScroll = scrollWidth - clientWidth;\n      delta = deltaX;\n      hasOverflow = hasOverflowX;\n      isScrollable = isScrollableX;\n      hasOverscrollBehavior = hasOverscrollBehaviorX;\n    } else if (orientation === \"vertical\") {\n      scroll = Math.round(node.scrollTop);\n      maxScroll = scrollHeight - clientHeight;\n      delta = deltaY;\n      hasOverflow = hasOverflowY;\n      isScrollable = isScrollableY;\n      hasOverscrollBehavior = hasOverscrollBehaviorY;\n    } else {\n      return false;\n    }\n    if (!hasOverscrollBehavior && (scroll >= maxScroll || scroll <= 0)) {\n      return true;\n    }\n    const willScroll = delta > 0 ? scroll < maxScroll : scroll > 0;\n    return willScroll && hasOverflow && isScrollable;\n  }\n  /**\n   * The root element on which lenis is instanced\n   */\n  get rootElement() {\n    return this.options.wrapper === window ? document.documentElement : this.options.wrapper;\n  }\n  /**\n   * The limit which is the maximum scroll value\n   */\n  get limit() {\n    if (this.options.naiveDimensions) {\n      if (this.isHorizontal) {\n        return this.rootElement.scrollWidth - this.rootElement.clientWidth;\n      }\n      return this.rootElement.scrollHeight - this.rootElement.clientHeight;\n    }\n    return this.dimensions.limit[this.isHorizontal ? \"x\" : \"y\"];\n  }\n  /**\n   * Whether or not the scroll is horizontal\n   */\n  get isHorizontal() {\n    return this.options.orientation === \"horizontal\";\n  }\n  /**\n   * The actual scroll value\n   */\n  get actualScroll() {\n    const wrapper = this.options.wrapper;\n    return this.isHorizontal ? wrapper.scrollX ?? wrapper.scrollLeft : wrapper.scrollY ?? wrapper.scrollTop;\n  }\n  /**\n   * The current scroll value\n   */\n  get scroll() {\n    return this.options.infinite ? modulo(this.animatedScroll, this.limit) : this.animatedScroll;\n  }\n  /**\n   * The progress of the scroll relative to the limit\n   */\n  get progress() {\n    return this.limit === 0 ? 1 : this.scroll / this.limit;\n  }\n  /**\n   * Current scroll state\n   */\n  get isScrolling() {\n    return this._isScrolling;\n  }\n  set isScrolling(value) {\n    if (this._isScrolling !== value) {\n      this._isScrolling = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is stopped\n   */\n  get isStopped() {\n    return this._isStopped;\n  }\n  set isStopped(value) {\n    if (this._isStopped !== value) {\n      this._isStopped = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is locked\n   */\n  get isLocked() {\n    return this._isLocked;\n  }\n  set isLocked(value) {\n    if (this._isLocked !== value) {\n      this._isLocked = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is smooth scrolling\n   */\n  get isSmooth() {\n    return this.isScrolling === \"smooth\";\n  }\n  /**\n   * The class name applied to the wrapper element\n   */\n  get className() {\n    let className = \"lenis\";\n    if (this.options.autoToggle) className += \" lenis-autoToggle\";\n    if (this.isStopped) className += \" lenis-stopped\";\n    if (this.isLocked) className += \" lenis-locked\";\n    if (this.isScrolling) className += \" lenis-scrolling\";\n    if (this.isScrolling === \"smooth\") className += \" lenis-smooth\";\n    return className;\n  }\n  updateClassName() {\n    this.cleanUpClassName();\n    this.rootElement.className = `${this.rootElement.className} ${this.className}`.trim();\n  }\n  cleanUpClassName() {\n    this.rootElement.className = this.rootElement.className.replace(/lenis(-\\w+)?/g, \"\").trim();\n  }\n};\nexport {\n  Lenis as default\n};\n//# sourceMappingURL=lenis.mjs.map","// packages/snap/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(this, args);\n    }, delay);\n  };\n}\n\n// packages/snap/src/element.ts\nfunction removeParentSticky(element) {\n  const position = getComputedStyle(element).position;\n  const isSticky = position === \"sticky\";\n  if (isSticky) {\n    element.style.setProperty(\"position\", \"static\");\n    element.dataset.sticky = \"true\";\n  }\n  if (element.offsetParent) {\n    removeParentSticky(element.offsetParent);\n  }\n}\nfunction addParentSticky(element) {\n  if (element?.dataset?.sticky === \"true\") {\n    element.style.removeProperty(\"position\");\n    delete element.dataset.sticky;\n  }\n  if (element.offsetParent) {\n    addParentSticky(element.offsetParent);\n  }\n}\nfunction offsetTop(element, accumulator = 0) {\n  const top = accumulator + element.offsetTop;\n  if (element.offsetParent) {\n    return offsetTop(element.offsetParent, top);\n  }\n  return top;\n}\nfunction offsetLeft(element, accumulator = 0) {\n  const left = accumulator + element.offsetLeft;\n  if (element.offsetParent) {\n    return offsetLeft(element.offsetParent, left);\n  }\n  return left;\n}\nfunction scrollTop(element, accumulator = 0) {\n  const top = accumulator + element.scrollTop;\n  if (element.offsetParent) {\n    return scrollTop(element.offsetParent, top);\n  }\n  return top + window.scrollY;\n}\nfunction scrollLeft(element, accumulator = 0) {\n  const left = accumulator + element.scrollLeft;\n  if (element.offsetParent) {\n    return scrollLeft(element.offsetParent, left);\n  }\n  return left + window.scrollX;\n}\nvar SnapElement = class {\n  element;\n  options;\n  align;\n  // @ts-expect-error\n  rect = {};\n  wrapperResizeObserver;\n  resizeObserver;\n  debouncedWrapperResize;\n  constructor(element, {\n    align = [\"start\"],\n    ignoreSticky = true,\n    ignoreTransform = false\n  } = {}) {\n    this.element = element;\n    this.options = { align, ignoreSticky, ignoreTransform };\n    this.align = [align].flat();\n    this.debouncedWrapperResize = debounce(this.onWrapperResize, 500);\n    this.wrapperResizeObserver = new ResizeObserver(this.debouncedWrapperResize);\n    this.wrapperResizeObserver.observe(document.body);\n    this.onWrapperResize();\n    this.resizeObserver = new ResizeObserver(this.onResize);\n    this.resizeObserver.observe(this.element);\n    this.setRect({\n      width: this.element.offsetWidth,\n      height: this.element.offsetHeight\n    });\n  }\n  destroy() {\n    this.wrapperResizeObserver.disconnect();\n    this.resizeObserver.disconnect();\n  }\n  setRect({\n    top,\n    left,\n    width,\n    height,\n    element\n  } = {}) {\n    top = top ?? this.rect.top;\n    left = left ?? this.rect.left;\n    width = width ?? this.rect.width;\n    height = height ?? this.rect.height;\n    element = element ?? this.rect.element;\n    if (top === this.rect.top && left === this.rect.left && width === this.rect.width && height === this.rect.height && element === this.rect.element)\n      return;\n    this.rect.top = top;\n    this.rect.y = top;\n    this.rect.width = width;\n    this.rect.height = height;\n    this.rect.left = left;\n    this.rect.x = left;\n    this.rect.bottom = top + height;\n    this.rect.right = left + width;\n  }\n  onWrapperResize = () => {\n    let top;\n    let left;\n    if (this.options.ignoreSticky) removeParentSticky(this.element);\n    if (this.options.ignoreTransform) {\n      top = offsetTop(this.element);\n      left = offsetLeft(this.element);\n    } else {\n      const rect = this.element.getBoundingClientRect();\n      top = rect.top + scrollTop(this.element);\n      left = rect.left + scrollLeft(this.element);\n    }\n    if (this.options.ignoreSticky) addParentSticky(this.element);\n    this.setRect({ top, left });\n  };\n  onResize = ([entry]) => {\n    if (!entry?.borderBoxSize[0]) return;\n    const width = entry.borderBoxSize[0].inlineSize;\n    const height = entry.borderBoxSize[0].blockSize;\n    this.setRect({ width, height });\n  };\n};\n\n// packages/snap/src/uid.ts\nvar index = 0;\nfunction uid() {\n  return index++;\n}\n\n// packages/snap/src/snap.ts\nvar Snap = class {\n  constructor(lenis, {\n    type = \"proximity\",\n    lerp,\n    easing,\n    duration,\n    distanceThreshold = \"50%\",\n    // useless when type is \"mandatory\"\n    debounce: debounceDelay = 500,\n    onSnapStart,\n    onSnapComplete\n  } = {}) {\n    this.lenis = lenis;\n    if (!window.lenis) {\n      window.lenis = {};\n    }\n    window.lenis.snap = true;\n    this.options = {\n      type,\n      lerp,\n      easing,\n      duration,\n      distanceThreshold,\n      debounce: debounceDelay,\n      onSnapStart,\n      onSnapComplete\n    };\n    this.onWindowResize();\n    window.addEventListener(\"resize\", this.onWindowResize);\n    this.onSnapDebounced = debounce(\n      this.onSnap,\n      this.options.debounce\n    );\n    this.lenis.on(\"virtual-scroll\", this.onSnapDebounced);\n  }\n  options;\n  elements = /* @__PURE__ */ new Map();\n  snaps = /* @__PURE__ */ new Map();\n  viewport = {\n    width: window.innerWidth,\n    height: window.innerHeight\n  };\n  isStopped = false;\n  onSnapDebounced;\n  currentSnapIndex;\n  /**\n   * Destroy the snap instance\n   */\n  destroy() {\n    this.lenis.off(\"virtual-scroll\", this.onSnapDebounced);\n    window.removeEventListener(\"resize\", this.onWindowResize);\n    this.elements.forEach((element) => {\n      element.destroy();\n    });\n  }\n  /**\n   * Start the snap after it has been stopped\n   */\n  start() {\n    this.isStopped = false;\n  }\n  /**\n   * Stop the snap\n   */\n  stop() {\n    this.isStopped = true;\n  }\n  /**\n   * Add a snap to the snap instance\n   *\n   * @param value The value to snap to\n   * @param userData User data that will be forwarded through the snap event\n   * @returns Unsubscribe function\n   */\n  add(value) {\n    const id = uid();\n    this.snaps.set(id, { value });\n    return () => this.snaps.delete(id);\n  }\n  /**\n   * Add an element to the snap instance\n   *\n   * @param element The element to add\n   * @param options The options for the element\n   * @returns Unsubscribe function\n   */\n  addElement(element, options = {}) {\n    const id = uid();\n    this.elements.set(id, new SnapElement(element, options));\n    return () => this.elements.delete(id);\n  }\n  addElements(elements, options = {}) {\n    const map = [...elements].map(\n      (element) => this.addElement(element, options)\n    );\n    return () => {\n      map.forEach((remove) => {\n        remove();\n      });\n    };\n  }\n  onWindowResize = () => {\n    this.viewport.width = window.innerWidth;\n    this.viewport.height = window.innerHeight;\n  };\n  computeSnaps = () => {\n    const { isHorizontal } = this.lenis;\n    let snaps = [...this.snaps.values()];\n    this.elements.forEach(({ rect, align }) => {\n      let value;\n      align.forEach((align2) => {\n        if (align2 === \"start\") {\n          value = rect.top;\n        } else if (align2 === \"center\") {\n          value = isHorizontal ? rect.left + rect.width / 2 - this.viewport.width / 2 : rect.top + rect.height / 2 - this.viewport.height / 2;\n        } else if (align2 === \"end\") {\n          value = isHorizontal ? rect.left + rect.width - this.viewport.width : rect.top + rect.height - this.viewport.height;\n        }\n        if (typeof value === \"number\") {\n          snaps.push({ value: Math.ceil(value) });\n        }\n      });\n    });\n    snaps = snaps.sort((a, b) => Math.abs(a.value) - Math.abs(b.value));\n    return snaps;\n  };\n  previous() {\n    this.goTo((this.currentSnapIndex ?? 0) - 1);\n  }\n  next() {\n    this.goTo((this.currentSnapIndex ?? 0) + 1);\n  }\n  goTo(index2) {\n    const snaps = this.computeSnaps();\n    if (snaps.length === 0) return;\n    this.currentSnapIndex = Math.max(0, Math.min(index2, snaps.length - 1));\n    const currentSnap = snaps[this.currentSnapIndex];\n    if (currentSnap === void 0) return;\n    this.lenis.scrollTo(currentSnap.value, {\n      duration: this.options.duration,\n      easing: this.options.easing,\n      lerp: this.options.lerp,\n      lock: this.options.type === \"lock\",\n      userData: { initiator: \"snap\" },\n      onStart: () => {\n        this.options.onSnapStart?.({\n          index: this.currentSnapIndex,\n          ...currentSnap\n        });\n      },\n      onComplete: () => {\n        this.options.onSnapComplete?.({\n          index: this.currentSnapIndex,\n          ...currentSnap\n        });\n      }\n    });\n  }\n  get distanceThreshold() {\n    let distanceThreshold = Number.POSITIVE_INFINITY;\n    if (this.options.type === \"mandatory\") return Number.POSITIVE_INFINITY;\n    const { isHorizontal } = this.lenis;\n    const axis = isHorizontal ? \"width\" : \"height\";\n    if (typeof this.options.distanceThreshold === \"string\" && this.options.distanceThreshold.endsWith(\"%\")) {\n      distanceThreshold = Number(this.options.distanceThreshold.replace(\"%\", \"\")) / 100 * this.viewport[axis];\n    } else if (typeof this.options.distanceThreshold === \"number\") {\n      distanceThreshold = this.options.distanceThreshold;\n    } else {\n      distanceThreshold = this.viewport[axis];\n    }\n    return distanceThreshold;\n  }\n  onSnap = (e) => {\n    if (this.isStopped) return;\n    if (e.event.type === \"touchmove\") return;\n    if (this.options.type === \"lock\" && this.lenis.userData?.initiator === \"snap\")\n      return;\n    let { scroll, isHorizontal } = this.lenis;\n    const delta = isHorizontal ? e.deltaX : e.deltaY;\n    scroll = Math.ceil(this.lenis.scroll + delta);\n    const snaps = this.computeSnaps();\n    if (snaps.length === 0) return;\n    let snapIndex;\n    const prevSnapIndex = snaps.findLastIndex(({ value }) => value < scroll);\n    const nextSnapIndex = snaps.findIndex(({ value }) => value > scroll);\n    if (this.options.type === \"lock\") {\n      if (delta > 0) {\n        snapIndex = nextSnapIndex;\n      } else if (delta < 0) {\n        snapIndex = prevSnapIndex;\n      }\n    } else {\n      const prevSnap = snaps[prevSnapIndex];\n      const distanceToPrevSnap = prevSnap ? Math.abs(scroll - prevSnap.value) : Number.POSITIVE_INFINITY;\n      const nextSnap = snaps[nextSnapIndex];\n      const distanceToNextSnap = nextSnap ? Math.abs(scroll - nextSnap.value) : Number.POSITIVE_INFINITY;\n      snapIndex = distanceToPrevSnap < distanceToNextSnap ? prevSnapIndex : nextSnapIndex;\n    }\n    if (snapIndex === void 0) return;\n    if (snapIndex === -1) return;\n    snapIndex = Math.max(0, Math.min(snapIndex, snaps.length - 1));\n    const snap = snaps[snapIndex];\n    const distance = Math.abs(scroll - snap.value);\n    if (distance <= this.distanceThreshold) {\n      this.goTo(snapIndex);\n    }\n  };\n  resize() {\n    this.elements.forEach((element) => {\n      element.onWrapperResize();\n    });\n  }\n};\nexport {\n  Snap as default\n};\n//# sourceMappingURL=lenis-snap.mjs.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import Lenis from\"https://unpkg.com/lenis@1.3.19/dist/lenis.mjs\";import Snap from\"https://unpkg.com/lenis@1.3.19/dist/lenis-snap.mjs\";import{useEffect,useRef,Children,isValidElement,cloneElement}from\"react\";/**\n * @framerSupportedLayoutHeight any\n * @framerSupportedLayoutWidth any\n * @framerDisableUnlink\n */export default function Component({smooth,infinite,orientation,intensity,children,snap}){const wrapperRef=useRef();const contentRef=useRef();const lenisRef=useRef();useEffect(()=>{if(children&&(!wrapperRef.current||!contentRef.current))return;if(wrapperRef.current&&contentRef.current){if(orientation===\"horizontal\"){wrapperRef.current.style.setProperty(\"overflowX\",\"auto\");}else{wrapperRef.current.style.setProperty(\"overflowY\",\"auto\");}}const lenis=new Lenis({smoothWheel:smooth,// duration: intensity / 10,\ninfinite,orientation,gestureOrientation:orientation===\"horizontal\"?\"both\":\"vertical\",autoRaf:true,autoToggle:true,anchors:true,allowNestedScroll:true,wrapper:wrapperRef.current,content:contentRef.current,syncTouch:Boolean(infinite)||orientation===\"horizontal\",stopInertiaOnNavigate:true});lenisRef.current=lenis;let lenisSnap;if(snap&&snap.snaps.length>0){lenisSnap=new Snap(lenis,{type:snap.type,distanceThreshold:snap.threshold+\"%\"});snap.snaps.forEach(item=>{if(!item.target?.current)return;const id=item.target.current.id;// workaround when content is duplicated by LenisSeamlessInfinite\nconst elements=document.querySelectorAll(`#${id}`);elements.forEach(element=>{lenisSnap.addElement(element,{align:item.align});});});}window.lenis=lenis;window.lenisSnap=snap;return()=>{if(lenis)lenis.destroy();if(lenisSnap)lenisSnap.destroy();};},[smooth,infinite,orientation,intensity,children,snap]);// useEffect(() => {\n//     function onClick(event: PointerEvent | MouseEvent) {\n//         const path = event.composedPath()\n//         const pageLink = path.find(\n//             (node) =>\n//                 node instanceof HTMLAnchorElement &&\n//                 (node.getAttribute(\"href\")?.startsWith(\"./\") ||\n//                     node.getAttribute(\"href\")?.startsWith(\"../\"))\n//         ) as HTMLAnchorElement | undefined\n//         if (pageLink) {\n//             if (lenisRef.current) {\n//                 lenisRef.current.reset()\n//             }\n//         }\n//     }\n//     window.addEventListener(\"click\", onClick)\n//     return () => {\n//         window.removeEventListener(\"click\", onClick)\n//     }\n// }, [])\nreturn /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"link\",{href:\"https://unpkg.com/lenis@1.3.19/dist/lenis.css\",rel:\"stylesheet\"}),children&&/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:orientation===\"horizontal\"?{overflowX:\"auto\",width:\"100%\"}:{overflowY:\"auto\",height:\"100%\"},children:/*#__PURE__*/_jsx(\"div\",{ref:contentRef,style:{width:\"100%\"},children:Children.map(children,child=>/*#__PURE__*/isValidElement(child)?/*#__PURE__*/cloneElement(child,{style:{...child.props.style,width:\"100%\"}}):child)})})})]});}Component.displayName=\"Lenis\";addPropertyControls(Component,{smooth:{type:ControlType.Boolean,title:\"Smooth\",defaultValue:true},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:12,step:1,min:1,max:100,hidden(props){return props.smooth===false;},description:\"This will be ignored on mobile.\"},infinite:{type:ControlType.Boolean,title:\"Infinite\",defaultValue:false,hidden(props){return props.smooth===false;}},orientation:{type:ControlType.Enum,defaultValue:\"Vertical\",displaySegmentedControl:true,options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],hidden(props){return props.smooth===false;}},children:{type:ControlType.ComponentInstance,title:\"Content\"},snap:{type:ControlType.Object,optional:true,description:\"Cooked and served by [darkroom.engineering](https://darkroom.engineering).\",controls:{type:{type:ControlType.Enum,defaultValue:\"proximity\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",options:[\"proximity\",\"mandatory\",\"lock\"],optionTitles:[\"Proximity\",\"Mandatory\",\"Lock\"]},threshold:{type:ControlType.Number,defaultValue:50,min:0,max:100,unit:\"%\",hidden:props=>{return props.snap.type===\"mandatory\";}},snaps:{type:ControlType.Array,control:{type:ControlType.Object,controls:{target:{title:\"Target\",type:ControlType.ScrollSectionRef},align:{type:ControlType.Enum,defaultValue:\"center\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"start\",\"center\",\"end\"],optionIcons:[\"align-top\",\"align-middle\",\"align-bottom\"]}}}}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Component\",\"slots\":[\"children\"],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lenis.map","// Generated by Framer (b3492b4)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const serializationHash=\"framer-jAKqD\";const variantClassNames={lIDDAk6yS:\"framer-v-1k4v7cw\"};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 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 Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};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({defaultVariant:\"lIDDAk6yS\",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-1k4v7cw\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"lIDDAk6yS\",ref:refBinding,style:{backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:60,borderBottomRightRadius:60,borderTopLeftRadius:60,borderTopRightRadius:60,...style}})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-jAKqD.framer-ah82i9, .framer-jAKqD .framer-ah82i9 { display: block; }\",\".framer-jAKqD.framer-1k4v7cw { height: 16px; mix-blend-mode: difference; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 16px; will-change: var(--framer-will-change-override, transform); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 16\n * @framerIntrinsicWidth 16\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framerar6L8acwZ=withCSS(Component,css,\"framer-jAKqD\");export default Framerar6L8acwZ;Framerar6L8acwZ.displayName=\"Dot Cursor\";Framerar6L8acwZ.defaultProps={height:16,width:16};addFonts(Framerar6L8acwZ,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerar6L8acwZ\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"16\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicWidth\":\"16\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ar6L8acwZ.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{ControlType,addPropertyControls}from\"framer\";/**\n * @framerDisableUnlink\n * @framerIntrinsicWidth 24\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight 100%\n */export default function SVGIcon({svgCode,strokeColor,strokeWidth,fillColor,padding}){const[svgContent,setSvgContent]=useState(null);useEffect(()=>{setSvgContent(svgCode||null);},[svgCode]);const updateSvgContent=svg=>{const parser=new DOMParser;const doc=parser.parseFromString(svg,\"image/svg+xml\");const svgElement=doc.querySelector(\"svg\");if(svgElement){svgElement.setAttribute(\"width\",\"100%\");svgElement.setAttribute(\"height\",\"100%\");}const paths=doc.querySelectorAll(\"path\");paths.forEach((path,index)=>{path.setAttribute(\"stroke\",strokeColor);path.setAttribute(\"stroke-width\",strokeWidth.toString());path.setAttribute(\"fill\",fillColor);path.setAttribute(\"fill-opacity\",fillColor===\"none\"?\"0\":\"1\");path.setAttribute(\"key\",`path-${index}`)// Add a unique key attribute\n;});const serializer=new XMLSerializer;return serializer.serializeToString(doc);};const updatedSvgContent=svgContent?updateSvgContent(svgContent):null;return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",padding,boxSizing:\"border-box\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",overflow:\"hidden\"},dangerouslySetInnerHTML:{__html:updatedSvgContent||\"\"}});}SVGIcon.defaultProps={svgCode:`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 3H18V9H12L6 3Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n                <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 9H12L18 15H6V9Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n                <path d=\"M12 15V21L6 15\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n              </svg>`,strokeColor:\"#000000\",strokeWidth:1.5,fillColor:\"#FFFFFF\",padding:0};addPropertyControls(SVGIcon,{svgCode:{type:ControlType.String,title:\"SVG Code\",defaultValue:`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 3H18V9H12L6 3Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n                        <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 9H12L18 15H6V9Z\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n                        <path d=\"M12 15V21L6 15\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n                      </svg>`},strokeColor:{type:ControlType.Color,title:\"Stroke Color\",defaultValue:\"#000000\"},fillColor:{type:ControlType.Color,title:\"Fill Color\",defaultValue:\"rgba(0, 0, 0, 0)\"},strokeWidth:{type:ControlType.Number,title:\"Stroke Width\",defaultValue:1.5,min:0,max:10},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:0,min:0,max:100,description:\"Created by [Tolv](https://x.com/tolvstudio)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SVGIcon\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"* @framerIntrinsicWidth 24\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"100%\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SVG_Icon.map","// Generated by Framer (27b79d7)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,Link,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import SVGIcon from\"https://framerusercontent.com/modules/nCHxtXz6uqq1WVU5GP8Z/EQnJn75w9rD6j2U8enWU/SVG_Icon.js\";const SVGIconFonts=getFonts(SVGIcon);const enabledGestures={lUJxPDgkl:{hover:true}};const serializationHash=\"framer-ZoK0H\";const variantClassNames={lUJxPDgkl:\"framer-v-18sv6d\"};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 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 Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};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({defaultVariant:\"lUJxPDgkl\",enabledGestures,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(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"lUJxPDgkl\",openInNewTab:false,scopeId:\"peH6B6WGd\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,\"aria-label\":\"Website Logo\",className:`${cx(scopingClassNames,\"framer-18sv6d\",className,classNames)} framer-13cnr12`,\"data-framer-name\":\"Main\",layoutDependency:layoutDependency,layoutId:\"lUJxPDgkl\",ref:refBinding,style:{opacity:1,...style},variants:{\"lUJxPDgkl-hover\":{opacity:.6}},...addPropertyOverrides({\"lUJxPDgkl-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-xcl7t0-container\",\"data-framer-name\":\"SVG Icon\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"spB5BNgVi-container\",name:\"SVG Icon\",nodeId:\"spB5BNgVi\",rendersWithMotion:true,scopeId:\"peH6B6WGd\",children:/*#__PURE__*/_jsx(SVGIcon,{fillColor:\"var(--token-03c951c6-311f-4b00-b275-562732702a5d, rgb(238, 238, 238))\",height:\"100%\",id:\"spB5BNgVi\",layoutId:\"spB5BNgVi\",name:\"SVG Icon\",padding:0,strokeColor:\"var(--token-03c951c6-311f-4b00-b275-562732702a5d, rgb(238, 238, 238))\",strokeWidth:0,style:{height:\"100%\",width:\"100%\"},svgCode:'<svg width=\"53\" height=\"12\" viewBox=\"0 0 53 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M-0.000110984 11.6362V-0.000133514H4.5908C5.46959 -0.000133514 6.21959 0.157063 6.8408 0.471457C7.4658 0.782063 7.94118 1.22335 8.26693 1.79532C8.59648 2.3635 8.76125 3.03206 8.76125 3.801C8.76125 4.57373 8.59459 5.2385 8.26125 5.79532C7.92792 6.34835 7.44497 6.77259 6.81239 7.06805C6.1836 7.3635 5.42224 7.51123 4.5283 7.51123H1.45443V5.53396H4.13057C4.60027 5.53396 4.99042 5.46956 5.30103 5.34078C5.61163 5.21199 5.84269 5.01881 5.99421 4.76123C6.14951 4.50365 6.22716 4.18358 6.22716 3.801C6.22716 3.41464 6.14951 3.08888 5.99421 2.82373C5.84269 2.55858 5.60974 2.35782 5.29534 2.22146C4.98474 2.08131 4.59269 2.01123 4.11921 2.01123H2.46012V11.6362H-0.000110984ZM6.28398 6.34078L9.17603 11.6362H6.46012L3.63057 6.34078H6.28398ZM13.6511 11.8067C12.7534 11.8067 11.9806 11.6249 11.3329 11.2612C10.689 10.8938 10.1927 10.3749 9.84426 9.70441C9.49578 9.03017 9.32154 8.23282 9.32154 7.31237C9.32154 6.41464 9.49578 5.62676 9.84426 4.94873C10.1927 4.2707 10.6833 3.74229 11.3159 3.3635C11.9522 2.98472 12.6984 2.79532 13.5545 2.79532C14.1302 2.79532 14.6662 2.88812 15.1624 3.07373C15.6624 3.25555 16.0981 3.53017 16.4693 3.89759C16.8443 4.26502 17.1359 4.72714 17.3443 5.28396C17.5526 5.83699 17.6568 6.48472 17.6568 7.22714V7.89191H10.2874V6.39191H15.3784C15.3784 6.04343 15.3026 5.73472 15.1511 5.46578C14.9996 5.19684 14.7893 4.98661 14.5204 4.83509C14.2552 4.67979 13.9465 4.60214 13.5943 4.60214C13.2268 4.60214 12.9011 4.68737 12.617 4.85782C12.3367 5.02449 12.117 5.24987 11.9579 5.53396C11.7988 5.81426 11.7174 6.12676 11.7136 6.47146V7.89759C11.7136 8.32941 11.7931 8.70252 11.9522 9.01691C12.1151 9.33131 12.3443 9.57373 12.6397 9.74418C12.9352 9.91464 13.2856 9.99987 13.6909 9.99987C13.9598 9.99987 14.206 9.96199 14.4295 9.88623C14.653 9.81047 14.8443 9.69684 15.0034 9.54532C15.1624 9.39381 15.2837 9.2082 15.367 8.9885L17.6056 9.13623C17.492 9.67411 17.259 10.1438 16.9068 10.5453C16.5583 10.943 16.1075 11.2537 15.5545 11.4771C15.0052 11.6968 14.3708 11.8067 13.6511 11.8067ZM21.0168 -0.000133514V11.6362H18.5963V-0.000133514H21.0168ZM24.7361 -0.000133514V11.6362H22.3157V-0.000133514H24.7361ZM29.9782 11.8067C29.0957 11.8067 28.3324 11.6192 27.6885 11.2442C27.0483 10.8654 26.554 10.3389 26.2055 9.66464C25.857 8.98661 25.6828 8.20062 25.6828 7.30668C25.6828 6.40517 25.857 5.61729 26.2055 4.94305C26.554 4.26502 27.0483 3.7385 27.6885 3.3635C28.3324 2.98472 29.0957 2.79532 29.9782 2.79532C30.8608 2.79532 31.6222 2.98472 32.2623 3.3635C32.9063 3.7385 33.4025 4.26502 33.751 4.94305C34.0995 5.61729 34.2737 6.40517 34.2737 7.30668C34.2737 8.20062 34.0995 8.98661 33.751 9.66464C33.4025 10.3389 32.9063 10.8654 32.2623 11.2442C31.6222 11.6192 30.8608 11.8067 29.9782 11.8067ZM29.9896 9.93168C30.3911 9.93168 30.7263 9.81805 30.9953 9.59078C31.2642 9.35972 31.4669 9.04532 31.6032 8.64759C31.7434 8.24987 31.8135 7.79722 31.8135 7.28964C31.8135 6.78206 31.7434 6.32941 31.6032 5.93168C31.4669 5.53396 31.2642 5.21956 30.9953 4.9885C30.7263 4.75744 30.3911 4.64191 29.9896 4.64191C29.5843 4.64191 29.2434 4.75744 28.9669 4.9885C28.6942 5.21956 28.4877 5.53396 28.3476 5.93168C28.2112 6.32941 28.143 6.78206 28.143 7.28964C28.143 7.79722 28.2112 8.24987 28.3476 8.64759C28.4877 9.04532 28.6942 9.35972 28.9669 9.59078C29.2434 9.81805 29.5843 9.93168 29.9896 9.93168ZM37.6962 11.801C37.1394 11.801 36.6432 11.7044 36.2076 11.5112C35.772 11.3143 35.4273 11.0245 35.1735 10.6419C34.9235 10.2555 34.7985 9.77449 34.7985 9.19873C34.7985 8.71388 34.8875 8.30668 35.0655 7.97714C35.2435 7.64759 35.486 7.38244 35.7928 7.18168C36.0996 6.98093 36.4481 6.82941 36.8382 6.72714C37.2322 6.62487 37.6451 6.5529 38.0769 6.51123C38.5845 6.4582 38.9935 6.40896 39.3041 6.3635C39.6148 6.31426 39.8401 6.24229 39.9803 6.14759C40.1204 6.0529 40.1905 5.91275 40.1905 5.72714V5.69305C40.1905 5.3332 40.0769 5.05479 39.8496 4.85782C39.6261 4.66085 39.3079 4.56237 38.8951 4.56237C38.4595 4.56237 38.1129 4.65896 37.8553 4.85214C37.5977 5.04153 37.4273 5.28017 37.3439 5.56805L35.1053 5.38623C35.2189 4.85593 35.4424 4.39759 35.7757 4.01123C36.1091 3.62108 36.539 3.32184 37.0655 3.1135C37.5958 2.90138 38.2095 2.79532 38.9064 2.79532C39.3913 2.79532 39.8553 2.85214 40.2985 2.96578C40.7454 3.07941 41.1413 3.25555 41.486 3.49418C41.8345 3.73282 42.1091 4.03964 42.3098 4.41464C42.5106 4.78585 42.611 5.23093 42.611 5.74987V11.6362H40.3155V10.426H40.2473C40.1072 10.6987 39.9197 10.9393 39.6848 11.1476C39.45 11.3521 39.1678 11.5131 38.8382 11.6305C38.5087 11.7442 38.128 11.801 37.6962 11.801ZM38.3894 10.1305C38.7454 10.1305 39.0598 10.0605 39.3326 9.92032C39.6053 9.77638 39.8193 9.5832 39.9746 9.34078C40.1299 9.09835 40.2076 8.82373 40.2076 8.51691V7.59078C40.1318 7.64002 40.0276 7.68547 39.8951 7.72714C39.7663 7.76502 39.6204 7.801 39.4576 7.83509C39.2947 7.8654 39.1318 7.89381 38.9689 7.92032C38.806 7.94305 38.6583 7.96388 38.5257 7.98282C38.2416 8.02449 37.9935 8.09078 37.7814 8.18168C37.5693 8.27259 37.4045 8.3957 37.2871 8.551C37.1697 8.70252 37.111 8.89191 37.111 9.11918C37.111 9.44873 37.2303 9.70062 37.4689 9.87487C37.7113 10.0453 38.0182 10.1305 38.3894 10.1305ZM47.0647 11.7783C46.4018 11.7783 45.8015 11.6078 45.2636 11.2669C44.7295 10.9222 44.3052 10.4165 43.9909 9.74987C43.6802 9.07941 43.5249 8.25744 43.5249 7.28396C43.5249 6.28396 43.6859 5.45252 44.0079 4.78964C44.3299 4.12297 44.7579 3.62487 45.292 3.29532C45.8299 2.96199 46.4189 2.79532 47.059 2.79532C47.5477 2.79532 47.9549 2.87865 48.2806 3.04532C48.6102 3.2082 48.8753 3.41275 49.0761 3.65896C49.2806 3.90138 49.4359 4.14002 49.542 4.37487H49.6159V-0.000133514H52.0306V11.6362H49.6443V10.2385H49.542C49.4284 10.4809 49.2674 10.7215 49.059 10.9601C48.8545 11.1949 48.5874 11.39 48.2579 11.5453C47.9321 11.7006 47.5344 11.7783 47.0647 11.7783ZM47.8318 9.85214C48.2219 9.85214 48.5515 9.74608 48.8204 9.53396C49.0931 9.31805 49.3015 9.01691 49.4454 8.63055C49.5931 8.24418 49.667 7.79153 49.667 7.27259C49.667 6.75365 49.595 6.3029 49.4511 5.92032C49.3071 5.53775 49.0988 5.24229 48.8261 5.03396C48.5534 4.82562 48.2219 4.72146 47.8318 4.72146C47.434 4.72146 47.0988 4.82941 46.8261 5.04532C46.5534 5.26123 46.3469 5.56047 46.2068 5.94305C46.0666 6.32562 45.9965 6.76881 45.9965 7.27259C45.9965 7.78017 46.0666 8.22903 46.2068 8.61918C46.3507 9.00555 46.5571 9.30858 46.8261 9.52828C47.0988 9.74418 47.434 9.85214 47.8318 9.85214Z\" fill=\"white\"/> </svg>',width:\"100%\"})})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-ZoK0H.framer-13cnr12, .framer-ZoK0H .framer-13cnr12 { display: block; }\",\".framer-ZoK0H.framer-18sv6d { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-ZoK0H .framer-xcl7t0-container { flex: none; height: 24px; position: relative; width: 60px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 24\n * @framerIntrinsicWidth 60\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"ETOMS2snf\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerpeH6B6WGd=withCSS(Component,css,\"framer-ZoK0H\");export default FramerpeH6B6WGd;FramerpeH6B6WGd.displayName=\"Logo\";FramerpeH6B6WGd.defaultProps={height:24,width:60};addFonts(FramerpeH6B6WGd,[{explicitInter:true,fonts:[]},...SVGIconFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerpeH6B6WGd\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"60\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ETOMS2snf\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./peH6B6WGd.map","// Generated by Framer (b3492b4)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,ResolveLinks,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import NavLink from\"https://framerusercontent.com/modules/wMjPsZbxjP2cD0BMZCP4/rAidN8Tg4j2QAL1FfQkO/C2_bWa6_1.js\";import Logo from\"https://framerusercontent.com/modules/PA1taXoEIPf9adrMLlXK/aUuyJYuc5TFdmKewWSLY/peH6B6WGd.js\";const LogoFonts=getFonts(Logo);const NavLinkFonts=getFonts(NavLink);const cycleOrder=[\"FWFIUTBLI\",\"zudRnyudI\"];const serializationHash=\"framer-laa7Z\";const variantClassNames={FWFIUTBLI:\"framer-v-1nd3ydy\",zudRnyudI:\"framer-v-181jobz\"};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={\"Navigation Bar\":\"FWFIUTBLI\",Phone:\"zudRnyudI\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"FWFIUTBLI\"};};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:\"FWFIUTBLI\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"zudRnyudI\")return false;return true;};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-1nd3ydy\",className,classNames),\"data-framer-name\":\"Navigation Bar\",layoutDependency:layoutDependency,layoutId:\"FWFIUTBLI\",ref:refBinding,style:{...style},...addPropertyOverrides({zudRnyudI:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-9hegqz\",layoutDependency:layoutDependency,layoutId:\"Iyc3hQUMv\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+(8+((componentViewport?.height||54)-16-38)/2)+7,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ce09xg-container\",layoutDependency:layoutDependency,layoutId:\"G8qJE0DMb-container\",nodeId:\"G8qJE0DMb\",rendersWithMotion:true,scopeId:\"QdP_ZpeoO\",children:/*#__PURE__*/_jsx(Logo,{height:\"100%\",id:\"G8qJE0DMb\",layoutId:\"G8qJE0DMb\",width:\"100%\"})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ueuly9\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"Z11le7j9k\",children:[isDisplayed()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Qc61o3vNR\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:38,y:(componentViewport?.y||0)+(8+((componentViewport?.height||54)-16-38)/2)+0+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-t7rqdm-container\",layoutDependency:layoutDependency,layoutId:\"qkqWNfHiK-container\",nodeId:\"qkqWNfHiK\",rendersWithMotion:true,scopeId:\"QdP_ZpeoO\",children:/*#__PURE__*/_jsx(NavLink,{height:\"100%\",hk9eCtrtk:\"Work\",id:\"qkqWNfHiK\",layoutId:\"qkqWNfHiK\",variant:matchVariant(\"eFtBMuG1N\"),w5Z7nerkL:resolvedLinks[0],width:\"100%\"})})})}),isDisplayed()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":VqAtX9nzb\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:38,y:(componentViewport?.y||0)+(8+((componentViewport?.height||54)-16-38)/2)+0+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-oixu6-container\",layoutDependency:layoutDependency,layoutId:\"keAC1HaRG-container\",nodeId:\"keAC1HaRG\",rendersWithMotion:true,scopeId:\"QdP_ZpeoO\",children:/*#__PURE__*/_jsx(NavLink,{height:\"100%\",hk9eCtrtk:\"Services\",id:\"keAC1HaRG\",layoutId:\"keAC1HaRG\",variant:matchVariant(\"eFtBMuG1N\"),w5Z7nerkL:resolvedLinks1[0],width:\"100%\"})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"XeyHMIXnX\"},implicitPathVariables:undefined},{href:{webPageId:\"XeyHMIXnX\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:38,y:(componentViewport?.y||0)+(8+((componentViewport?.height||54)-16-38)/2)+0+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-sdw2z4-container\",layoutDependency:layoutDependency,layoutId:\"pCTJL14gC-container\",nodeId:\"pCTJL14gC\",rendersWithMotion:true,scopeId:\"QdP_ZpeoO\",children:/*#__PURE__*/_jsx(NavLink,{height:\"100%\",hk9eCtrtk:\"Contact Us\",id:\"pCTJL14gC\",layoutId:\"pCTJL14gC\",variant:matchVariant(\"ToIBo1t6S\"),w5Z7nerkL:resolvedLinks2[0],width:\"100%\",...addPropertyOverrides({zudRnyudI:{w5Z7nerkL:resolvedLinks2[1]}},baseVariant,gestureVariant)})})})})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-laa7Z.framer-nbb0j6, .framer-laa7Z .framer-nbb0j6 { display: block; }\",\".framer-laa7Z.framer-1nd3ydy { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 8px 32px 8px 32px; position: relative; width: 1200px; }\",\".framer-laa7Z .framer-9hegqz { 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: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1px; }\",\".framer-laa7Z .framer-ce09xg-container, .framer-laa7Z .framer-t7rqdm-container, .framer-laa7Z .framer-oixu6-container, .framer-laa7Z .framer-sdw2z4-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-laa7Z .framer-ueuly9 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: min-content; }\",\".framer-laa7Z.framer-v-181jobz.framer-1nd3ydy { padding: 8px 16px 8px 16px; width: 400px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 54\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"zudRnyudI\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerQdP_ZpeoO=withCSS(Component,css,\"framer-laa7Z\");export default FramerQdP_ZpeoO;FramerQdP_ZpeoO.displayName=\"Header\";FramerQdP_ZpeoO.defaultProps={height:54,width:1200};addPropertyControls(FramerQdP_ZpeoO,{variant:{options:[\"FWFIUTBLI\",\"zudRnyudI\"],optionTitles:[\"Navigation Bar\",\"Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerQdP_ZpeoO,[{explicitInter:true,fonts:[]},...LogoFonts,...NavLinkFonts],{supportsExplicitInterCodegen:true});FramerQdP_ZpeoO.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Logo,{},context),forwardLoader(NavLink,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerQdP_ZpeoO\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"zudRnyudI\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicHeight\":\"54\",\"framerIntrinsicWidth\":\"1200\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 0 L 14 0\" fill=\"transparent\" height=\"1px\" id=\"lS0BCfang\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(5 12)\" width=\"14px\"/><path d=\"M 0 0 L 7 7 L 0 14\" fill=\"transparent\" height=\"14px\" id=\"qiUgiS3ny\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--43q7um, rgb(0,0,0))\" transform=\"translate(12 5)\" width=\"7px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,UO5clYVeQ:stroke??props.UO5clYVeQ??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,UO5clYVeQ,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-1K87s\",className),layoutId:layoutId,ref:ref,style:{\"--43q7um\":UO5clYVeQ,...style}});});const css=[`.framer-1K87s { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--43q7um); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"UO5clYVeQ\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Arrow Right\",\"color\":{\"type\":\"variable\",\"value\":\"43q7um\"},\"set\":{\"localId\":\"vectorSet/T8qKXkLfy\",\"id\":\"T8qKXkLfy\",\"moduleId\":\"fiHEoJwBMFnT6QLOcpPz\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-1K87s\");Icon.displayName=\"Arrow Right\";export default Icon;addPropertyControls(Icon,{UO5clYVeQ:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Arrow Right\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"43q7um\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/T8qKXkLfy\\\",\\\"id\\\":\\\"T8qKXkLfy\\\",\\\"moduleId\\\":\\\"fiHEoJwBMFnT6QLOcpPz\\\"}}\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerVariables\":\"{\\\"UO5clYVeQ\\\":\\\"stroke\\\"}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"true\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (cbbce5e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFonts,getFontsFromSharedStyle,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useOnVariantChange,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import ArrowRight from\"https://framerusercontent.com/modules/qWXc86Mgrtt3h78sDulX/E7xZCIcnCQShwN5vHgtO/KWJFL9E3H.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/vgkN0i0rpoaTXz5yQbmO/rbh6Rjbp3Jy3amHB8gAG/pdr2SJtbe.js\";const ArrowRightFonts=getFonts(ArrowRight);const enabledGestures={SOVS6wYv0:{pressed:true},sSEnlJX8O:{pressed:true}};const cycleOrder=[\"klpkDP01S\",\"SOVS6wYv0\",\"sSEnlJX8O\"];const serializationHash=\"framer-6urQP\";const variantClassNames={klpkDP01S:\"framer-v-pksetd\",SOVS6wYv0:\"framer-v-142gn5q\",sSEnlJX8O:\"framer-v-1wxmnoo\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.5,type:\"spring\"};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={\"Book a Call Appear\":\"SOVS6wYv0\",\"Book a Call Phone\":\"sSEnlJX8O\",\"Book a Call\":\"klpkDP01S\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"klpkDP01S\"};};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:\"klpkDP01S\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onAppear105om6q=activeVariantCallback(async(...args)=>{setVariant(\"SOVS6wYv0\",true);});useOnVariantChange(baseVariant,{default:onAppear105om6q,sSEnlJX8O:undefined});const sharedStyleClassNames=[sharedStyle.className];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-pksetd\",className,classNames),\"data-framer-name\":\"Book a Call\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"klpkDP01S\",ref:refBinding,style:{...style},...addPropertyOverrides({\"SOVS6wYv0-pressed\":{\"data-framer-name\":undefined},\"sSEnlJX8O-pressed\":{\"data-framer-name\":undefined,\"data-highlight\":undefined},SOVS6wYv0:{\"data-framer-name\":\"Book a Call Appear\"},sSEnlJX8O:{\"data-framer-name\":\"Book a Call Phone\",\"data-highlight\":undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-18kdqkx\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"VW2VmUL43\",style:{backgroundColor:\"var(--token-03c951c6-311f-4b00-b275-562732702a5d, rgb(238, 238, 238))\",borderBottomLeftRadius:\"50%\",borderBottomRightRadius:\"50%\",borderTopLeftRadius:\"50%\",borderTopRightRadius:\"50%\",opacity:0,scale:0},variants:{\"SOVS6wYv0-pressed\":{opacity:0,scale:0},\"sSEnlJX8O-pressed\":{scale:.8},SOVS6wYv0:{opacity:1,scale:1},sSEnlJX8O:{opacity:1,scale:1}},children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1byn0r\",\"data-framer-name\":\"Wrapper\",layoutDependency:layoutDependency,layoutId:\"QjYbaqvG2\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1nvyixt\",\"data-styles-preset\":\"pdr2SJtbe\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-637c5f7d-7205-4ccb-a2d3-6ac167d4fc25, rgb(0, 0, 0)))\"},children:\"Book a Call\"})}),className:\"framer-9u8rxj\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ZbWd7uefT\",style:{\"--extracted-r6o4lv\":\"var(--token-637c5f7d-7205-4ccb-a2d3-6ac167d4fc25, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ArrowRight,{animated:true,className:\"framer-m580mn\",layoutDependency:layoutDependency,layoutId:\"wKE6pptqH\",style:{\"--43q7um\":\"var(--token-637c5f7d-7205-4ccb-a2d3-6ac167d4fc25, rgb(0, 0, 0))\"}})]})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-6urQP.framer-aqkr2r, .framer-6urQP .framer-aqkr2r { display: block; }\",\".framer-6urQP.framer-pksetd { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: min-content; }\",\".framer-6urQP .framer-18kdqkx { align-content: center; align-items: center; aspect-ratio: 1 / 1; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: var(--framer-aspect-ratio-supported, 170px); justify-content: center; overflow: visible; padding: 16px; position: relative; width: 170px; }\",\".framer-6urQP .framer-1byn0r { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-6urQP .framer-9u8rxj { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-6urQP .framer-m580mn { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 16px); position: relative; width: 16px; }\",\".framer-6urQP.framer-v-142gn5q.framer-pksetd, .framer-6urQP.framer-v-1wxmnoo.framer-pksetd { cursor: pointer; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 170\n * @framerIntrinsicWidth 170\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"SOVS6wYv0\":{\"layout\":[\"auto\",\"auto\"]},\"sSEnlJX8O\":{\"layout\":[\"auto\",\"auto\"]},\"EI1GoYoHd\":{\"layout\":[\"auto\",\"auto\"]},\"Bm6Ht1AgW\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerwMlbZgCyp=withCSS(Component,css,\"framer-6urQP\");export default FramerwMlbZgCyp;FramerwMlbZgCyp.displayName=\"Button Cursor\";FramerwMlbZgCyp.defaultProps={height:170,width:170};addPropertyControls(FramerwMlbZgCyp,{variant:{options:[\"klpkDP01S\",\"SOVS6wYv0\",\"sSEnlJX8O\"],optionTitles:[\"Book a Call\",\"Book a Call Appear\",\"Book a Call Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerwMlbZgCyp,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...ArrowRightFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerwMlbZgCyp\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"170\",\"framerAutoSizeImages\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"SOVS6wYv0\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"sSEnlJX8O\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"EI1GoYoHd\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Bm6Ht1AgW\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"170\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./wMlbZgCyp.map","// Generated by Framer (cbbce5e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,Link,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Header from\"https://framerusercontent.com/modules/7PASp35dB7jsy7KHZTvN/sLlD2QLbzaE0iMZ6Owlb/QdP_ZpeoO.js\";import ButtonCursor from\"https://framerusercontent.com/modules/ZnPvt3p8tRHPv2g55vMm/N1fNa2LSWvMX3s3cAhgL/wMlbZgCyp.js\";const ButtonCursorFonts=getFonts(ButtonCursor);const HeaderFonts=getFonts(Header);const cycleOrder=[\"ExZTH8Y7U\",\"OSQ_WGDst\"];const serializationHash=\"framer-bElQ3\";const variantClassNames={ExZTH8Y7U:\"framer-v-kro1q2\",OSQ_WGDst:\"framer-v-1tbxk7q\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const P3rrsni2W=undefined;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={Main:\"ExZTH8Y7U\",Phone:\"OSQ_WGDst\"};const Variants=motion.create(React.Fragment);const getProps=({cursor,height,id,width,...props})=>{return{...props,P3rrsni2W:cursor??props.P3rrsni2W,variant:humanReadableVariantMap[props.variant]??props.variant??\"ExZTH8Y7U\"};};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,P3rrsni2W,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"ExZTH8Y7U\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"OSQ_WGDst\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-kro1q2\",className,classNames),\"data-framer-name\":\"Main\",layoutDependency:layoutDependency,layoutId:\"ExZTH8Y7U\",ref:refBinding,style:{...style},...addPropertyOverrides({OSQ_WGDst:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Link,{href:\"https://framer.link/bkumHqW\",motionChild:true,nodeId:\"JbEZGF9ol\",openInNewTab:true,scopeId:\"QAIAuI3Ju\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-12wd3aj framer-hmp3m4\",\"data-framer-cursor\":P3rrsni2W,\"data-framer-name\":\"CTA Spacer\",layoutDependency:layoutDependency,layoutId:\"JbEZGF9ol\",...addPropertyOverrides({OSQ_WGDst:{\"data-framer-cursor\":undefined}},baseVariant,gestureVariant),children:isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({OSQ_WGDst:{height:170,y:(componentViewport?.y||0)+0+(((componentViewport?.height||467)-0-567)/2+0+0)+165}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-16n0ko6-container\",layoutDependency:layoutDependency,layoutId:\"MJvyL8Cfp-container\",nodeId:\"MJvyL8Cfp\",rendersWithMotion:true,scopeId:\"QAIAuI3Ju\",children:/*#__PURE__*/_jsx(ButtonCursor,{height:\"100%\",id:\"MJvyL8Cfp\",layoutId:\"MJvyL8Cfp\",variant:matchVariant(\"sSEnlJX8O\"),width:\"100%\"})})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:54,width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0+(((componentViewport?.height||454)-0-554)/2+500+0),...addPropertyOverrides({OSQ_WGDst:{height:67,y:(componentViewport?.y||0)+0+(((componentViewport?.height||467)-0-567)/2+500+0)}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-b0ihxo-container\",layoutDependency:layoutDependency,layoutId:\"vA_A0Djxx-container\",nodeId:\"vA_A0Djxx\",rendersWithMotion:true,scopeId:\"QAIAuI3Ju\",children:/*#__PURE__*/_jsx(Header,{height:\"100%\",id:\"vA_A0Djxx\",layoutId:\"vA_A0Djxx\",style:{width:\"100%\"},variant:matchVariant(\"FWFIUTBLI\"),width:\"100%\",...addPropertyOverrides({OSQ_WGDst:{style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"zudRnyudI\")}},baseVariant,gestureVariant)})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-bElQ3.framer-hmp3m4, .framer-bElQ3 .framer-hmp3m4 { display: block; }\",\".framer-bElQ3.framer-kro1q2 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 1200px; }\",\".framer-bElQ3 .framer-12wd3aj { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: calc(var(--framer-viewport-height, 100vh) * 0.5); justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: 100%; }\",\".framer-bElQ3 .framer-16n0ko6-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-bElQ3 .framer-b0ihxo-container { flex: none; height: auto; position: relative; width: 100%; }\",\".framer-bElQ3.framer-v-1tbxk7q.framer-kro1q2 { width: 400px; }\",\".framer-bElQ3.framer-v-1tbxk7q .framer-b0ihxo-container { height: 67px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 454\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"OSQ_WGDst\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"P3rrsni2W\":\"cursor\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerQAIAuI3Ju=withCSS(Component,css,\"framer-bElQ3\");export default FramerQAIAuI3Ju;FramerQAIAuI3Ju.displayName=\"Footer\";FramerQAIAuI3Ju.defaultProps={height:454,width:1200};addPropertyControls(FramerQAIAuI3Ju,{variant:{options:[\"ExZTH8Y7U\",\"OSQ_WGDst\"],optionTitles:[\"Main\",\"Phone\"],title:\"Variant\",type:ControlType.Enum},P3rrsni2W:{title:\"Cursor\",type:ControlType.CustomCursor}});addFonts(FramerQAIAuI3Ju,[{explicitInter:true,fonts:[]},...ButtonCursorFonts,...HeaderFonts],{supportsExplicitInterCodegen:true});FramerQAIAuI3Ju.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(ButtonCursor,{},context),forwardLoader(Header,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerQAIAuI3Ju\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"OSQ_WGDst\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"P3rrsni2W\\\":\\\"cursor\\\"}\",\"framerIntrinsicHeight\":\"454\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QAIAuI3Ju.map","// Generated by Framer (fdc01c0)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,PropertyOverrides,RenderTarget,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS,withFlowFX}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Lenis from\"https://framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/qosszBZXoEqfEMp4XhZk/Lenis.js\";import DotCursor from\"#framer/local/canvasComponent/ar6L8acwZ/ar6L8acwZ.js\";import Footer from\"#framer/local/canvasComponent/QAIAuI3Ju/QAIAuI3Ju.js\";import Header from\"#framer/local/canvasComponent/QdP_ZpeoO/QdP_ZpeoO.js\";import ButtonCursor from\"#framer/local/canvasComponent/wMlbZgCyp/wMlbZgCyp.js\";const HeaderFonts=getFonts(Header);const LenisFonts=getFonts(Lenis);const FooterFonts=getFonts(Footer);const MotionDivWithFlowFX=withFlowFX(motion.div);const DotCursorFonts=getFonts(DotCursor);const ButtonCursorFonts=getFonts(ButtonCursor);const breakpoints={boFa6UDGw:\"(min-width: 810px) and (max-width: 1199.98px)\",oZBXpeKXZ:\"(max-width: 809.98px)\",uGQfYdaVz:\"(min-width: 1200px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-JpHYj\";const variantClassNames={boFa6UDGw:\"framer-v-18sbn7g\",oZBXpeKXZ:\"framer-v-45re38\",uGQfYdaVz:\"framer-v-1nh1usc\"};const transition1={damping:60,delay:0,mass:1,stiffness:400,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-JpHYj.framer-1f0lo5v, .framer-JpHYj .framer-1f0lo5v { display: block; }\",\".framer-JpHYj.framer-1nh1usc { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); align-content: center; align-items: center; background-color: var(--token-637c5f7d-7205-4ccb-a2d3-6ac167d4fc25, #000000); 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-JpHYj .framer-1k9w03y-container { flex: none; height: auto; order: -1000; position: relative; width: 100%; }\",\".framer-JpHYj .framer-gyswbb { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-JpHYj .framer-tj2zxy-container { bottom: 0px; flex: none; height: auto; order: 1002; position: absolute; right: 0px; width: auto; z-index: 1; }\",\".framer-JpHYj .framer-1llrvj1-container { flex: none; height: auto; order: 1003; position: relative; width: 100%; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={boFa6UDGw:\"(min-width: 810px) and (max-width: 1199.98px)\",oZBXpeKXZ:\"(max-width: 809.98px)\",uGQfYdaVz:\"(min-width: 1200px)\"};const humanReadableVariantMap={Desktop:\"uGQfYdaVz\",Phone:\"oZBXpeKXZ\",Tablet:\"boFa6UDGw\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"uGQfYdaVz\"};};const transition2={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const cursor={alignment:\"center\",component:DotCursor,offset:{x:0,y:0},placement:\"bottom\",transition:transition2,variant:\"lIDDAk6yS\"};const cursor1={component:ButtonCursor,transition:transition2,variant:\"IULQgfmQU\"};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({vs0vum:cursor,yd4lhn:cursor1});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"uGQfYdaVz\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-637c5f7d-7205-4ccb-a2d3-6ac167d4fc25, rgb(0, 0, 0)); } @media (min-width: 810px) and (max-width: 1199.98px) { :root { font-size: 87.5%; } } @media (max-width: 809.98px) { :root { font-size: 75%; } }\"}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{oZBXpeKXZ:{\"data-framer-cursor\":undefined}},children:/*#__PURE__*/_jsxs(MotionDivWithFlowFX,{...restProps,className:cx(scopingClassNames,\"framer-1nh1usc\",className),\"data-framer-cursor\":\"vs0vum\",\"data-layout-template\":true,flowEffectEnabled:true,flowEffectTransition:transition1,isNestedFlowEffect:false,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:54,width:\"100vw\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1k9w03y-container\",layout:\"position\",nodeId:\"pQvHPPkHb\",rendersWithMotion:true,scopeId:\"d0yqL45Kj\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{oZBXpeKXZ:{variant:matchVariant(\"zudRnyudI\")}},children:/*#__PURE__*/_jsx(Header,{height:\"100%\",id:\"pQvHPPkHb\",layoutId:\"pQvHPPkHb\",style:{width:\"100%\"},variant:matchVariant(\"FWFIUTBLI\"),width:\"100%\"})})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-gyswbb\"}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-tj2zxy-container\",\"data-framer-name\":\"Smooth Scroller\",isModuleExternal:true,layout:\"position\",name:\"Smooth Scroller\",nodeId:\"wdQiplmTz\",rendersWithMotion:true,scopeId:\"d0yqL45Kj\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{oZBXpeKXZ:{smooth:false}},children:/*#__PURE__*/_jsx(Lenis,{height:\"100%\",id:\"wdQiplmTz\",infinite:false,intensity:12,layoutId:\"wdQiplmTz\",name:\"Smooth Scroller\",orientation:\"vertical\",smooth:true,width:\"100%\"})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:454,width:\"100vw\",y:1054,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1llrvj1-container\",layout:\"position\",nodeId:\"g8RdMf63m\",rendersWithMotion:true,scopeId:\"d0yqL45Kj\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{oZBXpeKXZ:{variant:matchVariant(\"OSQ_WGDst\")}},children:/*#__PURE__*/_jsx(Footer,{height:\"100%\",id:\"g8RdMf63m\",layoutId:\"g8RdMf63m\",P3rrsni2W:\"yd4lhn\",style:{width:\"100%\"},variant:matchVariant(\"ExZTH8Y7U\"),width:\"100%\"})})})})]})}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"boFa6UDGw\":{\"layout\":[\"fixed\",\"fixed\"]},\"oZBXpeKXZ\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"uGQfYdaVz\":[\".framer-1k9w03y-container\",\".framer-tj2zxy-container\",\".framer-1llrvj1-container\"],\"boFa6UDGw\":[\".framer-1k9w03y-container\",\".framer-tj2zxy-container\",\".framer-1llrvj1-container\"],\"oZBXpeKXZ\":[\".framer-1k9w03y-container\",\".framer-tj2zxy-container\",\".framer-1llrvj1-container\"]}\n * @framerBreakpoints {\"uGQfYdaVz\":{\"min\":1200,\"canvasClassName\":\"framer-1nh1usc-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"boFa6UDGw\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-18sbn7g-override\",\"minHeight\":1000,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":14},\"oZBXpeKXZ\":{\"max\":809,\"canvasClassName\":\"framer-45re38-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":12}}\n * @framerDefaultVariant uGQfYdaVz\n * @framerLayoutTemplate true\n */const Framerd0yqL45Kj=withCSS(Component,css,\"framer-JpHYj\");export default Framerd0yqL45Kj;Framerd0yqL45Kj.displayName=\"Template\";Framerd0yqL45Kj.defaultProps={height:1e3,width:1200};addFonts(Framerd0yqL45Kj,[{explicitInter:true,fonts:[]},...HeaderFonts,...LenisFonts,...FooterFonts,...DotCursorFonts,...ButtonCursorFonts],{supportsExplicitInterCodegen:true});Framerd0yqL45Kj.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Header,{},context),forwardLoader(Footer,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerd0yqL45Kj\",\"slots\":[],\"annotations\":{\"framerLayoutTemplate\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerHitTargets\":\"{\\\"uGQfYdaVz\\\":[\\\".framer-1k9w03y-container\\\",\\\".framer-tj2zxy-container\\\",\\\".framer-1llrvj1-container\\\"],\\\"boFa6UDGw\\\":[\\\".framer-1k9w03y-container\\\",\\\".framer-tj2zxy-container\\\",\\\".framer-1llrvj1-container\\\"],\\\"oZBXpeKXZ\\\":[\\\".framer-1k9w03y-container\\\",\\\".framer-tj2zxy-container\\\",\\\".framer-1llrvj1-container\\\"]}\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"boFa6UDGw\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"oZBXpeKXZ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerBreakpoints\":\"{\\\"uGQfYdaVz\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-1nh1usc-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"boFa6UDGw\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-18sbn7g-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":14},\\\"oZBXpeKXZ\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-45re38-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":12}}\",\"framerIntrinsicHeight\":\"1000\",\"framerDefaultVariant\":\"uGQfYdaVz\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport Template1 from \"https://framerusercontent.com/modules/SFpQFWTjMvOdKiLXENdK/YUWgIBclfpqmFl00gTKQ/d0yqL45Kj.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {clp4DXNEA: \"service-trigger-2\", JFsvWQkru: \"service-trigger3\", jsqWy6Y_r: \"5\", Mt8VcnYyH: \"work-section\", nj2b1ipUS: \"7\", OI_ogFYRR: \"service-trigger-1\", UVZEGUyRo: \"1\", Vgcun3isq: \"2\", VGWVbuVJ3: \"3\", VqAtX9nzb: \"services-section\", VVMBxlqk7: \"about-section\", WombLA3pi: \"4\", y3rnAoUDR: \"6\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/bsdEz5BraRKxUkRmMJEu/1hWl9ffvQV2STyRqnMXf/augiA20Il.js\")), path: \"/\"}, Qc61o3vNR: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Fi0ZGIOxkANuxLdiI7eF/J41dWx1i5BQV0oBfDN46/Qc61o3vNR.js\")), path: \"/work\"}, XeyHMIXnX: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pr6xdpXEeYSB1RAXi4Kn/Kl0gc7kIk9SFC7nxTHlW/XeyHMIXnX.js\")), path: \"/contact\"}, UGn9BmOuQ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/lc8a0SZfKWJTtuCeMBtN/D1cUx5WuixFeRXR3MWni/UGn9BmOuQ.js\")), path: \"/404\"}}\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 = \"c77a2aa18abdb6d2d0f9ecefd181d4d51d419ce2d27de44526168848f2fbf944\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"Qc61o3vNR\":\r\ncase \"XeyHMIXnX\":\r\ncase \"UGn9BmOuQ\":\r\nreturn React.createElement(Template1, {...props, key: \"Template1\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"Qc61o3vNR\":\r\ncase \"XeyHMIXnX\":\r\ncase \"UGn9BmOuQ\":\r\nreturn [{hash: \"45re38\", mediaQuery: \"(max-width: 809.98px)\"}, {hash: \"18sbn7g\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1nh1usc\", mediaQuery: \"(min-width: 1200px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\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/lc8a0SZfKWJTtuCeMBtN/D1cUx5WuixFeRXR3MWni/UGn9BmOuQ.js\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://relload.framer.website\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/Q74MFx2K23ViC3DeZN0e/xAAkGd02j0ebN0yhJdxb/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, disableCustomCode: false, 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\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {global: {enter: {mask: {angle: 90, type: \"wipe\", width: \"100%\"}, opacity: 1, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {bounce: 0.2, damping: 60, delay: 0, duration: 0.6, durationBasedSpring: false, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"spring\"}, x: \"0px\", y: \"0px\"}}, routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\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\t\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\t;(function () {\r\n\t\t\tif (!isBrowser) return\r\n\r\n\t\t\tReact.startTransition(() => {\r\n\t\t\t\tReactDOM.hydrateRoot(\r\n\t\t\t\t\tdocument.getElementById(\"__framer-badge-container\"),\r\n\t\t\t\t\tReact.createElement(React.Suspense, {}, React.createElement(React.lazy(() => import(\"__framer-badge\"))))\r\n\t\t\t\t)\r\n\t\t\t})\r\n\t\t})()\r\n\t"],"mappings":"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"}