{"version":3,"file":"shared-lib.Bim1mBAV.mjs","names":["fonts","css","className","fonts","css","className"],"sources":["https:/framerusercontent.com/modules/nJ32wcsidfHkQLz8KnxQ/CyUi8zC732vFldHPhMcB/ao6vEw8CX.js","https:/framerusercontent.com/modules/yo4NaN5FKmb3sGhvNCOI/PtKwzpzrELd6KbkCGQWy/HhLr_TFUZ.js","https:/framerusercontent.com/modules/4Z8SdkhUvHYUxj51xvbE/VzsluYJ5Kn5pEnlmLdHW/vlUd825be.js","https:/framerusercontent.com/modules/3vXl0r7g2nXxLoMXlBwk/Ug6dgVPLoZQ79hIkwbwi/siteMetadata.js"],"sourcesContent":["import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-regular\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjDw-qWSRToK8EPg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-ext-XOTVL7ZR.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-6LOMBC2V.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-ext-WXWSJXLB.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-YRST7ODZ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://app.framerstatic.com/Inter-Bold.latin-ext-BASA5UL3.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Bold.latin-UCM45LQF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",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://app.framerstatic.com/Inter-Bold.vietnamese-OEVJMXEP.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-ext-PEYDHC3S.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-7EIL6JWG.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-ext-3DJOYQMH.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-TJBTLTT7.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",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://app.framerstatic.com/Inter-BoldItalic.latin-ext-FVPCPRBJ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-5ZFQS4XK.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",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://app.framerstatic.com/Inter-BoldItalic.vietnamese-W2625PGF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-ext-YDGMJOJO.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-BFOVMAQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-ext-4KOU3AHC.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-OJTBJNE6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",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://app.framerstatic.com/Inter-Italic.latin-ext-H4B22QN6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Italic.latin-2DWX32EN.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",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://app.framerstatic.com/Inter-Italic.vietnamese-TYMT6CKW.woff2\",weight:\"400\"}]}];export const css=['.framer-WDIQG .framer-styles-preset-igt7au:not(.rich-text-wrapper), .framer-WDIQG .framer-styles-preset-igt7au.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.02em; --framer-line-height: 1.8em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-fd54a91d-2c97-4609-acbc-244da5b6b983, #71717a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-WDIQG\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (722666c)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-regular\",\"GF;Inter Tight-700\",\"GF;Inter Tight-700italic\",\"GF;Inter Tight-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjDw-qWSRToK8EPg.woff2\",weight:\"400\"},{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mj6AiqWSRToK8EPg.woff2\",weight:\"700\"},{family:\"Inter Tight\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGShv5HMAFg6IuGlBNMjxLsC66ZMtb8hyW62x0ylGC5SgqoUPvi5.woff2\",weight:\"700\"},{family:\"Inter Tight\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGShv5HMAFg6IuGlBNMjxLsC66ZMtb8hyW62x0xCHy5SgqoUPvi5.woff2\",weight:\"400\"}]}];export const css=['.framer-QGpW6 .framer-styles-preset-11zorzc:not(.rich-text-wrapper), .framer-QGpW6 .framer-styles-preset-11zorzc.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-italic: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.03em; --framer-line-height: 1.8em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, #09090b); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-QGpW6 .framer-styles-preset-11zorzc:not(.rich-text-wrapper), .framer-QGpW6 .framer-styles-preset-11zorzc.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-italic: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.03em; --framer-line-height: 1.8em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, #09090b); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-QGpW6 .framer-styles-preset-11zorzc:not(.rich-text-wrapper), .framer-QGpW6 .framer-styles-preset-11zorzc.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-italic: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.03em; --framer-line-height: 1.8em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, #09090b); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-QGpW6\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (be619af)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Plus Jakarta Sans-600\",\"GF;Plus Jakarta Sans-700\",\"GF;Plus Jakarta Sans-700italic\",\"GF;Plus Jakarta Sans-600italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Plus Jakarta Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/plusjakartasans/v8/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_d0nNTxXUEKi4Rw.woff2\",weight:\"600\"},{family:\"Plus Jakarta Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/plusjakartasans/v8/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_TknNTxXUEKi4Rw.woff2\",weight:\"700\"},{family:\"Plus Jakarta Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/plusjakartasans/v8/LDIZaomQNQcsA88c7O9yZ4KMCoOg4KozySKCdSNG9OcqYQ3CDh_VMq2oR82k.woff2\",weight:\"700\"},{family:\"Plus Jakarta Sans\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/plusjakartasans/v8/LDIZaomQNQcsA88c7O9yZ4KMCoOg4KozySKCdSNG9OcqYQ37Dh_VMq2oR82k.woff2\",weight:\"600\"}]}];export const css=['.framer-ANHvW .framer-styles-preset-1nqpcik:not(.rich-text-wrapper), .framer-ANHvW .framer-styles-preset-1nqpcik.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 48px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: -0.04em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, #09090b); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-ANHvW .framer-styles-preset-1nqpcik:not(.rich-text-wrapper), .framer-ANHvW .framer-styles-preset-1nqpcik.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 38px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: -0.04em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, #09090b); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-ANHvW .framer-styles-preset-1nqpcik:not(.rich-text-wrapper), .framer-ANHvW .framer-styles-preset-1nqpcik.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 28px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: -0.04em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, #09090b); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-ANHvW\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (c2a8602)\nexport default function metadata(params,activeLocale){return{customHTMLBodyStart:'<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-5879FZ6P\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->\\n\\n<!-- <script>\\n  window.addEventListener(\\'DOMContentLoaded\\', () => {\\n    const utmParams = window.location.search;\\n    if (!utmParams) return;\\n\\n    // Replace with your actual destination domain or part of URL\\n    const targetDomain = \\'https://portal.malloy.sg\\'; \\n\\n    // Find all anchor links pointing to your destination\\n    document.querySelectorAll(`a[href*=\"${targetDomain}\"]`).forEach(link => {\\n      const url = new URL(link.href);\\n      url.search = utmParams;\\n      link.href = url.toString();\\n    });\\n  });\\n</script> -->\\n\\n\\n<!-- <script>\\n(function () {\\n  const UTM_KEYS = [\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"];\\n\\n  const hasAny = (usp) => Array.from(usp.keys()).length > 0;\\n\\n  const pickUtm = (search) => {\\n    const src = new URLSearchParams(search || \"\");\\n    const utm = new URLSearchParams();\\n    UTM_KEYS.forEach(k => { if (src.has(k)) utm.set(k, src.get(k)); });\\n    return utm;\\n  };\\n\\n  const mergeIntoUrl = (href, utm) => {\\n    if (!hasAny(utm)) return href;\\n    const url = new URL(href, location.origin);\\n    if (url.origin !== location.origin) return href;         // internal only\\n    const merged = new URLSearchParams(url.search);\\n    utm.forEach((v,k) => merged.set(k,v));\\n    url.search = merged.toString();\\n    return url.toString();\\n  };\\n\\n  const applyToAnchor = (a, utm) => {\\n    if (!a || !a.href) return;\\n    try {\\n      const updated = mergeIntoUrl(a.href, utm);\\n      if (updated !== a.href) a.href = updated;\\n    } catch {}\\n  };\\n\\n  const applyToAllAnchors = (root, utm) => {\\n    root.querySelectorAll(\\'a[href]\\').forEach(a => applyToAnchor(a, utm));\\n  };\\n\\n  const reapplySoon = (utm) => setTimeout(() => applyToAllAnchors(document, utm), 0);\\n\\n  document.addEventListener(\"DOMContentLoaded\", () => {\\n    // 1) Ensure UTMs appear in the current URL\\n    const utm = pickUtm(location.search);\\n    if (hasAny(utm)) {\\n      const current = new URL(location.href);\\n      const q = new URLSearchParams(current.search);\\n      let changed = false;\\n      utm.forEach((v,k) => { if (q.get(k) !== v) { q.set(k,v); changed = true; }});\\n      if (changed) {\\n        current.search = q.toString();\\n        history.replaceState(history.state, \"\", current.toString());\\n      }\\n    }\\n\\n    const UTM = pickUtm(location.search); // read again after potential replace\\n\\n    // 2) Initial pass\\n    applyToAllAnchors(document, UTM);\\n\\n    // 3) Update links created after load (Framer hydration / new sections)\\n    const mo = new MutationObserver(muts => {\\n      for (const m of muts) {\\n        m.addedNodes.forEach(node => {\\n          if (node.nodeType !== 1) return;\\n          if (node.tagName === \"A\") applyToAnchor(node, UTM);\\n          else applyToAllAnchors(node, UTM);\\n        });\\n      }\\n    });\\n    mo.observe(document.body, { childList: true, subtree: true });\\n\\n    // 4) Keep UTMs on anchor clicks (defensive)\\n    document.addEventListener(\"click\", (e) => {\\n      const a = e.target && e.target.closest && e.target.closest(\\'a[href]\\');\\n      if (!a) return;\\n      applyToAnchor(a, UTM);\\n    }, true);\\n\\n    // 5) Re-apply after SPA navigations\\n    const _push = history.pushState;\\n    const _replace = history.replaceState;\\n    history.pushState = function (state, title, url) {\\n      const r = _push.apply(this, arguments);\\n      reapplySoon(UTM);\\n      return r;\\n    };\\n    history.replaceState = function (state, title, url) {\\n      const r = _replace.apply(this, arguments);\\n      reapplySoon(UTM);\\n      return r;\\n    };\\n    window.addEventListener(\"popstate\", () => reapplySoon(UTM));\\n  });\\n})();\\n</script>\\n\\n\\n\\n<script>\\n  window.addEventListener(\\'DOMContentLoaded\\', () => {\\n    const currentParams = new URLSearchParams(window.location.search);\\n    if (![...currentParams.keys()].length) return; // no UTM params\\n\\n    const targetHosts = [\\'portal.malloy.sg\\', \\'nexus.malloy.sg\\'];\\n\\n    document.querySelectorAll(\\'a[href]\\').forEach(link => {\\n      try {\\n        const url = new URL(link.href, window.location.origin);\\n        if (targetHosts.includes(url.hostname)) {\\n          const updatedParams = new URLSearchParams(url.search);\\n\\n          // merge existing params with current page params\\n          currentParams.forEach((value, key) => {\\n            updatedParams.set(key, value);\\n          });\\n\\n          url.search = updatedParams.toString();\\n          link.href = url.toString();\\n        }\\n      } catch (err) {\\n        // ignore invalid hrefs\\n      }\\n    });\\n  });\\n</script> -->\\n\\n\\n <script>\\n(function () {\\n  // --- Config\\n  const UTM_KEYS = [\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"];\\n  const COOKIE = \"malloy_utm\";\\n  const COOKIE_MAX_AGE = 60*60*24*90; // 90 days\\n  const TARGET_HOSTS = new Set([\"portal.malloy.sg\", \"nexus.malloy.sg\"]); // add more if needed\\n\\n  // --- Helpers\\n  const hasAny = (usp) => Array.from(usp.keys()).length > 0;\\n\\n  const pickUtm = (search) => {\\n    const src = new URLSearchParams(search || \"\");\\n    const out = new URLSearchParams();\\n    UTM_KEYS.forEach(k => { if (src.has(k)) out.set(k, src.get(k)); });\\n    return out;\\n  };\\n\\n  const serialize = (usp) => {\\n    const ordered = new URLSearchParams();\\n    UTM_KEYS.forEach(k => { if (usp.has(k)) ordered.set(k, usp.get(k)); });\\n    return ordered.toString();\\n  };\\n\\n  const saveCookie = (usp) => {\\n    if (!hasAny(usp)) return;\\n    document.cookie = `${COOKIE}=${encodeURIComponent(serialize(usp))}; Path=/; Max-Age=${COOKIE_MAX_AGE}; Domain=.malloy.sg; SameSite=Lax`;\\n  };\\n\\n  const readCookie = () => {\\n    const m = document.cookie.match(new RegExp(`(?:^|; )${COOKIE}=([^;]*)`));\\n    if (!m) return new URLSearchParams();\\n    try { return new URLSearchParams(decodeURIComponent(m[1])); } catch { return new URLSearchParams(); }\\n  };\\n\\n  const getUtm = () => {\\n    const fromUrl = pickUtm(location.search);\\n    if (hasAny(fromUrl)) return fromUrl;\\n    return readCookie();\\n  };\\n\\n  const isSameOrigin = (u) => u.origin === location.origin;\\n  const isTargetSubdomain = (u) => TARGET_HOSTS.has(u.hostname);\\n\\n  const mergeIntoUrl = (href, utm) => {\\n    if (!hasAny(utm)) return href;\\n    const url = new URL(href, location.origin);\\n    if (!(isSameOrigin(url) || isTargetSubdomain(url))) return href; // only malloy.sg + listed subdomains\\n    const merged = new URLSearchParams(url.search);\\n    utm.forEach((v,k) => merged.set(k, v));\\n    url.search = merged.toString();\\n    return url.toString();\\n  };\\n\\n  const applyToAnchor = (a, utm) => {\\n    if (!a || !a.href) return;\\n    try {\\n      const updated = mergeIntoUrl(a.href, utm);\\n      if (updated !== a.href) a.href = updated;\\n    } catch {}\\n  };\\n\\n  const applyToAllAnchors = (root, utm) => {\\n    root.querySelectorAll(\\'a[href]\\').forEach(a => applyToAnchor(a, utm));\\n  };\\n\\n  const reapplySoon = (utm) => setTimeout(() => applyToAllAnchors(document, utm), 0);\\n\\n  // --- Init\\n  document.addEventListener(\"DOMContentLoaded\", () => {\\n    // 1) Capture UTMs (URL > cookie), persist to cookie for subdomain hops\\n    const captured = getUtm();\\n    if (hasAny(captured)) saveCookie(captured);\\n\\n    // 2) Ensure current URL shows UTMs (no reload)\\n    if (hasAny(captured)) {\\n      const cur = new URL(location.href);\\n      const q = new URLSearchParams(cur.search);\\n      let changed = false;\\n      captured.forEach((v,k) => { if (q.get(k) !== v) { q.set(k, v); changed = true; }});\\n      if (changed) {\\n        cur.search = q.toString();\\n        history.replaceState(history.state, \"\", cur.toString());\\n      }\\n    }\\n\\n    // Re-read after possible replaceState\\n    const UTM = pickUtm(location.search);\\n\\n    // 3) Initial pass on existing anchors\\n    applyToAllAnchors(document, UTM);\\n\\n    // 4) Update links created after load (Framer hydration / dynamic blocks)\\n    const mo = new MutationObserver(muts => {\\n      for (const m of muts) {\\n        m.addedNodes.forEach(node => {\\n          if (node.nodeType !== 1) return;\\n          if (node.tagName === \"A\") applyToAnchor(node, UTM);\\n          else applyToAllAnchors(node, UTM);\\n        });\\n      }\\n    });\\n    mo.observe(document.body, { childList: true, subtree: true });\\n\\n    // 5) Defensive: ensure the clicked anchor has UTMs\\n    document.addEventListener(\"click\", (e) => {\\n      const a = e.target && e.target.closest && e.target.closest(\\'a[href]\\');\\n      if (!a) return;\\n      applyToAnchor(a, UTM);\\n    }, true);\\n\\n    // 6) Re-apply after SPA navigations\\n    const _push = history.pushState;\\n    const _replace = history.replaceState;\\n    history.pushState = function (state, title, url) {\\n      const r = _push.apply(this, arguments);\\n      reapplySoon(UTM);\\n      return r;\\n    };\\n    history.replaceState = function (state, title, url) {\\n      const r = _replace.apply(this, arguments);\\n      reapplySoon(UTM);\\n      return r;\\n    };\\n    window.addEventListener(\"popstate\", () => reapplySoon(UTM));\\n  });\\n})();\\n</script>\\n',customHTMLHeadEnd:'<!-- <script type=\"module\" src=\"https://assets.sandbox.cello.so/attribution/latest/cello-attribution.js\" async></script> -->\\n\\n<script type=\"module\" src=\"https://assets.cello.so/attribution/latest/cello-attribution.js\" async=\"\"></script>\\n\\n<!-- Google tag (gtag.js) -->\\n<script async=\"\" src=\"https://www.googletagmanager.com/gtag/js?id=G-JL6ZQL3EFB\"></script>\\n<script>\\n  window.dataLayer = window.dataLayer || [];\\n  function gtag(){dataLayer.push(arguments);}\\n  gtag(\\'js\\', new Date());\\n\\n  gtag(\\'config\\', \\'G-JL6ZQL3EFB\\');\\n</script>\\n\\n<!-- Start Crisp Code -->\\n<!-- <script type=\"text/javascript\">window.$crisp=[];window.CRISP_WEBSITE_ID=\"9e0ac23b-c0ac-44a6-a481-7f67ca79b772\";(function(){d=document;s=d.createElement(\"script\");s.src=\"https://client.crisp.chat/l.js\";s.async=1;d.getElementsByTagName(\"head\")[0].appendChild(s);})();</script> -->\\n<!-- End Crisp Code -->\\n\\n<!-- Twitter conversion tracking base code -->\\n<script>\\n!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);\\n},s.version=\\'1.1\\',s.queue=[],u=t.createElement(n),u.async=!0,u.src=\\'https://static.ads-twitter.com/uwt.js\\',\\na=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,\\'script\\');\\ntwq(\\'config\\',\\'on8w9\\');\\n</script>\\n<!-- End Twitter conversion tracking base code -->\\n\\n\\n<!-- TikTok Pixel Code Start -->\\n<script>\\n!function (w, d, t) {\\n  w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=[\"page\",\"track\",\"identify\",\"instances\",\"debug\",\"on\",\"off\",\"once\",\"ready\",\"alias\",\"group\",\"enableCookie\",\"disableCookie\",\"holdConsent\",\"revokeConsent\",\"grantConsent\"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(\\nvar e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r=\"https://analytics.tiktok.com/i18n/pixel/events.js\",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement(\"script\")\\n;n.type=\"text/javascript\",n.async=!0,n.src=r+\"?sdkid=\"+e+\"&lib=\"+t;e=document.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(n,e)};\\n\\n\\n  ttq.load(\\'CPA3FFJC77U7F282T4C0\\');\\n  ttq.page();\\n}(window, document, \\'ttq\\');\\n</script>\\n<!-- TikTok Pixel Code End -->\\n\\n<script>\\n  window.intercomSettings = {\\n    api_base: \"https://api-iam.intercom.io\",\\n    app_id: \"bxyo66yj\",\\n  };\\n</script>\\n\\n\\n<script>\\n  // We pre-filled your app ID in the widget URL: \\'https://widget.intercom.io/widget/bxyo66yj\\'\\n  (function(){var w=window;var ic=w.Intercom;if(typeof ic===\"function\"){ic(\\'reattach_activator\\');ic(\\'update\\',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement(\\'script\\');s.type=\\'text/javascript\\';s.async=true;s.src=\\'https://widget.intercom.io/widget/bxyo66yj\\';var x=d.getElementsByTagName(\\'script\\')[0];x.parentNode.insertBefore(s,x);};if(document.readyState===\\'complete\\'){l();}else if(w.attachEvent){w.attachEvent(\\'onload\\',l);}else{w.addEventListener(\\'load\\',l,false);}}})();\\n</script>\\n\\n<script type=\"text/javascript\">\\n    (function(c,l,a,r,i,t,y){\\n        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};\\n        t=l.createElement(r);t.async=1;t.src=\"https://www.clarity.ms/tag/\"+i;\\n        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\\n    })(window, document, \"clarity\", \"script\", \"rxujzh0698\");\\n</script>',customHTMLHeadStart:\"<!-- 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-5879FZ6P');</script>\\n<!-- End Google Tag Manager -->\\n\\n<!-- Meta Pixel Code -->\\n<script>\\n!function(f,b,e,v,n,t,s)\\n{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};\\nif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\\nn.queue=[];t=b.createElement(e);t.async=!0;\\nt.src=v;s=b.getElementsByTagName(e)[0];\\ns.parentNode.insertBefore(t,s)}(window, document,'script',\\n'https://connect.facebook.net/en_US/fbevents.js');\\nfbq('init', '988527569515512');\\nfbq('track', 'PageView');\\n</script>\\n<noscript></noscript>\",description:\"We built tools to make creating video content easier.\",favicon:\"https://framerusercontent.com/assets/um7QwGkahMNldLahFS4QXx6b4w.png\",robots:\"max-image-preview:large\",title:\"Malloy - Making Video Creation Easy for Everyone\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}