{"version":3,"file":"shared-lib.CUck-jQg.mjs","names":[],"sources":["https:/framerusercontent.com/modules/A35n3Hty7rU91O4A9ETr/39e0YfhOTiaaNIFrmmtL/siteMetadata.js"],"sourcesContent":["// Generated by Framer (506606a)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:'<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-5XWMQX5S\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->\\n\\n<link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@500;600&amp;display=swap\" rel=\"stylesheet\">\\n<style>\\n  :root {\\n    --launcher-bottom: 68px;\\n    --launcher-right: 68px;\\n    --bubble-offset: 50px; /* distance above the launcher */\\n  }\\n\\n  body {\\n    margin: 0;\\n    background: #f3f4f7;\\n    font-family: \"Inter\", sans-serif;\\n  }\\n\\n  /* === Launcher (limbs, ring, etc.) stays in normal stacking === */\\n  .chatbot-wrapper {\\n    position: fixed;\\n    bottom: var(--launcher-bottom);\\n    right: var(--launcher-right);\\n  }\\n\\n  /* utility to instantly hide */\\n  .is-hidden { display: none !important; }\\n\\n  .blob-limb {\\n    position: absolute;\\n    width: 48px;\\n    height: 14px;\\n    background: #6a3df4;\\n    border-radius: 20px;\\n    transform: translate(-50%, -50%) scale(0);\\n    z-index: 1;\\n    filter: drop-shadow(0 2px 3px rgba(0,0,0,.15));\\n  }\\n  .blob-limb::after {\\n    content: \"\";\\n    position: absolute;\\n    width: 12px;\\n    height: 12px;\\n    background: #6a3df4;\\n    border-radius: 50%;\\n  }\\n\\n  /* === ARMS === */\\n  .left-arm { left: 50%; top: 50%; transform-origin: 90% 60%; }\\n  .left-arm::after { right: -10px; top: -3px; }\\n  .right-arm { left: 50%; top: 50%; transform-origin: 10% 60%; }\\n  .right-arm::after { left: -10px; top: -3px; }\\n\\n  /* === LEGS === */\\n  .left-leg, .right-leg {\\n    width: 14px;\\n    height: 34px;\\n    background: #6a3df4;\\n    border-radius: 10px;\\n    position: absolute;\\n    transform: translate(-50%, -50%) scale(0);\\n    z-index: 0;\\n    filter: drop-shadow(0 2px 3px rgba(0,0,0,.15));\\n  }\\n  .left-leg { right: 0px; top: 18px; transform-origin: top center; }\\n  .right-leg { left: 10px; top: 18px; transform-origin: top center; }\\n\\n  .wave-ring {\\n    position: absolute;\\n    top: 50%;\\n    left: 50%;\\n    width: 52px;\\n    height: 52px;\\n    transform: translate(-50%, -50%) scale(0);\\n    border: 0.2px solid #6a3df4;\\n    border-radius: 50%;\\n    opacity: 0;\\n    z-index: 0;\\n  }\\n\\n  /* === Overlay just for the chat bubble (sits on top) === */\\n  .chat-bubble-layer {\\n    position: fixed;\\n    bottom: var(--launcher-bottom);\\n    right: var(--launcher-right);\\n    z-index: 2147483647; /* only this layer is “always on top” */\\n    pointer-events: none; /* lets clicks fall through to the launcher */\\n  }\\n\\n  .bubble {\\n    position: absolute;          /* stays absolute as requested */\\n    bottom: var(--bubble-offset);\\n    right: 0;\\n    background: #fff;\\n    border-radius: 15px 15px 6px 15px;\\n    box-shadow: 0 4px 12px rgba(0,0,0,.1);\\n    padding: 10px 15px;\\n    font-size: 15px;\\n    font-weight: 500;\\n    color: #222;\\n    min-width: 200px;\\n    opacity: 0;\\n    transform: translateY(20px);\\n    transition: opacity .6s ease, transform .6s ease;\\n    white-space: nowrap;\\n  }\\n  .bubble.show { opacity: 1; transform: translateY(0); }\\n\\n  /* === ANIMATIONS === */\\n  .chatbot-wrapper.wave .left-arm {\\n    animation:\\n      armPop 0.9s cubic-bezier(.55,1.5,.55,1) forwards,\\n      armWave 1.8s ease-in-out 0.9s 4 alternate,\\n      armRetract 0.9s ease-in 8.5s forwards;\\n  }\\n  .chatbot-wrapper.wave .wave-ring {\\n    animation: wavePulse 1.8s ease-out 0.9s 4;\\n  }\\n  .chatbot-wrapper.wave .right-arm,\\n  .chatbot-wrapper.wave .left-leg,\\n  .chatbot-wrapper.wave .right-leg {\\n    animation:\\n      armPopRight 0.9s cubic-bezier(.55,1.5,.55,1) forwards,\\n      armRetract 0.9s ease-in 8.5s forwards;\\n  }\\n\\n  @keyframes wavePulse {\\n    0% { transform: translate(-50%, -50%) scale(1); opacity: 1; }\\n    100% { transform: translate(-50%, -50%) scale(1.6); opacity: 0; }\\n  }\\n  @keyframes armPop {\\n    0% { transform: translate(-50%, -50%) scale(0); }\\n    60% { transform: translate(-65%, -55%) scale(1.1); }\\n    100% { transform: translate(-70%, -60%) scale(1); }\\n  }\\n  @keyframes armWave {\\n    0% { transform: translate(-70%, -60%) scale(1) rotate(0); }\\n    20% { transform: translate(-70%, -60%) scale(1.05) rotate(15deg); }\\n    40% { transform: translate(-70%, -60%) scale(1) rotate(-12deg); }\\n    60% { transform: translate(-70%, -60%) scale(1.05) rotate(10deg); }\\n    80% { transform: translate(-70%, -60%) scale(1) rotate(-8deg); }\\n    100% { transform: translate(-70%, -60%) scale(1) rotate(0); }\\n  }\\n  @keyframes armPopRight {\\n    0% { transform: translate(-50%, -50%) scale(0); }\\n    100% { transform: translate(-30%, -60%) scale(1); }\\n  }\\n  @keyframes armRetract {\\n    0% { opacity: 1; }\\n    100% { transform: translate(-50%, -50%) scale(0); opacity: 0; }\\n  }\\n\\n  /* Keep the actual Certainly webchat on top when opened */\\n  [data-certainly-webchat-root],\\n  .certainly-webchat-container,\\n  iframe[src*=\"certainly.io\"] {\\n    z-index: 2147483647 !important;\\n  }\\n</style>\\n\\n  <!-- Limbs/launcher -->\\n  <div class=\"chatbot-wrapper\" role=\"button\" aria-label=\"Open chat\">\\n    <div class=\"blob-limb left-arm\"></div>\\n    <div class=\"blob-limb right-arm\"></div>\\n    <div class=\"left-leg\"></div>\\n    <div class=\"right-leg\"></div>\\n    <div class=\"wave-ring\"></div>\\n  </div>\\n\\n  <!-- Bubble overlay (absolute inside, but on a separate high-z layer) -->\\n  <div class=\"chat-bubble-layer\">\\n    <div class=\"bubble\">👋 Hi! How can I help you?</div>\\n  </div>\\n\\n  <!-- Certainly widget -->\\n  <script src=\"https://dev.certainly.io/sdk/webchat.js\"></script>\\n  <script>\\n    // Initialize Certainly bot\\n    const certainlyWidget = initCertainlyWidget({\\n      id: \"d3f6714c-f380-4065-acee-0e8c07dcb47a\",\\n      env: \"test\"\\n    });\\n\\n    // Elements\\n    const wrapper = document.querySelector(\\'.chatbot-wrapper\\');\\n    const bubble = document.querySelector(\\'.bubble\\');\\n    const bubbleLayer = document.querySelector(\\'.chat-bubble-layer\\');\\n\\n    function showLauncher() {\\n      wrapper.classList.remove(\\'is-hidden\\');\\n      bubbleLayer.classList.remove(\\'is-hidden\\');\\n    }\\n    function hideLauncher() {\\n      // stop the bubble animation and hide everything instantly\\n      bubble.classList.remove(\\'show\\');\\n      wrapper.classList.add(\\'is-hidden\\');\\n      bubbleLayer.classList.add(\\'is-hidden\\');\\n    }\\n\\n    function waveAnimation() {\\n      wrapper.classList.add(\\'wave\\');\\n      setTimeout(() => bubble.classList.add(\\'show\\'), 800);\\n      setTimeout(() => bubble.classList.remove(\\'show\\'), 9500);\\n      setTimeout(() => wrapper.classList.remove(\\'wave\\'), 10000);\\n    }\\n\\n    window.addEventListener(\\'load\\', () => setTimeout(waveAnimation, 1000));\\n\\n    // Hide immediately on click (prevents any flicker), then open\\n    wrapper.addEventListener(\\'click\\', () => {\\n      hideLauncher();\\n      if (certainlyWidget && typeof certainlyWidget.open === \\'function\\') {\\n        certainlyWidget.open();\\n      } else {\\n        console.warn(\"Certainly widget not initialized yet.\");\\n      }\\n    });\\n\\n    // Also hide/show using official widget events (covers programmatic open/close)\\n    window.addEventListener(\\'onWidgetOpened\\', hideLauncher);\\n    window.addEventListener(\\'onWidgetClosed\\', showLauncher);\\n    // (Event names per Certainly Web SDK docs.)\\n  </script>',customHTMLHeadEnd:\"<!-- Google Tag Manager -->\\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-5XWMQX5S');</script>\\n<!-- End Google Tag Manager -->\",customHTMLHeadStart:'<!-- add custom viewport for iphone -->\\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\\n<!-- End add custom viewport for iphone -->',description:\"Explore Certainly for versatile AI agents, integrations and chatbot solutions across industries, enhancing customer engagement and streamlining operations.\",favicon:\"https://framerusercontent.com/assets/LEVRlBk04HRJl3iNj6pTrfbY.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/mXh4l8IsjE2xjKAJKIuK9fygMA.png\",title:\"Certainly – All-in-one AI solution\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"oDACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAA0pO,kBAAkB;;;;;;iCAA4a,oBAAoB;;6CAAoM,YAAY,8JAA8J,QAAQ,oEAAoE,OAAO,0BAA0B,YAAY,sEAAsE,MAAM,qCAAqC"}