PageSourceSearch

https://markage360.com/script.js?v=20260930-home-h1-footer-countries-1

js markage360.com collected 2026-10-07 19:06:34 UTC 323,007 bytes, 730 lines download raw bytes

1(function(){try{if(typeof document<"u"&&!document.querySelector("script[data-ma-dialog]")){var e=document.createElement("script");e.src="/ma-dialog.js?v=20260712-madialog-1",e.setAttribute("data-ma-dialog",""),(document.head||document.documentElement).appendChild(e)}}catch{}})();const MA_VISITOR_STORE_KEY="ma360.visitor.v1";function maReadVisitorTrail(){try{const e=JSON.parse(window.localStorage.getItem(MA_VISITOR_STORE_KEY)||"null");return e&&typeof e=="object"?e:null}catch{return null}}(function(){try{if(/^\/(cms|ops)(\/|$)/.test(window.location.pathname))return;const t=new Date,r=maReadVisitorTrail()||{firstSeenAt:t.toISOString(),landingPage:window.location.pathname,referrer:"",utmFirst:null,utm:null,gclid:"",journey:[]};if(Array.isArray(r.journey)||(r.journey=[]),!r.referrer&&document.referrer)try{new URL(document.referrer).host!==window.location.host&&(r.referrer=document.referrer.slice(0,300))}catch{}const a=new URLSearchParams(window.location.search),o={};["source","medium","campaign","term","content"].forEach(l=>{const d=String(a.get(`utm_${l}`)||"").trim();d&&(o[l]=d.slice(0,120))}),Object.keys(o).length&&(r.utm=o,r.utmFirst||(r.utmFirst=o));const n=String(a.get("gclid")||a.get("gbraid")||a.get("wbraid")||"").trim();n&&(r.gclid=n.slice(0,160));const s=r.journey[r.journey.length-1];s&&s.p===window.location.pathname&&t-new Date(s.t)<30*1e3||r.journey.push({p:window.location.pathname.slice(0,160),t:t.toISOString()}),r.journey.length>120&&(r.journey=r.journey.slice(-120)),window.localStorage.setItem(MA_VISITOR_STORE_KEY,JSON.stringify(r))}catch{}})(),window.maVisitorPayload=function(){const t=maReadVisitorTrail();if(!t)return null;const r=Array.isArray(t.journey)?t.journey:[];return{firstSeenAt:t.firstSeenAt||"",landingPage:t.landingPage||"",referrer:t.referrer||"",utm:t.utm||null,utmFirst:t.utmFirst||null,gclid:t.gclid||"",pagesVisited:r.length,journey:r.slice(-80),page:window.location.pathname}};const revealItems=document.querySelectorAll(".reveal"),reduceMotion=window.matchMedia("(prefers-reduced-motion: reduce)").matches,activePage=document.body.dataset.page,logoRefreshEventName="ma360:logo-refresh",cmsRenderPages=new Set(["home","about"]),bootstrappedSiteSettingsPayload=(()=>{const e=document.getElementById("ma360-site-settings-json");if(!e)return null;try{return JSON.parse(e.textContent||"{}")}catch{return null}})();let publicSiteSettingsPayloadPromise=null;function loadPublicSiteSettings(){return bootstrappedSiteSettingsPayload?Promise.resolve(bootstrappedSiteSettingsPayload):(publicSiteSettingsPayloadPromise||(publicSiteSettingsPayloadPromise=fetch("/api/site-settings/public").then(e=>e.ok?e.json():null).catch(()=>null)),publicSiteSettingsPayloadPromise)}function clearCmsRenderPending(){document.documentElement.classList.remove("ma360-cms-render-pending")}function normalizeNavPath(e=""){const t=String(e||"").trim();if(!t||t==="#")return"";try{let a=new URL(t,window.location.origin).pathname||"/";return a=a.replace(/\/index\.html$/i,"/").replace(/\.html$/i,"").replace(/\/+$/g,""),a||"/"}catch{return t.replace(/\.html$/i,"").replace(/\/+$/g,"")||"/"}}function getNavKeyFromUrl(e=""){const t=normalizeNavPath(e);return t==="/"?"home":t.startsWith("/tools")?"tools":t.startsWith("/blog")||t.startsWith("/knowledge")?"knowledge":t.startsWith("/case-studies")?"work":t.startsWith("/services")?"services":t.split("/").filter(Boolean)[0]||""}function getGlobalBrandLogoDevice(){const e=window.innerWidth||document.documentElement.clientWidth||1440;return e<=767?"mobile":e<=1100?"tablet":"desktop"}function getGlobalBrandPageKey(){const e=String(activePage||document.body?.dataset?.page||"").trim().toLowerCase(),t=window.location.pathname||"/";return e==="home"||t==="/"||/\/index\.html$/i.test(t)?"home":e==="about"||t.startsWith("/about")?"about":e==="services"||t.startsWith("/services")?"services":e==="
1knowledge"||t.startsWith("/knowledge")||t.startsWith("/blog")?"knowledge":e==="work"||t.startsWith("/work")||t.startsWith("/case-studies")?"work":e==="careers"||e==="jobs"||t.startsWith("/careers")||t.startsWith("/jobs")?"careers":e==="contact"||t.startsWith("/contact")?"contact":"default"}function getGlobalBrandAssetUrl(e={},t="",r=""){const a=e.brand||{};return t==="custom"?String(r||"").trim():String(a[t]||"").trim()}function resolveGlobalBrandPlacement(e={},t="",r="primaryLogoUrl"){const o=(e.logoPlacements&&typeof e.logoPlacements=="object"?e.logoPlacements:{})[t]||{},n=o.logoKey||r;return getGlobalBrandAssetUrl(e,n,o.customLogoUrl)||getGlobalBrandAssetUrl(e,r)}function getGlobalFaviconType(e=""){return/\.svg(?:[?#]|$)/i.test(e)?"image/svg+xml":/\.ico(?:[?#]|$)/i.test(e)?"image/x-icon":"image/png"}function applyGlobalFavicon(e=""){const t=String(e||"").trim();if(!t)return;const r=getGlobalFaviconType(t),a=Array.from(document.querySelectorAll("link")).filter(n=>String(n.getAttribute("rel")||"").toLowerCase().includes("icon")),o=n=>{let s=a.find(c=>String(c.getAttribute("rel")||"").toLowerCase()===n);s||(s=document.createElement("link"),s.rel=n,document.head.appendChild(s),a.push(s)),s.href=t,n!=="apple-touch-icon"&&(s.type=r)};o("icon"),o("shortcut icon"),o("apple-touch-icon")}function applyGlobalBrandAssets(e={}){const t=e?.brand||{};if(!t||typeof t!="object")return;const r=getGlobalBrandLogoDevice(),a=getGlobalBrandPageKey(),o=e.logoPlacements&&typeof e.logoPlacements=="object"?e.logoPlacements:{},n=`${a}-${r}-header`,s=o[n]?n:`default-${r}-header`,c=resolveGlobalBrandPlacement(e,s,"primaryLogoUrl")||t.primaryLogoUrl||"",l=resolveGlobalBrandPlacement(e,"all-devices-footer","footerLogoUrl")||t.footerLogoUrl||t.alternateLogoUrl||"",d=resolveGlobalBrandPlacement(e,"all-devices-lead-modal","leadModalLogoUrl")||t.leadModalLogoUrl||t.alternateLogoUrl||"",p=resolveGlobalBrandPlacement(e,"all-devices-favicon","faviconUrl")||t.faviconUrl||"";p&&applyGlobalFavicon(p),document.querySelectorAll(".site-header .brand-image, img.brand-image").forEach(h=>{const v=c||t.primaryLogoUrl||h.dataset.logoLight||h.getAttribute("src")||"",L=t.alternateLogoUrl||h.dataset.logoDark||v;v&&(h.dataset.logoLight=v),L&&(h.dataset.logoDark=L);const y=(h.closest("[data-logo-surface]")?.getAttribute("data-logo-surface")||"light")==="dark"?L:v;y&&h.setAttribute("src",y),t.primaryLogoAlt&&h.setAttribute("alt",t.primaryLogoAlt)}),document.querySelectorAll(".lead-modal-brand-logo").forEach(h=>{setImageSource(h,d,t.alternateLogoAlt||"MarkAge360")}),document.querySelectorAll(".ma-footer-logo, .simple-footer-logo").forEach(h=>{l&&(h.dataset.logoLight=l,h.dataset.logoDark=l),setImageSource(h,l,t.alternateLogoAlt||"MarkAge360")}),(t.primaryLogoUrl||t.alternateLogoUrl)&&document.querySelectorAll("[data-adaptive-logo]:not(.brand-image):not(.ma-footer-logo):not(.simple-footer-logo)").forEach(h=>{t.primaryLogoUrl&&(h.dataset.logoLight=t.primaryLogoUrl),t.alternateLogoUrl&&(h.dataset.logoDark=t.alternateLogoUrl)}),window.dispatchEvent(new Event(logoRefreshEventName))}function getCurrentNavKey(){return getNavKeyFromUrl(window.location.pathname)||activePage||""}const navActivePage=getCurrentNavKey();function normalizeServicesIndexUrl(e=""){const t=String(e||"").trim();return!t||/^\/services\/?$/i.test(t)?"/services/":t}function shouldUseDirectNavigation(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function applyActiveNavigationState(e=document){if(!navActivePage)return;const t=normalizeNavPath(window.location.pathname);e.querySelectorAll("[data-nav]").forEach(r=>{const a=normalizeNavPath(r.getAttribute("href")||""),o=r.dataset.nav===navActivePage||getNavKeyFromUrl(r.getAttribute("href")||"")===navActivePage||!!(a&&a===t);r.classList.toggle("is-active",o),o?r.setAttribute("aria-current","page"):r.getAttribute("aria-current")==="page"&&r.removeAttribute("aria-current")}),e.querySelectorAll("[data-nav-group]").forEach(r=>{const a=Array.from(r.querySelectorAll("[data-nav]")),o=r.getAttribute("data-nav-group")||"",n=r.getAttribute("data-nav-group-url")||"",s=normalizeNavPath(n),c=getNavKeyFromUrl(n)||o,d=a.some(h=>h.classList.contains("is-active"))||o===navActivePage||c===navActivePage||!!(s&&(s===t||t.startsWith(`${s}/`))),p=r.querySelector("[data-nav-resource-toggle]");r.classList.toggle("is-active",d),p?.classList.toggle("is-active",d),p&&(d?p.setAttribute("aria-current","page"):p.getAttribute("aria-current")==="page"&&p.removeAttribute("aria-current"))})}const escapeLayoutHtml=e=>String(e||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),sanitizeLayoutRichText=e=>String(e||"").replace(/<\s*\/?\s*(script|style|iframe|object|embed|link|meta|base|form)[^>
1]*>/gi,"").replace(/\s(on[a-z]+)\s*=\s*"[^"]*"/gi,"").replace(/\s(on[a-z]+)\s*=\s*'[^']*'/gi,"").replace(/\s(on[a-z]+)\s*=\s*[^\s>]+/gi,"").replace(/javascript\s*:/gi,""),MA_SERVICE_PILLAR_LABELS={"digital-experiences":"Digital Experiences","brand-creative":"Brand & Creative","growth-marketing":"Growth Marketing","ai-automation":"AI & Automation","data-intelligence":"Data & Intelligence"},MA_SERVICE_ACRONYMS={ios:"iOS",seo:"SEO",ai:"AI",ui:"UI",ux:"UX",api:"API",crm:"CRM",saas:"SaaS",cms:"CMS",ctv:"CTV",bi:"BI",pr:"PR",aeo:"AEO",geo:"GEO"};function maTitleizeServiceLabel(e){const t=String(e||"");return/[A-Z]/.test(t)?t:t.replace(/[a-z0-9]+/g,r=>MA_SERVICE_ACRONYMS[r]||r.charAt(0).toUpperCase()+r.slice(1))}let __maServicesIndexPromise=null;function maLoadServicesIndex(){return __maServicesIndexPromise||(__maServicesIndexPromise=fetch("/api/search-index",{headers:{Accept:"application/json"}}).then(e=>e.ok?e.json():null).then(e=>e&&Array.isArray(e.items)?e.items:[]).then(e=>e.filter(t=>t&&t.type==="Service"&&typeof t.url=="string").filter(t=>t.url.replace(/\/+$/,"")!=="/services").map(t=>{const r=t.url.replace(/^\/services\/?/,"").replace(/\/+$/,"").split("/"),a=r[0]||"",o=r.length<=1,n=MA_SERVICE_PILLAR_LABELS[a]||"Services",s=maTitleizeServiceLabel(String(t.title||"").replace(/\s+Services\s*$/i,"").trim()||String(t.title||t.url)),c=`${t.title||""} ${t.keywords||""} ${n} ${t.description||""}`.toLowerCase();return{label:s,url:t.url,pillar:n,isHub:o,haystack:c}})).catch(()=>[]),__maServicesIndexPromise)}function maBuildServicesSearch(e){e=e||{};const t=e.variant==="drawer"?"drawer":"page",r=8,a=b=>String(b??"").replace(/[&<>"]/g,A=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[A]),o=(b,A)=>{let f=a(b);return A.forEach(C=>{if(!C)return;const _=new RegExp("("+C.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+")","ig");f=f.replace(_,"<mark>$1</mark>")}),f},n=document.createElement("div");n.className="ma-ssearch ma-ssearch--"+t,n.innerHTML=`
2    <div class="ma-ssearch-bar">
3      <span class="ma-ssearch-ico" aria-hidden="true">
4        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
5          <circle cx="11" cy="11" r="6.3"></circle><line x1="16.6" y1="16.6" x2="21" y2="21"></line>
6        </svg>
7      </span>
8      <input type="search" class="ma-ssearch-input" enterkeyhint="search"
9             placeholder="${t==="drawer"?"Search services":"Search services \u2014 try \u2018SEO\u2019, \u2018paid social\u2019, \u2018AI\u2019"}"
10             autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false"
11             aria-label="Search services" role="combobox" aria-expanded="false"
12             aria-autocomplete="list" aria-controls="${t==="drawer"?"ma-ss-list-drawer":"ma-ss-list-page"}" />
13      <button class="ma-ssearch-clear" type="button" aria-label="Clear search" hidden>
14        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="6" y1="6" x2="18" y2="18"></line><line x1="18" y1="6" x2="6" y2="18"></line></svg>
15      </button>
16    </div>
17    <div class="ma-ssearch-panel" hidden>
18      <ul class="ma-ssearch-list" id="ma-ss-list-${t}" role="listbox" aria-label="Services"></ul>
19      <p class="ma-ssearch-empty" hidden>No services match that search.</p>
20    </div>
21  `;const s=n.querySelector(".ma-ssearch-input"),c=n.querySelector(".ma-ssearch-clear"),l=n.querySelector(".ma-ssearch-panel"),d=n.querySelector(".ma-ssearch-list"),p=n.querySelector(".ma-ssearch-empty"),h=b=>"ma-ss-opt-"+t+"-"+b;let v=[],L=[],w=-1;const y=(b,A,f)=>{const C=b.label.toLowerCase();return C===A?100:C.startsWith(A)?80:C.includes(A)?60:f.every(_=>b.haystack.includes(_))?40:-1},u=()=>{const b=s.value.trim().toLowerCase().split(/\s+/).filter(Boolean);if(!L.length){d.innerHTML="",p.hidden=!1,s.removeAttribute("aria-activedescendant");return}p.hidden=!0,d.innerHTML=L.map((A,f)=>`
22        <li role="option" id="${h(f)}" aria-selected="${f===w}">
23          <a class="ma-ssearch-hit${f===w?" is-active":""}" href="${a(A.url)}" data-idx="${f}">
24            <span class="ma-ssearch-hit-main">${o(A.label,b)}</span>
25            <span class="ma-ssearch-hit-sub">${a(A.isHub?"Pillar overview":A.pillar)}</span>
26            <span class="ma-ssearch-hit-go" aria-hidden="true">\u2192</span>
27          </a>
28        </li>`).join(""),w>=0?s.setAttribute("aria-activedescendant",h(w)):s.removeAttribute("aria-activedescendant")},g=b=>{l.hidden=!b,s.setAttribute("aria-expanded",String(b)),n.classList.toggle("is-open",b)},m=()=>{const b=s.value.trim();if(c.hidden=!b,!b){L=[],w=-1,u(),g(!1);return}const A=b.toLowerCase(),f=A.split(/\s+/).filter(Boolean);L=v.map(C=>({item:C,s:y(C,A,f)})).filter(C=>C.s>=0).sort((C,_)=>_.s-C.s||C.item.label.length-_.item.label.length).slice(0,r).map(C=>C.item),w=L.length?0:-1,u(),g(!0)},i=b=>{if(!L.length)return;w=(b+L.length)%L.length,u();const A=d.querySelector(".ma-ssearch-hit.is-active");A&&A.scrollIntoView({block:"nearest"})};return s.addEventListener("input",m),s.addEventListener("focus",()=>{s.value.trim()&&g(!0)}),s.addEventListener("keydown",b=>{b.key==="ArrowDown"?(b.preventDefault(),i(w+1)):b.key==="ArrowUp"?(b.preventDefault(),i(w-1)):b.key==="Enter"?w>=0&&L[w]&&(b.preventDefault(),window.location.href=L[w].url):b.key==="Escape"&&(s.value?(s.value="",m()):(s.blur(),g(!1)))}),c.addEventListener("click",()=>{s.value="",m(),s.focus()}),d.addEventListener("mousemove",b=>{const A=b.target.closest(".ma-ssearch-hit");if(!A)return;const f=Number(A.dataset.idx);f!==w&&(w=f,u())}),document.addEventListener("click",b=>{n.contains(b.target)||g(!1)}),maLoadServicesIndex().then(b=>{v=b,s.value.trim()&&m()}),n}function maInitServicesSearchAnchors(){document.querySelectorAll("[data-services-search]").forEach(e=>{e.dataset.maSsInit||(e.dataset.maSsInit="1",e.appendChild(maBuildServicesSearch({variant:e.getAttribute("data-services-search")||"page"})))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",maInitServicesSearchAnchors,{once:!0}):maInitServicesSearchAnchors();function renderLayoutHeader(e){const t=e?.header,r=document.querySelector(".site-header"),a=r?.querySelector(".main-nav");if(!r||!a||!t||t.enabled===!1)return;const o=r.querySelector(".brand-image");if(o){const S=t.logoUrl||t.logoDarkUrl||o.getAttribute("src")||"";S&&o.setAttribute("src",S),t.logoAlt&&o.setAttribute("alt",t.logoAlt),t.logoLightUrl&&(o.dataset.logoLight=t.logoLightUrl),t.logoDarkUrl&&(o.dataset.logoDark=t.logoDarkUrl)}const n='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="4"/><circle cx="12" cy="12" r="1" fill="currentColor" stroke="none"/></svg>',s={strategy:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 19V5"/><path d="M4 19h16"/><path d="M8 16V10"/><path d="M12 16V7"/><path d="M16 16v-4"/><path d="M20 16V8"/></svg>',earned:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="6.5"/><line x1="16" y1="16" x2="20.5" y2="20.5"/></svg>',paid:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 18l5-7 4 4 7-9"/><polyline points="14,6 20,6 20,12"/></svg>',creative:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="4.5" width="17" height="15" rx="2.5"/><path d="M3.5 15l4.5-4.5 4 3.5 4-5 4.5 4.5"/><circle cx="9" cy="9" r="1.5"/></svg>',ai:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l1.8 4.2L18 9l-4.2 1.8L12 15l-1.8-4.2L6 9l4.2-1.8L12 3z"/><path d="M19 14l.9 2.1L22 17l-2.1.9L19 20l-.9-2.1L16 17l2.1-.9L19 14z"/><path d="M5 14l.7 1.6L7.3 16l-1.6.7L5 18.3l-.7-1.6L2.7 16l1.6-.7L5 14z"/></svg>',automation:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="2.4"/><path d="M12 4v3"/><path d="M12 17v3"/><path d="M4 12h3"/><path d="M17 12h3"/><path d="M6 6l2.1 2.1"/><path d="M15.9 15.9L18 18"/><path d="M6 18l2.1-2.1"/><path d="M15.9 8.1L18 6"/></svg>',tools:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 4.5a4.2 4.2 0 0 0-4.4 6.7L4 17.3 6.7 20l6.1-6.1a4.2 4.2 0 0 0 6.7-4.4l-2.7 2.7-1.9-0.4-0.4-1.9 2.7-2.7a4.2 4.2 0 0 0-2.7-2.7z"/></svg>',knowledge:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 4.5h10a3 3 0 0 1 3 3v12a1 1 0 0 0-1-1H5z"/><path d="M5 4.5v13.5"/><path d="M8 9h7"/><path d="M8 12h5"/></svg>'},c=S=>{const q=`${S.label||""} ${S.url||""} ${S.id||""}`.toLowerCase();return/strateg|analytic|insight|dashboard/.test(q)?s.strategy:/earned|seo|content|organic/.test(q)?s.earned:/paid|performance|ads|media/.test(q)?s.paid:/creative|web|design|brand/.test(q)?s.creative:/ai|automation|agent|bot/.test(q)?s.ai:/workflow|integrat|automation/.test(q)?s.automation:/tool|calculator|audit/.test(q)?s.tools:/blog|news|knowledge|lens|article/.test(q)?s.knowledge:n},l=S=>`
29    <li role="none">
30      <a class="nav-mega-fb-row" href="${escapeLayoutHtml(S.url||"#")}" role="menuitem">
31        <span class="nav-mega-fb-row-icon" aria-hidden="true">${S.imageUrl?`<img loading="lazy" decoding="async" src="${escapeLayoutHtml(S.imageUrl)}" alt="" />`:c(S)}</span>
32        <span class="nav-mega-fb-row-copy">
33          <span class="nav-mega-fb-row-title">${escapeLayoutHtml(S.label||"Link")}</span>
34          ${S.description?`<span class="nav-mega-fb-row-sub">${escapeLayoutHtml(S.description)}</span>`:""}
35        </span>
36      </a>
37    </li>
38  `,d={experiences:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4.5" width="18" height="13" rx="2"/><path d="M3 8.5h18"/><path d="M9 21h6"/><path d="M12 17.5V21"/></svg>',brand:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3l2.4 5 5.6.8-4.1 4 1 5.6L12 15.8 7.1 18.4l1-5.6L4 8.8 9.6 8z"/></svg>',growth:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 18l5-7 4 4 7-9"/><polyline points="14,6 20,6 20,12"/></svg>',ai:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="7" width="14" height="11" rx="3"/><path d="M9 7V4"/><path d="M15 7V4"/><circle cx="9.5" cy="12.5" r=".9" fill="currentColor"/><circle cx="14.5" cy="12.5" r=".9" fill="currentColor"/><path d="M9 16h6"/></svg>',data:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20V8"/><path d="M10 20V4"/><path d="M16 20v-9"/><path d="M22 20H2"/></svg>'},p=[{id:"experiences",num:"01",label:"Digital Experiences",blurb
38:"Sites, apps & product surfaces that convert.",url:"/services/digital-experiences/",items:[{label:"Website Design & Full-Stack Development",url:"/services/digital-experiences/website-design-development/",tags:"L B P"},{label:"Web Application Development",url:"/services/digital-experiences/web-application-development/",tags:"P O"},{label:"Mobile App Development",url:"/services/digital-experiences/mobile-app-development/",tags:"P"},{label:"UI/UX Design",url:"/services/digital-experiences/ui-ux-design/",tags:"B P"},{label:"E-Commerce & Shopify Development",url:"/services/digital-experiences/ecommerce-shopify-development/",tags:"L P"},{label:"SaaS Product Development",url:"/services/digital-experiences/saas-product-development/",tags:"P"},{label:"CMS & Headless CMS Development",url:"/services/digital-experiences/cms-headless-cms-development/",tags:"P O"},{label:"Custom Portal & Dashboard Development",url:"/services/digital-experiences/custom-portals-dashboard-development/",tags:"O D"},{label:"API, Back-End & Martech Integration",url:"/services/digital-experiences/api-backend-martech-integrations/",tags:"O"}]},{id:"brand",num:"02",label:"Brand & Creative",blurb:"Identity, story & creative that scales.",url:"/services/brand-creative/",items:[{label:"Brand Strategy & Positioning",url:"/services/brand-creative/brand-strategy-positioning/",tags:"B P"},{label:"Visual Identity & Logo Design",url:"/services/brand-creative/visual-identity-logo-design/",tags:"B P"},{label:"Brand Guidelines & Design Systems",url:"/services/brand-creative/brand-guidelines-design-systems/",tags:"B P"},{label:"Performance Creative",url:"/services/brand-creative/performance-creative/",tags:"L B"},{label:"Content Production",url:"/services/brand-creative/content-production/",tags:"L B"},{label:"Graphic & Motion Design",url:"/services/brand-creative/graphic-motion-design/",tags:"B"},{label:"Video & Photography Production",url:"/services/brand-creative/video-photography-production/",tags:"B"}]},{id:"growth",num:"03",label:"Growth Marketing",blurb:"Demand engine across paid, earned & owned.",url:"/services/growth-marketing/",items:[{label:"Media Strategy & Planning",url:"/services/growth-marketing/media-strategy-planning/",tags:"L D"},{label:"Paid Media",url:"/services/growth-marketing/paid-media/",tags:"L B",children:[{label:"Paid Search",url:"/services/growth-marketing/paid-search/",tags:"L"},{label:"Paid Social",url:"/services/growth-marketing/paid-social/",tags:"L B"},{label:"Programmatic & Display Advertising",url:"/services/growth-marketing/programmatic-display-advertising/",tags:"L"},{label:"Streaming & CTV Advertising",url:"/services/growth-marketing/streaming-ctv-advertising/",tags:"L"}]},{label:"SEO \u2014 Local, Enterprise & Technical",url:"/services/growth-marketing/seo/",tags:"L D"},{label:"AI Search Optimization \u2014 GEO / AEO",url:"/services/growth-marketing/ai-search-optimization/",tags:"L"},{label:"Content Marketing",url:"/services/growth-marketing/content-marketing/",tags:"L B"},{label:"Digital PR",url:"/services/growth-marketing/digital-pr/",tags:"L B"},{label:"Conversion Rate Optimization",url:"/services/growth-marketing/conversion-rate-optimization/",tags:"L D"},{label:"Demand & Lead Generation",url:"/services/growth-marketing/demand-lead-generation/",tags:"L"},{label:"Email & Lifecycle Marketing",url:"/services/growth-marketing/email-lifecycle-marketing/",tags:"L O"},{label:"App Store Optimization",url:"/services/growth-marketing/app-store-optimization/",tags:"L P"},{label:"Organic Social Media",url:"/services/growth-marketing/organic-social-media/",tags:"L B"},{label:"Influencer Marketing",url:"/services/growth-marketing/influencer-marketing/",tags:"L B"},{label:"Retail Media & Marketplaces",url:"/services/growth-marketing/retail-media-marketplaces/",tags:"L P"}]},{id:"ai",num:"04",label:"AI & Automation",blurb:"Agents, workflows & stacks that ship work.",url:"/services/ai-automation/",items:[{label:"Conversational AI \u2014 Chat, Voice & Receptionist",url:"/services/ai-automation/conversational-ai/",tags:"O L"},{label:"WhatsApp & Messaging Automation",url:"/services/ai-automation/whatsapp-messaging/",tags:"O L"},{label:"AI Lead Qualification & Nurturing",url:"/services/ai-automation/lead-qualification/",tags:"L O"},{label:"AI Appointment Booking",url:"/services/ai-automation/appointment-booking/",tags:"L O"},{label:"CRM, Sales & Marketing Automation",url:"/services/ai-automation/crm-sales-automation/",tags:"O L"},{label:"AI Customer Support",url:"/services/ai-automation/customer-support/",tags:"O"},{label:"AI Workflow Automation",url:"/services/ai-automation/workflow-automation/",tags:"O"},{label:"AI Integrations",url:"/services/ai-automation/ai-integrations/",tags:"O"},{label:"AI Hiring Screening & Interviews",url:"/services/ai-automation/ai-hiring-screening/",tags:"O D"}]},{id:"data",num:"05",label:"Data & Intelligence",blurb:"Measure, attribute & decide with proof.",url:"/services/data-intelligence/",items:[{label:"Marketing Analytics & Insights",url:"/services/data-intelligence/marketing-analytics-insights/",tags:"D"},{label:"Attribution Modeling",url:"/services/data-intelligence/attribution-modeling/",tags:"D"},{label:"Conversion & Funnel Tracking",url:"/services/data-intelligence/conversion-funnel-tracking/",tags:"D L"},{label:"Server-Side Tracking",url:"/services/data-intelligence/server-side-tracking/",tags:"D"},{label:"Ad Operations & Campaign QA",url:"/services/data-intelligence/ad-operations-campaign-qa/",tags:"D O"},{label:"BI Dashboard Development & Reporting",url:"/services/data-intelligence/bi-dashboard-development-reporting/",tags:"D O"},{label:"Customer Journey & Behavior Analysis",url:"/services/data-intelligence/cu
38stomer-journey-behavior-analysis/",tags:"D"},{label:"Cohort & Revenue Analytics",url:"/services/data-intelligence/cohort-revenue-analytics/",tags:"D"}]}],h=S=>{const q=O=>O.reduce((E,x)=>E+1+(Array.isArray(x.children)?x.children.length:0),0),N=p.reduce((O,E)=>O+q(E.items),0),D=(O,E)=>`
39            <li role="none" data-service-tags="${escapeLayoutHtml(O.tags||E.tags||"")}" data-service-label="${escapeLayoutHtml(`${E.label} ${O.label}`.toLowerCase())}">
40              <a class="nmv2-link nmv2-link--child" href="${escapeLayoutHtml(O.url)}" role="menuitem">
41                <span class="nmv2-link-label">${escapeLayoutHtml(O.label)}</span>
42                <span class="nmv2-link-arrow" aria-hidden="true">\u2192</span>
43              </a>
44            </li>`,G=O=>{const E=Array.isArray(O.children)?O.children:null,x=E?`${O.label} ${E.map(j=>j.label).join(" ")}`.toLowerCase():O.label.toLowerCase(),B=E?Array.from(new Set(`${O.tags||""} ${E.map(j=>j.tags||"").join(" ")}`.split(/\s+/).filter(Boolean))).join(" "):O.tags||"";return`
45            <li role="none" data-service-tags="${escapeLayoutHtml(B)}" data-service-label="${escapeLayoutHtml(x)}"${E?' data-service-parent="true"':""}>
46              <a class="nmv2-link${E?" nmv2-link--parent":""}" href="${escapeLayoutHtml(O.url)}" role="menuitem">
47                <span class="nmv2-link-label">${escapeLayoutHtml(O.label)}</span>
48                <span class="nmv2-link-arrow" aria-hidden="true">\u2192</span>
49              </a>
50              ${E?`<ul class="nmv2-sublist" role="none">${E.map(j=>D(j,O)).join("")}</ul>`:""}
51            </li>`},z=p.map(O=>`
52      <section class="nmv2-pillar" data-pillar="${O.id}">
53        <header class="nmv2-pillar-head">
54          <span class="nmv2-pillar-num" aria-hidden="true">${escapeLayoutHtml(O.num)}</span>
55          <a class="nmv2-pillar-title" href="${escapeLayoutHtml(O.url)}">
56            <span>${escapeLayoutHtml(O.label)}</span>
57            <i aria-hidden="true">\u2192</i>
58          </a>
59        </header>
60        <ul class="nmv2-pillar-list" role="none">
61          ${O.items.map(G).join("")}
62        </ul>
63      </section>
64    `).join("");return`
65      <div class="nmv2" data-mega-services data-default-count="${N}">
66        <div class="nmv2-bar">
67          <label class="nmv2-search">
68            <span class="nmv2-search-icon" aria-hidden="true">
69              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="6.5"/><line x1="16" y1="16" x2="20.5" y2="20.5"/></svg>
70            </span>
71            <input type="search" class="nmv2-search-input" data-mega-search placeholder="Find a service \u2014 try 'leads', 'SEO', 'AI', 'attribution'\u2026" autocomplete="off" spellcheck="false" />
72            <span class="nmv2-search-kbd" aria-hidden="true"><kbd data-mega-kbd>\u2318K</kbd></span>
73          </label>
74        </div>
75
76        <div class="nmv2-pillars">
77          ${z}
78        </div>
79
80        <div class="nmv2-foot">
81          <!-- Idle copy removed; the node stays because the search/outcome
82               filters write their live "N services match" readout into it
83               (see [data-mega-status]). Empty, it collapses to nothing. -->
84          <div class="nmv2-foot-status" aria-live="polite">
85            <span class="nmv2-foot-status-text" data-mega-status></span>
86          </div>
87          <div class="nmv2-foot-actions">
88            <!-- Two routers, each given room to read as a destination rather than
89                 a text link. The label stays the FIRST span: the mobile drawer
90                 reads a.querySelector("span") for its row title.
91                 data-nav-mobile-extra opts this row into that drawer, which
92                 otherwise collapses Services to its five pillar titles.
93                 No counts in the sublines \u2014 the static copy of this markup in
94                 every shell would go stale the way "43 services" did. -->
95            <a class="nmv2-foot-link" href="/services/industries/" data-nav-mobile-extra>
96              <span class="nmv2-foot-link-label">Browse by industry</span>
97              <span class="nmv2-foot-link-sub">The verticals we build in</span>
98              <i aria-hidden="true">\u2192</i>
99            </a>
100            <a class="nmv2-foot-link" href="/services/">
101              <span class="nmv2-foot-link-label">View all ${N} services</span>
102              <span class="nmv2-foot-link-sub">Every capability, one index</span>
103              <i aria-hidden="true">\u2192</i>
104            </a>
105            <a class="nmv2-foot-cta" href="#lead-form" data-open-lead-modal-header data-mega-cta>
106              <span class="nmv2-foot-cta-copy">
107                <strong data-mega-cta-title>Book a Strategy Call</strong>
108                <span data-mega-cta-sub>30 minutes. Tailored to your goals.</span>
109              </span>
110              <i aria-hidden="true">\u2192</i>
111            </a>
112          </div>
113        </div>
114      </div>
115    `},v=S=>{const q=Array.isArray(S.children)?S.children.filter(D=>D?.label||D?.url):[];if((S.type==="menu"||S.type==="mega")&&q.length){const D=S.type==="mega",G=S.imageUrl?` style="--nav-mega-fb-feature-img: url('${escapeLayoutHtml(S.imageUrl)}');"`:"",z=(S.label||"menu").toLowerCase().replace(/[^a-z0-9]+/g,"-"),O=z==="services"?normalizeServicesIndexUrl(S.url):S.url||"",E=q.find(U=>/ai|automation/i.test(`${U.label||""} ${U.url||""}`))?.url||q[0]?.url||O||"#",x=z==="services"?"AI-powered services":`${S.label||"Menu"} highlights`,B=z==="services"?"Agents and automation built into every pillar.":S.description||"Explore featured links and quick actions.",j=z==="services"?["GEO / AEO","Audience AI","Creative Ops","Lead scoring"]:q.slice(0,4).map(U=>U.label||"Link");return`
116        <div class="nav-resource-group ${D?"nav-resource-group--mega":""}" data-nav-group="${escapeLayoutHtml(z)}"${O?` data-nav-group-url="${escapeLayoutHtml(O)}"`:""}>
117          <button class="nav-resource-trigger ${D?"nav-resource-trigger--mega":""}" type="button" data-nav-resource-toggle${O?` data-nav-resource-url="${escapeLayoutHtml(O)}"`:""} aria-expanded="false" aria-haspopup="menu">
118            <span data-nav-resource-label>${escapeLayoutHtml(S.label||"Menu")}</span>
119            <span class="nav-resource-caret" aria-hidden="true"></span>
120          </button>
121          <div class="nav-resource-menu ${D?"nav-resource-menu--mega nav-mega-fb":"nav-resource-menu--rich"}${D&&z==="services"?" nav-mega-fb--v2":""}" role="menu" aria-label="${escapeLayoutHtml(S.label||"Menu")}">
122            ${D&&z==="services"?h(S):D?`
123              <div class="nav-mega-fb-grid">
124                <ul class="nav-mega-fb-list" role="none">${q.map(l).join("")}</ul>
125                <a class="nav-mega-fb-feature nav-mega-fb-feature--photo" href="${escapeLayoutHtml(S.url||q[0]?.url||"#")}" role="menuitem"${G}>
126                  <span class="nav-mega-fb-feature-shade" aria-hidden="true"></span>
127                  <div class="nav-mega-fb-feature-foot">
128                    <strong>${escapeLayoutHtml(S.label||"Explore")}</strong>
129                    <span>${escapeLayoutHtml(S.description||"Open the full section.")}</span>
130                  </div>
131                  <span class="nav-mega-fb-feature-cta" aria-hidden="true">View all ${escapeLayoutHtml((S.label||"services").toLowerCase())} <i aria-hidden="true">&rarr;</i></span>
132                </a>
133                <div class="nav-mega-fb-stack">
134                  <a class="nav-mega-fb-card nav-mega-fb-card--preview" href="${escapeLayoutHtml(E)}" role="menuitem">
135                    <div class="nav-mega-fb-card-head">
136                      <span class="nav-mega-fb-card-title">${escapeLayoutHtml(x)} <i aria-hidden="true">\u2192</i></span>
137                      <span class="nav-mega-fb-card-meta">New</span>
138                    </div>
139                    <p class="nav-mega-fb-card-sub">${escapeLayoutHtml(B)}</p>
140                    <div class="nav-mega-fb-card-preview" aria-hidden="true">
141                      ${j.map(U=>`<span class="nav-mega-fb-chip">${escapeLayoutHtml(U)}</span>`).join("")}
142                    </div>
143                  </a>
144                  <a class="nav-mega-fb-card nav-mega-fb-card--cta" href="#lead-form" data-open-lead-modal-header role="menuitem">
145                    <div class="nav-mega-fb-card-cta-copy">
146                      <strong>Book a Strategy Call</strong>
147                      <span>30 minutes. Tailored to your goals.</span>
148                    </div>
149                    <span class="nav-mega-fb-card-cta-arrow" aria-hidden="true">\u2192</span>
150                  </a>
151                </div>
152              </div>
153            `:q.map(U=>`<a data-nav="${escapeLayoutHtml((U.label||"link").toLowerCase().replace(/[^a-z0-9]+/g,"-"))}" data-nav-label="${escapeLayoutHtml(U.label||"Link")}" href="${escapeLayoutHtml(U.url||"#")}" role="menuitem">
154              <span class="nav-resource-item-copy">
155                <strong data-nav-item-label>${escapeLayoutHtml(U.label||"Link")}</strong>
156                ${U.description?`<small>${escapeLayoutHtml(U.description)}</small>`:""}
157              </span>
158              <span class="nav-resource-item-arrow" aria-hidden="true">&rarr;</span>
159            </a>`).join("")}
160          </div>
161        </div>
162      `}const N=getNavKeyFromUrl(S.url||"")||(S.label||"link").toLowerCase().replace(/[^a-z0-9]+/g,"-");return`<a data-nav="${escapeLayoutHtml(N)}" href="${escapeLayoutHtml(S.url||"#")}">${escapeLayoutHtml(S.label||"Link")}</a>`},w=(S=>{const q=Array.isArray(S)?S.filter(O=>O?.label||O?.url):[],N=q.some(O=>/(^|\W)work($|\W)/i.test(`${O.label||""} ${O.url||""} ${O.id||""}`)),D=q.some(O=>/contact/i.test(`${O.label||""} ${O.url||""} ${O.id||""}`)),G=[];if(N||G.push({id:"nav_work",type:"link",label:"Work",url:"/work",description:"",imageUrl:""}),D||G.push({id:"nav_contact",type:"link",label:"Contact",url:"/contact",description:"",imageUrl:""}),!G.length)return q;const z=[...q];return G.forEach(O=>{const E=O.id==="nav_work"?z.findIndex(x=>/services/i.test(`${x.label||""} ${x.url||""} ${x.id||""}`)):z.findIndex(x=>/careers/i.test(`${x.label||""} ${x.url||""} ${x.id||""}`));E>=0?z.splice(E+1,0,O):z.push(O)}),z})(t.items),y=a.querySelector(".main-nav-shimmer")?.outerHTML||"",u=S=>Array.from(S.children).filter(q=>!q.classList.contains("main-nav-shimmer")).map(q=>q.matches?.("[data-nav-group]")?(q.querySelector("[data-nav-resource-label]")?.textContent||q.querySelector(".nav-resource-trigger span")?.textContent||"").trim().toLowerCase():(q.textContent||"").trim().toLowerCase()).filter(Boolean).join("|"),g=w.map(S=>String(S.label||"").trim().toLowerCase()).filter(Boolean).join("|");u(a)!==g&&(a.innerHTML=`${y}${w.map(v).join("")}`),(()=>{const S=a.querySelector('[data-nav-group="services"]'),q=S?.querySelector(".nav-resource-menu");if(!S||!q)return;const N=w.find(z=>/services/i.test(`${z.label||""} ${z.url||""} ${z.id||""}`))||{},D=normalizeServicesIndexUrl(N.url||S.getAttribute("data-nav-group-url")||"/services/");S.classList.add("nav-resource-group--mega"),S.setAttribute("data-nav-group-url",D);const G=S.querySelector("[data-nav-resource-toggle]");G&&(G.classList.add("nav-resource-trigger--mega"),G.setAttribute("data-nav-resource-url",D)),q.className="nav-resource-menu nav-resource-menu--mega nav-mega-fb nav-mega-fb--v2",q.setAttribute("role","menu"),q.setAttribute("aria-label",N.label||"Services"),q.innerHTML=h(N)})();const b=()=>{const S=a.querySelector("[data-mega-services]");if(!S)return;const q=Array.from(S.querySelectorAll(".nmv2-pillar"));if(!q.length)return;q.forEach(x=>{x.classList.remove("is-expanded");const B=x.querySelector(".nmv2-pillar-list");B&&(B.style.maxHeight="",B.classList.remove("is-capped","is-scrollable")),x.querySelector(".nmv2-showall")?.remove()});const N=q.map(x=>x.querySelector(".nmv2-pillar-list")),D=N.map(x=>x?x.scrollHeight:0);if(!D.some(x=>x>40))return;const G=D.slice().sort((x,B)=>B-x),z=G[1]||G[0]||0,O=Math.max(window.innerHeight-250,200),E=Math.max(Math.min(z,O),160);N.forEach((x,B)=>{if(!x||D[B]<=E+12)return;x.style.maxHeight=`${E}px`,x.classList.add("is-capped");const j=document.createElement("button");j.type="button",j.className="nmv2-showall",j.setAttribute("aria-label","Show all services in this section"),j.innerHTML='Show all services <i aria-hidden="true">\u2193</i>',j.addEventListener("click",U=>{U.preventDefault(),U.stopPropagation(),x.classList.remove("is-capped"),x.classList.add("is-scrollable"),q[B].classList.add("is-expanded"),j.remove()}),x.insertAdjacentElement("afterend",j)})};if(window.__maEnhanceMegaCols=b,requestAnimationFrame(b),document.fonts&&document.fonts.ready&&document.fonts.ready.then(()=>{typeof window.__maEnhanceMegaCols=="function"&&window.__maEnhanceMegaCols()}).catch(()=>{}),!window.__maMegaColsResizeBound){window.__maMegaColsResizeBound=!0;let S;window.addEventListener("resize",()=>{clearTimeout(S),S=setTimeout(()=>{typeof window.__maEnhanceMegaCols=="function"&&window.__maEnhanceMegaCols()},180)})}const A=S=>{S.querySelectorAll(".nav-resource-menu--rich").forEach(q=>{if(q.querySelector(".nav-resource-foot"))return;const N=document.createElement("div");N.className="nav-resource-foot",N.innerHTML=`
163        <span class="nav-resource-foot-status">
164          <span class="nav-resource-foot-pulse" aria-hidden="true"></span>
165          <span class="nav-resource-foot-status-text">Fresh insights \u2014 updated weekly</span>
166        </span>
167        <button type="button" class="nav-resource-foot-cta" data-open-lead-modal-header role="menuitem">
168          <span class="nav-resource-foot-cta-copy">
169            <strong>Book a strategy call</strong>
170            <span>30 minutes. Tailored to your goals.</span>
171          </span>
172          <i aria-hidden="true">&rarr;</i>
173        </button>`,q.appendChild(N)})},f={tools:"Practical courses for modern growth teams.",courses:"Practical courses for modern growth teams.",knowledge:"Blogs, research, and news."};(S=>{S.querySelectorAll('[data-nav-group="resources"] .nav-resource-menu').forEach(q=>{const N=Array.from(q.querySelectorAll(":scope > a"));N.length&&(q.classList.add("nav-resource-menu--rich"),N.forEach(D=>{const G=D.getAttribute("href")||"#",z=(D.getAttribute("data-nav-label")||D.querySelector("[data-nav-item-label]")?.textContent||D.querySelector("strong")?.textContent||D.textContent||"").trim()||"Link";let O=D.getAttribute("data-nav")||"";(!O||O==="360lens")&&(O=/knowledge|360|lens/i.test(`${G} ${z}`)?"knowledge":/tool/i.test(G)?"tools":"link");const E=D.querySelector("small")?.textContent?.trim(),x=f[O]||E||"";D.setAttribute("data-nav",O),D.setAttribute("data-nav-label",z),D.setAttribute("role","menuitem"),D.innerHTML=`
174          <span class="nav-resource-item-copy">
175            <strong data-nav-item-label>${escapeLayoutHtml(z)}</strong>
176            ${x?`<small>${escapeLayoutHtml(x)}</small>`:""}
177          </span>
178          <span class="nav-resource-item-arrow" aria-hidden="true">&rarr;</span>`}))})})(a),A(a),applyActiveNavigationState(a);const _=r.querySelector(".header-star-cta");if(_){_.setAttribute("data-open-lead-modal-header",""),t.ctaUrl&&_.setAttribute("href",t.ctaUrl);const S=_.querySelector(".header-star-cta__label")||_;if(t.ctaLabel){const q=String(t.ctaLabel).trim();S.textContent=/^(talk to us|let'?s talk!?)$/i.test(q)?"Let's talk!":q}else/^(talk to us|let'?s talk!?)$/i.test(S.textContent.trim())&&(S.textContent="Let's talk!")}a.querySelectorAll("[data-nav-resource-toggle]").forEach(S=>{S.addEventListener("click",q=>{const N=S.closest(".nav-resource-group"),D=N?.getAttribute("data-nav-group")||"",G=S.getAttribute("data-nav-resource-url")||N?.getAttribute("data-nav-group-url")||"";if(D==="services"&&G&&shouldUseDirectNavigation(q)){q.preventDefault(),q.stopImmediatePropagation(),window.location.href=normalizeServicesIndexUrl(G);return}q.preventDefault();const z=N?.classList.toggle("is-open");S.setAttribute("aria-expanded",z?"true":"false")})}),a.querySelectorAll("[data-mega-services]").forEach(S=>{const q=Array.from(S.querySelectorAll(".nmv2-pillar-list li")),N=Array.from(S.querySelectorAll(".nmv2-pillar")),D=S.querySelector("[data-mega-search]"),G=Array.from(S.querySelectorAll("[data-outcome]")),z=S.querySelector("[data-outcome-clear]"),O=S.querySelector("[data-mega-empty]"),E=S.querySelector("[data-mega-status]"),x=S.querySelector("[data-mega-cta-title]"),B=S.querySelector("[data-mega-cta-sub]"),j=S.querySelector("[data-mega-cta]"),U=x?.textContent||"Book a Strategy Call",M=B?.textContent||"30 minutes. Tailored to your goals.",H=E?.textContent||"",F={L:{ctaTitle:"Build my lead engine",ctaSub:"Paid + SEO + AI nurture, briefed in 30 min."},B:{ctaTitle:"Sharpen my brand",ctaSub:"Positioning, identity & creative \u2014 one playbook."},P:{ctaTitle:"Plan my product launch",ctaSub:"Strategy \u2192 build \u2192 growth in 90 days."},O:{ctaTitle:"Automate my operations",ctaSub:"AI agents, CRM & workflow automation, scoped."},D:{ctaTitle:"Get a measurement stack",ctaSub:"Attribution, tracking & BI dashboards installed."}};let V=null,X="";q.forEach(Y=>{const K=Y.querySelector(".nmv2-link-label");K&&K.dataset.original==null&&(K.dataset.original=K.textContent||"")});const J=(Y,K)=>{const ae=Y.dataset.original||Y.textContent||"";for(;Y.firstChild;)Y.removeChild(Y.firstChild);if(!K){Y.appendChild(document.createTextNode(ae));return}const ie=ae.toLowerCase().indexOf(K);if(ie===-1){Y.appendChild(document.createTextNode(ae));return}const ge=ae.slice(0,ie),R=ae.slice(ie,ie+K.length),Z=ae.slice(ie+K.length);ge&&Y.appendChild(document.createTextNode(ge));const Q=document.createElement("mark");Q.className="nmv2-link-mark",Q.textContent=R,Y.appendChild(Q),Z&&Y.appendChild(document.createTextNode(Z))},P=()=>{const Y=X.trim().toLowerCase();let K=0,ae=0;const ie=new Map(N.map(R=>[R,0])),ge=new Map(N.map(R=>[R,0]));if(q.forEach(R=>{const Z=R.getAttribute("data-service-label")||"",Q=R.getAttribute("data-service-tags")||"",ce=!Y||Z.includes(Y),oe=!V||Q.split(/\s+/).includes(V),fe=ce&&oe,ve=!!Y&&ce&&oe;R.toggleAttribute("data-hidden",!fe),R.classList.toggle("is-dim",!!V&&
178ce&&!oe);const me=R.querySelector(".nmv2-link");me&&(ve?me.setAttribute("data-match","true"):me.removeAttribute("data-match"));const be=R.querySelector(".nmv2-link-label");if(be&&J(be,ve?Y:""),fe){K+=1;const pe=R.closest(".nmv2-pillar");pe&&ie.set(pe,(ie.get(pe)||0)+1)}if(ve){ae+=1;const pe=R.closest(".nmv2-pillar");pe&&ge.set(pe,(ge.get(pe)||0)+1)}}),N.forEach(R=>{const Z=ie.get(R)||0,Q=ge.get(R)||0;R.toggleAttribute("data-empty",Z===0),Q>0?R.setAttribute("data-has-match",String(Q)):R.removeAttribute("data-has-match");const ce=R.querySelector(".nmv2-pillar-count");ce&&(ce.textContent=String(Z))}),O&&(O.hidden=K>0),V){const R=F[V];R&&(x&&(x.textContent=R.ctaTitle),B&&(B.textContent=`${K} services map to this \xB7 ${R.ctaSub}`)),j&&j.setAttribute("data-outcome-active",V),E&&(E.textContent=`Showing ${K} services aligned to your goal \xB7 response within 6 hrs`),z&&(z.hidden=!1)}else x&&(x.textContent=U),B&&(B.textContent=M),j&&j.removeAttribute("data-outcome-active"),E&&(E.textContent=Y?`${K} ${K===1?"service matches":"services match"} "${Y}"`:H),z&&(z.hidden=!0);S.toggleAttribute("data-filtering",!!(Y||V))};D&&(D.addEventListener("input",Y=>{X=Y.target.value||"",P()}),D.addEventListener("keydown",Y=>{if(Y.key==="Escape"){const K=!D.value;if(D.value="",X="",P(),K){D.blur();const ae=S.closest(".nav-resource-group");ae?.classList.remove("is-open"),ae?.querySelector("[data-nav-resource-toggle]")?.setAttribute("aria-expanded","false")}}}));const T=S.querySelector("[data-mega-kbd]");T&&!/Mac|iPhone|iPad|iPod/.test(navigator.platform||"")&&(T.textContent="Ctrl K"),document.addEventListener("keydown",Y=>{if(!(Y.metaKey||Y.ctrlKey)||Y.altKey||Y.shiftKey||(Y.key||"").toLowerCase()!=="k")return;const K=S.closest(".nav-resource-group"),ae=K?.querySelector("[data-nav-resource-toggle]");!K||!ae||!D||ae.getClientRects().length&&(Y.preventDefault(),document.querySelector(".site-header")?.classList.remove("is-scroll-hidden"),document.body.classList.remove("home-header-hidden"),K.classList.add("is-open"),ae.setAttribute("aria-expanded","true"),D.focus())}),G.forEach(Y=>{Y.addEventListener("click",K=>{K.preventDefault();const ae=Y.getAttribute("data-outcome");V===ae?V=null:V=ae,G.forEach(ie=>{const ge=ie.getAttribute("data-outcome")===V;ie.setAttribute("aria-pressed",ge?"true":"false"),ie.classList.toggle("is-on",ge)}),P()})}),z&&z.addEventListener("click",Y=>{Y.preventDefault(),V=null,D&&(D.value="",X=""),G.forEach(K=>{K.setAttribute("aria-pressed","false"),K.classList.remove("is-on")}),P()}),document.addEventListener("keydown",Y=>{if(Y.key!=="/"||Y.metaKey||Y.ctrlKey||Y.altKey)return;const K=Y.target;if(K&&(K.tagName==="INPUT"||K.tagName==="TEXTAREA"||K.isContentEditable))return;const ae=S.closest(".nav-resource-group");!(ae&&(ae.classList.contains("is-open")||ae.matches(":hover, :focus-within")))||!D||(Y.preventDefault(),D.focus())}),P()})}const FOOTER_AWARD_BADGES=[{src:"/assets/top-digital-marketing-company-india-2025-clutch.png",alt:"MarkAge360 \u2014 Top Digital Marketing Company, India 2025"},{src:"/assets/top-b2b-companies-global-2025-clutch.png",alt:"MarkAge360 \u2014 Top B2B Companies, Global 2025"},{src:"/assets/clutch-advertising.png",alt:"MarkAge360 \u2014 Top Advertising Company 2025"},{src:"/assets/top-ai-agents-company-2025-clutch.png",alt:"MarkAge360 \u2014 Top AI Agents Company 2025"},{src:"/assets/top-artificial-intelligence-company-clutch.png",alt:"MarkAge360 \u2014 Top Artificial Intelligence Company 2025"}],FOOTER_AWARD_BADGE_MATCHES=["top-digital-marketing-company-india-2025-clutch","top-b2b-companies-global-2025-clutch","clutch-advertising","top-ai-agents-company-2025-clutch","top-artificial-intelligence-company-clutch","page_badges/Advertising","page_badges/Artificial_Intelligence"];function isFooterAwardBadgeUrl(e){const t=String(e||"");return t?FOOTER_AWARD_BADGE_MATCHES.some(r=>t.includes(r)):!1}function footerAwardBadgesHtml(){return FOOTER_AWARD_BADGES.map(e=>`<img class="ma-footer-award ma-footer-award-clutch" src="${escapeLayoutHtml(e.src)}" alt="${escapeLayoutHtml(e.alt)}" loading="lazy" decoding="async" />`).join("")}function renderLayoutFooter(e){const t=e?.footer,r=document.querySelector(".ma-footer");if(!r||!t||t.enabled===!1)return;const a=Array.isArray(t.columns)?t.columns:[],o=Array.isArray(t.socialLinks)?t.s
178ocialLinks:[],n=(Array.isArray(t.partnerLogos)?t.partnerLogos:[]).filter(p=>!isFooterAwardBadgeUrl(p&&p.imageUrl)),s=escapeLayoutHtml(t.address||"").replace(/\n/g,"<br>"),c={instagram:'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M7.75 2h8.5A5.76 5.76 0 0 1 22 7.75v8.5A5.76 5.76 0 0 1 16.25 22h-8.5A5.76 5.76 0 0 1 2 16.25v-8.5A5.76 5.76 0 0 1 7.75 2Zm0 2A3.75 3.75 0 0 0 4 7.75v8.5A3.75 3.75 0 0 0 7.75 20h8.5A3.75 3.75 0 0 0 20 16.25v-8.5A3.75 3.75 0 0 0 16.25 4h-8.5ZM12 7.15A4.85 4.85 0 1 1 12 16.85 4.85 4.85 0 0 1 12 7.15Zm0 2A2.85 2.85 0 1 0 12 14.85 2.85 2.85 0 0 0 12 9.15Zm5.05-2.1a1.15 1.15 0 1 1 0 2.3 1.15 1.15 0 0 1 0-2.3Z"/></svg>',linkedin:'<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.7 8.8h3.2v10.4H5.7V8.8Zm1.6-4.9a1.8 1.8 0 1 1 0 3.6 1.8 1.8 0 0 1 0-3.6Zm3.8 4.9h3.1v1.4h.1c.4-.8 1.5-1.7 3-1.7 3.2 0 3.8 2.1 3.8 4.9v5.8h-3.2v-5.1c0-1.2 0-2.8-1.7-2.8s-2 1.3-2 2.7v5.2h-3.2V8.8Z"/></svg>',youtube:'<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M23 7s-.3-2-1.2-2.8C20.7 3 19.4 3 18.8 2.9 16.2 2.8 12 2.8 12 2.8s-4.2 0-6.8.1c-.6.1-1.9.1-3 1.3C1.3 5 1 7 1 7S.7 9.1.7 11.2v2c0 2.1.3 4.2.3 4.2s.3 2 1.2 2.8c1.1 1.2 2.6 1.1 3.3 1.2C7.5 21.4 12 21.5 12 21.5s4.2 0 6.8-.2c.6-.1 1.9-.1 3-1.3.9-.8 1.2-2.8 1.2-2.8s.3-2.1.3-4.2v-2C23.3 9.1 23 7 23 7zm-13.7 8.6V8.4l8.1 3.7-8.1 3.5z"/></svg>',x:'<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.748l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>',facebook:'<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M13.5 21v-7.5h2.5l.4-3H13.5V8.6c0-.9.3-1.5 1.6-1.5h1.7V4.3c-.3-.04-1.3-.13-2.4-.13-2.4 0-4 1.5-4 4.1V10.5H8v3h2.4V21h3.1Z"/></svg>',threads:'<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M17.6 11.4c-.07-.03-.14-.06-.21-.1-.13-2.43-1.45-3.82-3.66-3.83-1.34-.01-2.46.56-3.15 1.6l1.23.84c.5-.76 1.3-.92 1.93-.92h.02c.78.01 1.37.24 1.75.68.27.32.46.77.55 1.33-.7-.12-1.45-.16-2.26-.12-2.28.13-3.74 1.46-3.64 3.3.05.94.52 1.74 1.32 2.27.68.45 1.55.66 2.46.61 1.2-.07 2.14-.52 2.8-1.36.5-.63.81-1.45.96-2.49.6.36 1.05.84 1.3 1.41.42.97.45 2.56-.85 3.86-1.13 1.13-2.49 1.62-4.55 1.63h-.02c-2.28-.02-4-.75-5.13-2.17-1.05-1.33-1.59-3.25-1.61-5.69.02-2.45.56-4.37 1.61-5.69 1.13-1.42 2.85-2.15 5.13-2.17h.02c2.29.02 4.05.76 5.21 2.2.57.7.99 1.59 1.28 2.63l1.49-.4c-.35-1.28-.89-2.39-1.62-3.31C18.3 2.49 16.16 1.6 13.51 1.58h-.01c-2.64.02-4.76.91-6.29 2.65C5.81 5.74 5.1 7.91 5.07 10.94v.04c.03 3.03.74 5.2 2.14 6.71 1.52 1.74 3.65 2.63 6.29 2.65h.01c2.34-.02 4-.63 5.36-2 1.78-1.77 1.73-3.99.96-5.37-.42-.74-1.02-1.34-1.8-1.78l-.13.21h-.3Z"/></svg>',tiktok:'<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16.5 3.2c.4 1.7 1.5 3 3.2 3.6v3.1c-1.6 0-3-.4-4.4-1.2v6c0 4.2-3.4 7.4-7.5 6.8a6.7 6.7 0 0 1-1-13.2v3.4a3.4 3.4 0 1 0 4 3.4V3.2h3.7Z"/></svg>'},l=p=>{const h=`${p.url||""} ${p.label||""} ${p.id||""}`.toLowerCase();return/instagram|insta\b/.test(h)?"instagram":/linkedin/.test(h)?"linkedin":/youtube|youtu\.be/.test(h)?"youtube":/(?:^|[^a-z])x(?:[^a-z]|$)|t
178witter|t\.co/.test(h)?"x":/facebook|fb\.com/.test(h)?"facebook":/threads/.test(h)?"threads":/tiktok/.test(h)?"tiktok":""},d=p=>{const h=l(p);return h&&c[h]?c[h]:p.imageUrl?`<img loading="lazy" decoding="async" src="${escapeLayoutHtml(p.imageUrl)}" alt="" />`:`<span>${escapeLayoutHtml((p.label||"?").slice(0,1))}</span>`};r.innerHTML=`
179    <div class="ma-footer-shell">
180      <div class="ma-footer-top">
181        <h2 class="ma-footer-statement">${sanitizeLayoutRichText(t.statement||"Build a brand that <em>compounds</em>.")}</h2>
182        <div class="ma-footer-cta-row"><a href="#lead-form" class="ma-footer-cta" data-open-lead-modal-header data-footer-lead-cta><span>${escapeLayoutHtml(t.ctaLabel||"Start a project")}</span><i aria-hidden="true">\u2192</i></a></div>
183      </div>
184      <div class="ma-footer-rule" aria-hidden="true"></div>
185      <div class="ma-footer-grid">
186        <div class="ma-footer-col ma-footer-col-brand">
187          <a class="ma-footer-brand" href="/" aria-label="Markage360 home"><img class="ma-footer-logo" loading="lazy" decoding="async" src="${escapeLayoutHtml(t.logoUrl||"/assets/markage360-white.png")}" alt="${escapeLayoutHtml(t.logoAlt||"MarkAge360")}" data-adaptive-logo data-logo-light="/assets/black.png" data-logo-dark="${escapeLayoutHtml(t.logoUrl||"/assets/markage360-white.png")}" data-logo-fallback="dark" /></a>
188          <p class="ma-footer-tagline">${escapeLayoutHtml(t.tagline||"")}</p>
189          <div class="ma-footer-social" aria-label="Social links">
190            ${o.map(p=>{const h=l(p),v=h?` data-social-platform="${escapeLayoutHtml(h)}"`:"";return`<a href="${escapeLayoutHtml(p.url||"#")}" target="_blank" rel="noreferrer noopener" aria-label="${escapeLayoutHtml(p.label||"Social")}" class="ma-footer-social-link"${v}>${d(p)}</a>`}).join("")}
191          </div>
192        </div>
193        ${a.map(p=>`<div class="ma-footer-col"><p class="ma-footer-col-title">${escapeLayoutHtml(p.title||"Links")}</p><nav class="ma-footer-nav" aria-label="${escapeLayoutHtml(p.title||"Footer links")}">${(Array.isArray(p.links)?p.links:[]).map(h=>`<a href="${escapeLayoutHtml(h.url||"#")}">${escapeLayoutHtml(h.label||"Link")}</a>`).join("")}</nav></div>`).join("")}
194        <div class="ma-footer-col">
195          <p class="ma-footer-col-title">Get in touch</p>
196          <address class="ma-footer-address">
197            ${t.email?`<a href="mailto:${escapeLayoutHtml(t.email)}" class="ma-footer-contact-link">${escapeLayoutHtml(t.email)}</a>`:""}
198            ${t.phone?`<a href="tel:${escapeLayoutHtml(t.phone.replace(/\s+/g,""))}" class="ma-footer-contact-link">${escapeLayoutHtml(t.phone)}</a>`:""}
199            ${s?`<span class="ma-footer-addr-line">${s}</span>`:""}
200          </address>
201        </div>
202      </div>
203      <div class="ma-footer-rule" aria-hidden="true"></div>
204      <div class="ma-footer-bottom">
205        <p class="ma-footer-copy">&copy; <span data-year>${copyrightYearRange()}</span> ${escapeLayoutHtml(t.copyright||"MarkAge360 \xB7 All rights reserved")}</p>
206        <div class="ma-footer-partners" aria-label="Partner credentials and awards">
207          ${n.map(p=>{const h=p.imageUrl?`<img class="ma-footer-partner" src="${escapeLayoutHtml(localizePartnerBadgeUrl(p.imageUrl))}" alt="${escapeLayoutHtml(p.label||"Partner")}" loading="lazy" decoding="async" />`:"";return p.url?`<a href="${escapeLayoutHtml(p.url)}" target="_blank" rel="noreferrer noopener">${h}</a>`:h}).join("")}
208          ${footerAwardBadgesHtml()}
209        </div>
210      </div>
211    </div>
212  `,r.classList.remove("is-collapsible","is-collapse-open"),delete r.dataset.mobileCollapseWrapped,window.requestAnimationFrame(()=>{typeof window.ma360ApplyMobileFooterCollapse=="function"&&window.ma360ApplyMobileFooterCollapse()})}loadPublicSiteSettings().then(e=>{const t=e?.siteSettings?.layout,r=e?.siteSettings?.global||e?.siteSettings?.pages?.home?.global||{};applyGlobalBrandAssets(r),t&&(renderLayoutHeader(t),renderLayoutFooter(t),applyGlobalBrandAssets(r)),window.dispatchEvent(new Event(logoRefreshEventName))}).catch(()=>{}).finally(()=>{cmsRenderPages.has(activePage)||clearCmsRenderPending()});function clamp(e,t,r){return Math.min(Math.max(e,t),r)}const heroCaseSlider=document.querySelector(".hero-case-slider");if(heroCaseSlider){const e=[...heroCaseSlider.querySelectorAll(".hero-case-slide")];let t=0,r=null,a=null;const o=p=>{if(!p||p.dataset.caseImgLoaded==="1")return;if(p.style.getPropertyValue("--case-image")){p.dataset.caseImgLoaded="1";return}
212const h=p.dataset.caseImage||"";h&&(p.style.setProperty("--case-image",`url('${h.replaceAll("'","\\'")}')`),p.dataset.caseImgLoaded="1")},n=(p=t,h=-1)=>{if(!e.length)return;const v=(p%e.length+e.length)%e.length,L=(v+1)%e.length,w=h<0?-1:(h%e.length+e.length)%e.length;o(e[v]),o(e[L]),e.forEach((y,u)=>{y.classList.toggle("is-active",u===v),y.classList.toggle("is-next",u===L),y.classList.toggle("is-exiting",u===w)}),t=v},s=()=>{if(e.length<2)return;const p=t,h=(t+1)%e.length;n(h,p),window.setTimeout(()=>{t===h&&n(t)},620)},c=(p=0)=>{if(r||e.length<2||document.hidden)return;const h=Number.isFinite(p)?Math.max(0,p):0;a&&(window.clearTimeout(a),a=null),h>0&&(a=window.setTimeout(()=>{a=null,!(!r||e.length<2)&&s()},h)),r=window.setInterval(s,3e3)},l=()=>{a&&(window.clearTimeout(a),a=null),r&&(window.clearInterval(r),r=null)};n(0);const d=()=>window.setTimeout(()=>c(1200),5e3);document.readyState==="complete"?d():window.addEventListener("load",d,{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?l():c(900)})}const clientResults=document.querySelector("[data-client-results]");if(clientResults){let e=null,t=!1,r=!1,a=null;const o=x=>{x?.src&&(x.src=x.src)},n=(x=null)=>{clientResults.querySelectorAll("video.home-client-result-video").forEach(B=>{B!==x&&B.pause()}),clientResults.querySelectorAll("iframe.home-client-result-video").forEach(B=>{B!==x&&o(B)})},s=(x="")=>{if(!x)return x;try{const B=new URL(x,window.location.href);return B.searchParams.set("autoplay","1"),B.searchParams.set("playsinline","1"),B.toString()}catch{const B=x.includes("?")?"&":"?";return`${x}${B}autoplay=1&playsinline=1`}},c=()=>{if(!a)return;const x=a.querySelector("video");x&&x.pause(),a.remove(),a=null,r=!1,document.body.classList.remove("client-video-player-open"),!v&&t&&S()},l=x=>{if(!x)return;const B=x.closest("[data-client-result-panel]");!m.matches&&B&&!B.classList.contains("is-active")&&d(B.dataset.clientResultPanel),c(),n(x),r=!0,q();const j=document.createElement("div");j.className="client-video-lightbox",j.setAttribute("role","dialog"),j.setAttribute("aria-modal","true"),j.setAttribute("aria-label","Client result video player");const U=document.createElement("div");U.className="client-video-lightbox-frame";const M=document.createElement("button");if(M.className="client-video-lightbox-close",M.type="button",M.setAttribute("data-client-video-close",""),M.setAttribute("aria-label","Close video player"),M.textContent="x",x.tagName==="IFRAME"){const F=x.cloneNode(!1);F.src=s(x.getAttribute("src")||""),F.removeAttribute("loading"),F.allow="autoplay; encrypted-media; picture-in-picture; fullscreen",U.appendChild(F)}else{const F=document.createElement("video");F.className="client-video-lightbox-video",F.src=x.currentSrc||x.getAttribute("src")||"",F.controls=!0,F.autoplay=!0,F.playsInline=!0;const V=x.getAttribute("poster")||"";V&&(F.poster=V),F.currentTime=x.currentTime||0,U.appendChild(F),x.pause()}j.append(M,U),document.body.appendChild(j),a=j,document.body.classList.add("client-video-player-open"),M.addEventListener("click",F=>{F.preventDefault(),F.stopPropagation(),c()}),M.addEventListener("touchend",F=>{F.preventDefault(),F.stopPropagation(),c()});const H=U.querySelector("video");H&&H.play().catch(()=>{}),M.focus({preventScroll:!0})},d=x=>{const B=[...clientResults.querySelectorAll("[data-client-result-panel]")],j=[...clientResults.querySelectorAll("[data-client-result-button]")],U=B.find(X=>X.dataset.clientResultPanel===x);if(!U||U.classList.contains("is-active"))return;const M=B.find(X=>X.classList.contains("is-active")),H=M?B.indexOf(M):-1,F=B.indexOf(U),V=H!==-1&&F<H?"reverse":"forward";window.clearTimeout(e),n(),c(),clientResults.dataset.transitionDirection=V,clientResults.classList.add("is-switching"),M&&(M.classList.add("is-exiting"),M.classList.remove("is-active"),M.setAttribute("aria-hidden","true"),window.setTimeout(()=>M.classList.remove("is-exiting"),560)),U.classList.add("is-entering","is-active"),U.setAttribute("aria-hidden","false"),window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{U.classList.remove("is-entering")})}
212),j.forEach(X=>{const J=X.dataset.clientResultButton===x;X.classList.toggle("is-active",J),X.setAttribute("aria-selected",String(J))}),e=window.setTimeout(()=>{clientResults.classList.remove("is-switching")},680)};let p=null,h=null,v=!1,L=!1,w=1;const y=3e3,u=5200,g=6e3,m=window.matchMedia("(max-width: 1024px)"),i=clientResults.querySelector(".home-client-results-stage"),b=()=>[...clientResults.querySelectorAll("[data-client-result-panel]")].filter(x=>!x.hidden&&x.offsetParent!==null||!x.hidden).map(x=>x.dataset.clientResultPanel),A=()=>[...clientResults.querySelectorAll("[data-client-result-panel]")].filter(x=>!x.hidden),f=()=>{const x=b();if(x.length<2)return;const j=clientResults.querySelector("[data-client-result-panel].is-active")?.dataset.clientResultPanel,M=((j?x.indexOf(j):-1)+1)%x.length;d(x[M])},C=()=>{if(!i)return;const x=A();if(x.length<2)return;const B=i.clientWidth,j=i.scrollLeft,U=i.scrollWidth-B,M=j+B/2;let H=0,F=1/0;x.forEach((P,T)=>{const Y=P.offsetLeft+P.offsetWidth/2,K=Math.abs(Y-M);K<F&&(F=K,H=T)});let V=H+w;V>x.length-1?(w=-1,V=H-1):V<0&&(w=1,V=H+1);const X=x[V];if(!X)return;const J=X.offsetLeft+X.offsetWidth/2-B/2;i.scrollTo({left:Math.max(0,Math.min(U,J)),behavior:"smooth"})},_=()=>{v||L||(m.matches?C():f())},S=()=>{if(L){q();return}if(v||r||!t||document.hidden)return;q();const x=m.matches?u:y;p=window.setInterval(_,x)},q=()=>{p&&(window.clearInterval(p),p=null)},N=()=>{v||r||!t||(window.clearTimeout(h),h=window.setTimeout(S,g))},D=()=>{v=!0,window.clearTimeout(h),q(),!r&&!L&&(h=window.setTimeout(()=>{v=!1,t&&!document.hidden&&S()},g))};if(clientResults.__carousel={isPaused:()=>L,setPaused:x=>(L=!!x,L?(window.clearTimeout(h),q()):(v=!1,S()),L)},clientResults.addEventListener("click",x=>{const B=x.target.closest("[data-client-video-expand]");if(B){const M=B.closest(".home-client-result-media")?.querySelector(".home-client-result-video");M&&l(M);return}const j=x.target.closest("[data-client-result-button]");if(j){d(j.dataset.clientResultButton),D();return}if(x.target.closest(".home-client-result-media.has-client-video")){const U=x.target.closest(".home-client-result-media")?.querySelector(".home-client-result-video");U&&!x.target.closest("video")&&l(U);return}x.target.closest(".home-client-result-panel, .home-client-result-media")&&D()}),clientResults.addEventListener("play",x=>{const B=x.target.closest?.("video.home-client-result-video");!B||r||l(B)},!0),document.addEventListener("keydown",x=>{x.key==="Escape"&&c()}),document.addEventListener("click",x=>{a&&(x.target.closest?.("[data-client-video-close]")||x.target===a)&&c()}),i){let x=null;const B=(j=!0)=>{j?D():q(),window.clearTimeout(x)};i.addEventListener("touchstart",D,{passive:!0}),i.addEventListener("touchend",B,{passive:!0}),i.addEventListener("pointerdown",D),i.addEventListener("pointerup",B),i.addEventListener("scroll",()=>{v||(window.clearTimeout(x),x=window.setTimeout(S,g))},{passive:!0})}clientResults.addEventListener("focusin",D),clientResults.addEventListener("focusout",N),document.addEventListener("visibilitychange",()=>{document.hidden?(q(),n(),c()):!v&&t&&S()});const G=()=>{q(),!v&&S()};m.addEventListener?m.addEventListener("change",G):m.addListener&&m.addListener(G);const z=[...clientResults.querySelectorAll("[data-client-result-panel]")],E=[...clientResults.querySelectorAll("[data-client-result-button]")].find(x=>x.classList.contains("is-active"))?.dataset.clientResultButton||z[0]?.dataset.clientResultPanel;E&&d(E),"IntersectionObserver"in window?new IntersectionObserver(B=>{t=!!B[0]?.isIntersecting,t?S():(q(),n(),c())},{rootMargin:"0px 0px -18% 0px",threshold:.24}).observe(clientResults):(t=!0,S()),setupClientResultsCarousel()}(function(){if(!window.__ma0WidgetRequested){window.__ma0WidgetRequested=!0;var t=function(){var s=document.createElement("script"),c=!1;try{c=new URLSearchParams(window.location.search).get("ma0")==="next",c||(c=!!(bootstrappedSiteSettingsPayload&&bootstrappedSiteSettingsPayload.siteSettings&&bootstrappedSiteSettingsPayload.siteSettings.global&&bootstrappedSiteSettingsPayload.siteSettings.global.useNextWidget===!0))}catch{c=!1}s.src=c?"/ma0-next.js?v=20260726-ma0-next-7":"/ma0-widget.js?v=20260724-ma0-kb-10",document.head.appendChild(s)},r=!1,a=["pointerdown","keydown","touchstart","scroll"],o=function(){r||(r=!0,a.forEach(function(s){window.removeEventListener(s,o,{passive:!0})}),window.setTimeout(t,0))},n=function(){a.forEach(function(s){window.addEventListener(s,o,{passive:!0,once:!0})}),window.setTimeout(o,8e3)};document.readyState==="complete"?n():window.addEventListener("load",n,{once:!0})}})();function roundTo(e,t=1){const r=10**t;return Math.round(e*r)/r}function parseCssColor(e){const t=String(e||"").trim();if(!t||t==="transparent"||t==="none")return null;if(t.startsWith("#")){let c=t.slice(1);if((c.length===3||c.length===4)&&(c=c.split("").map(d=>d+d).join("")),c.length!==6&&c.length!==8)return null;const l=c.length===8?parseInt(c.slice(6,8),16)/255:1;return{r:parseInt(c.slice(0,2),16),g:parseInt(c.slice(2,4),16),b:parseInt(c.slice(4,6),16),a:l}}const r=t.match(/^rgba?\((.+)\)$/i);if(!r)return null;const a=r[1].split(",").map(c=>c.trim());if(a.length<3)return null;const o=c=>c.endsWith("%")?clamp(parseFloat(c)/100*255,0,255):clamp(parseFloat(c),0,255),n=a[3],s=n===void 0?1:clamp(parseFloat(n),0,1);return{r:o(a[0]),g:o(a[1]),b:o(a[2]),a:Number.isFinite(s)?s:1}}function extractCssColors(e){return(String(e||"").match(/rgba?\([^)]+\)|#[0-9a-fA-F]{3,8}
212/g)||[]).map(parseCssColor).filter(Boolean)}function getColorLuminance(e){const t=n=>{const s=clamp(n/255,0,1);return s<=.03928?s/12.92:((s+.055)/1.055)**2.4},r=t(e.r),a=t(e.g),o=t(e.b);return .2126*r+.7152*a+.0722*o}function resolveToneFromStyle(e){const t=parseCssColor(e.backgroundColor);if(t&&t.a>.18)return getColorLuminance(t)>.58?"light":"dark";const r=extractCssColors(e.backgroundImage).filter(a=>a.a>.08);if(r.length){let a=0,o=0;if(r.forEach(n=>{const s=Math.max(n.a,.18);a+=getColorLuminance(n)*s,o+=s}),o>0)return a/o>.58?"light":"dark"}return""}function buildRoundedRectPath(e,t,r){const a=Math.max(1,e),o=Math.max(1,t),n=clamp(r,0,Math.min(a/2,o/2));return[`M ${n} 0`,`H ${a-n}`,`A ${n} ${n} 0 0 1 ${a} ${n}`,`V ${o-n}`,`A ${n} ${n} 0 0 1 ${a-n} ${o}`,`H ${n}`,`A ${n} ${n} 0 0 1 0 ${o-n}`,`V ${n}`,`A ${n} ${n} 0 0 1 ${n} 0`,"Z"].join(" ")}function getYouTubeVideoId(e){const t=String(e||"").trim();if(!t)return"";try{const r=new URL(t,window.location.origin),a=r.hostname.replace(/^www\./,"").toLowerCase();if(a==="youtu.be")return r.pathname.replace(/^\/+/,"").split("/")[0];if(a==="youtube.com"||a==="m.youtube.com"||a==="music.youtube.com"){if(r.pathname==="/watch")return r.searchParams.get("v")||"";const o=r.pathname.split("/").filter(Boolean);if(["embed","shorts","live"].includes(o[0]))return o[1]||""}}catch{return""}return""}function getVimeoVideoId(e){const t=String(e||"").trim();if(!t)return"";try{const r=new URL(t,window.location.origin),a=r.hostname.replace(/^www\./,"").toLowerCase();if(a!=="vimeo.com"&&a!=="player.vimeo.com")return"";const o=r.pathname.split("/").filter(Boolean);return a==="player.vimeo.com"&&o[0]==="video"?o[1]||"":o.find(n=>/^\d+$/.test(n))||""}catch{return""}}function isDirectVideoAssetUrl(e){const t=String(e||"").trim();if(!t)return!1;try{const r=new URL(t,window.location.origin);return/\.(mp4|webm|mov|m4v)$/i.test(r.pathname)}catch{return/\.(mp4|webm|mov|m4v)(?:[?#].*)?$/i.test(t)}}function getEmbeddableVideoUrl(e){const t=resolveHeroSourceInput(e);if(!t)return"";const r=getYouTubeVideoId(t);if(r)return`https://www.youtube-nocookie.com/embed/${encodeURIComponent(r)}?autoplay=0&playsinline=1&rel=0&modestbranding=1`;const a=getVimeoVideoId(t);return a?`https://player.vimeo.com/video/${encodeURIComponent(a)}?autoplay=0&muted=0&loop=0&playsinline=1`:""}function extractIframeSrc(e){const t=String(e||"").trim();if(!t)return"";const r=t.match(/<iframe[^>]*\bsrc=(["'])(.*?)\1/i);return r?.[2]?String(r[2]).trim():""}function resolveHeroSourceInput(e){const t=String(e||"").trim();return t?extractIframeSrc(t)||t:""}function normalizeClipWindow(e,t,r){const a=Number.isFinite(r)&&r>0?r:null;let o=Number.isFinite(e)?Math.max(e,0):0,n=Number.isFinite(t)?Math.max(t,0):a;return a!==null&&(o=clamp(o,0,Math.max(a-.2,0)),n=n===null?a:clamp(n,.2,a)),(n===null||n<=o)&&(n=a!==null?Math.max(o+.2,a):o+12),a!==null&&(n=clamp(n,Math.min(o+.2,a),a)),{start:roundTo(o,2),end:roundTo(n,2)}}function getHeroMediaConfig(e,t={}){const r=resolveHeroSourceInput(e);if(!r)return null;const a=normalizeClipWindow(Number(t.clipStartSeconds),Number(t.clipEndSeconds),Number(t.durationSeconds)),o=String(t.altText||"").trim(),n=t.autoplay!==!1,s=t.mutedLoop!==!1;try{const c=new URL(r,window.location.origin);if(/\.(gif|webp|avif|png|jpe?g)$/i.test(c.pathname))return{type:"image",src:r,altText:o,autoplay:!1,mutedLoop:!0}}catch{if(/\.(gif|webp|avif|png|jpe?g)(?:[?#].*)?$/i.test(r))return{type:"image",src:r,altText:o,autoplay:!1,mutedLoop:!0}}if(getYouTubeVideoId(r))return null;try{const c=new URL(r,window.location.origin);if(!/\.(mp4|webm|mov|m4v)$/i.test(c.pathname))return null}catch{if(!/\.(mp4|webm|mov|m4v)(?:[?#].*)?$/i.test(r))return null}return{type:"file",src:r,altText:o,autoplay:n,mutedLoop:s,clipStartSeconds:a.start,clipEndSeconds:a.end}}function attachVideoLoopWindow(e,t,r){if(!e)return;const a=Number.isFinite(t)?Math.max(t,0):0,o=Number.isFinite(r)?Math.max(r,0):null,n=()=>{a>0&&e.currentTime<a&&(e.currentTime=a)},s=()=>{o!==null&&o>a&&e.currentTime>=o-.05&&(e.currentTime=a,e.play().catch(()=>{}))};e.addEventListener("loadedmetadata",n),e.addEventListener("timeupdate",s),e.readyState>=1&&n()}if((()=>{const e="ma360_public_scroll_positions",t=`${window.location.origin}${window.location.pathname}${window.location.search}`,r=["[data-scroll-restore]","[data-prin-viewport]","[data-ab3-office-strip]"].join(","),a=()=>{try{const u=performance.getEntriesByType?.("navigation")?.[0];if(u&&u.type)return u.type}catch{}return"navigate"},o=u=>window.CSS&&typeof window.CSS.escape=="function"?window.CSS.escape(u):String(u).replace(/["\\#.:,[\]>+~*^$|=(){}\s]/g,"\\$&"),n=()=>{try{return JSON.parse(window.sessionStorage.getItem(e)||"{}")||{}}catch{return{}}},s=u=>{const g=[];let m=u;for(;m&&m.nodeType===1&&m!==document.documentElement;){const i=m.tagName.toLowerCase();if(m.id){g.unshift(`${i}#${o(m.id)}`);break}let b=i;const A=Array.from(m.classList||[]).find(C=>!/^(is-|has-|js-|active$|visible$)/.test(C));A&&(b+=`.${o(A)}`);const f=m.parentElement;if(f){const C=Array.from(f.children).filter(_=>_.tagName===m.tagName);C.length>1&&(b+=`:nth-of-type(${C.indexOf(m)+1})`)}if(g.unshift(b),m=f,g.length>6)break}return g.join(">")},c=u=>{if(!u||u===document.documentElement||u===document.body)return"";const g=u.getAttribute("data-scroll-restore");return g?`[data-scroll-restore="${o(g)}"]`:u.hasAttribute("data-prin-viewport")?"[data-prin-viewport]":u.hasAttribute("data-ab3-office-strip")?"[data-ab3-office-strip]":u.id?`#${o(u.id)}`:s(u)},l=u=>{if(!u||u===document.documentElement||u===document.body||!(u.scrollWidth-u.clientWidth>4||u.scrollHeight-u.clientHeight>4))return!1;if(u.matches?.(r))return!0;const m=window.getComputedStyle(u);return/(auto|scroll)/.test(`${m.overflowX} ${m.overflowY}`)},d=()=>{const u=new Set;return document.querySelectorAll(r).forEach(g=>u.add(g)),document.querySelectorAll("main *, .page-shell *, .site-shell *").forEach(g=>{l(g)&&u.add(g)}),Array.from(u).filter(l)},p=()=>d().map(u=>{const g=c(u),m=u.scrollLeft||0,i=u.scrollTop||0;return!g||!m&&!i?null:{selector:g,x:m,y:i}}
212).filter(Boolean).slice(0,60),h=()=>{if(window.location.hash)return;const u=n();u[t]={x:window.scrollX||0,y:window.scrollY||document.documentElement.scrollTop||0,elements:p(),t:Date.now()};const g=Object.keys(u);g.length>30&&g.sort((m,i)=>(u[m]?.t||0)-(u[i]?.t||0)).slice(0,g.length-30).forEach(m=>delete u[m]);try{window.sessionStorage.setItem(e,JSON.stringify(u))}catch{}},v=()=>{const u=n()[t];if(!u)return!1;const g=()=>{window.scrollTo({top:Number(u.y)||0,left:Number(u.x)||0,behavior:"auto"}),(Array.isArray(u.elements)?u.elements:[]).forEach(m=>{if(!m||!m.selector)return;const i=document.querySelector(m.selector);i&&i.scrollTo({left:Number(m.x)||0,top:Number(m.y)||0,behavior:"auto"})})};return g(),requestAnimationFrame(g),window.setTimeout(g,80),window.setTimeout(g,240),window.setTimeout(g,700),!0},L=()=>{window.location.hash||(window.scrollTo({top:0,left:0,behavior:"auto"}),requestAnimationFrame(()=>window.scrollTo({top:0,left:0,behavior:"auto"})),window.setTimeout(()=>window.scrollTo({top:0,left:0,behavior:"auto"}),80),window.setTimeout(()=>window.scrollTo({top:0,left:0,behavior:"auto"}),240))};"scrollRestoration"in history&&(history.scrollRestoration="manual"),window.addEventListener("pagehide",h),window.addEventListener("beforeunload",h);const w=u=>{const g=a();return u?.persisted||g==="back_forward"||g==="reload"},y=u=>{window.location.hash||w(u)&&v()||L()};window.addEventListener("pageshow",u=>{y(u)}),window.addEventListener("load",()=>{y()})})(),!reduceMotion&&"IntersectionObserver"in window){const e=new IntersectionObserver(r=>{r.forEach(a=>{a.isIntersecting&&(a.target.classList.add("is-visible"),e.unobserve(a.target))})},{threshold:.16});revealItems.forEach(r=>e.observe(r));const t=document.querySelector(".home-editorial-frame .home-editorial-shell.reveal");if(t){e.unobserve(t);const r=new IntersectionObserver(a=>{a.forEach(o=>{o.isIntersecting&&(o.target.classList.add("is-visible"),r.unobserve(o.target))})},{threshold:0,rootMargin:"600% 0px -26% 0px"});r.observe(t),window.maObserveHomeStackReveal=a=>r.observe(a)}}else revealItems.forEach(e=>e.classList.add("is-visible"));applyActiveNavigationState();const adaptiveLogos=Array.from(document.querySelectorAll("[data-adaptive-logo]"));if(adaptiveLogos.length){let e=!1;const t=o=>{const n=o.closest("[data-logo-surface]")?.getAttribute("data-logo-surface");if(n==="light"||n==="dark")return n;const s=o.dataset.logoFallback==="dark"?"dark":"light",c=o.getBoundingClientRect();if(c.width<1||c.height<1)return s;const l=[[c.left+c.width*.5,c.top+c.height*.5],[c.left+c.width*.2,c.top+c.height*.5],[c.left+c.width*.8,c.top+c.height*.5]],d=new Set;for(const[p,h]of l){const v=clamp(p,0,Math.max(window.innerWidth-1,0)),L=clamp(h,0,Math.max(window.innerHeight-1,0)),w=document.elementsFromPoint(v,L);for(const y of w){if(!(y instanceof Element)||y===o)continue;let u=y;for(;u&&u!==document.documentElement;){if(u===o||u.contains(o)){u=u.parentElement;continue}if(d.has(u)){u=u.parentElement;continue}d.add(u);const g=u.getAttribute("data-logo-surface");if(g==="light"||g==="dark")return g;const m=resolveToneFromStyle(getComputedStyle(u));if(m)return m;u=u.parentElement}}}return s},r=()=>{e=!1,adaptiveLogos.forEach(o=>{if(activePage==="home"&&o.closest(".site-header"))return;const n=t(o),s=o.dataset.logoLight,c=o.dataset.logoDark,l=n==="light"?s:c;!l||o.getAttribute("src")===l||o.setAttribute("src",l)})},a=()=>{e||(e=!0,window.requestAnimationFrame(r))};window.addEventListener("scroll",a,{passive:!0}),window.addEventListener("resize",a,{passive:!0}),window.addEventListener("load",a),window.addEventListener("pageshow",a),window.addEventListener(logoRefreshEventName,a),a()}const siteHeader=document.querySelector(".site-header"),menuToggle=document.querySelector(".menu-toggle"),headerNav=siteHeader?.querySelector(".main-nav"),resourceToggles=Array.from(document.querySelectorAll("[data-nav-resource-toggle]"));(function(){document.querySelectorAll(".nav-resource-menu--rich").forEach(t=>{if(t.querySelector(".nav-resource-foot"))return;const r=document.createElement("div");r.className="nav-resource-foot",r.innerHTML=`
213      <span class="nav-resource-foot-status">
214        <span class="nav-resource-foot-pulse" aria-hidden="true"></span>
215        <span class="nav-resource-foot-status-text">Fresh insights \u2014 updated weekly</span>
216      </span>
217      <button type="button" class="nav-resource-foot-cta" data-open-lead-modal-header role="menuitem">
218        <span class="nav-resource-foot-cta-copy">
219          <strong>Book a strategy call</strong>
220          <span>30 minutes. Tailored to your goals.</span>
221        </span>
222        <i aria-hidden="true">&rarr;</i>
223      </button>`,t.appendChild(r)})})();const homeHeaderBrand=activePage==="home"?siteHeader?.querySelector(".brand"):null,homeLeadLauncher=activePage==="home"?document.querySelector(".hero-lead-launcher"):null,homeLeadOptions=activePage==="home"?Array.from(document.querySelectorAll("[data-lead-option]")):[],leadModalEnabled=!!document.querySelector("[data-lead-modal]"),homeLeadOpenButton=leadModalEnabled?document.querySelector("[data-open-lead-modal]"):null,homeLeadModal=leadModalEnabled?document.querySelector("[data-lead-modal]"):null,homeLeadForm=leadModalEnabled?document.querySelector("[data-lead-form]"):null,homeLeadFeedback=leadModalEnabled?document.querySelector("[data-lead-feedback]"):null,homeLeadEmailInput=leadModalEnabled?document.querySelector('[data-lead-form] input[name="email"]'):null,homeLeadWebsiteInput=leadModalEnabled?document.querySelector('[data-lead-form] input[name="websiteUrl"]'):null,homeLeadPhoneInput=leadModalEnabled?document.querySelector('[data-lead-form] input[name="phone"]'):null,homeLeadCountrySelect=leadModalEnabled?document.querySelector('[data-lead-form] select[name="phoneCountry"]'):null,homeLeadBudgetInput=leadModalEnabled?document.querySelector('[data-lead-form] [name="monthlyBudget"]'):null,homeLeadServiceSelect=leadModalEnabled?document.querySelector("[data-lead-service-select]"):null,homeLeadHeaderOpenButtons=leadModalEnabled?Array.from(document.querySelectorAll("[data-open-lead-modal-header]")):[],homeLeadCloseButtons=leadModalEnabled?Array.from(document.querySelectorAll("[data-close-lead-modal]")):[],scheduleLeadNode=activePage==="schedule-call"?document.querySelector("[data-schedule-lead]"):null,scheduleCalendlyNode=activePage==="schedule-call"?document.querySelector("[data-calendly-embed]"):null,scheduleStatusNode=activePage==="schedule-call"?document.querySelector("[data-schedule-status]"):null,scheduleStatusNoteNode=activePage==="schedule-call"?document.querySelector("[data-schedule-status-note]"):null,cookieConsentStorageKey="ma360-cookie-consent",cookiePreferencesStorageKey="ma360-cookie-preferences",headerThemeStorageKey="ma360-header-theme",serviceLeadModalScrollLock={locked:!1,scrollY:0,inlineStyles:null},isServiceLeadModalTouchViewport=()=>document.body?.getAttribute("data-page")!=="services"?!1:window.matchMedia?window.matchMedia("(max-width: 1024px)").matches:!0,lockServiceLeadModalScroll=()=>{if(!isServiceLeadModalTouchViewport()||serviceLeadModalScrollLock.locked||!document.body)return;const e=document.body;serviceLeadModalScrollLock.scrollY=window.scrollY||document.documentElement.scrollTop||0,serviceLeadModalScrollLock.inlineStyles={position:e.style.position,top:e.style.top,left:e.style.left,right:e.style.right,width:e.style.width,overflow:e.style.overflow},e.style.position="fixed",e.style.top=`-${serviceLeadModalScrollLock.scrollY}px`,e.style.left="0",e.style.right="0",e.style.width="100%",e.style.overflow="hidden",serviceLeadModalScrollLock.locked=!0},unlockServiceLeadModalScroll=()=>{if(!serviceLeadModalScrollLock.locked||!document.body)return;const e=document.body,t=serviceLeadModalScrollLock.inlineStyles||{};e.style.position=t.position||"",e.style.top=t.top||"",e.style.left=t.left||"",e.style.right=t.right||"",e.style.width=t.width||"",e.style.overflow=t.overflow||"";const r=serviceLeadModalScrollLock.scrollY||0;serviceLeadModalScrollLock.locked=!1,serviceLeadModalScrollLock.inlineStyles=null;const a=()=>window.scrollTo(0,r);a(),requestAnimationFrame(a),window.setTimeout(a,80)},setLeadModalOpenState=e=>{document.body.classList.toggle("lead-modal-open",e),e?lockServiceLeadModalScroll():unlockServiceLeadModalScroll()};window.addEventListener("resize",()=>{document.body.classList.contains("lead-modal-open")&&(isServiceLeadModalTouchViewport()?lockServiceLeadModalScroll():unlockServiceLeadModalScroll())},{passive:!0});const openLeadModalFromAnyCta=()=>{const e=document.querySelector("[data-lead-modal]");if(!e)return!1;const r=e.querySelector("[data-lead-form]")?.querySelector('input[name="sourcePage"]');if(r&&!r.value.trim()){const a=String(document.title||"").split(/\s*[|·—–-]\s*/)[0].trim();r.value=a||"Website"}return e.hidden=!1,setLeadModalOpenState(!0),requestAnimationFrame(()=>{const a=e.querySelector("input, select, textarea, button");a&&typeof a.focus=="function"&&a.focus({preventScroll:!0})}),!0},openLeadModalOrRoute=()=>{if(openLeadModalFromAnyCta())return!0;try{window.sessionStorage.setItem(CHAT_LEAD_MODAL_KEY,"1"),window.sessionStorage.setItem(CHAT_LEAD_MODAL_AT_KEY,String(Date.now()))}catch{}return window.location.href="/#lead-form",!0};if(document.addEventListener("click",e=>{e.target.closest("[data-footer-lead-cta], [data-open-lead-modal-header], [data-open-lead-modal]")&&(e.preventDefault(),e.stopImmediatePropagation(),openLeadModalOrRoute())},!0),document.addEventListener("click",e=>{const t=e.target.closest("[data-close-lead-modal]");if(!t)return;const r=t.closest("[data-lead-modal]")||document.querySelector("[data-lead-modal]");r&&(e.preventDefault(),r.hidden=!0,setLeadModalOpenState(!1))},!0),document.addEventListener("keydown",e=>{if(e.key!=="Escape")return;const t=document.querySelector("[data-lead-modal]:not([hidden])");t&&(t.hidden=!0,setLeadModalOpenState(!1))}),resourceToggles.length){document.body.classList.add("is-nav-suppressed");const e=document.activeElement;
223if(e&&e.closest&&e.closest(".nav-resource-group--mega"))try{e.blur()}catch{}document.querySelectorAll(".nav-resource-group.is-open, .nav-resource-group--mega.is-open").forEach(s=>{s.classList.remove("is-open"),s.querySelector("[data-nav-resource-toggle]")?.setAttribute("aria-expanded","false")});const t=()=>document.body.classList.remove("is-nav-suppressed");window.setTimeout(t,500);const r=()=>{t(),window.removeEventListener("mousemove",r),window.removeEventListener("pointerdown",r)};window.addEventListener("mousemove",r,{once:!0,passive:!0}),window.addEventListener("pointerdown",r,{once:!0,passive:!0});const a=()=>{siteHeader?.classList.remove("is-scroll-hidden"),document.body.classList.remove("home-header-hidden")},o=(s=null)=>{resourceToggles.forEach(c=>{const l=c.closest("[data-nav-group]");l&&l!==s&&(l.classList.remove("is-open"),c.setAttribute("aria-expanded","false"))})},n=s=>{const c=s.closest("[data-nav-group]");return c?(a(),o(c),c.classList.add("is-open"),s.setAttribute("aria-expanded","true"),c):null};resourceToggles.forEach(s=>{const c=s.closest("[data-nav-group]"),l=c?.querySelector(".nav-resource-menu");let d=null,p=null;if(l&&!l.id&&(l.id=`nav-resource-menu-${Math.random().toString(36).slice(2,8)}`),l?.id&&s.setAttribute("aria-controls",l.id),c?.classList.contains("nav-resource-group--mega")){const h=()=>window.matchMedia("(hover: hover) and (pointer: fine)").matches,v=()=>{d&&window.clearTimeout(d),p&&window.clearTimeout(p),d=null,p=null};c.addEventListener("pointerenter",()=>{h()&&(document.body.classList.contains("is-nav-suppressed")||(p&&window.clearTimeout(p),p=null,!c.classList.contains("is-open")&&(d=window.setTimeout(()=>{n(s),d=null},170))))}),c.addEventListener("pointerleave",()=>{h()&&(d&&window.clearTimeout(d),d=null,p=window.setTimeout(()=>{c.matches(":focus-within")||(c.classList.remove("is-open"),s.setAttribute("aria-expanded","false")),p=null},140))}),s.addEventListener("pointerdown",v)}s.addEventListener("click",h=>{const v=s.closest("[data-nav-group]"),L=v?.getAttribute("data-nav-group")||"",w=s.getAttribute("data-nav-resource-url")||v?.getAttribute("data-nav-group-url")||"";if(L==="services"&&w&&shouldUseDirectNavigation(h)){h.preventDefault(),h.stopImmediatePropagation(),window.location.href=normalizeServicesIndexUrl(w);return}if(h.preventDefault(),h.stopPropagation(),!v)return;const y=!v.classList.contains("is-open");y&&a(),o(v),v.classList.toggle("is-open",y),s.setAttribute("aria-expanded",y?"true":"false")}),s.addEventListener("keydown",h=>{if(h.key==="Escape"){o(),s.focus();return}if(h.key!=="ArrowDown")return;h.preventDefault(),n(s)?.querySelector(".nav-resource-menu a")?.focus()}),l?.addEventListener("click",h=>{h.stopPropagation(),h.target.closest("a")&&o()})}),document.addEventListener("click",s=>{s.target.closest("[data-nav-group]")||o()}),document.addEventListener("keydown",s=>{s.key==="Escape"&&o()})}function setNodeText(e,t){const r=document.querySelector(e),a=String(t||"").trim();r&&a&&(r.textContent=a)}function setNodeTextFor(e,t,r){const a=e?.querySelector(t),o=String(r||"").trim();a&&o&&(a.textContent=o)}function setOptionalTextNode(e,t){if(!e||t===void 0||t===null)return;const r=String(t).trim();e.textContent=r,e.hidden=!r}function setImageSource(e,t,r=""){const a=String(t||"").trim();!e||!a||(e.src=a,r&&(e.alt=r))}function setAddressLines(e,t){const r=String(t||"").trim();if(!e||!r)return;const a=r.split(/\n+/).map(o=>o.trim()).filter(Boolean);e.replaceChildren(),a.forEach((o,n)=>{n&&e.appendChild(document.createElement("br")),e.appendChild(document.createTextNode(o))})}function splitCsv(e){return String(e||"").split(",").map(t=>t.trim()).filter(Boolean)}function escapeHtmlText(e){return String(e||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function setLinkLabel(e,t,r){if(!e)return;const a=String(t||"").trim(),o=String(r||"").trim();if(o&&(e.href=o),!a)return;const n=e.querySelector("i")?.cloneNode(!0);e.replaceChildren();const s=document.createElement("span");s.textContent=a,e.appendChild(s),n&&e.appendChild(n)}function setTextWithDot(e,t,r){const a=String(t||"").trim();if(!e||!a)return;const n=e.querySelector(`.${r}`)?.cloneNode(!0)||document.createElement("span");n.className=r,n.setAttribute("aria-hidden","true"),e.replaceChildren(n,document.createTextNode(a))}function setAboutHeadline(e,t){const r=String(t||"").trim();e&&r&&(e.textContent=r)}function sanitizeAboutInlineHtml(e){const t=document.createElement("template");t.innerHTML=String(e||"");const r=new Set(["EM","STRONG","BR","A"]),a=o=>
223{Array.from(o.childNodes).forEach(n=>{if(n.nodeType===Node.ELEMENT_NODE){if(!r.has(n.tagName)){n.replaceWith(document.createTextNode(n.textContent||""));return}Array.from(n.attributes).forEach(s=>{const c=s.name.toLowerCase();if(n.tagName==="A"&&c==="href"){const l=String(s.value||"").trim();if(/^(https?:|mailto:|tel:|#|\/)/i.test(l)&&!/javascript:/i.test(l))return}n.removeAttribute(s.name)}),n.tagName==="A"&&(n.setAttribute("target","_blank"),n.setAttribute("rel","noreferrer noopener")),a(n)}})};return a(t.content),t.innerHTML}function setRichTextNode(e,t){const r=String(t||"").trim();e&&r&&(e.innerHTML=sanitizeAboutInlineHtml(r))}function renderAboutRichParagraphs(e=[],t=""){return(Array.isArray(e)?e:[]).map(a=>{const o=typeof a=="object"?a.text:a;return`<p${t?` class="${escapeHtmlText(t)}"`:""}>${sanitizeAboutInlineHtml(o)}</p>`}).join("")}function setAb3Eyebrow(e,t){const r=String(t||"").trim();if(!e||!r)return;const a=e.querySelector("i")?.cloneNode(!0)||document.createElement("i");a.setAttribute("aria-hidden","true"),e.replaceChildren(a,document.createTextNode(r))}function setVideoSource(e,t){const r=String(t||"").trim();if(!e)return;const a=e.querySelector("source")||document.createElement("source");a.parentNode||e.appendChild(a);const o=e.hasAttribute("data-lazy-video")?"data-src":"src",n=o==="data-src"?"src":"data-src";if(!r){try{e.pause(),e.removeAttribute("src"),e.removeAttribute("poster"),e.dataset.mediaEmpty="true",e.dataset.lazyVideoLoaded="false",a.removeAttribute("src"),a.removeAttribute("data-src"),e.load()}catch{}return}const s=a.getAttribute(o)||"";if(delete e.dataset.mediaEmpty,a.setAttribute(o,r),a.removeAttribute(n),/\.webm(?:[?#]|$)/i.test(r)?a.setAttribute("type","video/webm"):a.setAttribute("type","video/mp4"),!(s===r&&!e.autoplay)){if(o==="data-src"){if(e.removeAttribute("src"),e.dataset.lazyVideoLoaded="false",e.autoplay){a.setAttribute("src",r),a.removeAttribute("data-src"),e.dataset.lazyVideoLoaded="true";try{e.load(),e.play?.().catch?.(()=>{})}catch{}}return}try{e.load()}catch{}}}function updateSelectOptions(e,t,r){if(!e)return;const a=e.value,o=Array.isArray(r)?r:[];e.innerHTML="";const n=document.createElement("option");n.value="",n.textContent=t||"Select",e.appendChild(n),o.forEach(s=>{const c=document.createElement("option");c.value=String(s?.value||s?.label||"").trim(),c.textContent=String(s?.label||s?.value||"").trim(),e.appendChild(c)}),a&&Array.from(e.options).some(s=>s.value===a)&&(e.value=a)}function setPhoneHref(e,t){const r=String(t||"").trim();!e||!r||(e.textContent=r,e.href=`tel:${r.replace(/[^\d+]/g,"")}`)}const about2026LayerSelectors={progress:".ab3-progress",grain:".ab3-grain",hero:".ab3-hero",frame2:".ab3-frame2",founder:".ab3-founder",office:".ab3-office",principles:".ab3-prin",team:".ab3-team",logoStory:"#ab3-logo-story-modal",brandStory:"#ab3-brand-story-modal",leadModal:".lead-modal",footer:".ma-footer"};function applyAbout2026LayerStates(e={}){Object.entries(about2026LayerSelectors).forEach(([t,r])=>{const a=document.querySelector(r),o=e[t]||{};a&&(a.hidden=o.visible===!1,a.classList.toggle("ab3-is-paused",o.paused===!0))})}function renderAb3ModalMovement(e={}){const t=e.lead?`<p class="ab3-lsm-lead">${sanitizeAboutInlineHtml(e.lead)}</p>`:"",r=renderAboutRichParagraphs(e.paragraphs),a=e.pull?`<p class="ab3-logo-story-pull">${sanitizeAboutInlineHtml(e.pull)}</p>`:"";return`
224    <section class="ab3-lsm-movement">
225      <span class="ab3-lsm-ghost" aria-hidden="true">${escapeHtmlText(e.number)}</span>
226      <header class="ab3-lsm-mvmt-head">
227        <span class="ab3-lsm-mvmt-num">${escapeHtmlText(e.number)}</span>
228        <span class="ab3-lsm-mvmt-title">${escapeHtmlText(e.title)}</span>
229      </header>
230      ${t}
231      ${r}
232      ${a}
233    </section>
234  `}function renderAb3BigPull(e=[]){const t=Array.isArray(e)?e.filter(r=>r&&r.text):[];return t.length?`
235    <aside class="ab3-lsm-bigpull" aria-hidden="true">
236      ${t.map(r=>`<span class="ab3-lsm-bigpull-line${r?.accent?" ab3-lsm-bigpull-accent":""}">${sanitizeAboutInlineHtml(r?.text)}</span>`).join("")}
237    </aside>
238  `:""}function getAboutPlainText(e){const t=document.createElement("div");return t.innerHTML=sanitizeAboutInlineHtml(e),t.textContent||t.innerText||""}function getAboutPrincipleShortNumber(e,t=0){const r=String(e||"").match(/\d+/g);return(r?r[r.length-1]:String(t+1)).padStart(2,"0")}function applyAboutIndependentPrinciples(e={}){const t=Array.isArray(e.items)?e.items:[];setAb3Eyebrow(document.querySelector(".ind-cap .ind-cap-eyebrow"),e.eyebrow),setAb3Eyebrow(document.querySelector(".ind-cap-m .ind-cap-eyebrow"),e.eyebrow),setRichTextNode(document.querySelector(".ind-cap-h2"),e.title),setRichTextNode(document.querySelector(".ind-cap-m-head h2"),e.title),setTextNode(document.querySelector(".ind-cap-sub"),e.lead),updateListByPosition(document.querySelectorAll(".ind-cap-dot"),t,(d,p)=>{setTextNode(d,getAboutPlainText(p.title))}),updateListByPosition(document.querySelectorAll(".ind-cap-panel"),t,(d,p,h)=>{setTextNode(d.querySelector(".ind-cap-index"),getAboutPrincipleShortNumber(p.number,h)),setTextNode(d.querySelector(".ind-cap-tag"),p.kicker||p.label||p.number),setRichTextNode(d.querySelector("h3"),p.title),setRichTextNode(d.querySelector("p"),p.description)});const r=document.querySelector("[data-capm]");if(!r)return;const a=Array.from(r.querySelectorAll(".ind-cap-m-tab"));updateListByPosition(a,t,(d,p)=>{setTextNode(d,getAboutPlainText(p.title)),d.dataset.desc=getAboutPlainText(p.description),p.imageUrl&&(d.dataset.img=p.imageUrl)});const o=r.querySelector(".ind-cap-m-tab.is-active")||a[0],n=r.querySelector("[data-capm-img]"),s=r.querySelector("[data-capm-desc]"),c=r.querySelector("[data-capm-count]"),l=Math.max(0,a.indexOf(o));o&&(setImageSource(n,o.dataset.img,o.textContent||""),setTextNode(s,o.dataset.desc)),c&&a.length&&(c.innerHTML=`<b>${String(l+1).padStart(2,"0")}</b> / ${String(a.length).padStart(2,"0")}`)}function updateAb3StoryModal(e,t={}){if(!e)return;setRichTextNode(e.querySelector(".ab3-logo-story-modal-title"),t.title),setTextNode(e.querySelector(".ab3-logo-story-modal-subtitle"),t.subtitle),setImageSource(e.querySelector(".ab3-lss-final, .ab3-bsm-art-logo"),t.finalLogoUrl||t.logoUrl,t.finalLogoAlt||t.logoAlt);const r=e.querySelectorAll(".ab3-logo-story-modal-caption span");setTextNode(r[0],t.captionLine1),setTextNode(r[1],t.captionLine2),setTextNode(e.querySelector(".ab3-lss-replay span"),t.replayLabel);const a=e.querySelector(".ab3-logo-story-modal-copy");a&&(a.innerHTML=`
239      ${(Array.isArray(t.movements)?t.movements:[]).map(renderAb3ModalMovement).join("")}
240      ${renderAb3BigPull(t.bigPull)}
241      ${t.coda?`<p class="ab3-logo-story-modal-coda">${sanitizeAboutInlineHtml(t.coda)}</p>`:""}
242    `)}function applyAbout2026Content(e={},t={}){applySeoMetadata(t.seo||{}),applyAbout2026LayerStates(e);const r=e.hero||{};setRichTextNode(document.querySelector("[data-ab3-tagline]"),r.tagline),setTextNode(document.querySelector(".ab3-cursor-play-label"),r.playCursorLabel),setVideoSource(document.querySelector(".ab3-hero-video video"),r.backgroundVideoUrl),setVideoSource(document.querySelector(".ab3-video-modal video"),r.modalVideoUrl);const a=document.querySelector(".ab3-video-modal-meta");
242if(a&&r.modalMeta){const A=a.querySelector("i")?.cloneNode(!0)||document.createElement("i");A.setAttribute("aria-hidden","true"),a.replaceChildren(A,document.createTextNode(r.modalMeta))}setTextNode(document.querySelector(".ab3-video-modal-label"),r.modalLabel);const o=e.frame2||{};updateListByPosition(document.querySelectorAll(".ab3-frame2-stat"),o.stats,(A,f)=>{setTextNode(A.querySelector(".ab3-frame2-stat-index"),f.index);const C=A.querySelector("[data-ab3-count]");C&&f.value&&(C.dataset.ab3Count=String(f.value).replace(/[^\d]/g,"")||"0",C.textContent=String(f.value)),setTextNode(A.querySelector(".ab3-frame2-stat-value i"),f.suffix),setTextNode(A.querySelector(".ab3-frame2-stat-label"),f.label),setTextNode(A.querySelector(".ab3-frame2-stat-meta"),f.meta)});const n=Array.isArray(o.brandWords)?o.brandWords:[],s=document.querySelector(".ab3-bsc-typo");s&&n.length&&(s.innerHTML=n.map(A=>`<span class="ab3-bsc-word${A.accent?" ab3-bsc-word--accent":""}">${escapeHtmlText(A.text)}</span>`).join("")),setTextNode(document.querySelector(".ab3-bsc-corner"),o.brandCorner),setTextNode(document.querySelector(".ab3-brand-story-kicker"),o.brandKicker),setRichTextNode(document.querySelector(".ab3-brand-story-info strong"),o.brandTitle),setRichTextNode(document.querySelector(".ab3-brand-story-teaser"),o.brandTeaser),setTextNode(document.querySelector(".ab3-brand-story-cta"),o.brandCtaLabel?`${o.brandCtaLabel} \u2192`:""),setTextNode(document.querySelector(".ab3-frame2-globe-head strong"),o.globeTitle);const c=document.querySelector(".ab3-frame2-globe-status");if(c&&o.globeStatus){const A=c.querySelector("i")?.cloneNode(!0)||document.createElement("i");A.setAttribute("aria-hidden","true"),c.replaceChildren(A,document.createTextNode(o.globeStatus))}const l=e.founder||{};setImageSource(document.querySelector(".ab3-founder-card--portrait > img"),l.portraitImageUrl,l.portraitImageAlt),setTextNode(document.querySelector(".ab3-founder-portrait-copy > strong"),l.name),setTextNode(document.querySelector(".ab3-founder-portrait-copy > span"),l.title);const d=document.querySelector(".ab3-founder-portrait-bio");d&&Array.isArray(l.bio)&&(d.innerHTML=renderAboutRichParagraphs(l.bio)),setTextNode(document.querySelector(".ab3-founder-card--story .ab3-founder-kicker"),l.storyKicker),setRichTextNode(document.querySelector(".ab3-founder-card--story h2"),l.storyTitle);const p=document.querySelector(".ab3-founder-copy");p&&Array.isArray(l.storyParagraphs)&&(p.innerHTML=renderAboutRichParagraphs(l.storyParagraphs)),setLinkLabel(document.querySelector(".ab3-founder-link"),l.ctaLabel,l.ctaHref),document.querySelectorAll(".ab3-frame2-mark3d-stack img").forEach((A,f)=>{setImageSource(A,l.credentialLogoUrl,f?"":l.credentialLogoAlt)}),setTextNode(document.querySelector(".ab3-logo-story-kicker"),l.credentialKicker),setRichTextNode(document.querySelector(".ab3-logo-story strong"),l.credentialTitle),setRichTextNode(document.querySelector(".ab3-logo-story-teaser"),l.credentialTeaser),setTextNode(document.querySelector(".ab3-logo-story-cta"),l.credentialCtaLabel?`${l.credentialCtaLabel} \u2192`:"");const h=e.office||{};
242setTextNode(document.querySelector(".ab3-bts-title"),h.title),updateListByPosition(document.querySelectorAll("[data-ab3-office-tile]"),h.images,(A,f)=>{const C=f.imageUrl||f.src||"",_=f.fullImageUrl||C;A.dataset.hi=_,A.dataset.caption=f.caption||"",A.classList.remove("ab3-bts-cell--portrait","ab3-bts-cell--landscape","ab3-bts-cell--square"),A.classList.add(`ab3-bts-cell--${["portrait","landscape","square"].includes(f.shape)?f.shape:"square"}`);const S=A.querySelector("img");setImageSource(S,C,f.alt)});const v=e.principles||{};setAb3Eyebrow(document.querySelector(".ab3-prin .ab3-eyebrow"),v.eyebrow),setRichTextNode(document.querySelector(".ab3-prin .ab3-h2"),v.title),applyAboutIndependentPrinciples(v),updateListByPosition(document.querySelectorAll(".ab3-prin-slide"),v.items,(A,f)=>{setTextNode(A.querySelector("[data-prin-num]"),f.number),setRichTextNode(A.querySelector("[data-prin-title]"),f.title),setRichTextNode(A.querySelector("[data-prin-desc]"),f.description)}),document.dispatchEvent(new CustomEvent("ab3:principles-rendered"));const L=e.team||{};setAb3Eyebrow(document.querySelector(".ab3-team .ab3-eyebrow"),L.eyebrow),setRichTextNode(document.querySelector(".ab3-team .ab3-h2"),L.title),setRichTextNode(document.querySelector(".ab3-team .ab3-lead"),L.lead),updateListByPosition(document.querySelectorAll(".ab3-team-card"),L.items,(A,f)=>{A.classList.toggle("ab3-team-card--hero",f.featured===!0);const C=A.querySelector(".ab3-team-avatar"),_=String(f.mediaUrl||f.imageUrl||f.avatarUrl||f.photoUrl||"").trim(),S=String(f.initials||"").trim();if(C)if(C.dataset.initials=S,C.classList.toggle("has-media",!!_),_){const N=C.querySelector("img")||document.createElement("img"),D=clamp(Number(f.mediaFocalX??f.focalX??50)||50,0,100),G=clamp(Number(f.mediaFocalY??f.focalY??50)||50,0,100),z=clamp(Number(f.mediaZoom??f.zoom??1)||1,1,2);N.src=_,N.alt=String(f.mediaAlt||f.imageAlt||f.avatarAlt||f.photoAlt||f.name||S||"Leadership image").trim(),N.loading="lazy",N.decoding="async",N.style.objectPosition=`${D}% ${G}%`,N.style.transform=`scale(${z})`,N.style.transformOrigin=`${D}% ${G}%`,C.replaceChildren(N)}else C.textContent=S;setRichTextNode(A.querySelector(".ab3-team-info h3"),f.name),setRichTextNode(A.querySelector(".ab3-team-info p"),f.description),setTextNode(A.querySelector(".ab3-team-info i"),f.role);const q=A.querySelector(".ab3-team-mail");if(q){const N=String(f.email||"").trim();/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(N)?(q.href=`mailto:${encodeURIComponent(N).replace(/%40/g,"@")}`,q.textContent=N,q.hidden=!1):(q.removeAttribute("href"),q.textContent="",q.hidden=!0)}}),updateAb3StoryModal(document.querySelector("#ab3-logo-story-modal"),e.logoStory||{});const w=e.brandStory||{};updateAb3StoryModal(document.querySelector("#ab3-brand-story-modal"),w),setTextNode(document.querySelector(".ab3-bsm-label--n"),w.labelNorth),setTextNode(document.querySelector(".ab3-bsm-label--e"),w.labelEast),setTextNode(document.querySelector(".ab3-bsm-label--s"),w.labelSouth),setTextNode(document.querySelector(".ab3-bsm-label--w"),w.labelWest),setTextNode(document.querySelector(".ab3-bsm-meta"),w.orbitMeta);const y=e.leadModal||{};setImageSource(document.querySelector(".lead-modal-brand-logo"),y.logoUrl,y.logoAlt),setTextNode(document.querySelector("#lead-modal-title"),y.title),setRichTextNode(document.querySelector(".lead-modal-copy"),y.copy),setTextNode(document.querySelector(".lead-service-field > span"),y.serviceLabel),updateSelectOptions(document.querySelector("[data-lead-service-select]"),"Select a service",y.serviceOptions),updateSelectOptions(document.querySelector('select[name="monthlyBudget"]'),y.budgetPlaceholder,y.budgetOptions),updateSelectOptions(document.querySelector('select[name="phoneCountry"]'),y.countryPlaceholder,y.countryOptions),setTextNode(document.querySelector(".lead-form-submit"),y.submitLabel);const u={source:y.source,sourcePage:y.sourcePage,sourceContext:y.sourceContext};Object.entries(u).forEach(([A,f])=>{const C=document.querySelector(`.lead-capture-form input[name="${A}"]`);C&&f&&(C.value=f)}),updateListByPosition(document.querySelectorAll(".lead-modal-review-card"),y.reviews,(A,f)=>{setHref(A,f.href),f.label&&A.setAttribute("aria-label",f.label);const C=A.querySelector(".lead-modal-review-logo"),_=String(f.logoUrl||"").includes("clutchco.svg")?"/assets/clutchco-dark.svg":f.logoUrl;C&&setImageSource(C,_,f.logoAlt);const S=A.querySelector(".lead-modal-review-google-mark");S&&f.logoAlt&&(S.textContent=f.logoAlt),setTextNode(A.querySelector(".lead-modal-review-copy strong"),f.title),setTextNode(A.querySelector(".lead-modal-review-stars"),f.rating);const q=A.querySelectorAll(".lead-modal-review-copy span:not(.lead-modal-review-stars)");setTextNode(q[0],f.meta),setTextNode(q[1],f.caption)}),setRichTextNode(document.querySelector(".lead-modal-consent"),y.consent);const g=e.footer||{};
242setRichTextNode(document.querySelector(".ma-footer-statement"),g.statement),setHref(document.querySelector(".ma-footer-cta"),g.ctaHref),setTextNode(document.querySelector(".ma-footer-cta span"),g.ctaLabel),setImageSource(document.querySelector(".ma-footer-logo"),g.logoUrl,g.logoAlt),setTextNode(document.querySelector(".ma-footer-tagline"),g.tagline),updateListByPosition(document.querySelectorAll(".ma-footer-social-link"),g.socialLinks,(A,f)=>{setHref(A,f.href),f.label&&A.setAttribute("aria-label",f.label)});const m=document.querySelectorAll(".ma-footer-col:not(.ma-footer-col-brand)");setTextNode(m[0]?.querySelector(".ma-footer-col-title"),g.companyTitle),updateSimpleLinks(m[0]?.querySelectorAll(".ma-footer-nav a"),g.companyLinks),setTextNode(m[1]?.querySelector(".ma-footer-col-title"),g.servicesTitle),updateSimpleLinks(m[1]?.querySelectorAll(".ma-footer-nav a"),g.serviceLinks),setTextNode(m[2]?.querySelector(".ma-footer-col-title"),g.contactTitle);const i=document.querySelector(".ma-footer-contact-link[href^='mailto:']");i&&g.email&&(i.textContent=g.email,i.href=`mailto:${g.email}`),setPhoneHref(document.querySelector(".ma-footer-contact-link[href^='tel:']"),g.phone),setAddressLines(document.querySelector(".ma-footer-addr-line"),g.address);const b=document.querySelector(".ma-footer-copy");b&&g.copyright&&(b.innerHTML=`&copy; <span data-year>${copyrightYearRange()}</span> ${escapeHtmlText(g.copyright)}`),updateListByPosition(document.querySelectorAll(".ma-footer-partner"),g.partnerBadges,(A,f)=>{setImageSource(A,localizePartnerBadgeUrl(f.src),f.alt)})}const MIRRORED_WEBFLOW_ASSETS=new Set(["686a7f01b8678b5802dbcd7d_olivastu-logo.avif","688d3fffcc4164bdc3fb737d_gmat-final-logo.avif","688d418e14a2a015101fc9e8_study-in-india-logo.avif","688d4246d067d5e2eb6cd897_institut-de-france-logo.avif","688d438500073092c60f1efd_ferreiras-logo.avif","688d43f65eab78b3cbaa11b8_encardio-rite-logo.avif","688d447730004668253d8aec_casio-loog.avif","688d44ab1a027942c4f8c0a0_rite-geosystem-logo.avif","688d454e095ccc71f0cd1d10_rogers-logo.avif","688d460c0c02f884c870871b_toefl-olympiad-logo.avif"]);function localizeRemoteBrandAsset(e){const t=String(e||"");if(t.includes("img.shgstatic.com"))return"/assets/clutch-advertising.png";if(t.includes("cdn.prod.website-files.com")){const r=t.split("/").pop().split("?")[0];if(MIRRORED_WEBFLOW_ASSETS.has(r))return`/assets/client-logos/${r}`}return t}function localizePartnerBadgeUrl(e){return localizeRemoteBrandAsset(e)}const aboutRevampLayerSelectors={progress:".ab-progress",grain:".ab-grain",hero:".ab-hero",marquee:".ab-marquee",manifesto:".ab-frame-manifesto",scrollCue:".ab-scrollcue-bridge",pillars:".ab-frame-pillars",stack:".ab-frame-stack",principles:".ab-frame-principles",numbers:".ab-frame-numbers",journey:".ab-frame-journey",founders:".ab-frame-founders",quotes:".ab-frame-quotes",awards:".ab-frame-awards",industries:".ab-frame-industries",faq:".ab-frame-faq",cta:".ab-frame-cta",footer:".site-footer.site-footer-simple"};function setTextNode(e,t){const r=String(t||"").trim();e&&r&&(e.textContent=r)}function setHref(e,t){const r=String(t||"").trim();e&&r&&e.setAttribute("href",r)}function setAboutLayerState(e,t={}){const r=document.querySelector(e);r&&(r.hidden=t.visible===!1,r.classList.toggle("ab-is-paused",t.paused===!0))}function applyAboutRevampLayerStates(e={}){Object.entries(aboutRevampLayerSelectors).forEach(([t,r])=>{setAboutLayerState(r,e[t]||{})})}function setAboutEyebrow(e,t){const r=String(t||"").replace(/^\s*\d+\s*\/\s*/,"");setTextNode(e?.querySelector(".ab-eyebrow span"),r)}function setAboutFrameTitle(e,t){const r=e?.querySelector(".ab-h2"),a=String(t||"").trim();if(!r||!a)return;const o=a.split(/\n+/).map(n=>n.trim()).filter(Boolean);o.length>1?r.innerHTML=`${escapeHtmlText(o[0])}<br><em>${escapeHtmlText(o.slice(1).join(" "))}</em>`:r.textContent=a}function setAboutButton(e,t,r){if(!e)return;setHref(e,r);const a=String(t||"").trim();if(!a)return;const o=e.querySelectorAll(".ab-btn-label span");if(o.length){o.forEach(s=>{s.textContent=a});return}const n=e.querySelector("span");n&&(n.textContent=a)}function setMetricValue(e,t){const r=String(t||"").trim();if(!e||!r)return;const a=r.match(/^(.+?)([+×%M])$/);e.innerHTML=a?`${escapeHtmlText(a[1])}<sup>${escapeHtmlText(a[2])}</sup>`:escapeHtmlText(r)}function updateListByPosition(e,t,r){const a=Array.isArray(t)?t:[];
242Array.from(e||[]).forEach((o,n)=>{const s=a[n];o.hidden=!s,s&&r(o,s,n)})}function renderAboutTags(e){return splitCsv(e).map(t=>`<li>${escapeHtmlText(t)}</li>`).join("")}function getAboutInitials(e,t=""){const r=String(t||"").trim();return r?r.slice(0,4).toUpperCase():String(e||"").trim().split(/\s+/).filter(Boolean).slice(0,2).map(a=>a[0]).join("").toUpperCase()||"MA"}function renderAboutQuoteMark(e={}){const t=String(e.faceUrl||e.avatarUrl||"").trim(),r=getAboutInitials(e.client,e.initials);return t?`
243      <span class="ab-quote-v2-mark ab-quote-v2-face" data-initials="${escapeHtmlText(r)}" aria-hidden="true">
244        <img loading="lazy" decoding="async" src="${escapeHtmlText(t)}" alt="${escapeHtmlText(e.faceAlt||e.client||"Client face")}" />
245      </span>
246    `:`
247    <span class="ab-quote-v2-mark" aria-hidden="true">
248      <svg viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round">
249        <path d="M9 12c-2 0-3 1-3 4s1 4 3 4M9 12c2 0 3 1 3 4s-1 4-3 4M22 12c-2 0-3 1-3 4s1 4 3 4M22 12c2 0 3 1 3 4s-1 4-3 4"/>
250      </svg>
251    </span>
252  `}function renderAboutQuoteCard(e={},t=0,r={}){const a=getAboutInitials(e.client,e.initials),o=String(e.logoUrl||"").trim(),n=r.alt?" ab-quote-v2-alt":"",s=r.hidden?' aria-hidden="true"':"",c=["-1.5deg","1.2deg","-0.8deg","1.6deg","0.9deg","-1.1deg","0.6deg","-1.3deg"][t%8],l=o?`<span class="ab-quote-v2-avatar ab-quote-v2-avatar-logo has-image" data-initials="${escapeHtmlText(a)}" aria-hidden="true"><img loading="lazy" decoding="async" src="${escapeHtmlText(o)}" alt="${escapeHtmlText(e.logoAlt||e.client||"Client logo")}" /></span>`:`<span class="ab-quote-v2-avatar" data-initials="${escapeHtmlText(a)}" aria-hidden="true"></span>`;return`
253    <article class="ab-quote-v2${n}" data-ab-quote-card${s} style="--ab-q-tilt:${c}">
254      <header class="ab-quote-v2-head">
255        ${renderAboutQuoteMark(e)}
256        <span class="ab-quote-v2-rating" aria-label="5 out of 5 stars"><i></i><i></i><i></i><i></i><i></i></span>
257      </header>
258      <p>${escapeHtmlText(e.quote)}</p>
259      <footer>
260        ${l}
261        <span class="ab-quote-v2-meta">
262          <strong>${escapeHtmlText(e.client)}</strong>
263          <em>${escapeHtmlText(e.role)}</em>
264        </span>
265      </footer>
266    </article>
267  `}function updateSimpleLinks(e,t){updateListByPosition(e,t,(r,a)=>{setTextNode(r,a.label),setHref(r,a.href)})}function applyAboutRevampContent(e={},t={}){const r=t.seo||{};r.title&&!isSeoServerManaged()&&(document.title=r.title);const a=document.querySelector('meta[name="description"]');a&&r.description&&!isSeoServerManaged()&&a.setAttribute("content",r.description),applyAboutRevampLayerStates(e);const o=e.hero||{};setTextNode(document.querySelector(".ab-livepill-text"),`${o.livePrefix||"Operating"} \xB7 ${o.liveCount||"14"} ${o.liveSuffix||"brands engineering today"}`),setTextNode(document.querySelector(".ab-livepill-loc"),o.liveLocation),setAboutEyebrow(document.querySelector(".ab-hero"),o.eyebrow),setTextNode(document.querySelector(".ab-hero .ab-eyebrow em"),o.eyebrowMeta);const n=document.querySelector(".ab-display");if(n&&(o.headlineLead||o.headlineAccent||o.headlineMiddle||o.headlineItalic||o.headlineEnd)){const P=(o.headlineAccent||"").trim(),T=P.match(/^(\S+)\s+(.+)$/),Y=T?T[1]:P,K=T?T[2]:"";n.innerHTML=`
268      <span class="ab-display-line">${escapeHtmlText(o.headlineLead||"")} <span class="ab-display-grad">${escapeHtmlText(Y)}</span></span>
269      <span class="ab-display-line"><span class="ab-display-grad">${escapeHtmlText(K)}</span> ${escapeHtmlText(o.headlineMiddle||"")}</span>
270      <span class="ab-display-line"><span class="ab-display-italic"><em>${escapeHtmlText(o.headlineItalic||"")}</em></span> ${escapeHtmlText(o.headlineEnd||"")}</span>
271    `}setTextNode(document.querySelector(".ab-hero-sub"),o.subtitle),setAboutButton(document.querySelector(".ab-hero-actions .ab-btn-primary"),o.primaryLabel,o.primaryHref),setAboutButton(document.querySelector(".ab-hero-actions .ab-btn-ghost"),o.secondaryLabel,o.secondaryHref),updateListByPosition(document.querySelectorAll(".ab-hero-ribbon-cell"),o.ribbon,(P,T)=>
271{setMetricValue(P.querySelector(".ab-hero-ribbon-num"),T.value),setTextNode(P.querySelector(".ab-hero-ribbon-lbl"),T.label)}),updateListByPosition(document.querySelectorAll(".ab-orbit-card"),o.orbitCards,(P,T)=>{setTextNode(P.querySelector(".ab-orbit-card-tag"),T.tag),setMetricValue(P.querySelector(".ab-orbit-card-num"),T.value),setTextNode(P.querySelector(".ab-orbit-card-lbl"),T.label)});const s=document.querySelector(".ab-circular-text");if(s&&o.circularText){s.dataset.text=o.circularText;const P=Array.from(o.circularText);s.innerHTML=P.map((T,Y)=>{const K=360/P.length*Y,ie=Math.PI/P.length*Y;return`<span style="transform: rotateZ(${K}deg) translate3d(${ie}px, ${ie}px, 0); -webkit-transform: rotateZ(${K}deg) translate3d(${ie}px, ${ie}px, 0);">${escapeHtmlText(T)}</span>`}).join("")}const c=e.marquee||{},l=document.querySelector(".ab-marquee-label");if(l&&c.label){const P=l.querySelector(".ab-livedot")?.cloneNode(!0)||document.createElement("i");P.className="ab-livedot",P.setAttribute("aria-hidden","true"),l.replaceChildren(P,document.createTextNode(c.label))}const d=Array.isArray(c.logos)?c.logos:[];document.querySelectorAll(".ab-marquee-row").forEach((P,T)=>{d.length&&(P.innerHTML=d.map(Y=>`<img loading="lazy" decoding="async" src="${escapeHtmlText(Y.src)}" alt="${T?"":escapeHtmlText(Y.alt)}" />`).join(""))});const p=e.manifesto||{},h=document.querySelector(".ab-frame-manifesto");setAboutEyebrow(h,p.eyebrow),setTextNode(h?.querySelector(".ab-statement-foot-sig"),p.signature),setTextNode(h?.querySelector(".ab-statement-foot-role"),p.role);const v=e.scrollCue||{};setTextNode(document.querySelector(".ab-scrollcue-text"),v.label),setHref(document.querySelector(".ab-scrollcue"),v.href);const L=e.pillars||{},w=document.querySelector(".ab-frame-pillars");setAboutEyebrow(w,L.eyebrow),setAboutFrameTitle(w,L.title),setTextNode(w?.querySelector(".ab-frame-sub"),L.subtitle),updateListByPosition(w?.querySelectorAll(".ab-bento-cell"),L.items,(P,T)=>{setTextNode(P.querySelector(".ab-bento-num"),T.number),setTextNode(P.querySelector(".ab-bento-title"),T.title),setTextNode(P.querySelector(".ab-bento-body"),T.body)});const y=e.stack||{},u=document.querySelector(".ab-frame-stack");setAboutEyebrow(u,y.eyebrow),setAboutFrameTitle(u,y.title),setTextNode(u?.querySelector(".ab-frame-sub"),y.subtitle),updateListByPosition(u?.querySelectorAll(".ab-stackcard"),y.items,(P,T)=>{setHref(P,T.href),setTextNode(P.querySelector(".ab-stackcard-id"),T.id),setTextNode(P.querySelector(".ab-stackcard-title"),T.title),setTextNode(P.querySelector(".ab-stackcard-body"),T.body);const Y=P.querySelector(".ab-stackcard-tags");Y&&(Y.innerHTML=renderAboutTags(T.tags))}),setTextNode(u?.querySelector(".ab-stack-callout .ab-eyebrow span"),y.calloutEyebrow),setTextNode(u?.querySelector(".ab-stack-callout p"),y.calloutText),setTextNode(u?.querySelector(".ab-stack-callout .ab-link span"),y.calloutLabel),setHref(u?.querySelector(".ab-stack-callout .ab-link"),y.calloutHref);const g=e.principles||{},m=document.querySelector(".ab-frame-principles");setAboutEyebrow(m,g.eyebrow),setAboutFrameTitle(m,g.title),setTextNode(m?.querySelector(".ab-frame-sub"),g.subtitle),updateListByPosition(m?.querySelectorAll(".ab-principle"),g.items,(P,T)=>{setTextNode(P.querySelector(".ab-principle-num"),T.number),setTextNode(P.querySelector("h3"),T.title),setTextNode(P.querySelector("p"),T.body)});const i=e.numbers||{},b=document.querySelector(".ab-frame-numbers");setAboutEyebrow(b,i.eyebrow),setAboutFrameTitle(b,i.title),updateListByPosition(b?.querySelectorAll(".ab-board-cell"),i.items,(P,T)=>{setTextNode(P.querySelector(".ab-board-id"),T.id),setMetricValue(P.querySelector(".ab-board-num"),T.value);const Y=P.querySelector(".ab-board-lbl");Y&&(Y.innerHTML=T.id==="006"?`<i class="ab-livedot"></i>${escapeHtmlText(T.label)}`:escapeHtmlText(T.label))});const A=e.journey||{},f=document.querySelector(".ab-frame-journey");setAboutEyebrow(f,A.eyebrow),setAboutFrameTitle(f,A.title),setTextNode(f?.querySelector(".ab-frame-sub"),A.subtitle),updateListByPosition(f?.querySelectorAll(".ab-timeline-step"),A.items,(P,T)=>
271{setTextNode(P.querySelector(".ab-timeline-yr"),T.year),setTextNode(P.querySelector("h3"),T.title),setTextNode(P.querySelector("p"),T.body)});const C=e.founders||{},_=document.querySelector(".ab-frame-founders");setAboutEyebrow(_,C.eyebrow),setAboutFrameTitle(_,C.title),setTextNode(_?.querySelector(".ab-frame-sub"),C.subtitle),updateListByPosition(_?.querySelectorAll(".ab-founder"),C.people,(P,T)=>{T.id&&(P.id=T.id),setTextNode(P.querySelector(".ab-portrait-mono"),T.initials),setImageSource(P.querySelector(".ab-portrait-img"),T.imageUrl,T.imageAlt);const Y=P.querySelectorAll(".ab-portrait-labels span");setTextNode(Y[0],T.portraitLabel),setTextNode(Y[1],T.liveLabel),setAboutEyebrow(P,T.eyebrow);const K=P.querySelector(".ab-founder-name");K&&(T.firstName||T.lastName)&&(K.innerHTML=`${escapeHtmlText(T.firstName||"")}<br><em>${escapeHtmlText(T.lastName||"")}</em>.`),setTextNode(P.querySelector(".ab-founder-title"),T.title),updateListByPosition(P.querySelectorAll(".ab-stat-pill"),T.stats,(ce,oe)=>{setMetricValue(ce.querySelector(".ab-stat-num"),oe.value),setTextNode(ce.querySelector(".ab-stat-lbl"),oe.label)});const ae=Array.isArray(T.paragraphs)?T.paragraphs:[],ie=P.querySelector(".ab-founder-body");ie&&ae.length&&(ie.innerHTML=ae.map(ce=>`<p>${escapeHtmlText(ce.text)}</p>`).join(""));const ge=P.querySelector(".ab-founder-quote");ge&&T.quote&&(ge.innerHTML=`<span aria-hidden="true">"</span>${escapeHtmlText(T.quote)}`);const R=P.querySelector(".ab-founder-tags");R&&(R.innerHTML=renderAboutTags(T.tags));const Z=P.querySelector(".ab-founder-foot .ab-link-icon");setHref(Z,T.linkedinHref);const Q=P.querySelector(".ab-founder-foot .ab-link:not(.ab-link-icon)");Q&&T.email&&(setHref(Q,`mailto:${T.email}`),setTextNode(Q.querySelector("span"),T.email))});const S=e.quotes||{},q=document.querySelector(".ab-frame-quotes");setAboutEyebrow(q,S.eyebrow),setAboutFrameTitle(q,S.title);const N=Array.isArray(S.items)?S.items.filter(P=>P?.quote||P?.client):[],D=q?.querySelectorAll("[data-ab-quotes-row]")||[];if(N.length&&D.length){const P=Math.max(1,Math.ceil(N.length/2)),T=D.length>1?[N.slice(0,P),N.slice(P)]:[N];D.length>1&&!T[1].length&&(T[1]=N.slice().reverse()),D.forEach((Y,K)=>{const ae=T[K]||N,ie=ae.map((R,Z)=>renderAboutQuoteCard(R,Z+K*P,{alt:K%2===1})).join(""),ge=ae.map((R,Z)=>renderAboutQuoteCard(R,Z+K*P,{alt:K%2===1,hidden:!0})).join("");Y.innerHTML=`${ie}${ge}`})}const G=e.awards||{},z=document.querySelector(".ab-frame-awards");setAboutEyebrow(z,G.eyebrow),setAboutFrameTitle(z,G.title),updateListByPosition(z?.querySelectorAll(".ab-awards-row"),G.items,(P,T)=>{setTextNode(P.querySelector(".ab-awards-yr"),T.year),setTextNode(P.querySelector(".ab-awards-name"),T.name),setTextNode(P.querySelector(".ab-awards-src"),T.source),setTextNode(P.querySelector(".ab-awards-cat"),T.category)});const O=e.industries||{},E=document.querySelector(".ab-frame-industries");setAboutEyebrow(E,O.eyebrow),setAboutFrameTitle(E,O.title),updateListByPosition(E?.querySelectorAll(".ab-industries li"),O.items,(P,T)=>{setTextNode(P,T.label)});const x=e.faq||{},B=document.querySelector(".ab-frame-faq");setAboutEyebrow(B,x.eyebrow),setAboutFrameTitle(B,x.title),updateListByPosition(B?.querySelectorAll(".ab-faq-item"),x.items,(P,T)=>{setTextNode(P.querySelector("summary span"),T.question),setTextNode(P.querySelector(".ab-faq-body p"),T.answer)});const j=e.cta||{},U=document.querySelector(".ab-frame-cta");setAboutEyebrow(U,j.eyebrow);const M=U?.querySelector(".ab-cta-headline");M&&(j.titleLine1||j.titleAccent)&&(M.innerHTML=`${escapeHtmlText(j.titleLine1||"")}<span class="ab-display-grad">${escapeHtmlText(j.titleAccent||"")}</span>`),setTextNode(U?.querySelector(".ab-cta-sub"),j.subtitle),setAboutButton(U?.querySelector(".ab-cta-actions .ab-btn-primary"),j.primaryLabel,j.primaryHref);const H=U?.querySelector(".ab-cta-actions .ab-link");setHref(H,j.secondaryHref),setTextNode(H?.querySelector("span"),j.secondaryLabel);const F=U?.querySelectorAll(".ab-cta-foot span")||[];setTextNode(F[0],j.addressLine1),setTextNode(F[1],j.addressLine2),setTextNode(F[2],j.phone);const V=e.footer||{};
271setNodeText(".sf-tagline",V.tagline);const X=document.querySelector(".sf-contact-link[href^='mailto:']");X&&V.email&&(X.textContent=V.email,X.href=`mailto:${V.email}`);const J=document.querySelector(".sf-contact-link[href^='tel:']");J&&V.phone&&(J.textContent=V.phone,J.href=`tel:${V.phone.replace(/[^\d+]/g,"")}`),setAddressLines(document.querySelector(".sf-addr-line"),V.address),updateSimpleLinks(document.querySelectorAll(".sf-col:nth-of-type(2) .sf-nav a"),V.companyLinks),updateSimpleLinks(document.querySelectorAll(".sf-col:nth-of-type(3) .sf-nav a"),V.serviceLinks),updateListByPosition(document.querySelectorAll(".sf-social-link"),V.socialLinks,(P,T)=>{setHref(P,T.href),T.label&&P.setAttribute("aria-label",T.label)}),updateListByPosition(document.querySelectorAll(".sf-partners img"),V.partnerBadges,(P,T)=>{setImageSource(P,T.src,T.alt)})}function applyAboutPageContent(e={}){const t=e.seo||{},r=e.design||{},a=e.hero||{},o=e.manifesto||{},n=e.stats||{},s=e.leadership||{},c=e.capabilities||{},l=e.awards||{},d=e.industries||{},p=e.cta||{},h=e.footer||{};t.title&&!isSeoServerManaged()&&(document.title=t.title);const v=document.querySelector('meta[name="description"]');v&&t.description&&!isSeoServerManaged()&&v.setAttribute("content",t.description),document.body.style.setProperty("--ab-red",r.squareColor||"#D6312B"),document.body.style.setProperty("--ab-blue",r.circleColor||"#1D4FA3"),document.body.style.setProperty("--ab-yellow",r.triangleColor||"#F5C518"),document.body.style.setProperty("--ab-ink",r.inkColor||"#0A0B0D"),document.querySelectorAll(".ab-bh-square, .ab-leader-shape-red rect").forEach(M=>M.setAttribute("fill",r.squareColor||"#D6312B")),document.querySelectorAll(".ab-bh-circle, .ab-leader-shape-blue circle").forEach(M=>M.setAttribute("fill",r.circleColor||"#1D4FA3")),document.querySelectorAll(".ab-bh-triangle, .ab-leader-shape-blue pol
271ygon").forEach(M=>{M.tagName.toLowerCase()==="polygon"&&M.getAttribute("fill")==="none"?M.setAttribute("stroke",r.triangleColor||"#F5C518"):M.setAttribute("fill",r.triangleColor||"#F5C518")}),setNodeText(".ab-hero-meta .ab-index",a.index),setNodeText(".ab-meta-line",a.metaLine),setTextWithDot(document.querySelector(".ab-hero-copy .ab-kicker"),a.kicker,"ab-kicker-dot"),setOptionalTextNode(document.querySelector(".ab-h1 > span:first-child"),a.titlePrefix);const L=document.querySelector(".ab-h1-mark");if(L&&a.titleMark){const M=L.querySelector("i")?.cloneNode(!0)||document.createElement("i");M.setAttribute("aria-hidden","true"),M.textContent=".",L.replaceChildren(document.createTextNode(a.titleMark),M)}const w=document.querySelector(".ab-tagline");if(w&&(a.taglineLine1||a.taglineEmphasis)){const M=document.createElement("em");M.textContent=a.taglineEmphasis||"",w.replaceChildren(document.createTextNode(a.taglineLine1||""),document.createElement("br"),M)}setNodeText(".ab-bh-caption",a.bauhausCaption),setLinkLabel(document.querySelector(".ab-hero-foot .ab-cta-solid"),a.primaryCtaLabel,a.primaryCtaHref),setLinkLabel(document.querySelector(".ab-hero-foot .ab-cta-ghost"),a.secondaryCtaLabel,a.secondaryCtaHref),setTextWithDot(document.querySelector(".ab-live"),a.liveText,"ab-live-dot");const y=document.querySelector("#who-we-are");setNodeTextFor(y,".ab-index",o.index),setAboutHeadline(y?.querySelector(".ab-h2"),o.title);const u=document.querySelector(".ab-manifesto"),g=Array.isArray(o.paragraphs)?o.paragraphs:[];u&&g.length&&(u.innerHTML=g.map(M=>`<p>${escapeHtmlText(M.text)}</p>`).join("")),setNodeText(".ab-pull p",o.pullQuote),setNodeText(".ab-pull-attr",o.pullAttribution);const m=document.querySelector(".ab-section-dark");setNodeTextFor(m,".ab-index",n.index),setAboutHeadline(m?.querySelector(".ab-h2"),n.title);const i=document.querySelector(".ab-stats"),b=Array.isArray(n.items)?n.items:[];i&&b.length&&(i.innerHTML=b.map(M=>`<article class="ab-stat${M.shape==="square"?" ab-stat-square":M.shape==="circle"?" ab-stat-circle":M.shape==="triangle"?" ab-stat-tri":""}"><span class="ab-stat-num">${escapeHtmlText(M.value)}</span><span class="ab-stat-cap">${escapeHtmlText(M.label)}</span></article>`).join(""));const A=document.querySelector("#leadership");setNodeTextFor(A,".ab-index",s.index),setAboutHeadline(A?.querySelector(".ab-h2"),s.title),setNodeTextFor(A,".ab-section-sub",s.subtitle);const f=document.querySelector(".ab-leaders"),C=Array.isArray(s.leaders)?s.leaders:[];f&&C.length&&(f.innerHTML=C.map((M,H)=>{const F=H%2?" ab-leader-flip":"",V=M.shape==="blue"?"ab-leader-shape-blue":"ab-leader-shape-red",X=Array.isArray(M.paragraphs)?M.paragraphs:[];return`
272        <article class="ab-leader${F}">
273          <div class="ab-leader-shape ${V}" aria-hidden="true"></div>
274          <div class="ab-leader-portrait" aria-hidden="true"><span class="ab-leader-mono">${escapeHtmlText(M.initials)}</span></div>
275          <div class="ab-leader-meta">
276            <span class="ab-leader-tag">${escapeHtmlText(M.tag)}</span>
277            <h3 class="ab-leader-name">${escapeHtmlText(M.name)}</h3>
278            <span class="ab-leader-role">${escapeHtmlText(M.role)}</span>
279          </div>
280          <div class="ab-leader-body">
281            ${X.map(J=>`<p>${escapeHtmlText(J.text)}</p>`).join("")}
282            <ul class="ab-leader-tags">${splitCsv(M.tags).map(J=>`<li>${escapeHtmlText(J)}</li>`).join("")}</ul>
283          </div>
284          <div class="ab-leader-rule" aria-hidden="true"></div>
285        </article>
286      `}).join(""));const _=document.querySelector("#what-we-do");setNodeTextFor(_,".ab-index",c.index),setAboutHeadline(_?.querySelector(".ab-h2"),c.title),setNodeTextFor(_,".ab-section-sub",c.subtitle);const S=document.querySelector(".ab-cap-grid"),q=Array.isArray(c.items)?c.items:[];S&&q.length&&(S.innerHTML=q.map(M=>`
287      <article class="ab-cap">
288        <span class="ab-cap-num">${escapeHtmlText(M.number)}</span>
289        <h3>${escapeHtmlText(M.title)}</h3>
290        <p>${escapeHtmlText(M.description)}</p>
291      </article>
292    `).join(""));const N=Array.from(document.querySelectorAll(".ab-section-dark"))[1];setNodeTextFor(N,".ab-index",l.index),setAboutHeadline(N?.querySelector(".ab-h2"),l.title);const D=document.querySelector(".ab-awards"),G=Array.isArray(l.items)?l.items:[];D&&G.length&&(D.innerHTML=G.map(M=>`
293      <article class="ab-award">
294        <span class="ab-award-mark" data-shape="${escapeHtmlText(M.shape||"square")}" aria-hidden="true"></span>
295        <div><strong>${escapeHtmlText(M.title)}</strong><span>${escapeHtmlText(M.subtitle)}</span></div>
296      </article>
297    `).join(""));const z=document.querySelector(".ab-industries")?.closest(".ab-section");setNodeTextFor(z,".ab-index",d.index),setAboutHeadline(z?.querySelector(".ab-h2"),d.title);const O=document.querySelector(".ab-industries"),E=Array.isArray(d.items)?d.items:[];O&&E.length&&(O.innerHTML=E.map(M=>`<li>${escapeHtmlText(M.label)}</li>`).join(""));const x=document.querySelector(".ab-section-cta");setNodeTextFor(x,".ab-index",p.index),setAboutHeadline(x?.querySelector(".ab-cta-headline"),p.title),setLinkLabel(x?.querySelector(".ab-cta-actions .ab-cta-solid"),p.primaryLabel,p.primaryHref),setLinkLabel(x?.querySelector(".ab-cta-actions .ab-cta-ghost"),p.secondaryLabel,p.secondaryHref);const B=x?.querySelectorAll(".ab-cta-foot span")||[];setOptionalTextNode(B[0],p.addressLine1),setOptionalTextNode(B[1],p.addressLine2),setOptionalTextNode(B[2],p.phone),setNodeText(".sf-tagline",h.tagline);const j=document.querySelector(".sf-contact-link[href^='mailto:']");j&&h.email&&(j.textContent=h.email,j.href=`mailto:${h.email}`);const U=document.querySelector(".sf-contact-link[href^='tel:']");U&&h.phone&&(U.textContent=h.phone,U.href=`tel:${h.phone.replace(/[^\d+]/g,"")}`),setAddressLines(document.querySelector(".sf-addr-line"),h.address)}function applyCssNumberVar(e,t,r,a){const o=Number(r);!e||!Number.isFinite(o)||e.style.setProperty(t,`${o}${a}`)}const runtimeFontRegistry=new Set;function toFontFamilyValue(e,t){const r=String(e||"").trim();return r?`"${r}", ${t}`:t}function loadRuntimeFontFamily(e,t={}){const r=String(e||"").trim();if(!r||runtimeFontRegistry.has(r))return;if(/^(system-ui|sans-serif|serif|monospace|cursive|fantasy)$/i.test(r)){runtimeFontRegistry.add(r);return}const a=r.replace(/\s+/g,"+"),o=t.italic?"ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700":"wght@400;500;600;700;800",n=`https://fonts.googleapis.com/css2?family=${a}:${o}&display=swap`;if(document.querySelector(`link[data-runtime-font="${r}"]`)){runtimeFontRegistry.add(r);return}const s=document.querySelector('link[data-runtime-font-preconnect="api"]'),c=document.querySelector('link[data-runtime-font-preconnect="static"]');if(!s){const d=document.createElement("link");d.rel="preconnect",d.href="https://fonts.googleapis.com",d.dataset.runtimeFontPreconnect="api",document.head.appendChild(d)}if(!c){const d=document.createElement("link");d.rel="preconnect",d.href="https://fonts.gstatic.com",d.crossOrigin="anonymous",d.dataset.runtimeFontPreconnect="static",document.head.appendChild(d)}const l=document.createElement("link");l.rel="stylesheet",l.href=n,l.dataset.runtimeFont=r,document.head.appendChild(l),runtimeFontRegistry.add(r)}function applyHomepageDesignTokens(e={}){const t=e.fonts||{},r=e.colors||{},a=document.documentElement,o=document.body;loadRuntimeFontFamily(t.headingFont),loadRuntimeFontFamily(t.bodyFont),loadRuntimeFontFamily(t.italicFont,{italic:!0}),r.primary&&(a.style.setProperty("--accent",r.primary),a.style.setProperty("--accent-strong",r.primary),a.style.setProperty("--home-primary",r.primary)),r.secondary&&(a.style.setProperty("--accent-soft",r.secondary),a.style.setProperty("--home-secondary",r.secondary)),r.accent&&(a.style.setProperty("--glow-blue",r.accent),a.style.setProperty("--home-accent-color",r.accent)),r.background&&(a.style.setProperty("--home-bg",r.background),o?.style.setProperty("background-color",r.background)),r.text&&(a.style.setProperty("--home-text",r.text),o?.style.setProperty("color",r.text)),a.style.setProperty("--home-heading-font",toFontFamilyValue(t.headingFont,'Syne, "Helvetica Neue", Helvetica, Arial, sans-serif')),a.style.setProperty("--home-body-font",toFontFamilyValue(t.bodyFont,'Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif')),a.style.setProperty("--home-italic-font",toFontFamilyValue(t.italicFont,'"Instrument Serif", "Playfair Display", "Times New Roman", serif'))}let homeTrustLogoTimers=[];function getTrustLogoSlots(e={}){const t=Array.isArray(e.logos)?e.logos.filter(r=>r?.imageUrl):[];return Array.isArray(e.logoSlots)&&e.logoSlots.length?e.logoSlots.slice(0,3).map((r,a)=>({label:r?.label||`Placeholder ${a+1}`,cadenceSeconds:Number(r?.cadenceSeconds)||2.4,logos:Array.isArray(r?.logos)?r.logos.filter(o=>o?.imageUrl).slice(0,10):[]})):[0,1,2].map(r=>({label:`Placeholder ${r+1}`,cadenceSeconds:2.4,logos:t.filter((a,o)=>o%3===r).slice(0,10)}))}function renderTrustLogos(e={}){const t=document.querySelector(".hero-logo-flip-strip"),r=getTrustLogoSlots(e).filter(a=>a.logos.length);!t||!r.length||(t.setAttribute("aria-label",e.label||"Selected client logos"),homeTrustLogoTimers.forEac
297h(a=>window.clearInterval(a)),homeTrustLogoTimers=[],t.replaceChildren(),r.slice(0,3).forEach((a,o)=>{const n=document.createElement("span");if(n.className="hero-logo-flip-card",n.style.setProperty("--logo-delay",`${o*140}ms`),n.setAttribute("aria-label",a.label||`Client logo placeholder ${o+1}`),a.logos.slice(0,10).forEach((s,c)=>{const l=s.linkUrl?document.createElement("a"):document.createElement("span");l.className=`hero-logo-flip-item${c===0?" is-active":""}`,s.linkUrl&&(l.href=s.linkUrl,l.setAttribute("aria-label",s.alt||s.label||"Client logo"));const d=document.createElement("img");d.src=localizeRemoteBrandAsset(s.imageUrl),d.alt=s.alt||s.label||"",d.loading="eager",d.decoding="async",l.appendChild(d),n.appendChild(l)}),a.logos.length>1){const s=Math.max(1200,Math.min(8e3,Number(a.cadenceSeconds||2.4)*1e3));let c=0;const l=window.setInterval(()=>{const d=Array.from(n.querySelectorAll(".hero-logo-flip-item"));d.length<2||(d[c]?.classList.remove("is-active"),c=(c+1)%d.length,d[c]?.classList.add("is-active"))},s);homeTrustLogoTimers.push(l)}t.appendChild(n)}))}function renderHeroCaseSlides(e=[]){const t=Array.isArray(e)?e:[],r=Array.from(document.querySelectorAll(".hero-case-slider .hero-case-slide"));!r.length||!t.length||r.forEach((a,o)=>{const n=t[o];if(!n||typeof n!="object")return;const s=typeof n.link=="string"?n.link.trim():"";if(s?a.setAttribute("href",s):a.removeAttribute("href"),a.classList.toggle("hero-case-slide--banner",!s),typeof n.imageUrl=="string"&&n.imageUrl.trim()){const l=n.imageUrl.trim(),d=a.dataset.caseImage||"",p=d&&d.split("?")[0]===l.split("?")[0]?d:l;o<3||a.style.getPropertyValue("--case-image")?a.style.setProperty("--case-image",`url('${p.replaceAll("'","\\'")}')`):(a.dataset.caseImage=p,delete a.dataset.caseImgLoaded)}const c=a.querySelector("img");setImageSource(c,localizeRemoteBrandAsset(n.logoUrl),n.logoAlt||n.title||""),setNodeTextFor(a,"strong",n.title)})}const serviceMotionQueries={desktop:window.matchMedia("(min-width: 1024px)"),tablet:window.matchMedia("(min-width: 768px) and (max-width: 1023px)"),mobile:window.matchMedia("(max-width: 767px)"),reducedMotion:window.matchMedia("(prefers-reduced-motion: reduce)")};function isServiceMotionAllowedForCurrentDevice(e){return e?serviceMotionQueries.desktop.matches?e.classList.contains("has-desktop-motion"):serviceMotionQueries.tablet.matches?e.classList.contains("has-tablet-motion"):serviceMotionQueries.mobile.matches?e.classList.contains("has-mobile-motion"):!1:!1}function shouldSuppressServiceMotion(){return!!(serviceMotionQueries.reducedMotion.matches||window.navigator?.connection?.saveData)}function loadServiceVideoSource(e){!e||e.src||!e.dataset.serviceVideoSrc||(e.src=e.dataset.serviceVideoSrc,e.load())}const serviceDesktopVideoObserver=typeof IntersectionObserver<"u"?new IntersectionObserver(e=>{e.forEach(t=>{const r=t.target,a=r.closest?.(".home-magic-bento-card");if(!isServiceMotionAllowedForCurrentDevice(a)||shouldSuppressServiceMotion()||!t.isIntersecting){r.pause();return}loadServiceVideoSource(r),r.play().catch(()=>{})})},{rootMargin:"120px 0px",threshold:.4}):null;function syncServiceVideosForViewport(){document.querySelectorAll(".home-magic-bento-desktop-media-video").forEach(e=>{const t=e.closest?.(".home-magic-bento-card");if(!isServiceMotionAllowedForCurrentDevice(t)||shouldSuppressServiceMotion()){e.pause();return}e.closest?.(".home-magic-bento-card")?.isConnected&&(loadServiceVideoSource(e),e.play().catch(()=>{}))})}["desktop","tablet","mobile","reducedMotion"].forEach(e=>{const t=serviceMotionQueries[e];t?.addEventListener?t.addEventListener("change",syncServiceVideosForViewport):t?.addListener&&t.addListener(syncServiceVideosForViewport)});function getServiceDesktopMediaKind(e){const t=String(e||"").trim();if(!t)return"";try{const r=new URL(t,window.location.origin);if(/\.(mp4|webm|mov|m4v)$/i.test(r.pathname))return"video";if(/\.gif$/i.test(r.pathname))return"gif"}catch{if(/\.(mp4|webm|mov|m4v)(?:[?#].*)?$/i.test(t))return"video";if(/\.gif(?:[?#].*)?$/i.test(t))return"gif"}return""}function isSupabaseStorageMediaUrl(e){return/^https:\/\/[^/]+\.supabase\.co\/storage\/v1\/object\/public\//i.test(String(e||"").trim())}function isCreativeServiceCardSource(e={}){const t=String(e.label||"").trim().toLowerCase(),r=String(e.title||"").trim().toLowerCase();return t==="creative"&&r==="creative systems"}function syncCreativeServiceCardClass(e,t=null){if(!e)return!1;const r=t||{label:e.querySelector(".magic-bento-card__label")?.textContent,title:e.querySelector(".magic-bento-card__title")?.textContent},a=isCreativeServiceCardSource(r);return e.classList.toggle("is-creative-service-card",a),a}function isDesktopCreativeServiceCard(e){return!!(e?.classList?.contains("has-desktop-motion")&&window.matchMedia("(min-width: 1024px) and (hover: hover) and (pointer: fine)").matches)}function setServiceVideoSoundState(e,t){const r=e?.querySelector(".home-magic-bento-desktop-media-video"),a=e?.querySelector("[data-service-video-sound]");!r||!a||(r.muted=t,e.classList.toggle("is-service-audio-on",!t),a.textContent=t?"Sound off":"Sound on",a.setAttribute("aria-pressed",t?"false":"true"))}
297function renderServiceCardMedia(e,t={}){const r=e?.querySelector(".home-magic-bento-media");if(!r)return;let a=r.querySelector(".home-magic-bento-image")||r.querySelector("img:not(.home-magic-bento-desktop-media)");a||(a=document.createElement("img"),a.alt="",r.prepend(a)),a.classList.add("home-magic-bento-image"),a.src=String(t.imageUrl||"").trim(),a.alt="",a.loading="lazy",a.decoding="async",a.fetchPriority="low",r.querySelectorAll(".home-magic-bento-desktop-media").forEach(p=>{p.tagName==="VIDEO"&&(serviceDesktopVideoObserver?.unobserve(p),p.pause()),p.remove()}),e.querySelector("[data-service-video-sound]")?.remove(),e.classList.remove("has-service-motion","has-mobile-motion","has-tablet-motion","has-desktop-motion","has-desktop-video","has-desktop-gif","is-service-audio-on");const o=String(t.desktopMediaUrl||"").trim(),n=getServiceDesktopMediaKind(o);if(!o||!n||n==="video"&&isSupabaseStorageMediaUrl(o))return;const s=t.desktopMediaShowDesktop!==!1,c=t.desktopMediaShowTablet!==!1,l=t.desktopMediaShowMobile===!0;if(!s&&!c&&!l)return;if(e.classList.add("has-service-motion",`has-desktop-${n}`),s&&e.classList.add("has-desktop-motion"),c&&e.classList.add("has-tablet-motion"),l&&e.classList.add("has-mobile-motion"),n==="video"){const p=document.createElement("video");if(p.className="home-magic-bento-desktop-media home-magic-bento-desktop-media-video",p.dataset.serviceVideoSrc=o,p.muted=!0,p.loop=!0,p.autoplay=!1,p.playsInline=!0,p.preload="none",p.setAttribute("aria-hidden","true"),r.appendChild(p),t.desktopMediaAllowAudio!==!1){const h=document.createElement("span");h.className="home-magic-bento-sound-toggle",h.dataset.serviceVideoSound="",h.setAttribute("role","button"),h.setAttribute("tabindex","0"),h.setAttribute("aria-pressed","false"),h.textContent="Sound off",e.appendChild(h)}serviceDesktopVideoObserver?serviceDesktopVideoObserver.observe(p):isServiceMotionAllowedForCurrentDevice(e)&&!shouldSuppressServiceMotion()&&(loadServiceVideoSource(p),p.play().catch(()=>{}));return}const d=document.createElement("img");d.className="home-magic-bento-desktop-media home-magic-bento-desktop-media-gif",d.src=o,d.alt="",d.loading="lazy",d.decoding="async",d.fetchPriority="low",r.appendChild(d)}let activeHomeServicePillarIndex=0;const HOME_SERVICE_CATEGORY_FALLBACKS={"Digital Experiences":{services:[{label:"Website",imageUrl:"/images/home-services/digital-experiences/website.svg?v=a3",description:"High-performing websites built for clarity, credibility, and conversion."},{label:"Web App",imageUrl:"/images/home-services/digital-experiences/web-app.svg?v=a3",description:"Custom web applications, portals, and product interfaces."},{label:"Mobile App",imageUrl:"/images/home-services/digital-experiences/mobile-app.svg?v=a3",description:"Mobile experiences designed around fast, useful customer journeys."},{label:"UX Design",imageUrl:"/images/home-services/digital-experiences/ux-design.svg?v=a3",description:"Interaction design, user flows, and product experience systems."},{label:"Ecommerce",imageUrl:"/images/home-services/digital-experiences/ecommerce.svg?v=a3",description:"Shopify and ecommerce builds that support merchandising and revenue."}]},"Brand & Creative":{services:[{label:"Strategy",imageUrl:"/images/home-services/brand-creative/strategy.svg?v=a3",description:"Positioning, audience logic, and offer framing for sharper market presence."},{label:"Identity",imageUrl:"/images/home-services/brand-creative/identity.svg?v=a3",description:"Visual identity and logo systems built for consistency."},{label:"Guidelines",imageUrl:"/images/home-services/brand-creative/guidelines.svg?v=a3",description:"Reusable brand rules, templates, and design systems."},{label:"Creative",imageUrl:"/images/home-services/brand-creative/creative.svg?v=a3",description:"Performance creative for campaigns, testing, and paid media."},{label:"Production",imageUrl:"/images/home-services/brand-creative/production.svg?v=a3",description:"Content production across social, campaign, and launch needs."}]},"Growth Marketing":{services:[{label:"Media Strategy",imageUrl:"/images/home-services/growth-marketing/media-strategy.svg?v=a3",description:"Planning systems for budgets, channels, tests, and growth loops."},{label:"Paid Media",imageUrl:"/images/home-services/growth-marketing/paid-media.svg?v=a3",description:"Search, social, programmatic, streaming, and marketplace media."},{label:"SEO",imageUrl:"/images/home-services/growth-marketing/seo.svg?v=a3",description:"Local, enterprise, and technical search visibility systems."},{label:"AI Search",imageUrl:"/images/home-services/growth-marketing/ai-search.svg?v=a3",description:"GEO and AEO work for AI discovery surfaces."},{label:"Content",imageUrl:"/images/home-services/growth-marketing/content.svg?v=a3",description:"Content marketing and digital PR that compound authority."}]},"AI & Automation":{services:[{label:"Conversational AI",imageUrl:"/images/home-services/ai-automation/conversational-ai.svg?v=a3",description:"AI assistants that answer, guide, and qualify customers."},{label:"WhatsApp",imageUrl:"/images/home-services/ai-automation/whatsapp.svg?v=a3",description:"Messaging flows for service, sales, reminders, and support."},{label:"Qualification",imageUrl:"/images/home-services/ai-automation/qualification.svg?v=a3",description:"Lead routing and qualification logic for faster follow-up."},{label:"Booking",imageUrl:"/images/home-services/ai-automation/booking.svg?v=a3",description:"Appointment scheduling automation connected to sales workflows."},{label:"CRM Automation",imageUrl:"/images/home-services/ai-automation/crm-automation.svg?v=a3",description:"CRM and sales operations automation for cleaner pi
297peline movement."}]},"Data & Intelligence":{services:[{label:"Analytics",imageUrl:"/images/home-services/data-intelligence/analytics.svg?v=a3",description:"Marketing analytics that make decisions easier to see."},{label:"Attribution",imageUrl:"/images/home-services/data-intelligence/attribution.svg?v=a3",description:"Attribution modeling across touchpoints, campaigns, and channels."},{label:"Tracking",imageUrl:"/images/home-services/data-intelligence/tracking.svg?v=a3",description:"Conversion and funnel tracking for sharper optimization."},{label:"Server-Side",imageUrl:"/images/home-services/data-intelligence/server-side.svg?v=a3",description:"Server-side tracking systems for resilient measurement."},{label:"BI Dashboards",imageUrl:"/images/home-services/data-intelligence/bi-dashboards.svg?v=a3",description:"Executive dashboards and reporting systems for operating teams."}]}};function getHomeServicePillars(e={}){return(Array.isArray(e.cards)?e.cards:[]).filter(t=>Array.isArray(t.services)&&t.services.length).slice(0,5)}function getHomeServiceCardFallback(e,t){return HOME_SERVICE_CATEGORY_FALLBACKS[e]?.services?.[t]||{}}function updateHomeServiceCta(e){const t=document.querySelector(".home-magic-bento-mobile-cta"),r=t?.querySelector(".button-primary");if(!t||!r)return;const a=t.querySelector(".home-stack-pillar-cta");if(!e){t.classList.remove("is-home-service-stack-cta"),a?.remove();return}t.classList.add("is-home-service-stack-cta");const o=String(e.label||e.title||"").trim().split(/\s+/)[0]||"",n=a||document.createElement("a");n.className="home-stack-pillar-cta",n.href=e.link||"/services/",n.textContent=o?`View all ${o} services`:"View all services",a||t.insertBefore(n,r),r.href="/services/",r.textContent="View all services"}
297function renderServicePillarRail(e={}){const t=document.querySelector(".home-magic-bento-intro"),r=document.querySelector("[data-home-service-pillar-rail]"),a=getHomeServicePillars(e);if(!t||a.length<2){r?.remove(),updateHomeServiceCta(null);return}activeHomeServicePillarIndex=Math.min(Math.max(activeHomeServicePillarIndex,0),a.length-1);const o=r||document.createElement("nav");o.className="home-service-pillar-rail",o.dataset.homeServicePillarRail="",o.setAttribute("aria-label","Service pillars"),o.setAttribute("role","tablist"),o.replaceChildren(),a.forEach((n,s)=>{const c=document.createElement("button"),l=n.label||n.title||"Service";c.type="button",c.className=s===activeHomeServicePillarIndex?"is-active":"",c.dataset.homeServicePillarTab=String(s),c.setAttribute("role","tab"),c.setAttribute("aria-selected",String(s===activeHomeServicePillarIndex)),c.innerHTML=`
298      <span>${String(s+1).padStart(2,"0")}</span>
299      <strong>${escapeLayoutHtml(l)}</strong>
300    `,c.addEventListener("click",()=>{activeHomeServicePillarIndex=s,renderServiceCards(e)}),o.appendChild(c)}),r||t.insertAdjacentElement("afterend",o),initHomeRailLiquidGlass(o,e)}const homeRailGlass={rail:null,services:null,lens:null,refract:null,x:0,v:0,targetX:0,s:1,sv:0,targetS:1,width:0,height:0,raf:0,lastT:0,grabbed:!1,grabOffset:0,pointerId:null,holdTimer:0,downX:0,downY:0,maybeDrag:!1,suppressClickUntil:0,mapKey:"",hasLaidOut:!1,resizeBound:!1,boundRail:null,sizeObserver:null,sizeResizeRaf:0,sizeFallbackTimed:!1},HOME_RAIL_LENS_OVERSHOOT=7;function homeRailGlassSupportsRefraction(){try{return typeof CSS<"u"&&CSS.supports("backdrop-filter","url(#hsr)")&&!CSS.supports("-moz-appearance","none")}catch{return!1}}function homeRailGlassButtons(){const e=homeRailGlass;return e.rail?Array.from(e.rail.querySelectorAll("[data-home-service-pillar-tab]")):[]}const HOME_RAIL_LENS_MAG=1.1,HOME_RAIL_LENS_RIM_PX=14;function homeRailLensMapDataUrl(e,t,r){const a=document.createElement("canvas");a.width=e,a.height=t;const o=a.getContext("2d"),n=o.createImageData(e,t),s=n.data,c=t/2,l=Math.max(e/2-c,0),d=e/2,p=t/2,h=Math.max(c*.5,6),v=1-1/HOME_RAIL_LENS_MAG,L=r/2;for(let w=0;w<t;w++)for(let y=0;y<e;y++){const u=y+.5-d,g=w+.5-p,m=Math.max(Math.abs(u)-l,0),i=Math.hypot(m,g)-c;let b=0,A=0;if(i<0){const C=Math.min(Math.max(1+i/h,0),1),_=C*C*C,S=Math.hypot(m,g)||1,q=m/S*(u<0?-1:1),N=g/S,D=-v*u*(1-_)+q*HOME_RAIL_LENS_RIM_PX*_,G=-v*g*(1-_)+N*HOME_RAIL_LENS_RIM_PX*_;b=D/L,A=G/L}const f=(w*e+y)*4;s[f]=Math.round(128+Math.max(-1,Math.min(1,b))*127),s[f+1]=Math.round(128+Math.max(-1,Math.min(1,A))*127),s[f+2]=128,s[f+3]=255}return o.putImageData(n,0,0),a.toDataURL()}function ensureHomeRailLensFilter(){if(document.getElementById("hsr-lens-filter"))return;const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("width","0"),e.setAttribute("height","0"),e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.left="-9999px",e.innerHTML='<filter id="hsr-lens-filter" x="0%" y="0%" width="100%" height="100%" color-interpolation-filters="sRGB"><feImage id="hsr-lens-map" x="0" y="0" width="0" height="0" preserveAspectRatio="none" result="hsrMap"/><feDisplacementMap id="hsr-disp-r" in="SourceGraphic" in2="hsrMap" xChannelSelector="R" yChannelSelector="G" scale="0" result="hsrDR"/><feColorMatrix in="hsrDR" type="matrix" values="1 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0" result="hsrR"/><feDisplacementMap id="hsr-disp-g" in="SourceGraphic" in2="hsrMap" xChannelSelector="R" yChannelSelector="G" scale="0" result="hsrDG"/>
300<feColorMatrix in="hsrDG" type="matrix" values="0 0 0 0 0  0 1 0 0 0  0 0 0 0 0  0 0 0 1 0" result="hsrG"/><feDisplacementMap id="hsr-disp-b" in="SourceGraphic" in2="hsrMap" xChannelSelector="R" yChannelSelector="G" scale="0" result="hsrDB"/><feColorMatrix in="hsrDB" type="matrix" values="0 0 0 0 0  0 0 0 0 0  0 0 1 0 0  0 0 0 1 0" result="hsrB"/><feComposite in="hsrR" in2="hsrG" operator="arithmetic" k1="0" k2="1" k3="1" k4="0" result="hsrRG"/><feComposite in="hsrRG" in2="hsrB" operator="arithmetic" k1="0" k2="1" k3="1" k4="0" result="hsrRGB"/><feGaussianBlur in="hsrRGB" stdDeviation="0.35" result="hsrSoft"/><feColorMatrix in="hsrSoft" type="saturate" values="1.5" result="hsrSat"/><feComponentTransfer in="hsrSat"><feFuncR type="linear" slope="1.06"/><feFuncG type="linear" slope="1.06"/><feFuncB type="linear" slope="1.06"/></feComponentTransfer></filter>',document.body.appendChild(e)}function updateHomeRailLensMap(e,t){const r=homeRailGlass,a=Math.round(e),o=Math.round(t),n=a+"x"+o;if(r.mapKey===n)return;const s=document.getElementById("hsr-lens-map");if(!s)return;r.mapKey=n;const c=Math.max(24,Math.round(o*.66));s.setAttribute("width",String(a)),s.setAttribute("height",String(o)),s.setAttribute("href",homeRailLensMapDataUrl(a,o,c));const l=(d,p)=>document.getElementById(d)?.setAttribute("scale",String(p));l("hsr-disp-r",Math.round(c*.95)),l("hsr-disp-g",c),l("hsr-disp-b",Math.round(c*1.05))}function homeRailGlassPaint(){const e=homeRailGlass;e.lens&&(e.lens.style.transform=`translate3d(${e.x}px, -50%, 0) scale(${e.s})`)}function homeRailGlassNearestIndex(){const e=homeRailGlass,t=e.x+e.width/2;let r=0,a=1/0;return homeRailGlassButtons().forEach((o,n)=>{const s=Math.abs(o.offsetLeft+o.offsetWidth/2-t);s<a&&(a=s,r=n)}),r}function homeRailGlassHighlight(){if(!homeRailGlass.grabbed)return;const t=homeRailGlassNearestIndex();homeRailGlassButtons().forEach((r,a)=>r.classList.toggle("is-lens-over",a===t))}function homeRailGlassStep(e){const t=homeRailGlass;t.raf=0;const r=Math.min((e-t.lastT)/1e3,.05);t.lastT=e;const a=380,o=30,n=420,s=34;for(let l=0;l<2;l++){const d=r/2;t.v+=(a*(t.targetX-t.x)-o*t.v)*d,t.x+=t.v*d,t.sv+=(n*(t.targetS-t.s)-s*t.sv)*d,t.s+=t.sv*d}homeRailGlassPaint(),homeRailGlassHighlight(),!(Math.abs(t.targetX-t.x)<.1&&Math.abs(t.v)<.5&&Math.abs(t.targetS-t.s)<.002&&Math.abs(t.sv)<.02)||t.grabbed?t.raf=requestAnimationFrame(homeRailGlassStep):(t.x=t.targetX,t.s=t.targetS,t.v=0,t.sv=0,homeRailGlassPaint())}function homeRailGlassKick(){const e=homeRailGlass;if(!e.raf){if(reduceMotion&&!e.grabbed){e.x=e.targetX,e.s=e.targetS,e.v=0,e.sv=0,homeRailGlassPaint();return}e.lastT=performance.now(),e.raf=requestAnimationFrame(homeRailGlassStep)}}function homeRailGlassLayout(e){const t=homeRailGlass;if(!t.rail||!t.lens||t.grabbed)return;const r=homeRailGlassButtons(),a=r[activeHomeServicePillarIndex]||r[0];if(!a||!t.rail.offsetWidth)return;const o=a.offsetWidth+6,n=t.rail.offsetHeight+HOME_RAIL_LENS_OVERSHOOT*2;t.width=o,t.height=n,t.lens.style.width=o+"px",t.lens.style.height=n+"px",updateHomeRailLensMap(o,n),t.targetX=a.offsetLeft+(a.offsetWidth-o)/2,t.hasLaidOut=!0,e||reduceMotion?(t.x=t.targetX,t.v=0,homeRailGlassPaint()):homeRailGlassKick()}function homeRailGlassWatchSize(e){const t=homeRailGlass;if(typeof ResizeObserver>"u"){if(t.sizeFallbackTimed)return;t.sizeFallbackTimed=!0,[120,400,1200,2500].forEach(r=>setTimeout(()=>{homeRailGlass.grabbed||homeRailGlassLayout(!0)},r));return}t.sizeObserver||(t.sizeObserver=new ResizeObserver(()=>{homeRailGlass.sizeResizeRaf||(homeRailGlass.sizeResizeRaf=requestAnimationFrame(()=>{const r=homeRailGlass;if(r.sizeResizeRaf=0,r.grabbed||!r.rail||!r.lens||!r.rail.offsetWidth)return;const a=homeRailGlassButtons(),o=a[activeHomeServicePillarIndex]||a[0];if(!o)return;const n=o.offsetWidth+6,s=r.rail.offsetHeight+HOME_RAIL_LENS_OVERSHOOT*2,c=o.offsetLeft+(o.offsetWidth-n)/2;n===r.width&&s===r.height&&Math.abs(c-r.targetX)<.5||homeRailGlassLayout(!0)}))})),t.sizeObserver.disconnect(),t.sizeObserver.observe(e)}function homeRailGlassGrab(e){const t=homeRailGlass;if(t.grabbed||!t.rail)return;t.grabbed=!0,t.maybeDrag=!1,clearTimeout(t.holdTimer);try{t.pointerId!=null&&t.rail.setPointerCapture(t.pointerId)}catch{}const r=t.rail.getBoundingClientRect().left,a=e-r,o=t.x+t.width/2;t.grabOffset=Math.abs(a-o)<=t.width/2?o-a:0,t.targetS=1.06,t.rail.classList.add("is-lens-drag"),t.lens.classList.add("is-grabbed"),homeRailGlassFollow(e)}function homeRailGlassFollow(e){const t=homeRailGlass;if(!t.rail)return;const r=t.rail.getBoundingClientRect(),a=3,o=e-r.left+t.grabOffset-t.width/2;t.targetX=Math.max(a,Math.min(r.width-t.width-a,o)),homeRailGlassKick()}function homeRailGlassDrop(){const e=homeRailGlass;e.grabbed=!1,e.targetS=1,e.suppressClickUntil=performance.now()+320,e.rail?.classList.remove("is-lens-drag"),e.lens?.classList.remove("is-grabbed");const t=homeRailGlassNearestIndex();
300homeRailGlassButtons().forEach(r=>r.classList.remove("is-lens-over")),t!==activeHomeServicePillarIndex&&e.services?(activeHomeServicePillarIndex=t,renderServiceCards(e.services)):homeRailGlassLayout(!1),homeRailGlassKick()}function bindHomeRailGlassEvents(e){const t=homeRailGlass,r=240,a=6;e.addEventListener("pointerdown",n=>{if(n.button!==0||!t.lens||!e.offsetWidth)return;t.pointerId=n.pointerId,t.downX=n.clientX,t.downY=n.clientY,t.maybeDrag=!0,clearTimeout(t.holdTimer);const s=n.clientX;t.holdTimer=setTimeout(()=>{t.maybeDrag&&homeRailGlassGrab(s)},r)}),e.addEventListener("pointermove",n=>{if(n.pointerId===t.pointerId){if(!t.grabbed&&t.maybeDrag){const s=Math.abs(n.clientX-t.downX),c=Math.abs(n.clientY-t.downY);s>a&&s>c?homeRailGlassGrab(n.clientX):c>14&&(t.maybeDrag=!1,clearTimeout(t.holdTimer))}t.grabbed&&(n.preventDefault(),homeRailGlassFollow(n.clientX))}});const o=n=>{n.pointerId===t.pointerId&&(clearTimeout(t.holdTimer),t.maybeDrag=!1,t.pointerId=null,t.grabbed&&homeRailGlassDrop())};e.addEventListener("pointerup",o),e.addEventListener("pointercancel",o),e.addEventListener("click",n=>{performance.now()<t.suppressClickUntil&&(n.preventDefault(),n.stopPropagation())},!0),e.addEventListener("touchmove",n=>{t.grabbed&&n.preventDefault()},{passive:!1})}function initHomeRailLiquidGlass(e,t){const r=homeRailGlass;if(r.services=t,r.rail=e,!r.lens){const a=document.createElement("div");a.className="hsr-lens",a.setAttribute("aria-hidden","true");const o=document.createElement("span");o.className="hsr-lens-refract",a.appendChild(o),r.lens=a,r.refract=o,homeRailGlassSupportsRefraction()&&(ensureHomeRailLensFilter(),o.classList.add("has-map"))}if(e.classList.add("has-liquid-lens"),r.refract&&r.refract.classList.contains("has-map")&&e.classList.add("has-refraction"),e.appendChild(r.lens),r.boundRail!==e&&(r.boundRail=e,bindHomeRailGlassEvents(e)),!r.resizeBound){r.resizeBound=!0;let a=0;window.addEventListener("resize",()=>{clearTimeout(a),a=setTimeout(()=>{homeRailGlass.grabbed||homeRailGlassLayout(!0)},120)})}homeRailGlassWatchSize(e),homeRailGlassLayout(!r.hasLaidOut)}const PILLAR_HERO_FALLBACKS={"Digital Experiences":"/images/home-services/pillars/digital-experiences.svg?v=a3","Brand & Creative":"/images/home-services/pillars/brand-creative.svg?v=a3","Growth Marketing":"/images/home-services/pillars/growth-marketing.svg?v=a3","AI & Automation":"/images/home-services/pillars/ai-automation.svg?v=a3","Data & Intelligence":"/images/home-services/pillars/data-intelligence.svg?v=a3"};function renderHomeStackMobile(e,t=[]){if(!e||!e.parentElement)return;let a=e.parentElement.querySelector("[data-home-stack-mobile]");if(!t.length){a?.remove();return}a||(a=document.createElement("nav"),a.className="home-stack-mobile",a.dataset.homeStackMobile="",a.setAttribute("aria-label","Service pillars"),e.insertAdjacentElement("afterend",a)),a.replaceChildren(),t.forEach((o,n)=>{const s=o.title||o.label||"Service",c=o.imageUrl||PILLAR_HERO_FALLBACKS[o.label]||PILLAR_HERO_FALLBACKS[s]||"",l=document.createElement("a");l.className="hsm-card",l.href=o.link||"/services/";const d=document.createElement("div");if(d.className="hsm-card-media",d.setAttribute("aria-hidden","true"),c){const y=document.createElement("img");y.src=c,y.alt="",y.loading="lazy",y.decoding="async",d.appendChild(y)}const p=document.createElement("div");p.className="hsm-card-body";const h=document.createElement("span");h.className="hsm-card-index",h.textContent=String(n+1).padStart(2,"0");const v=document.createElement("h3");v.className="hsm-card-title",v.textContent=s;const L=document.createElement("p");L.className="hsm-card-desc",L.textContent=o.description||"";const w=document.createElement("span");w.className="hsm-card-cta",w.innerHTML='Explore <i aria-hidden="true">&#8594;</i>',p.append(h,v,L,w),l.append(d,p),a.appendChild(l)}),a.classList.contains("is-visible")||(typeof window.maObserveHomeStackReveal=="function"?window.maObserveHomeStackReveal(a):a.classList.add("is-visible"))}
300function renderServiceCards(e={}){const t=document.querySelector("[data-magic-bento-grid]"),r=Array.isArray(e.cards)?e.cards:[];if(!t||!r.length)return;renderServicePillarRail(e);const a=getHomeServicePillars(e);if(r.every(n=>Array.isArray(n.services)&&n.services.length)){const n=a[activeHomeServicePillarIndex]||a[0],s=n?.label||n?.title||"",c=Array.isArray(n?.services)?n.services.slice(0,5):[];if(!n||!c.length)return;if(t.classList.contains("home-stack-redesign")){t.classList.remove("is-home-service-tab-grid"),updateHomeServiceCta(n),t.replaceChildren();const l=document.createElement("ol");l.className="home-stack-list",c.forEach((d,p)=>{const h=getHomeServiceCardFallback(s,p),v={title:d.label||h.label||"Service",description:d.description||h.description||"",link:d.url||n.link||"/services/",imageUrl:d.imageUrl||h.imageUrl||""},L=document.createElement("li");L.className="home-stack-item";const w=document.createElement("a");w.className="home-stack-item-link",w.href=v.link;const y=document.createElement("div");if(y.className="home-stack-item-media",y.setAttribute("aria-hidden","true"),v.imageUrl){const A=document.createElement("img");A.src=v.imageUrl,A.alt="",A.loading="lazy",A.decoding="async",y.appendChild(A)}const u=document.createElement("span");u.className="home-stack-item-num",u.textContent=String(p+1).padStart(2,"0");const g=document.createElement("div");g.className="home-stack-item-body";const m=document.createElement("h3");m.className="home-stack-item-title",m.textContent=v.title;const i=document.createElement("p");i.className="home-stack-item-desc",i.textContent=v.description,g.append(m,i);const b=document.createElement("span");b.className="home-stack-item-arrow",b.setAttribute("aria-hidden","true"),b.textContent="\u2192",w.append(y,u,g,b),L.appendChild(w),l.appendChild(L)}),t.appendChild(l),renderHomeStackMobile(t,a);return}t.classList.add("is-home-service-tab-grid"),updateHomeServiceCta(n),t.replaceChildren(),c.forEach((l,d)=>{const p=getHomeServiceCardFallback(s,d),h=document.createElement("a"),v=l.label||p.label||"Service",L={label:p.label||v,title:l.label||p.label||v,description:l.description||p.description||n.description||"",imageUrl:l.imageUrl||p.imageUrl||n.imageUrl||"",link:l.url||n.link||"/services/"};h.className="home-magic-bento-card magic-bento-card magic-bento-card--text-autohide magic-bento-card--border-glow particle-container reveal is-visible",h.href=L.link,h.dataset.magicBentoCard="",syncCreativeServiceCardClass(h,L);const w=document.createElement("div");if(w.className="home-magic-bento-media",w.setAttribute("aria-hidden","true"),L.imageUrl){const b=document.createElement("img");b.className="home-magic-bento-image",b.src=L.imageUrl,b.alt="",b.loading="lazy",b.decoding="async",b.fetchPriority="low",w.appendChild(b)}const y=document.createElement("div");y.className="magic-bento-card__header";const u=document.createElement("div");u.className="magic-bento-card__label",u.textContent=L.label,y.appendChild(u);const g=document.createElement("div");g.className="home-magic-bento-copy magic-bento-card__content";const m=document.createElement("strong");m.className="magic-bento-card__title",m.textContent=L.title;const i=document.createElement("p");i.className="magic-bento-card__description",i.textContent=L.description,g.append(m,i),h.append(w,y,g),renderServiceCardMedia(h,L),t.appendChild(h)});return}t.classList.remove("is-home-service-tab-grid"),updateHomeServiceCta(null),t.replaceChildren(),r.forEach(n=>{const s=Array.isArray(n.services)&&n.services.length,c=document.createElement(s?"article":"a");c.className=s?"home-magic-bento-card home-service-pillar-card magic-bento-card magic-bento-card--border-glow particle-container reveal is-visible":"home-magic-bento-card magic-bento-card magic-bento-card--text-autohide magic-bento-card--border-glow particle-container reveal is-visible",s||(c.href=n.link||"/services/"),c.dataset.magicBentoCard="",syncCreativeServiceCardClass(c,n);const l=document.createElement("div");if(l.className="home-magic-bento-media",l.setAttribute("aria-hidden","true"),n.imageUrl){const w=document.createElement("img");w.className="home-magic-bento-image",w.src=n.imageUrl||"",w.alt="",w.loading="lazy",w.decoding="async",w.fetchPriority="low",l.appendChild(w)}const d=document.createElement("div");d.className="magic-bento-card__header";const p=document.createElement("div");p.className="magic-bento-card__label",p.textContent=n.label||"",d.appendChild(p);const h=document.createElement("div");h.className="home-magic-bento-copy magic-bento-card__content";const v=document.createElement("strong");v.className="magic-bento-card__title",v.textContent=n.title||"";const L=document.createElement("p");if(L.className="magic-bento-card__description",L.textContent=n.description||"",h.append(v,L),s){const w=document.createElement("ul");w.className="home-service-pillar-list",n.services.slice(0,5).forEac
300h(u=>{const g=document.createElement("li"),m=document.createElement("a");m.href=u.url||n.link||"/services/",m.textContent=u.label||"Service",g.appendChild(m),w.appendChild(g)});const y=document.createElement("a");y.className="home-service-pillar-cta",y.href=n.link||"/services/",y.textContent=n.ctaLabel||`View all ${n.title||n.label||"services"}`,h.append(w,y),c.append(l,d,h)}else c.append(l,d,h),renderServiceCardMedia(c,n);t.appendChild(c)})}document.addEventListener("click",e=>{const t=e.target.closest?.("[data-service-video-sound]");if(!t)return;e.preventDefault(),e.stopPropagation();const r=t.closest(".home-magic-bento-card"),a=r?.querySelector(".home-magic-bento-desktop-media-video");a&&(setServiceVideoSoundState(r,!a.muted),a.muted||(loadServiceVideoSource(a),a.play().catch(()=>setServiceVideoSoundState(r,!0))))}),document.addEventListener("keydown",e=>{const t=e.target.closest?.("[data-service-video-sound]");!t||!["Enter"," "].includes(e.key)||(e.preventDefault(),t.click())});function renderHomeStats(e={}){const t=document.querySelector("[data-home-stats]"),r=t?.querySelector("[data-home-stats-title]"),a=t?.querySelector("[data-home-stats-grid]"),o=Array.isArray(e.items)?e.items:[];!t||!a||!o.length||(setOptionalTextNode(r,e.title),a.replaceChildren(),o.forEach(n=>{const s=document.createElement("article");s.className="home-stats-card reveal is-visible",s.innerHTML="<strong></strong><span></span><p></p>",setNodeTextFor(s,"strong",n.value),setNodeTextFor(s,"span",n.label),setNodeTextFor(s,"p",n.description),a.appendChild(s)}))}function carouselImageUrl(e){const t=String(e||"");if(!t||!/images\.unsplash\.com/i.test(t))return t;let r=1e3;try{if(!window.matchMedia||!window.matchMedia("(max-width: 1024px)").matches)return t;window.matchMedia("(min-width: 768px)").matches&&(r=1280)}catch{return t}return t.replace(/([?&])w=\d+/i,`$1w=${r}`).replace(/([?&])q=\d+/i,"$1q=80")}function pruneEmptyClientTestimonial(e,t){if(!e)return;const r=e.querySelector(".home-client-testimonial");if(!r)return;const a=!!String(t?.quote||"").trim(),o=!!(String(t?.metaTitle||"").trim()||String(t?.metaSubtitle||"").trim()),n=splitCsv(t?.tags).length>0;if(!a&&!o&&!n){r.remove();return}a||r.querySelector("blockquote")?.remove(),o||r.querySelector(".home-client-testimonial-meta")?.remove()}function renderClientResults(e={}){const t=document.querySelector("[data-client-results]"),r=t?.querySelector(".home-client-results-stage"),a=t?.querySelector(".home-client-logo-strip"),o=Array.isArray(e.cards)?e.cards:[];!t||!r||!a||!o.length||(r.replaceChildren(),a.replaceChildren(),o.forEach((n,s)=>{const c=`result-${s+1}`,l=document.createElement("article"),d=String(n.videoUrl||"").trim(),p=String(n.posterUrl||n.thumbnailUrl||n.imageUrl||"").trim(),h=getEmbeddableVideoUrl(d),v=!h&&isDirectVideoAssetUrl(d)?d:"",L=!!(h||v);l.className=`home-client-result-panel${L?" has-client-video-panel":""}${s===0?" is-active":""}`,l.dataset.clientResultPanel=c,s!==0&&l.setAttribute("aria-hidden","true");const w=h?`<iframe class="home-client-result-video home-client-result-video-embed" src="${escapeHtmlText(h)}" title="${escapeHtmlText(`${n.client||"Client"} result video`)}" allow="autoplay; encrypted-media; picture-in-picture; fullscreen" allowfullscreen loading="lazy"></iframe>`:v?`<video class="home-client-result-video" src="${escapeHtmlText(v)}" controls playsinline preload="none"${p?` poster="${escapeHtmlText(p)}"`:""}></video>`:"";l.innerHTML=`
301      <div class="home-client-result-media${L?" has-client-video":""}">
302        ${w}
303        ${L?'<button class="home-client-play" type="button" data-client-video-expand aria-label="Play video"><span class="home-client-play-pulse" aria-hidden="true"></span><svg class="home-client-play-glyph" viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5.14v13.72c0 .79.87 1.26 1.54.84l10.79-6.86c.62-.4.62-1.29 0-1.69L9.54 4.3C8.87 3.88 8 4.35 8 5.14z"/></svg></button>':""}
304        <div class="home-client-device-stack" aria-hidden="true"><span></span><span></span><span></span></div>
305        ${L?"":'<div class="home-client-video-bar" aria-hidden="true"><span class="home-client-play-icon"></span><span class="home-client-time">02:00</span><span class="home-client-progress"></span><span class="home-client-control"></span></div>'}
306      </div>
307      <div class="home-client-result-copy">
308        <span></span>
309        <h3></h3>
310        <i></i>
311        <p></p>
312        <div class="home-client-testimonial">
313          <blockquote></blockquote>
314          <div class="home-client-testimonial-meta"><span><strong></strong><small></small></span><img loading="lazy" decoding="async" alt="" /></div>
315          <div class="home-client-testimonial-tags"></div>
316        </div>
317      </div>
318    `;const y=l.querySelector(".home-client-result-media");y&&n.imageUrl&&(y.dataset.crImage=n.imageUrl,y.style.setProperty("--result-image",`url('${carouselImageUrl(n.imageUrl).replaceAll("'","\\'")}')`)),y&&(n.backdropImageUrl?y.dataset.crBackdrop=String(n.backdropImageUrl).trim():delete y.dataset.crBackdrop),setNodeTextFor(l,".home-client-result-copy > span",n.client),setNodeTextFor(l,".home-client-result-copy h3",n.title),setNodeTextFor(l,".home-client-result-copy > p",n.description),setNodeTextFor(l,".home-client-testimonial blockquote",n.quote?`\u201C${n.quote}\u201D`:""),setNodeTextFor(l,".home-client-testimonial-meta strong",n.metaTitle),setNodeTextFor(l,".home-client-testimonial-meta small",n.metaSubtitle);const u=l.querySelector(".home-client-testimonial-tags");splitCsv(n.tags).forEach(i=>{const b=document.createElement("em");b.textContent=i,u.appendChild(b)}),pruneEmptyClientTestimonial(l,n),r.appendChild(l);const g=document.createElement("button");g.className=`home-client-logo-button${s===0?" is-active":""}`,g.type="button",g.dataset.clientResultButton=c,g.setAttribute("role","tab"),g.setAttribute("aria-selected",String(s===0));const m=document.createElement("img");m.src=localizeRemoteBrandAsset(n.logoUrl||""),m.alt=n.client||"",g.appendChild(m),a.appendChild(g)}),setupClientResultsCarousel())}function setupClientResultsCarousel(){const e=document.querySelector("[data-client-results]");if(!e)return;const t=e.querySelector(".home-client-results-stage"),r=e.querySelector(".home-client-results-shell");if(!t||!r)return;const a='<svg viewBox="0 0 24 24" aria-hidden="true"><rect x="6" y="5" width="4" height="14" rx="1"></rect><rect x="14" y="5" width="4" height="14" rx="1"></rect></svg>',o='<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5.14v13.72c0 .79.87 1.26 1.54.84l10.79-6.86c.62-.4.62-1.29 0-1.69L9.54 4.3C8.87 3.88 8 4.35 8 5.14z"></path></svg>',n=!!(window.matchMedia&&window.matchMedia("(max-width: 1024px)").matches),s=()=>[...t.querySelectorAll("[data-client-result-panel]")].filter(y=>!y.hidden),c=y=>{const g=s()[y];if(!g)return;const m=g.offsetLeft+g.offsetWidth/2-t.clientWidth/2,i=t.scrollWidth-t.clientWidth;t.scrollTo({left:Math.max(0,Math.min(i,m)),behavior:"smooth"})},l=s();l.forEach((y,u)=>{y.removeAttribute("aria-hidden"),y.removeAttribute("role"),y.setAttribute("aria-roledescription","slide"),y.id||(y.id=`client-result-slide-${u+1}`);const g=y.querySelector(".home-client-result-copy > span")?.textContent?.trim();y.setAttribute("aria-label",`${g?g+" \u2014 ":""}slide ${u+1} of ${l.length}`),y.querySelectorAll("video.home-client-result-video").forEach(i=>{i.controls=!n});const m=y.querySelector(".home-client-result-media");m&&m.dataset.crImage&&m.style.setProperty("--result-image",`url('${carouselImageUrl(m.dataset.crImage).replaceAll("'","\\'")}')`)});let d=r.querySelector(".home-cr-bar");if(l.length>1){d||(d=document.createElement("div"),d.className="home-cr-bar",t.insertAdjacentElement("afterend",d)),d.replaceChildren();const y=e.__carousel,u=document.createElement("button");u.type="button",u.className="home-cr-play";const g=()=>{const i=y?y.isPaused():!1;u.innerHTML=i?o:a,u.setAttribute("aria-label",i?"Play client results":"Pause client results"),u.setAttribute("aria-pressed",String(!i))};u.addEventListener("click",()=>{y&&y.setPaused(!y.isPaused()),g()}),g(),d.appendChild(u);const m=document.createElement("div");m.className="home-cr-dots",m.setAttribute("role","group"),m.setAttribute("aria-label","Client results"),l.forEach((i,b)=>{const A=document.createElement("button");A.type="button",A.className=`home-cr-dot${b===0?" is-active":""}`,A.dataset.crDot=String(b),A.setAttribute("aria-label",`Go to client result ${b+1}`),A.setAttribute("aria-controls",i.id),A.addEventListener("click",()=>c(b)),m.appendChild(A)}),d.appendChild(m)}else d&&d.remove();const p=()=>{const y=s();if(!y.length)return 0;const u=t.scrollLeft+t.clientWidth/2;let g=0,m=1/0;
318return y.forEach((i,b)=>{const A=i.offsetLeft+i.offsetWidth/2,f=Math.abs(A-u);f<m&&(m=f,g=b)}),g},h=()=>{const y=p(),u=r.querySelector(".home-cr-dots");u&&[...u.children].forEach((g,m)=>{const i=m===y;g.classList.toggle("is-active",i),g.setAttribute("aria-current",i?"true":"false")})};let v=0;const L=()=>{v||(v=requestAnimationFrame(()=>{v=0,h()}))};t.__crScroll&&t.removeEventListener("scroll",t.__crScroll),t.__crScroll=L,t.addEventListener("scroll",t.__crScroll,{passive:!0}),t.__crResize&&window.removeEventListener("resize",t.__crResize);let w=0;t.__crResize=()=>{window.clearTimeout(w),w=window.setTimeout(()=>{const y=!!(window.matchMedia&&window.matchMedia("(max-width: 1024px)").matches);s().forEach(u=>{u.querySelectorAll("video.home-client-result-video").forEach(m=>{m.controls=!y});const g=u.querySelector(".home-client-result-media");g&&g.dataset.crImage&&g.style.setProperty("--result-image",`url('${carouselImageUrl(g.dataset.crImage).replaceAll("'","\\'")}')`)}),h()},220)},window.addEventListener("resize",t.__crResize,{passive:!0}),t.setAttribute("data-cr-ready",""),h()}function renderHomeTestimonials(e={}){const t=document.querySelector("[data-home-testimonials]"),r=t?.querySelector("[data-home-testimonials-title]"),a=t?.querySelector("[data-home-testimonials-grid]"),o=Array.isArray(e.items)?e.items:[];!t||!a||!o.length||(setOptionalTextNode(r,e.title),a.replaceChildren(),o.forEach(n=>{const s=document.createElement("article");s.className="home-testimonial-card reveal is-visible",s.innerHTML='<p></p><div><img loading="lazy" decoding="async" alt="" /><span><strong></strong><small></small></span></div>',setNodeTextFor(s,"p",n.quote),setNodeTextFor(s,"strong",n.author),setNodeTextFor(s,"small",n.role),setImageSource(s.querySelector("img"),n.logoUrl,n.logoAlt||n.author),a.appendChild(s)}))}const FAQ_ANSWER_LINK_SOURCE="\\[([^\\]\\n]+)\\]\\((\\/[^)\\s]*|mailto:[^)\\s]+|tel:[^)\\s]+)\\)";function appendFaqAnswerContent(e,t){const r=String(t||""),a=new RegExp(FAQ_ANSWER_LINK_SOURCE,"g");let o=0,n=a.exec(r);for(;n;){n.index>o&&e.appendChild(document.createTextNode(r.slice(o,n.index)));const s=document.createElement("a");s.className="home-faq-link",s.setAttribute("href",n[2]),s.textContent=n[1],e.appendChild(s),o=n.index+n[0].length,n=a.exec(r)}o<r.length&&e.appendChild(document.createTextNode(r.slice(o)))}function renderHomeFaq(e={}){const t=document.querySelector(".home-faq-grid"),r=Array.isArray(e.items)?e.items:[];if(!t||!r.length)return;t.classList.remove("is-expanded"),t.classList.toggle("has-read-more",r.length>2),t.classList.toggle("has-desktop-read-more",r.length>8);const a=r.map((o,n)=>{const s=document.createElement("details");s.className="home-faq-item",s.dataset.faqIndex=String(n+1);const c=document.createElement("summary"),l=document.createElement("div");return l.className="home-faq-answer",c.textContent=o.question||"",appendFaqAnswerContent(l,o.answer),s.append(c,l),s});if(a.forEach(o=>{o.addEventListener("toggle",()=>{o.open&&a.forEach(n=>{n!==o&&(n.open=!1)})})}),r.length>2){const o=document.createElement("button");o.type="button",o.className="home-faq-read-more",o.setAttribute("aria-expanded","false"),o.textContent="View more questions",o.addEventListener("click",()=>{const n=t.classList.toggle("is-expanded");o.setAttribute("aria-expanded",String(n)),o.textContent=n?"View fewer questions":"View more questions"}),t.replaceChildren(...a,o);return}t.replaceChildren(...a)}const homeSectionMap={hero:".hero-orbit",trust:".hero-logo-flip-strip",services:".home-editorial-frame",results:".home-client-results",cta:".home-cta-frame",faq:".home-faq-frame",leadModal:"[data-lead-modal]",footer:".site-footer"},homeDeviceKeys=["desktop","tablet","mobile"],homePageVariantByDevice={desktop:"home",tablet:"home-tablet",mobile:"home-mobile"},aboutPageVariantByDevice={desktop:"about",tablet:"about-tablet",mobile:"about-mobile"};let latestHomeTextStyles={},latestHomePageVariants=null,latestAppliedHomePageVariant="";function applyHomeSectionVisibility(e={}){Object.entries(homeSectionMap).forEach(([t,r])=>{const a=document.querySelector(r);if(!a)return;const o=e[t]&&typeof e[t]=="object"?e[t]:{};a.dataset.homeSection=t,homeDeviceKeys.forEach(n=>{a.dataset[`homeVisible${n[0].toUpperCase()}${n.slice(1)}`]=o[n]===!1?"false":"true"})})}function getHomeResponsiveDevice(){const e=document.body?.dataset?.cmsPreviewDevice;return homeDeviceKeys.includes(e)?e:window.matchMedia("(max-width: 720px)").matches?"mobile":window.matchMedia("(max-width: 1080px)").matches?"tablet":"desktop"}function getHomeResponsivePageVariantKey(){return homePageVariantByDevice[getHomeResponsiveDevice()]||"home"}function getAboutResponsivePageVariantKey(){return aboutPageVariantByDevice[getHomeResponsiveDevice()]||"about"}function getResponsiveHomePageContent(e={}){const t=getHomeResponsivePageVariantKey();return{key:t,home:e?.[t]||e?.home||null}}function setHomeMetaTag(e,t,r){const a=String(r??"").trim();if(!a||!document.head)return;let o=document.head.querySelector(`meta[${e}="${t}"]`);o||(o=document.createElement("meta"),o.setAttribute(e,t),document.head.appendChild(o)),o.setAttribute("content",a)}function isSeoServerManaged(){return typeof document<"u"&&!!document.querySelector('meta[name="ma360:seo-managed"]')}function applySeoMetadata(e={}){if(!e||typeof e!="object"||isSeoServerManaged())return;
318const t=String(e.title||"").trim(),r=String(e.description||"").trim();t&&(document.title=t),setHomeMetaTag("name","description",r);const a=String(e.ogTitle||t||"").trim(),o=String(e.ogDescription||r||"").trim();setHomeMetaTag("property","og:title",a),setHomeMetaTag("property","og:description",o),setHomeMetaTag("name","twitter:title",a),setHomeMetaTag("name","twitter:description",o);const n=String(e.ogImageUrl||"").trim();n&&(setHomeMetaTag("property","og:image",n),setHomeMetaTag("name","twitter:image",n),setHomeMetaTag("name","twitter:card","summary_large_image"));const s=String(e.canonicalPath||"").trim();if(s&&document.head){let c=document.head.querySelector('link[rel="canonical"]');c||(c=document.createElement("link"),c.setAttribute("rel","canonical"),document.head.appendChild(c)),c.setAttribute("href",s)}(e.noindex===!0||e.noindex==="true")&&setHomeMetaTag("name","robots","noindex, nofollow")}const applyHomeSeoMetadata=applySeoMetadata;typeof window<"u"&&(window.applySeoMetadata=applySeoMetadata);function applyResponsiveHomePageContent(e,t={}){if(!e||typeof e!="object")return;latestHomePageVariants=e,applySeoMetadata(e.home&&e.home.seo||{});const{key:r,home:a}=getResponsiveHomePageContent(e);if(a){if(!t.force&&latestAppliedHomePageVariant===r){applyHomeTextStyles(a.styles||latestHomeTextStyles);return}latestAppliedHomePageVariant=r,applyHomePageContent(a)}}function addHomeStyleTarget(e,t,r){t&&e.push({node:t,path:r})}function getHomeStyleTargets(){const e=[],t=document.querySelectorAll(".hero-orbit-copy h1 .hero-title-line");return addHomeStyleTarget(e,t[0],"hero.titleLine1"),addHomeStyleTarget(e,document.querySelector(".hero-service-rotator"),"hero.serviceRotator"),addHomeStyleTarget(e,t[1],"hero.titleLine3"),addHomeStyleTarget(e,document.querySelector(".hero-orbit-copy .page-lead"),"hero.lead"),addHomeStyleTarget(e,document.querySelector(".hero-standalone-cta"),"hero.ctaLabel"),addHomeStyleTarget(e,document.querySelector(".hero-partner-strip p"),"hero.partnerLine"),addHomeStyleTarget(e,document.querySelector(".home-magic-bento-kicker"),"services.kicker"),addHomeStyleTarget(e,document.querySelector(".home-magic-bento-intro h2"),"services.title"),addHomeStyleTarget(e,document.querySelector(".home-magic-bento-intro p"),"services.intro"),document.querySelectorAll(".home-magic-bento-card").forEach((r,a)=>{addHomeStyleTarget(e,r.querySelector(".magic-bento-card__label"),`services.cards.${a}.label`),addHomeStyleTarget(e,r.querySelector(".magic-bento-card__title"),`services.cards.${a}.title`),addHomeStyleTarget(e,r.querySelector(".magic-bento-card__description"),`services.cards.${a}.description`)}),addHomeStyleTarget(e,document.querySelector(".home-client-results h2"),"results.title"),document.querySelectorAll(".home-client-result-panel").forEach((r,a)=>{addHomeStyleTarget(e,r.querySelector(".home-client-result-copy > span"),`results.cards.${a}.client`),addHomeStyleTarget(e,r.querySelector(".home-client-result-copy h3"),`results.cards.${a}.title`),addHomeStyleTarget(e,r.querySelector(".home-client-result-copy > p"),`results.cards.${a}.description`),addHomeStyleTarget(e,r.querySelector(".home-client-testimonial blockquote"),`results.cards.${a}.quote`),addHomeStyleTarget(e,r.querySelector(".home-client-testimonial-meta strong"),`results.cards.${a}.metaTitle`),addHomeStyleTarget(e,r.querySelector(".home-client-testimonial-meta small"),`results.cards.${a}.metaSubtitle`)}),addHomeStyleTarget(e,document.querySelector(".home-cta-copy h2"),"cta.title"),addHomeStyleTarget(e,document.querySelector(".home-cta-actions [data-open-lead-modal]"),"cta.buttonLabel"),addHomeStyleTarget(e,document.querySelector(".home-faq-kicker"),"faq.kicker"),addHomeStyleTarget(e,document.querySelector(".home-faq-headline"),"faq.title"),document.querySelectorAll(".hero-award-badge").forEach((r,a)=>{addHomeStyleTarget(e,r.querySelector(".hero-award-copy strong"),`hero.awards.${a}.title`),addHomeStyleTarget(e,r.querySelector(".hero-award-copy small"),`hero.awards.${a}.subtitle`)}),document.querySelectorAll(".home-faq-item").forEach((r,a)=>{addHomeStyleTarget(e,r.querySelector("summary"),`faq.items.${a}.question`),addHomeStyleTarget(e,r.querySelector(".home-faq-answer"),`faq.items.${a}.answer`)}),addHomeStyleTarget(e,document.querySelector("#lead-modal-title"),"leadModal.title"),addHomeStyleTarget(e,document.querySelector(".lead-modal-copy"),"leadModal.copy"),addHomeStyleTarget(e,document.querySelector(".lead-form-submit"),"leadModal.buttonLabel"),addHomeStyleTarget(e,document.querySelector(".sf-tagline"),"footer.tagline"),addHomeStyleTarget(e,document.querySelector(".sf-contact-link[href^='mailto:']"),"footer.email"),addHomeStyleTarget(e,document.querySelector(".sf-contact-link[href^='tel:']"),"footer.phone"),addHomeStyleTarget(e,document.querySelector(".sf-addr-line"),"footer.address"),e}function applyHomeTextStyles(e=latestHomeTextStyles){latestHomeTextStyles=e&&typeof e=="object"?e:{};const t=getHomeResponsiveDevice();
318getHomeStyleTargets().forEach(({node:r,path:a})=>{const o=Number(latestHomeTextStyles[a]?.fontSize?.[t]);r.dataset.homeStylePath=a,Number.isFinite(o)?r.style.fontSize=`${o}px`:r.style.removeProperty("font-size")})}function applyHomePageContent(e={}){const t=e.global||{},r=e.hero||{},a=e.trust||{},o=e.services||{},n=e.results||{},s=e.cta||{},c=e.faq||{},l=e.leadModal||{},d=e.footer||{},p=e.visibility||{},h=r.typography||{},v=document.querySelector(".hero-orbit");applyHomepageDesignTokens(t),applyHomeSectionVisibility(p),applyCssNumberVar(v,"--home-hero-heading-min",h.headingMinRem,"rem"),applyCssNumberVar(v,"--home-hero-heading-max",h.headingMaxRem,"rem"),applyCssNumberVar(v,"--home-hero-heading-fluid",h.headingFluidVw,"vw"),applyCssNumberVar(v,"--home-hero-copy-max",h.copyMaxRem,"rem"),applyCssNumberVar(v,"--home-hero-lead-size",h.leadFontRem,"rem"),applyCssNumberVar(v,"--home-hero-button-size",h.buttonFontRem,"rem");const L=document.querySelectorAll(".hero-orbit-copy h1 .hero-title-line");if(setOptionalTextNode(L[0],r.titleLine1),L[1]&&r.titleLine3!==void 0&&r.titleLine3!==null){const b=L[1],A=b.querySelector("[data-hero-italic]"),f=String(r.titleLine3||"").trim();Array.from(b.childNodes).forEach(C=>{C.nodeType===Node.TEXT_NODE&&b.removeChild(C)}),f&&b.insertBefore(document.createTextNode(f+" "),A||null)}const w=document.querySelector(".hero-orbit-copy h1 [data-hero-italic]");if(w&&r.titleLine3Italic!==void 0&&r.titleLine3Italic!==null){const b=String(r.titleLine3Italic||"").trim();if(b){let A=w.querySelector("em");A||(A=document.createElement("em"),w.replaceChildren(A)),A.textContent=b,w.hidden=!1}else w.hidden=!0,w.replaceChildren()}const y=document.querySelector(".hero-service-rotator");if(y&&r.serviceRotator!==void 0&&r.serviceRotator!==null){const b=String(r.serviceRotator||"").trim();y.dataset.rotateServices=b,setOptionalTextNode(y,b.split("|")[0].trim()||b)}setNodeText(".hero-orbit-copy .page-lead",r.lead),document.querySelectorAll("[data-open-lead-modal-header], [data-open-lead-modal]").forEach(b=>{if(b.classList.contains("lead-modal-close")||b.closest(".nav-mega-fb-card, .nav-resource-menu"))return;const A=b.querySelector(".header-star-cta__label");if(A){A.textContent="Let's talk!";return}const f=b.closest(".home-cta-actions")?s.buttonLabel:r.ctaLabel;if(!f)return;const C=b.querySelector(".home-cta-btn-icon");C?b.replaceChildren(C,document.createTextNode(` ${f}`)):b.textContent=f}),setNodeText(".hero-partner-strip p",r.partnerLine),document.querySelectorAll(".hero-award-badge").forEach((b,A)=>{const f=Array.isArray(r.awards)?r.awards[A]:null;b.hidden=!f,f&&(setNodeTextFor(b,".hero-award-copy strong",f.title),setNodeTextFor(b,".hero-award-copy small",f.subtitle),b.setAttribute("aria-label",[f.title,f.subtitle].filter(Boolean).join(" - ")))}),renderHeroCaseSlides(r.caseSlides),renderTrustLogos(a),setNodeText(".home-magic-bento-kicker",o.kicker),setNodeText(".home-magic-bento-intro h2",o.title),setNodeText(".home-magic-bento-intro p",o.intro),renderServiceCards(o),setNodeText(".home-client-results h2",n.title),renderClientResults(n),document.querySelectorAll(".home-client-result-panel").forEach((b,A)=>{const f=Array.isArray(n.cards)?n.cards[A]:null;b.hidden=!f;const C=document.querySelectorAll(".home-client-logo-button")[A];if(C&&(C.hidden=!f),!f)return;const _=b.querySelector(".home-client-result-media");_&&f.imageUrl&&(_.dataset.crImage=f.imageUrl,_.style.setProperty("--result-image",`url('${carouselImageUrl(f.imageUrl).replaceAll("'","\\'")}')`)),_&&(f.backdropImageUrl?_.dataset.crBackdrop=String(f.backdropImageUrl).trim():delete _.dataset.crBackdrop),setNodeTextFor(b,".home-client-result-copy > span",f.client),setNodeTextFor(b,".home-client-result-copy h3",f.title),setNodeTextFor(b,".home-client-result-copy > p",f.description),setNodeTextFor(b,".home-client-testimonial blockquote",f.quote?`\u201C${f.quote}\u201D`:""),setNodeTextFor(b,".home-client-testimonial-meta strong",f.metaTitle),setNodeTextFor(b,".home-client-testimonial-meta small",f.metaSubtitle),setImageSource(C?.querySelector("img"),f.logoUrl,f.client);const S=b.querySelector(".home-client-testimonial-tags"),q=splitCsv(f.tags);S&&q.length&&S.replaceChildren(...q.map(N=>{const D=document.createElement("em");return D.textContent=N,D})),pruneEmptyClientTestimonial(b,f)});const u=Array.from(document.querySelectorAll(".home-client-result-panel")).filter(b=>!b.hidden);u.length&&!u.some(b=>b.classList.contains("is-active"))&&(document.querySelectorAll(".home-client-result-panel").forEach(b=>b.classList.remove("is-active","is-exiting","is-entering")),u[0].classList.add("is-active"));const g=Array.from(document.querySelectorAll(".home-client-logo-button")).filter(b=>!b.hidden);g.length&&!g.some(b=>b.classList.contains("is-active"))&&(document.querySelectorAll(".home-client-logo-button").forEach(b=>b.classList.remove("is-active")),g[0].classList.add("is-active")),setupClientResultsCarou
318sel(),setNodeText(".home-cta-copy h2",s.title),setNodeText(".home-cta-subtitle",s.subtitle),setNodeText(".home-faq-kicker",c.kicker),setNodeText(".home-faq-headline",c.title),renderHomeFaq(c),setNodeText("#lead-modal-title",l.title),setNodeText(".lead-modal-copy",l.copy),setNodeText(".lead-form-submit",l.buttonLabel),setNodeText(".sf-tagline",d.tagline);const m=document.querySelector(".sf-contact-link[href^='mailto:']");m&&d.email&&(m.textContent=d.email,m.href=`mailto:${d.email}`);const i=document.querySelector(".sf-contact-link[href^='tel:']");i&&d.phone&&(i.textContent=d.phone,i.href=`tel:${d.phone.replace(/[^\d+]/g,"")}`),setAddressLines(document.querySelector(".sf-addr-line"),d.address),applyHomeTextStyles(e.styles||{}),typeof initHomeMagicBento=="function"&&initHomeMagicBento()}if(activePage==="home"){let e=0;window.addEventListener("resize",()=>{e&&cancelAnimationFrame(e),e=requestAnimationFrame(()=>{e=0,latestHomePageVariants?applyResponsiveHomePageContent(latestHomePageVariants):applyHomeTextStyles()})},{passive:!0})}activePage==="home"&&loadPublicSiteSettings().then(e=>{applyResponsiveHomePageContent(e?.siteSettings?.pages,{force:!0})}).catch(()=>{}).finally(clearCmsRenderPending),activePage==="about"&&loadPublicSiteSettings().then(e=>{const t=e?.siteSettings?.pages||{},r=getAboutResponsivePageVariantKey(),a=t?.[r]||t?.about;a&&(applySeoMetadata(t.about&&t.about.seo||a.seo||{}),a.ab3&&document.querySelector(".ab3")?applyAbout2026Content(a.ab3,a):a.revamp&&document.querySelector(".ab-frame-pillars")?applyAboutRevampContent(a.revamp,a):applyAboutPageContent(a))}).catch(()=>{}).finally(clearCmsRenderPending);function escapeServiceCmsHtml(e){return String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function normalizeServiceCmsPath(e=""){const r=`/${(String(e||"").split(/[?#]/,1)[0]||"/").replace(/^\/+/,"")}`.replace(/\/index\.html$/i,"/").replace(/\.html$/i,"/").replace(/\/{2,}/g,"/");return r.endsWith("/")?r:`${r}/`}function getVisibleServiceItems(e=[]){return Array.isArray(e)?e.filter(t=>t&&t.visible!==!1):[]}function getServiceCmsAnimation(e={},t={}){return e.animation||t.design?.animation||"fade-up"}
318function renderServiceCmsMedia(e,t,r=""){const a=String(e||"").trim();if(!a)return"";const o=escapeServiceCmsHtml(a),n=escapeServiceCmsHtml(t||"");return/\.(mp4|webm|mov)(\?|#|$)/i.test(a)?`<video class="${r}" src="${o}" muted loop playsinline autoplay preload="metadata" aria-label="${n}"></video>`:`<img class="${r}" src="${o}" alt="${n}" loading="lazy" />`}function renderServiceCmsSection(e,t,r,a){if(e.visibility?.[t]===!1||!a)return"";const o=escapeServiceCmsHtml(getServiceCmsAnimation(e[t],e));return`<section class="service-cms-section ${r}" data-service-cms-section="${escapeServiceCmsHtml(t)}" data-service-cms-animation="${o}">${a}</section>`}function updateServiceCmsMeta(e){const t=e.seo||{};t.title&&!isSeoServerManaged()&&(document.title=t.title);const r=String(t.description||"").trim();if(r&&!isSeoServerManaged()){let a=document.querySelector('meta[name="description"]');a||(a=document.createElement("meta"),a.setAttribute("name","description"),document.head.appendChild(a)),a.setAttribute("content",r)}}function render
318ServiceCmsPage(e){if(!e||e.enabled===!1)return"";const t=e.design||{},r=e.hero||{},a=e.overview||{},o=e.outcomes||{},n=e.process||{},s=e.proof||{},c=e.media||{},l=e.faq||{},d=e.cta||{},p=getVisibleServiceItems(a.bullets),h=getVisibleServiceItems(o.items),v=getVisibleServiceItems(n.steps),L=getVisibleServiceItems(s.stats),w=getVisibleServiceItems(l.items),y=[t.accentColor?`--service-cms-accent:${escapeServiceCmsHtml(t.accentColor)}`:"",t.backgroundColor?`--service-cms-bg:${escapeServiceCmsHtml(t.backgroundColor)}`:"",t.textColor?`--service-cms-text:${escapeServiceCmsHtml(t.textColor)}`:""].filter(Boolean).join(";"),u=t.density==="compact"?"service-cms-density-compact":"",g=renderServiceCmsSection(e,"hero","service-cms-hero",`
319    <div class="service-cms-hero-copy">
320      <p class="service-cms-kicker">${escapeServiceCmsHtml(r.eyebrow||e.categoryLabel||"Service")}</p>
321      <h1>${escapeServiceCmsHtml(r.title||e.title||"Service")}</h1>
322      <p class="service-cms-lead">${escapeServiceCmsHtml(r.lead||"")}</p>
323      <div class="service-cms-actions">
324        ${r.primaryCtaLabel?`<a class="service-cms-button service-cms-button-primary" href="${escapeServiceCmsHtml(r.primaryCtaHref||"#lead-form")}" data-open-lead-modal-header>${escapeServiceCmsHtml(r.primaryCtaLabel)}</a>`:""}
325        ${r.secondaryCtaLabel?`<a class="service-cms-button service-cms-button-secondary" href="${escapeServiceCmsHtml(r.secondaryCtaHref||"/services/")}">${escapeServiceCmsHtml(r.secondaryCtaLabel)}</a>`:""}
326      </div>
327    </div>
328    <figure class="service-cms-hero-media">
329      ${renderServiceCmsMedia(r.imageUrl,r.imageAlt||r.title,"service-cms-image")}
330    </figure>
331  `),m=renderServiceCmsSection(e,"overview","service-cms-overview",`
332    <div class="service-cms-copy-block">
333      <p class="service-cms-kicker">${escapeServiceCmsHtml(a.kicker||"Overview")}</p>
334      <h2>${escapeServiceCmsHtml(a.title||"")}</h2>
335      <p>${escapeServiceCmsHtml(a.body||"")}</p>
336    </div>
337    <div class="service-cms-card-grid">
338      ${p.map(S=>`
339        <article class="service-cms-card">
340          <strong>${escapeServiceCmsHtml(S.label||"")}</strong>
341          <p>${escapeServiceCmsHtml(S.text||"")}</p>
342        </article>
343      `).join("")}
344    </div>
345    ${a.imageUrl?`<figure class="service-cms-wide-media">${renderServiceCmsMedia(a.imageUrl,a.imageAlt,"service-cms-image")}</figure>`:""}
346  `),i=renderServiceCmsSection(e,"outcomes","service-cms-outcomes",`
347    <div class="service-cms-section-head">
348      <p class="service-cms-kicker">${escapeServiceCmsHtml(o.kicker||"Outcomes")}</p>
349      <h2>${escapeServiceCmsHtml(o.title||"")}</h2>
350    </div>
351    <div class="service-cms-card-grid">
352      ${h.map(S=>`
353        <article class="service-cms-card">
354          <strong>${escapeServiceCmsHtml(S.title||"")}</strong>
355          <p>${escapeServiceCmsHtml(S.description||"")}</p>
356        </article>
357      `).join("")}
358    </div>
359  `),b=renderServiceCmsSection(e,"process","service-cms-process",`
360    <div class="service-cms-section-head">
361      <p class="service-cms-kicker">${escapeServiceCmsHtml(n.kicker||"Process")}</p>
362      <h2>${escapeServiceCmsHtml(n.title||"")}</h2>
363    </div>
364    <div class="service-cms-steps">
365      ${v.map((S,q)=>`
366        <article class="service-cms-step">
367          <span>${String(q+1).padStart(2,"0")}</span>
368          <strong>${escapeServiceCmsHtml(S.title||"")}</strong>
369          <p>${escapeServiceCmsHtml(S.description||"")}</p>
370        </article>
371      `).join("")}
372    </div>
373  `),A=renderServiceCmsSection(e,"proof","service-cms-proof",`
374    <div class="service-cms-proof-copy">
375      <p class="service-cms-kicker">${escapeServiceCmsHtml(s.kicker||"Proof")}</p>
376      <h2>${escapeServiceCmsHtml(s.title||"")}</h2>
377    </div>
378    <div class="service-cms-stats">
379      ${L.map(S=>`
380        <article>
381          <strong>${escapeServiceCmsHtml(S.value||"")}</strong>
382          <span>${escapeServiceCmsHtml(S.label||"")}</span>
383        </article>
384      `).join("")}
385    </div>
386  `),f=renderServiceCmsSection(e,"media","service-cms-media-band",`
387    <div class="service-cms-copy-block">
388      <p class="service-cms-kicker">${escapeServiceCmsHtml(c.kicker||"Media")}</p>
389      <h2>${escapeServiceCmsHtml(c.title||"")}</h2>
390      <p>${escapeServiceCmsHtml(c.body||"")}</p>
391    </div>
392    <div class="service-cms-media-grid">
393      ${renderServiceCmsMedia(c.videoUrl||c.imageUrl,c.imageAlt||c.title,"service-cms-image")}
394      ${renderServiceCmsMedia(c.secondaryImageUrl,c.secondaryImageAlt||c.title,"service-cms-image")}
395    </div>
396  `),C=renderServiceCmsSection(e,"faq","service-cms-faq",`
397    <div class="service-cms-section-head">
398      <p class="service-cms-kicker">${escapeServiceCmsHtml(l.kicker||"FAQ")}</p>
399      <h2>${escapeServiceCmsHtml(l.title||"")}</h2>
400    </div>
401    <div class="service-cms-faq-list">
402      ${w.map(S=>`
403        <details>
404          <summary>${escapeServiceCmsHtml(S.question||"")}</summary>
405          <p>${escapeServiceCmsHtml(S.answer||"")}</p>
406        </details>
407      `).join("")}
408    </div>
409  `),_=renderServiceCmsSection(e,"cta","service-cms-cta",`
410    <p class="service-cms-kicker">${escapeServiceCmsHtml(d.kicker||"Next step")}</p>
411    <h2>${escapeServiceCmsHtml(d.title||"")}</h2>
412    <p>${escapeServiceCmsHtml(d.body||"")}</p>
413    <div class="service-cms-actions">
414      ${d.primaryCtaLabel?`<a class="service-cms-button service-cms-button-primary" href="${escapeServiceCmsHtml(d.primaryCtaHref||"#lead-form")}" data-open-lead-modal-header>${escapeServiceCmsHtml(d.primaryCtaLabel)}</a>`:""}
415      ${d.secondaryCtaLabel?`<a class="service-cms-button service-cms-button-secondary" href="${escapeServiceCmsHtml(d.secondaryCtaHref||"mailto:[email protected]")}">${escapeServiceCmsHtml(d.secondaryCtaLabel)}</a>`:""}
416    </div>
417  `);return`
418    <main class="service-cms-main ${u}" data-service-cms-page="${escapeServiceCmsHtml(e.serviceId||"")}" style="${y}">
419      ${g}
420      ${m}
421      ${i}
422      ${b}
423      ${A}
424      ${f}
425      ${C}
426      ${_}
427    </main>
428  `}function applyServiceCmsPageContent(e={}){if(activePage!=="services")return!1;const t=normalizeServiceCmsPath(window.location.pathname||""),r=Object.values(e||{}).find(n=>n&&n.serviceId&&n.enabled!==!1&&normalizeServiceCmsPath(n.path||"")===t);if(!r)return!1;const a=document.querySelector("main");if(!a)return!1;const o=renderServiceCmsPage(r);return o?(updateServiceCmsMeta(r),a.outerHTML=o,document.body.classList.add("service-cms-rendered"),window.dispatchEvent(new Event(logoRefreshEventName)),!0):!1}activePage==="services"&&clearCmsRenderPending();function initHomeMagicBento(){if(activePage!=="home")return;const e=document.querySelector("[data-magic-bento-grid]");if(!e||e.classList.contains("home-stack-redesign"))return;const t=Array.from(e.querySelectorAll("[data-magic-bento-card]")),r=window.gsap;if(!t.length||!r)return;t.forEach(u=>syncCreativeServiceCardClass(u));const a=reduceMotion||window.innerWidth<=768,o=Number.parseInt(e.getAttribute("data-particle-count")||"12",10)||12,n=Number.parseInt(e.getAttribute("data-spotlight-radius")||"430",10)||430,s=String(e.getAttribute("data-glow-color")||"132, 0, 255"),c=e.closest(".bento-section"),l=new Map,d=()=>
428{if(window.innerWidth>767){t.forEach(i=>{i.classList.remove("is-mobile-active"),i.style.setProperty("--glow-intensity","0")});return}const u=window.innerHeight*.52;let g=null,m=Number.POSITIVE_INFINITY;t.forEach(i=>{if(window.getComputedStyle(i).display==="none"){i.classList.remove("is-mobile-active"),i.style.setProperty("--glow-intensity","0");return}const b=i.getBoundingClientRect(),A=b.top+b.height/2,f=Math.abs(A-u);f<m&&(m=f,g=i)}),t.forEach(i=>{const b=i===g;i.classList.toggle("is-mobile-active",b),i.style.setProperty("--glow-x","50%"),i.style.setProperty("--glow-y","50%"),i.style.setProperty("--glow-intensity",b?"0.85":"0")})},p=(u,g)=>{const m=document.createElement("div");return m.className="particle",m.style.left=`${u}px`,m.style.top=`${g}px`,m.style.width="6px",m.style.height="6px",m.style.background=`rgba(${s}, 1)`,m.style.boxShadow=`0 0 6px rgba(${s}, 0.6)`,m},h=()=>({proximity:64,fadeDistance:144}),v=(u,g,m,i,b)=>{const A=u.getBoundingClientRect(),f=(g-A.left)/A.width*100,C=(m-A.top)/A.height*100;u.style.setProperty("--glow-x",`${f}%`),u.style.setProperty("--glow-y",`${C}%`),u.style.setProperty("--glow-intensity",String(i)),u.style.setProperty("--glow-radius",`${b}px`)},L=u=>{const g=l.get(u);g&&(g.hovered=!1,g.timeouts.forEach(m=>window.clearTimeout(m)),g.timeouts=[],g.magnetTween&&(g.magnetTween.kill(),g.magnetTween=null),g.liveParticles.forEach(m=>{r.to(m,{scale:0,opacity:0,duration:.3,ease:"back.in(1.7)",onComplete:()=>m.remove()})}),g.liveParticles=[])},w=(u,g)=>{if(g.seedParticles.length)return;const m=u.getBoundingClientRect();g.seedParticles=Array.from({length:o},()=>p(Math.random()*m.width,Math.random()*m.height))},y=u=>{const g=l.get(u);!g||!g.hovered||a||(w(u,g),g.seedParticles.forEach((m,i)=>{const b=window.setTimeout(()=>{if(!g.hovered)return;const A=m.cloneNode(!0);u.appendChild(A),g.liveParticles.push(A),r.fromTo(A,{scale:0,opacity:0},{scale:1,opacity:1,duration:.3,ease:"back.out(1.7)"}),r.to(A,{x:(Math.random()-.5)*100,y:(Math.random()-.5)*100,rotation:Math.random()*360,duration:2+Math.random()*2,ease:"none",repeat:-1,yoyo:!0}),r.to(A,{opacity:.3,duration:1.5,ease:"power2.inOut",repeat:-1,yoyo:!0})},i*100);g.timeouts.push(b)}))};if(!a&&c){const u=document.createElement("div");u.className="global-spotlight",u.style.position="fixed",u.style.width="800px",u.style.height="800px",u.style.borderRadius="50%",u.style.pointerEvents="none",u.style.background=`radial-gradient(circle,
429      rgba(${s}, 0.15) 0%,
430      rgba(${s}, 0.08) 15%,
431      rgba(${s}, 0.04) 25%,
432      rgba(${s}, 0.02) 40%,
433      rgba(${s}, 0.01) 65%,
434      transparent 70%)`,u.style.zIndex="200",u.style.opacity="0",u.style.transform="translate(-50%, -50%)",document.body.appendChild(u),document.addEventListener("mousemove",g=>{const m=c.getBoundingClientRect();if(!(g.clientX>=m.left&&g.clientX<=m.right&&g.clientY>=m.top&&g.clientY<=m.bottom)){r.to(u,{opacity:0,duration:.3,ease:"power2.out"}),t.forEach(_=>{_.style.setProperty("--glow-intensity","0")});return}const{proximity:b,fadeDistance:A}=h();let f=1/0;t.forEach(_=>{const S=_.getBoundingClientRect(),q=S.left+S.width/2,N=S.top+S.height/2,D=Math.hypot(g.clientX-q,g.clientY-N)-Math.max(S.width,S.height)/2,G=Math.max(0,D);f=Math.min(f,G);let z=0;G<=b?z=1:G<=A&&(z=(A-G)/(A-b)),v(_,g.clientX,g.clientY,z,Math.min(n*.24,120))}),r.to(u,{left:g.clientX,top:g.clientY,duration:.1,ease:"power2.out"});const C=f<=b?.8:f<=A?(A-f)/(A-b)*.8:0;r.to(u,{opacity:C,duration:C>0?.2:.5,ease:"power2.out"})})}t.forEach((u,g)=>{l.set(u,{hovered:!1,isLargeCard:g===2,seedParticles:[],liveParticles:[],timeouts:[],magnetTween:null}),!a&&(u.addEventListener("mouseenter",()=>{if(isDesktopCreativeServiceCard(u)){L(u),r.set(u,{rotateX:0,rotateY:0,x:0,y:0});return}const m=l.get(u);m&&(m.hovered=!0,m.isLargeCard||y(u),r.to(u,{rotateX:m.isLargeCard?2.5:5,rotateY:m.isLargeCard?2.5:5,duration:m.isLargeCard?.18:.3,ease:"power2.out",transformPerspective:1e3}))}),u.addEventListener("mouseleave",()=>{L(u),r.to(u,{rotateX:0,rotateY:0,x:0,y:0,duration:.3,ease:"power2.out"})}),u.addEventListener("mousemove",m=>{if(isDesktopCreativeServiceCard(u))return;const i=u.getBoundingClientRect(),b=m.clientX-i.left,A=m.clientY-i.top,f=i.width/2,C=i.height/2,_=(A-C)/C*-10,S=(b-f)/f*10,q=l.get(u),N=q?.isLargeCard?.5:1,D=q?.isLargeCard?.022:.05,G=(b-f)*D,z=(A-C)*D;r.to(u,{rotateX:_*N,rotateY:S*N,duration:q?.isLargeCard?.08:.1,ease:"power2.out",transformPerspective:1e3}),q&&(q.magnetTween&&q.magnetTween.kill(),q.magnetTween=r.to(u,{x:G,y:z,duration:q.isLargeCard?.16:.3,ease:"power2.out"}))}),u.addEventListener("click",m=>
434{if(isDesktopCreativeServiceCard(u))return;const i=u.getBoundingClientRect(),b=m.clientX-i.left,A=m.clientY-i.top,f=Math.max(Math.hypot(b,A),Math.hypot(b-i.width,A),Math.hypot(b,A-i.height),Math.hypot(b-i.width,A-i.height)),C=document.createElement("div");C.style.position="absolute",C.style.width=`${f*2}px`,C.style.height=`${f*2}px`,C.style.borderRadius="50%",C.style.background=`radial-gradient(circle, rgba(${s}, 0.4) 0%, rgba(${s}, 0.2) 30%, transparent 70%)`,C.style.left=`${b-f}px`,C.style.top=`${A-f}px`,C.style.pointerEvents="none",C.style.zIndex="1000",u.appendChild(C),r.fromTo(C,{scale:0,opacity:1},{scale:1,opacity:0,duration:.8,ease:"power2.out",onComplete:()=>C.remove()})}))}),d(),window.addEventListener("scroll",d,{passive:!0}),window.addEventListener("resize",d,{passive:!0})}initHomeMagicBento();function initSplashCursor(){return null;function u(){this.id=-1,this.texcoordX=0,this.texcoordY=0,this.prevTexcoordX=0,this.prevTexcoordY=0,this.deltaX=0,this.deltaY=0,this.down=!1,this.moved=!1,this.color=[0,0,0]}function f(k){const $={alpha:!0,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1};let I=k.getContext("webgl2",$);const W=!!I;if(I||(I=k.getContext("webgl",$)||k.getContext("experimental-webgl",$)),!I)return null;let te,se;W?(I.getExtension("EXT_color_buffer_float"),se=I.getExtension("OES_texture_float_linear")):(te=I.getExtension("OES_texture_half_float"),se=I.getExtension("OES_texture_half_float_linear")),I.clearColor(0,0,0,0);const ne=W?I.HALF_FLOAT:te&&te.HALF_FLOAT_OES;if(!ne)return null;let Se,we,xe;return W?(Se=C(I,I.RGBA16F,I.RGBA,ne),we=C(I,I.RG16F,I.RG,ne),xe=C(I,I.R16F,I.RED,ne)):(Se=C(I,I.RGBA,I.RGBA,ne),we=C(I,I.RGBA,I.RGBA,ne),xe=C(I,I.RGBA,I.RGBA,ne)),{gl:I,ext:{formatRGBA:Se,formatRG:we,formatR:xe,halfFloatTexType:ne,supportLinearFiltering:se}}}function C(k,$,I,W){if(!_(k,$,I,W))switch($){case k.R16F:return C(k,k.RG16F,k.RG,W);case k.RG16F:return C(k,k.RGBA16F,k.RGBA,W);default:return null}return{internalFormat:$,format:I}}function _(k,$,I,W){const te=k.createTexture();k.bindTexture(k.TEXTURE_2D,te),k.texParameteri(k.TEXTURE_2D,k.TEXTURE_MIN_FILTER,k.NEAREST),k.texParameteri(k.TEXTURE_2D,k.TEXTURE_MAG_FILTER,k.NEAREST),k.texParameteri(k.TEXTURE_2D,k.TEXTURE_WRAP_S,k.CLAMP_TO_EDGE),k.texParameteri(k.TEXTURE_2D,k.TEXTURE_WRAP_T,k.CLAMP_TO_EDGE),k.texImage2D(k.TEXTURE_2D,0,$,4,4,0,I,W,null);const se=k.createFramebuffer();return k.bindFramebuffer(k.FRAMEBUFFER,se),k.framebufferTexture2D(k.FRAMEBUFFER,k.COLOR_ATTACHMENT0,k.TEXTURE_2D,te,0),k.checkFramebufferStatus(k.FRAMEBUFFER)===k.FRAMEBUFFER_COMPLETE}function S(k,$){const I=i.createProgram();return i.attachShader(I,k),i.attachShader(I,$),i.linkProgram(I),i.getProgramParameter(I,i.LINK_STATUS)||console.trace(i.getProgramInfoLog(I)),I}function q(k){const $=[],I=i.getProgramParameter(k,i.ACTIVE_UNIFORMS);for(let W=0;W<I;W+=1){const te=i.getActiveUniform(k,W).name;$[te]=i.getUniformLocation(k,te)}return $}function N(k,$){if(!$)return k;let I="";return $.forEach(W=>{I+=`#define ${W}
435`}),I+k}function D(k,$,I){const W=i.createShader(k);return i.shaderSource(W,N($,I)),i.compileShader(W),i.getShaderParameter(W,i.COMPILE_STATUS)||console.trace(i.getShaderInfoLog(W)),W}function be(k,$,I,W,te,se){i.activeTexture(i.TEXTURE0);const ne=i.createTexture();i.bindTexture(i.TEXTURE_2D,ne),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,se),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,se),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texImage2D(i.TEXTURE_2D,0,I,k,$,0,W,te,null);const Se=i.createFramebuffer();return i.bindFramebuffer(i.FRAMEBUFFER,Se),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,ne,0),i.viewport(0,0,k,$),i.clear(i.COLOR_BUFFER_BIT),{texture:ne,fbo:Se,width:k,height:$,texelSizeX:1/k,texelSizeY:1/$,attach(we){return i.activeTexture(i.TEXTURE0+we),i.bindTexture(i.TEXTURE_2D,ne),we}}}function pe(k,$,I,W,te,se){let ne=be(k,$,I,W,te,se),Se=be(k,$,I,W,te,se);return{width:k,height:$,texelSizeX:ne.texelSizeX,texelSizeY:ne.texelSizeY,get read(){return ne},set read(we){ne=we},get write(){return Se}
435,set write(we){Se=we},swap(){const we=ne;ne=Se,Se=we}}}function ke(k,$,I,W,te,se,ne){const Se=be($,I,W,te,se,ne);return ie.bind(),i.uniform1i(ie.uniforms.uTexture,k.attach(0)),J(Se),Se}function le(k,$,I,W,te,se,ne){return k.width===$&&k.height===I||(k.read=ke(k.read,$,I,W,te,se,ne),k.write=be($,I,W,te,se,ne),k.width=$,k.height=I,k.texelSizeX=1/$,k.texelSizeY=1/I),k}function ye(k){let $=i.drawingBufferWidth/i.drawingBufferHeight;$<1&&($=1/$);const I=Math.round(k),W=Math.round(k*$);return i.drawingBufferWidth>i.drawingBufferHeight?{width:W,height:I}:{width:I,height:W}}function qe(){const k=ye(A.SIM_RESOLUTION),$=ye(A.DYE_RESOLUTION),I=b.halfFloatTexType,W=b.formatRGBA,te=b.formatRG,se=b.formatR,ne=b.supportLinearFiltering?i.LINEAR:i.NEAREST;i.disable(i.BLEND),P?P=le(P,$.width,$.height,W.internalFormat,W.format,I,ne):P=pe($.width,$.height,W.internalFormat,W.format,I,ne),T?T=le(T,k.width,k.height,te.internalFormat,te.format,I,ne):T=pe(k.width,k.height,te.internalFormat,te.format,I,ne),Y=be(k.width,k.height,se.internalFormat,se.format,I,i.NEAREST),K=be(k.width,k.height,se.internalFormat,se.format,I,i.NEAREST),ae=pe(k.width,k.height,se.internalFormat,se.format,I,i.NEAREST)}function Ae(k){return Math.floor(k*(window.devicePixelRatio||1))}function Te(){const k=Ae(t.clientWidth),$=Ae(t.clientHeight);return t.width!==k||t.height!==$?(t.width=k,t.height=$,!0):!1}function Ne(){const k=[];A.SHADING&&k.push("SHADING"),me.setKeywords(k)}function $e(k){const $=t.width/t.height;return $<1?k*$:k}function _e(k){const $=t.width/t.height;return $>1?k/$:k}function Re(k){const $=t.width/t.height;return $>1?k*$:k}function Ce(k,$,I){let W,te,se;const ne=Math.floor(k*6),Se=k*6-ne,we=I*(1-$),xe=I*(1-Se*$),Ue=I*(1-(1-Se)*$);switch(ne%6){case 0:W=I,te=Ue,se=we;break;case 1:W=xe,te=I,se=we;break;case 2:W=we,te=I,se=Ue;break;case 3:W=we,te=xe,se=I;break;case 4:W=Ue,te=we,se=I;break;case 5:W=I,te=we,se=xe;break;default:W=0,te=0,se=0;break}return{r:W,g:te,b:se}}function Ee(){const k=Ce(Math.random(),1,1);return k.r*=.15,k.g*=.45,k.b*=1.2,k}function De(k,$,I){const W=I-$;return W===0?$:(k-$)%W+$}function Me(k){if(k.length===0)return 0;let $=0;for(let I=0;I<k.length;I+=1)$=($<<5)-$+k.charCodeAt(I),$|=0;return $}function re(k,$,I,W){k.id=$,k.down=!0,k.moved=!1,k.texcoordX=I/t.width,k.texcoordY=1-W/t.height,k.prevTexcoordX=k.texcoordX,k.prevTexcoordY=k.texcoordY,k.deltaX=0,k.deltaY=0,k.color=Ee()}function ee(k,$,I,W){k.prevTexcoordX=k.texcoordX,k.prevTexcoordY=k.texcoordY,k.texcoordX=$/t.width,k.texcoordY=1-I/t.height,k.deltaX=$e(k.texcoordX-k.prevTexcoordX),k.deltaY=_e(k.texcoordY-k.prevTexcoordY),k.moved=Math.abs(k.deltaX)>0||Math.abs(k.deltaY)>0,k.color=W}function de(k){k.down=!1}function ue(k,$,I,W,te){R.bind(),i.uniform1i(R.uniforms.uTarget,T.read.attach(0)),i.uniform1f(R.uniforms.aspectRatio,t.width/t.height),i.uniform2f(R.uniforms.point,k,$),i.uniform3f(R.uniforms.color,I,W,0),i.uniform1f(R.uniforms.radius,Re(A.SPLAT_RADIUS/100)),J(T.write),T.swap(),i.uniform1i(R.uniforms.uTarget,P.read.attach(0)),i.uniform3f(R.uniforms.color,te.r,te.g,te.b),J(P.write),P.swap()}function he(k){ue(k.texcoordX,k.texcoordY,k.deltaX*A.SPLAT_FORCE,k.deltaY*A.SPLAT_FORCE,k.color)}function Le(k){const $=Ee();$.r*=10,$.g*=10,$.b*=10,ue(k.texcoordX,k.texcoordY,10*(Math.random()-.5),30*(Math.random()-.5),$)}function Ye(k){Pe+=k*A.COLOR_UPDATE_SPEED,Pe>=1&&(Pe=De(Pe,0,1),g.forEach($=>{$.color=Ee()}))}function Xe(){g.forEach(k=>{k.moved&&(k.moved=!1,he(k))})}function Ke(k){i.disable(i.BLEND),ce.bind(),i.uniform2f(ce.uniforms.texelSize,T.texelSizeX,T.texelSizeY),i.uniform1i(ce.uniforms.uVelocity,T.read.attach(0)),J(K),oe.bind(),i.uniform2f(oe.uniforms.texelSize,T.texelSizeX,T.texelSizeY),i.uniform1i(oe.uniforms.uVelocity,T.read.attach(0)),i.uniform1i(oe.uniforms.uCurl,K.attach(1)),i.uniform1f(oe.uniforms.curl,A.CURL),i.uniform1f(oe.uniforms.dt,k),J(T.write),T.swap(),Q.bind(),i.uniform2f(Q.uniforms.texelSize,T.texelSizeX,T.texelSizeY),i.uniform1i(Q.uniforms.uVelocity,T.read.attach(0)),J(Y),ge.bind(),i.uniform1i(ge.uniforms.uTexture,ae.read.attach(0)),i.uniform1f(ge.uniforms.value,A.PRESSURE),J(ae.write),ae.swap(),fe.bind(),i.uniform2f(fe.uniforms.texelSize,T.texelSizeX,T.texelSizeY),i.uniform1i(fe.uniforms.uDivergence,Y.attach(0));for(let I=0;I<A.PRESSURE_ITERATIONS;I+=1)i.uniform1i(fe.uniforms.uPressure,ae.read.attach(1)),J(ae.write),ae.swap();ve.bind(),i.uniform2f(ve.uniforms.texelSize,T.texelSizeX,T.texelSizeY),i.uniform1i(ve.uniforms.uPressure,ae.read.attach(0)),i.uniform1i(ve.uniforms.uVelocity,T.read.attach(1)),J(T.write),T.swap(),Z.bind(),i.uniform2f(Z.uniforms.texelSize,T.texelSizeX,T.texelSizeY),b.supportLinearFiltering||i.uniform2f(Z.uniforms.dyeTexelSize,T.texelSizeX,T.texelSizeY);const $=T.read.attach(0);i.uniform1i(Z.uniforms.uVelocity,$),i.uniform1i(Z.uniforms.uSource,$),i.uniform1f(Z.uniforms.dt,k),i.uniform1f(Z.uniforms.dissipation,A.VELOCITY_DISSIPATION),J(T.write),T.swap(),b.supportLinearFiltering||i.uniform2f(Z.uniforms.dyeTexelSize,P.texelSizeX,P.texelSizeY),i.uniform1i(Z.uniforms.uVelocity,T.read.attach(0)),i.uniform1i(Z.uniforms.uSource,P.read.attach(1)),i.uniform1f(Z.uniforms.dissipation,A.DENSITY_DISSIPATION),J(P.write),P.swap()}function Ze(k){const $=k==null?i.drawingBufferWidth:k.width,I=k==null?i.drawingBufferHeight:k.height;me.bind(),A.SHADING&&i.uniform2f(me.uniforms.texelSize,1/$,1/I),i.uniform1i(me.uniforms.uTexture,P.read.attach(0)),J(k)}function Je(k){i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.enable(i.BLEND),Ze(k)}function Qe(){const k=Date.now();let $=(k-Be)/1e3;return $=Math.min($,.016666),Be=k,$}function Oe(){if(!r)return;const k=Qe();Te()&&qe(),Ye(k),Xe(),Ke(k),Je(null),a=window.requestAnimationFrame(Oe)}
435function He(k){if(k.target.closest("input, textarea, select, iframe, [contenteditable='true']"))return;const $=g[0];re($,-1,Ae(k.clientX),Ae(k.clientY)),Le($)}function ze(k){const $=g[0],I=Ae(k.clientX),W=Ae(k.clientY);Fe?ee($,I,W,$.color):(ee($,I,W,Ee()),Fe=!0)}function je(k){const $=k.targetTouches,I=g[0];for(let W=0;W<$.length;W+=1)re(I,$[W].identifier,Ae($[W].clientX),Ae($[W].clientY))}function Ve(k){const $=k.targetTouches,I=g[0];for(let W=0;W<$.length;W+=1)ee(I,Ae($[W].clientX),Ae($[W].clientY),I.color)}function We(k){const $=k.changedTouches,I=g[0];for(let W=0;W<$.length;W+=1)de(I)}function Ie(){r&&(r=!1,document.body.classList.remove("splash-cursor-enabled"),a&&(window.cancelAnimationFrame(a),a=null),window.removeEventListener("mousedown",He),window.removeEventListener("mousemove",ze),window.removeEventListener("touchstart",je),window.removeEventListener("touchmove",Ve),window.removeEventListener("touchend",We),window.removeEventListener("resize",Ge),window.__destroySplashCursor===Ie&&delete window.__destroySplashCursor,e.remove())}function Ge(){if(window.innerWidth<1024||!window.matchMedia("(hover: hover) and (pointer: fine)").matches){Ie();return}Te(),qe()}}function initMagicMode(){if(activePage!=="home"||reduceMotion)return;const e=document.querySelector("[data-magic-mode-trigger]"),t=document.querySelector("[data-magic-mode-status]"),r=document.querySelector("[data-magic-mode-countdown]"),a=window.matchMedia("(hover: hover) and (pointer: fine)");if(!e||!t||!r)return;let o=null,n=null,s=null,c=0;const l=()=>{const v=Math.max(c-Date.now(),0);r.textContent=String(Math.max(Math.ceil(v/1e3),0))},d=()=>{n&&(window.clearTimeout(n),n=null),s&&(window.clearInterval(s),s=null)},p=()=>{d(),c=0,t.hidden=!0,e.setAttribute("aria-pressed","false"),document.body.classList.remove("magic-mode-active"),o&&(o(),o=null)},h=()=>{if(!a.matches||window.innerWidth<1024){p();return}if(o=initSplashCursor(),!o){p();return}d(),c=Date.now()+3e4,document.body.classList.add("magic-mode-active"),e.setAttribute("aria-pressed","true"),t.hidden=!1,l(),s=window.setInterval(l,250),n=window.setTimeout(()=>{p()},3e4)};e.setAttribute("aria-pressed","false"),e.addEventListener("click",()=>{h()}),window.addEventListener("resize",()=>{(window.innerWidth<1024||!a.matches)&&p()},{passive:!0})}if(initMagicMode(),siteHeader&&menuToggle&&headerNav){const e=siteHeader.querySelector(".button-ghost:not(.menu-toggle)"),t=!1;siteHeader.querySelectorAll("[data-theme-switch]").forEach(d=>d.remove());const r=siteHeader.querySelector("[data-theme-switch]"),a=r?Array.from(r.querySelectorAll("[data-theme-mode]")):[],o=r?r.querySelector(".theme-switch__checkbox"):null;let n="light";if(t)try{const d=window.localStorage.getItem(headerThemeStorageKey);n=d==="light"||d==="dark"?d:"dark"}catch{n="dark"}const s=d=>{const p=d==="light"?"light":"dark";document.body.setAttribute("data-header-theme",p),t?document.body.setAttribute("data-ui-mode",p):document.body.removeAttribute("data-ui-mode");const h=siteHeader.getAttribute("data-logo-surface")==="dark"&&activePage==="home",v=document.body?.getAttribute("data-page")==="about",L=document.body?.getAttribute("data-page")==="work",w=document.body?.getAttribute("data-page")==="case-study",y=document.body?.getAttribute("data-page")==="tools",u=t&&p==="dark"||h||v||L||w||y?"dark":"light";siteHeader.setAttribute("data-logo-surface",u),r?.setAttribute("data-active-mode",p),r?.setAttribute("aria-checked",String(p==="dark")),o&&(o.checked=p==="dark"),siteHeader.querySelectorAll("[data-adaptive-logo]").forEach(g=>{const m=u==="dark"?g.dataset.logoDark:g.dataset.logoLight;m&&g.setAttribute("src",m)}),a.forEach(g=>{const m=g.getAttribute("data-theme-mode")===p;g.classList.toggle("is-active",m),g.setAttribute("aria-pressed",String(m))})};s(t?n:"light"),t&&(o?.addEventListener("change",()=>{const d=o.checked?"dark":"light";s(d);try{window.localStorage.setItem(headerThemeStorageKey,d)}catch{}}),r?.addEventListener("keydown",d=>{if(d.key!==" "&&d.key!=="Enter")return;d.preventDefault();const p=document.body.getAttribute("data-header-theme")==="dark"?"light":"dark";s(p);try{window.localStorage.setItem(headerThemeStorageKey,p)}catch{}}),a.forEach(d=>{d.addEventListener("click",()=>{const p=d.getAttribute("data-theme-mode")==="light"?"light":"dark";s(p);try{window.localStorage.setItem(headerThemeStorageKey,p)}catch{}})}),activePage==="knowledge"&&r&&(r.classList.add("is-intro-lit"),window.setTimeout(()=>{r.classList.remove("is-intro-lit")},2e3),window.setTimeout(()=>{r.classList.add("is-idle-dim")},5e3)));const l=()=>{siteHeader.classList.remove("is-menu-open"),menuToggle.setAttribute("aria-expanded","fal
435se")};menuToggle.addEventListener("click",()=>{const d=siteHeader.classList.toggle("is-menu-open");menuToggle.setAttribute("aria-expanded",String(d))}),headerNav.querySelectorAll("a").forEach(d=>{d.addEventListener("click",l)}),document.addEventListener("pointerdown",d=>{siteHeader.classList.contains("is-menu-open")&&(siteHeader.contains(d.target)||l())}),document.addEventListener("keydown",d=>{d.key==="Escape"&&l()}),window.addEventListener("resize",()=>{window.innerWidth>820&&l()})}if(siteHeader){let e=window.scrollY;const t=8,r=24,a=document.body.dataset.page==="about",o=()=>{if(!a)return r;const d=document.querySelector(".ab3-hero"),p=siteHeader.offsetHeight||64;if(!d)return Math.max(window.innerHeight*.86,p+160);const h=d.offsetTop+d.offsetHeight-p;return Math.max(h,window.innerHeight*.86)},n=(d=window.scrollY)=>{if(!a)return!1;const p=d<o();return document.body.classList.toggle("about-header-past-first-frame",!p),p},s=()=>{siteHeader.classList.add("is-scroll-hidden"),document.body.classList.add("home-header-hidden")},c=()=>{siteHeader.classList.remove("is-scroll-hidden"),document.body.classList.remove("home-header-hidden")},l=()=>{const d=window.scrollY,p=d-e,h=document.body.classList.contains("home-header-force-hidden");if(n(d),h){s(),e=d;return}if(siteHeader.querySelector("[data-nav-group].is-open")){c(),e=d;return}if(d<=r||siteHeader.classList.contains("is-menu-open")){c(),e=d;return}if(p<0){c(),e=d;return}Math.abs(p)<t||(p>0?s():c(),e=d)};window.addEventListener("scroll",()=>{l()},{passive:!0}),window.addEventListener("resize",()=>{n(),window.scrollY<=r&&c(),e=window.scrollY},{passive:!0}),n()}if(homeHeaderBrand&&!reduceMotion){let e=!1;const t=()=>{if(e=!1,window.innerWidth<=640){homeHeaderBrand.style.transform="",homeHeaderBrand.style.opacity="";return}const a=Math.min(window.scrollY/Math.max(window.innerHeight*.9,1),1),o=a*4,n=a*-10,s=1-a*.035,c=1-a*.08;homeHeaderBrand.style.transform=`translate3d(${o}px, ${n}px, 0) scale(${s})`,homeHeaderBrand.style.opacity=String(c)},r=()=>{e||(e=!0,window.requestAnimationFrame(t))};t(),window.addEventListener("scroll",()=>{r()},{passive:!0}),window.addEventListener("resize",()=>{r()},{passive:!0})}function copyrightYearRange(){const e=new Date().getFullYear();return e>2020?`2020\u2013${e}`:"2020"}if(window.MA_COPYRIGHT_YEARS=copyrightYearRange,document.querySelectorAll("[data-year]").forEach(e=>{e.textContent=copyrightYearRange()}),document.body){const e=new URLSearchParams(window.location.search).get("cookieBannerTest")==="1",t={necessary:{title:"Necessary cookies",locked:!0,description:"Required for core site features such as security, forms, preference storage, and CMS sessions."},performance:{title:"Performance cookies",description:"Help us understand page usage, load speed, and content performance so we can improve the website."},functional:{title:"Functional cookies",description:"Remember optional preferences and enable enhanced features such as embedded tools or richer media."},targeting:{title:"Targeting cookies",description:"Allow marketing pixels and advertising partners to measure campaigns and personalize outreach."}},r=(v={})=>({necessary:!0,performance:!!v.performance,functional:!!v.functional,targeting:!!v.targeting}),a=()=>{try{const v=JSON.parse(window.localStorage.getItem(cookiePreferencesStorageKey)||"null");if(v?.categories)return r(v.categories)}catch{}try{const v=window.localStorage.getItem(cookieConsentStorageKey)||"";if(v==="accepted")return r({performance:!0,functional:!0,targeting:!0});if(["rejected","dismissed"].includes(v))return r()}catch{}return null},o=()=>{const v=a();if(!v)return null;const L=["performance","functional","targeting"],w=L.filter(y=>v[y]).length;return{version:2,status:w===L.length?"accepted":w===0?"rejected":"custom",categories:v,updatedAt:""}},n=v=>{const L=w=>!!v?.[w];document.querySelectorAll("script[type='text/plain'][data-cookie-category]").forEach(w=>{const y=String(w.dataset.cookieCategory||"").trim();if(!y||!L(y)||w.dataset.cookieActivated==="1")return;const u=document.createElement("script");
435Array.from(w.attributes).forEach(g=>{["type","data-cookie-category","data-cookie-activated"].includes(g.name)||u.setAttribute(g.name,g.value)}),u.text=w.textContent||"",u.dataset.cookieCategory=y,u.dataset.cookieActivated="1",w.replaceWith(u)}),document.querySelectorAll("[data-cookie-category][data-cookie-src]").forEach(w=>{const y=String(w.getAttribute("data-cookie-category")||"").trim();if(!y||!L(y))return;const u=w.getAttribute("data-cookie-src")||"";u&&!w.getAttribute("src")&&w.setAttribute("src",u)})},s=v=>{const L=!!v?.performance,w=!!v?.targeting,y=!!v?.functional;typeof window.gtag=="function"&&window.gtag("consent","update",{analytics_storage:L?"granted":"denied",ad_storage:w?"granted":"denied",ad_user_data:w?"granted":"denied",ad_personalization:w?"granted":"denied",functionality_storage:y?"granted":"denied"}),typeof window.fbq=="function"&&window.fbq("consent",w?"grant":"revoke")},c=(v,L="")=>{const w=r(v),y=["performance","functional","targeting"],u=y.filter(i=>w[i]).length,g=L||(u===y.length?"accepted":u===0?"rejected":"custom"),m={version:2,status:g,categories:w,updatedAt:new Date().toISOString()};try{window.localStorage.setItem(cookiePreferencesStorageKey,JSON.stringify(m)),window.localStorage.setItem(cookieConsentStorageKey,g)}catch{}return window.ma360CookieConsentState=m,n(w),s(w),window.dispatchEvent(new CustomEvent("ma360:cookie-consent",{detail:m})),m},l=o();l&&(window.ma360CookieConsentState=l,n(l.categories),s(l.categories));const d=v=>{v&&(v.classList.add("is-hidden"),window.setTimeout(()=>v.remove(),260))},p=()=>{const v=document.querySelector(".cookie-preferences");v&&(v.classList.remove("is-visible"),document.body.classList.remove("cookie-preferences-open"),window.setTimeout(()=>v.remove(),220))},h=(v=null)=>{document.querySelector(".cookie-preferences")?.remove();const L=a()||r(),w=document.createElement("section");w.className="cookie-preferences",w.setAttribute("role","dialog"),w.setAttribute("aria-modal","true"),w.setAttribute("aria-labelledby","cookie-preferences-title"),w.innerHTML=`
436      <div class="cookie-preferences-backdrop" data-cookie-preferences-close></div>
437      <div class="cookie-preferences-panel">
438        <header class="cookie-preferences-header">
439          <a class="cookie-preferences-brand" href="/" aria-label="MarkAge360 home">
440            <img src="/assets/black.png" alt="MarkAge360" />
441          </a>
442          <button class="cookie-preferences-close" type="button" data-cookie-preferences-close aria-label="Close cookie preferences">
443            <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false">
444              <path d="M6 6l12 12M18 6L6 18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" />
445            </svg>
446          </button>
447        </header>
448        <div class="cookie-preferences-scroll">
449          <p class="cookie-preferences-kicker">Privacy Preference Center</p>
450          <h2 id="cookie-preferences-title">Control how this website uses cookies.</h2>
451          <p class="cookie-preferences-intro">
452            We use necessary cookies to make the site work. Optional cookies help us understand performance,
453            remember enhanced features, and measure marketing activity. You can update these choices any time.
454          </p>
455          <a class="cookie-preferences-guide" href="/terms#cookies">Cookie consent guide for website users</a>
456          <button class="cookie-preferences-allow" type="button" data-cookie-allow-all>Allow All</button>
457          <h3>Manage Consent Preferences</h3>
458          <div class="cookie-preferences-groups">
459            ${Object.entries(t).map(([g,m])=>`
460              <details class="cookie-preferences-group" ${g==="necessary"?"open":""}>
461                <summary>
462                  <span class="cookie-preferences-summary-copy">
463                    <span class="cookie-preferences-plus" aria-hidden="true">+</span>
464                    <span>${m.title}</span>
465                  </span>
466                  <label class="cookie-toggle ${m.locked?"is-locked":""}">
467                    <input
468                      type="checkbox"
469                      data-cookie-category-input="${g}"
470                      ${L[g]?"checked":""}
471                      ${m.locked?"checked disabled":""}
472                    />
473                    <span class="cookie-toggle-ui" aria-hidden="true"></span>
474                    <span class="sr-only">${m.title}</span>
475                  </label>
476                </summary>
477                <p>${m.description}</p>
478              </details>
479            `).join("")}
480          </div>
481        </div>
482        <footer class="cookie-preferences-actions">
483          <button class="cookie-preferences-secondary" type="button" data-cookie-reject-optional>Decline Optional Cookies</button>
484          <button class="cookie-preferences-primary" type="button" data-cookie-save-choices>Confirm My Choices</button>
485        </footer>
486      </div>
487    `;const y=()=>{const g=r();return w.querySelectorAll("[data-cookie-category-input]").forEach(m=>{const i=m.getAttribute("data-cookie-category-input");i&&i!=="necessary"&&(g[i]=!!m.checked)}),g},u=(g,m)=>{c(g,m),p(),d(v)};w.querySelectorAll("[data-cookie-preferences-close]").forEach(g=>{g.addEventListener("click",p)}),w.querySelectorAll(".cookie-toggle").forEach(g=>{g.addEventListener("click",m=>{m.stopPropagation()})}),w.querySelector("[data-cookie-allow-all]")?.addEventListener("click",()=>{u(r({performance:!0,functional:!0,targeting:!0}),"accepted")}),w.querySelector("[data-cookie-reject-optional]")?.addEventListener("click",()=>{u(r(),"rejected")}),w.querySelector("[data-cookie-save-choices]")?.addEventListener("click",()=>{u(y(),"")}),w.addEventListener("keydown",g=>{g.key==="Escape"&&p()}),document.body.append(w),document.body.classList.add("cookie-preferences-open"),window.requestAnimationFrame(()=>{w.classList.add("is-visible"),w.querySelector(".cookie-preferences-close")?.focus({preventScroll:!0})})};if(window.ma360CookieConsent={get:()=>window.ma360CookieConsentState||o(),hasConsent:v=>{const L=window.ma360CookieConsentState||o();return v==="necessary"||!!L?.categories?.[v]},openPreferences:()=>h(),set:v=>c(v)},document.addEventListener("click",v=>{v.target.closest?.("[data-open-cookie-preferences], a[href='#cookie-preferences']")&&(v.preventDefault(),h())}),!l||e){const v=document.createElement("div");v.className="cookie-banner cookie-fab",v.setAttribute("role","dialog"),v.setAttribute("aria-live","polite"),v.setAttribute("aria-label","Cookie notice"),v.innerHTML=`
488      <div class="cookie-fab-bubble">
489        <button class="cookie-banner-close" type="button" aria-label="Reject optional cookies and close notice">
490          <svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true" focusable="false">
491            <path d="M6 6l12 12M18 6L6 18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" />
492          </svg>
493        </button>
494        <p class="cookie-fab-copy">We use cookies to keep the site working and make it sweeter &mdash; okay with you?</p>
495        <div class="cookie-fab-actions">
496          <button class="cookie-banner-accept" type="button">Accept all</button>
497          <button class="cookie-banner-reject" type="button">Reject</button>
498          <button class="cookie-banner-prefs" type="button">Manage</button>
499        </div>
500      </div>
501      <button class="cookie-fab-cookie" type="button" aria-label="Cookie choices">
502        <svg viewBox="0 0 120 120" width="120" height="120" aria-hidden="true" focusable="false">
503          <defs>
504            <radialGradient id="ckcrumb-body" cx="40%" cy="35%" r="74%">
505              <stop offset="0%" stop-color="#6f4a32" />
506              <stop offset="36%" stop-color="#5a3a26" />
507              <stop offset="74%" stop-color="#43291a" />
508              <stop offset="100%" stop-color="#3a2314" />
509            </radialGradient>
510            <radialGradient id="ckcrumb-chip" cx="36%" cy="30%" r="82%">
511              <stop offset="0%" stop-color="#2c1a10" />
512              <stop offset="55%" stop-color="#1d100a" />
513              <stop offset="100%" stop-color="#120a05" />
514            </radialGradient>
515            <radialGradient id="ckcrumb-sheen" cx="50%" cy="50%" r="50%">
516              <stop offset="0%" stop-color="#ffffff" stop-opacity="0.16" />
517              <stop offset="100%" stop-color="#ffffff" stop-opacity="0" />
518            </radialGradient>
519            <mask id="ckcrumb-bite">
520              <rect x="0" y="0" width="120" height="120" fill="black" />
521              <circle cx="60" cy="62" r="49" fill="white" />
522              <circle cx="25" cy="27" r="15" fill="black" />
523              <circle cx="42" cy="18" r="10.5" fill="black" />
524              <circle cx="16" cy="43" r="10" fill="black" />
525            </mask>
526          </defs>
527          <circle cx="12" cy="19" r="2.3" fill="#4a2e1b" />
528          <circle cx="30" cy="8" r="1.9" fill="#5a3a26" />
529          <circle cx="7" cy="33" r="1.7" fill="#3a2314" />
530          <g mask="url(#ckcrumb-bite)">
531            <circle cx="60" cy="62" r="47" fill="#2a180c" />
532            <circle cx="60" cy="63.5" r="44" fill="url(#ckcrumb-body)" />
533            <ellipse cx="45" cy="45" rx="30" ry="24" fill="url(#ckcrumb-sheen)" transform="rotate(-28 45 45)" />
534            <g fill="url(#ckcrumb-chip)" stroke="#7a5136" stroke-width="0.6" stroke-opacity="0.4">
535              <ellipse cx="80" cy="42" rx="6" ry="5.2" transform="rotate(18 80 42)" />
536              <ellipse cx="86" cy="65" rx="5" ry="5.8" transform="rotate(8 86 65)" />
537              <ellipse cx="66" cy="40" rx="4.6" ry="4" transform="rotate(28 66 40)" />
538              <ellipse cx="34" cy="66" rx="5.4" ry="5" transform="rotate(-22 34 66)" />
539              <ellipse cx="82" cy="86" rx="4.6" ry="5.2" transform="rotate(15 82 86)" />
540              <ellipse cx="54" cy="80" rx="5.2" ry="4.6" transform="rotate(-8 54 80)" />
541              <ellipse cx="46" cy="93" rx="4.4" ry="4.8" transform="rotate(20 46 93)" />
542              <ellipse cx="48" cy="53" rx="4.4" ry="4" transform="rotate(-16 48 53)" />
543            </g>
544          </g>
545        </svg>
546      </button>
547    `;const L=v.querySelector(".cookie-fab-cookie");
547L?.addEventListener("click",()=>{L.classList.remove("is-wiggle"),L.offsetWidth,L.classList.add("is-wiggle")}),L?.addEventListener("animationend",w=>{w.animationName==="ckcrumb-wiggle"&&L.classList.remove("is-wiggle")}),v.querySelector(".cookie-banner-accept")?.addEventListener("click",()=>{v.classList.add("is-happy"),c(r({performance:!0,functional:!0,targeting:!0}),"accepted"),window.setTimeout(()=>d(v),380)}),v.querySelector(".cookie-banner-reject")?.addEventListener("click",()=>{c(r(),"rejected"),d(v)}),v.querySelector(".cookie-banner-prefs")?.addEventListener("click",()=>{h(v)}),v.querySelector(".cookie-banner-close")?.addEventListener("click",()=>{c(r(),"rejected"),d(v)}),document.body.append(v),window.requestAnimationFrame(()=>{v.classList.add("is-visible")})}}const heroTrustMarquee=document.querySelector(".hero-orbit-trust");if(heroTrustMarquee){let e=!1;const t=()=>{e=!0,heroTrustMarquee.classList.add("is-paused")},r=()=>{e=!1,heroTrustMarquee.classList.remove("is-paused")};heroTrustMarquee.addEventListener("touchstart",()=>{t()},{passive:!0}),heroTrustMarquee.addEventListener("touchmove",()=>{e&&r()},{passive:!0}),["touchend","touchcancel"].forEach(a=>{heroTrustMarquee.addEventListener(a,()=>{e&&r()},{passive:!0})})}if(scheduleLeadNode)try{const e=window.sessionStorage.getItem("ma360_lead_booking");if(e){const t=JSON.parse(e),r=[t.firstName,t.lastName].filter(Boolean).join(" ").trim()||"Prospect",a=Array.isArray(t.serviceInterests)?t.serviceInterests.filter(Boolean):[],o=[];t.email&&o.push(`<li>Email: ${t.email}</li>`),t.phone&&o.push(`<li>Phone: ${t.phone}</li>`),t.phoneCountry&&o.push(`<li>Country: ${t.phoneCountry}</li>`),t.websiteUrl&&o.push(`<li>Website: ${t.websiteUrl}</li>`),t.monthlyBudget&&o.push(`<li>Budget: ${t.monthlyBudget}</li>`),a.length&&o.push(`<li>Focus areas: ${a.join(", ")}</li>`),scheduleLeadNode.innerHTML=`
548        <h3>${r}</h3>
549        <ul>${o.join("")}</ul>
550      `}}catch{}function waitForCalendlyWidget(){return window.Calendly&&typeof window.Calendly.initInlineWidget=="function"?Promise.resolve(window.Calendly):new Promise((e,t)=>{const r=Date.now(),a=window.setInterval(()=>{if(window.Calendly&&typeof window.Calendly.initInlineWidget=="function"){window.clearInterval(a),e(window.Calendly);return}Date.now()-r>1e4&&(window.clearInterval(a),t(new Error("Calendly widget failed to load.")))},120)})}function ensureCalendlyAssetsLoaded(){if(!document.getElementById("ma360-calendly-widget-style")){const t=document.createElement("link");t.id="ma360-calendly-widget-style",t.rel="stylesheet",t.href="https://assets.calendly.com/assets/external/widget.css",document.head.appendChild(t)}return window.Calendly&&typeof window.Calendly.initInlineWidget=="function"?Promise.resolve(window.Calendly):document.getElementById("ma360-calendly-widget-script")?waitForCalendlyWidget():new Promise((t,r)=>{const a=document.createElement("script");a.id="ma360-calendly-widget-script",a.src="https://assets.calendly.com/assets/external/widget.js",a.async=!0,a.onload=()=>{waitForCalendlyWidget().then(t).catch(r)},a.onerror=()=>r(new Error("Calendly widget failed to load.")),document.body.appendChild(a)})}function extractCalendlyPostMessagePayload(e){const t=e&&typeof e=="object"?e:{},r=t.payload&&typeof t.payload=="object"?t.payload:t;return{rawPayload:r,eventUri:r.event?.uri||r.event_uri||"",inviteeUri:r.invitee?.uri||r.invitee_uri||"",scheduledCallAt:r.event?.start_time||r.event_start_time||r.scheduled_event_start_time||"",scheduledCallEndAt:r.event?.end_time||r.event_end_time||r.scheduled_event_end_time||"",timezone:r.event?.timezone||r.timezone||r.event_timezone||""}}if(activePage==="schedule-call"&&scheduleCalendlyNode){const e=(()=>{try{const a=window.sessionStorage.getItem("ma360_lead_booking");return a?JSON.parse(a):null}catch{return null}})(),t=async a=>{if(!(!e?.leadId||!e?.scheduleToken))try{await fetch(`/api/leads/${e.leadId}/schedule`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scheduleToken:e.scheduleToken,event:{uri:a.eventUri,start_time:a.scheduledCallAt,end_time:a.scheduledCallEndAt,timezone:a.timezone},invitee:{uri:a.inviteeUri},payload:a.rawPayload})})}catch{}},r=async a=>{if(String(a?.data?.event||"").trim()!=="calendly.event_scheduled")return;const n=extractCalendlyPostMessagePayload(a.data);await t(n),scheduleStatusNode&&(scheduleStatusNode.textContent="Your call is booked. We\u2019ve saved the slot details in MarkAge360."),scheduleStatusNoteNode&&(scheduleStatusNoteNode.textContent=n.scheduledCallAt?`Booked for ${new Date(n.scheduledCallAt).toLocaleStr
550ing("en-IN",{dateStyle:"full",timeStyle:"short",timeZone:n.timezone||"Asia/Kolkata"})}.`:"Your Calendly booking was received and saved.",scheduleStatusNoteNode.classList.add("is-success"))};window.addEventListener("message",r),(async()=>{scheduleStatusNode&&(scheduleStatusNode.textContent="Checking scheduler availability.");try{const a=await fetch("/api/public/calendly-settings"),n=(await a.json().catch(()=>({}))).calendlySettings||null;if(!a.ok||!n?.bookingUrl)throw new Error("Scheduler is being configured. Please try again in a moment.");const s=await ensureCalendlyAssetsLoaded();scheduleCalendlyNode.innerHTML="",s.initInlineWidget({url:n.bookingUrl,parentElement:scheduleCalendlyNode,resize:!0}),scheduleStatusNode&&(scheduleStatusNode.textContent=n.eventName||"Select a date and time."),scheduleStatusNoteNode&&(scheduleStatusNoteNode.textContent=n.routingNote||"Choose a suitable slot and complete the Calendly booking flow.")}catch(a){scheduleStatusNode&&(scheduleStatusNode.textContent="Online scheduling is currently off."),scheduleStatusNoteNode&&(scheduleStatusNoteNode.textContent=a.message||"Please call us directly and our team will assist.")}})()}const siteFooter=document.querySelector(".site-footer");if(siteFooter){const e=()=>{siteFooter.classList.add("is-footer-visible")},t=()=>{siteFooter.classList.remove("is-footer-visible")};reduceMotion||!("IntersectionObserver"in window)?e():new IntersectionObserver(a=>{a.forEach(o=>{o.isIntersecting?e():t()})},{threshold:.2}).observe(siteFooter)}const serviceRotator=document.querySelector("[data-rotate-services]"),heroMetaCards=activePage==="home"?Array.from(document.querySelectorAll(".hero-orbit-meta-card")):[],heroMetaValues=activePage==="home"?Array.from(document.querySelectorAll("[data-stat-value]")):[];if(serviceRotator){const e=(serviceRotator.dataset.rotateServices||"").split("|").map(t=>t.trim()).filter(Boolean);if(e.length>1){let t=0;window.setInterval(()=>{if(t=(t+1)%e.length,reduceMotion){serviceRotator.textContent=e[t];return}serviceRotator.classList.add("is-changing"),window.setTimeout(()=>{serviceRotator.textContent=e[t],serviceRotator.classList.remove("is-changing")},320)},2400)}}if(activePage==="home"&&heroMetaCards.length)if(reduceMotion||heroMetaCards.forEach(e=>{e.addEventListener("pointermove",t=>{const r=e.getBoundingClientRect(),a=clamp((t.clientX-r.left)/r.width*100,0,100),o=clamp((t.clientY-r.top)/r.height*100,0,100),n=roundTo((a-50)/50*4,2),s=roundTo((50-o)/50*4,2);e.style.setProperty("--meta-spot-x",`${a}%`),e.style.setProperty("--meta-spot-y",`${o}%`),e.style.transform=`perspective(900px) rotateX(${s}deg) rotateY(${n}deg) translate3d(0, -4px, 0)`}),e.addEventListener("pointerleave",()=>{e.style.setProperty("--meta-spot-x","50%"),e.style.setProperty("--meta-spot-y","50%"),e.style.transform=""})}),heroMetaValues.length&&"IntersectionObserver"in window){const e=r=>{const a=Number.parseInt(r.dataset.statValue||"0",10),o=String(r.dataset.statSuffix||""),n=1200,s=performance.now(),c=l=>{const d=clamp((l-s)/n,0,1),p=1-(1-d)**3,h=Math.round(a*p);if(r.textContent=`${h}${o}`,d<1){window.requestAnimationFrame(c);return}r.closest(".hero-orbit-meta-card")?.classList.add("is-live")};r.textContent=`0${o}`,window.requestAnimationFrame(c)},t=new IntersectionObserver((r,a)=>{r.forEach(o=>{o.isIntersecting&&(e(o.target),a.unobserve(o.target))})},{threshold:.55});heroMetaValues.forEach(r=>t.observe(r))}else heroMetaValues.forEach(e=>{e.textContent=`${e.dataset.statValue||""}${e.dataset.statSuffix||""}`,e.closest(".hero-orbit-meta-card")?.classList.add("is-live")});const depthCopy=document.querySelector("[data-depth-copy]"),depthLine=document.querySelector("[data-depth-line]"),depthGhostMid=document.querySelector(".home-depth-ghost-mid"),depthGhostBack=document.querySelector(".home-depth-ghost-back"),depthBody=document.querySelector("[data-depth-body]"),homeSequence=document.querySelector("[data-home-sequence]"),homeWordFull=document.querySelector(".home-word-full"),homeWordStack=document.querySelector(".home-word-stack"),homeWordGrowth=document.querySelector(".home-word-growth"),homeWordAgency=document.querySelector(".home-word-agency"),heroSection=document.querySelector(".hero-orbit"),proofSection=document.querySelector("[data-home-proof-sequence]"),proofShell=proofSection?.querySelector("[data-home-proof-shell]"),proofCards=proofSection?Array.from(proofSection.querySelectorAll("[data-home-proof-card]")):[],proofNavItems=proofSection?Array.from(proofSection.querySelectorAll("[data-home-proof-nav]")):[],recognitionSection=document.querySelector(".home-recognition"),recognitionShell=recognitionSection?.querySelector("[data-home-recognition-shell]"),recognitionTrack=rec
550ognitionSection?.querySelector("[data-home-recognition-track]"),recognitionCards=recognitionSection?Array.from(recognitionSection.querySelectorAll("[data-recognition-card]")):[],resultsSection=document.querySelector(".bnb-results"),nextHomeSection=resultsSection||siteFooter,desktopSequence=window.matchMedia("(min-width: 821px)").matches,desktopHeaderFrame=window.matchMedia("(min-width: 641px)");if(leadModalEnabled&&homeLeadModal&&homeLeadForm){const e=new Set,t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,r=/^[0-9]{7,15}$/,a=/^(https?:\/\/)?(([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}|localhost)(:\d+)?(\/[^\s]*)?$/i,o=new Map([["US","\u{1F1FA}\u{1F1F8} United States"],["CA","\u{1F1E8}\u{1F1E6} Canada"],["GB","\u{1F1EC}\u{1F1E7} United Kingdom"],["IN","\u{1F1EE}\u{1F1F3} India"],["AE","\u{1F1E6}\u{1F1EA} United Arab Emirates"],["SA","\u{1F1F8}\u{1F1E6} Saudi Arabia"],["SG","\u{1F1F8}\u{1F1EC} Singapore"],["JP","\u{1F1EF}\u{1F1F5} Japan"],["KR","\u{1F1F0}\u{1F1F7} South Korea"],["TH","\u{1F1F9}\u{1F1ED} Thailand"],["AU","\u{1F1E6}\u{1F1FA} Australia"],["NZ","\u{1F1F3}\u{1F1FF} New Zealand"],["DE","\u{1F1E9}\u{1F1EA} Germany"],["FR","\u{1F1EB}\u{1F1F7} France"],["NL","\u{1F1F3}\u{1F1F1} Netherlands"],["ZA","\u{1F1FF}\u{1F1E6} South Africa"],["NG","\u{1F1F3}\u{1F1EC} Nigeria"],["KE","\u{1F1F0}\u{1F1EA} Kenya"],["EG","\u{1F1EA}\u{1F1EC} Egypt"],["GH","\u{1F1EC}\u{1F1ED} Ghana"],["MA","\u{1F1F2}\u{1F1E6} Morocco"],["TZ","\u{1F1F9}\u{1F1FF} Tanzania"],["UG","\u{1F1FA}\u{1F1EC} Uganda"],["ET","\u{1F1EA}\u{1F1F9} Ethiopia"]]),n=new Map([["Asia/Kolkata","IN"],["Asia/Calcutta","IN"],["Europe/London","GB"],["America/New_York","US"],["America/Chicago","US"],["America/Denver","US"],["America/Los_Angeles","US"],["America/Toronto","CA"],["America/Vancouver","CA"],["Asia/Dubai","AE"],["Asia/Riyadh","SA"],["Asia/Singapore","SG"],["Asia/Tokyo","JP"],["Asia/Seoul","KR"],["Asia/Bangkok","TH"],["Australia/Sydney","AU"],["Australia/Melbourne","AU"],["Pacific/Auckland","NZ"],["Europe/Berlin","DE"],["Europe/Paris","FR"],["Europe/Amsterdam","NL"],["Africa/Johannesburg","ZA"],["Africa/Lagos","NG"],["Africa/Nairobi","KE"],["Africa/Cairo","EG"],["Africa/Accra","GH"],["Africa/Casablanca","MA"],["Africa/Dar_es_Salaam","TZ"],["Africa/Kampala","UG"],["Africa/Addis_Ababa","ET"]]),s=m=>{const i=String(m||"").trim();if(!i)return"";const b=/^[a-z][a-z\d+\-.]*:\/\//i.test(i)?i:`https://${i}`;try{const A=new URL(b);return A.hostname?A.toString():""}catch{return""}},c=()=>{const m=Array.isArray(navigator.languages)?navigator.languages:[navigator.language];for(const A of m){const f=String(A||"").trim();if(!f)continue;const C=f.split("-"),_=C[1]?C[1].toUpperCase():"";if(o.has(_))return o.get(_)}const i=Intl.DateTimeFormat().resolvedOptions().timeZone,b=n.get(String(i||"").trim());return b&&o.has(b)?o.get(b):""},l=()=>{homeLeadBudgetInput&&(homeLeadBudgetInput.dataset.empty=homeLeadBudgetInput.value?"false":"true")},d=()=>{homeLeadOptions.forEach(m=>{const i=String(m.dataset.leadOption||"").trim();m.classList.toggle("is-selected",e.has(i)),m.setAttribute("aria-pressed",e.has(i)?"true":"false")}),homeLeadOpenButton&&(homeLeadOpenButton.disabled=!1)},p=()=>{homeLeadModal.hidden=!0,setLeadModalOpenState(!1)},h=()=>{try{if(window.sessionStorage.getItem("ma360_ma0_after_form")==="1")return!0;const m=window.sessionStorage.getItem("ma360_lead_booking");if(!m)return!1;const i=JSON.parse(m);return/ma0/i.test(String(i.source||""))||/ma0/i.test(String(i.sourceContext||""))}catch{return!1}},v=m=>{homeLeadForm&&(homeLeadForm.dataset.ma0LeadMode=m?"true":"false",[homeLeadWebsiteInput,homeLeadPhoneInput,homeLeadCountrySelect,homeLeadBudgetInput,homeLeadServiceSelect].filter(Boolean).forEach(i=>{m?i.removeAttribute("required"):i.setAttribute("required","required")}),homeLeadWebsiteInput&&(homeLeadWebsiteInput.placeholder=m?"Company / website (optional)":"Website URL"))},L=()=>{try{const m=document.body?.getAttribute("data-lead-source-page");if(m&&m.trim())return m.trim();const b=String(window.location.pathname||"/").trim().replace(/\/+$/,"");if(b===""||/\/index(\.html?)?$/i.test(b))return"Home";const f=String(document.title||"").trim();if(f){const S=f.split(/\s*[|·—–-]\s*/)[0].trim();if(S&&!/^markage360$/i.test(S))return S}
550const C=b.split("/").filter(Boolean);return(C[C.length-1]||"Home").replace(/\.html?$/i,"").replace(/[-_]+/g," ").replace(/\b\w/g,S=>S.toUpperCase())}catch{return"Home"}},w=()=>{if(!homeLeadForm)return;const m=homeLeadForm.querySelector('input[name="sourcePage"]');!m||h()||(m.value=L())},y=()=>{v(h()),w(),homeLeadModal.hidden=!1,setLeadModalOpenState(!0)},u=()=>{v(h()),w(),homeLeadModal.hidden=!1,setLeadModalOpenState(!0)},g=()=>{try{const m=window.sessionStorage.getItem("ma360_lead_booking");if(!m||!homeLeadForm)return;const i=JSON.parse(m);v(/ma0/i.test(String(i.source||""))||/ma0/i.test(String(i.sourceContext||""))||h());const b=homeLeadForm.querySelector('input[name="firstName"]'),A=homeLeadForm.querySelector('input[name="lastName"]'),f=homeLeadForm.querySelector('input[name="sourceContext"]'),C=Array.isArray(i.serviceInterests)?String(i.serviceInterests[0]||"").trim():"",S={services:"Other",prospect:"Other",pricing:"Other",engagement:"Other",scaling:"Paid media",growth:"Paid media",seo:"SEO",aeo:"GEO / AEO",geo:"GEO / AEO"}[C.toLowerCase()]||C;if(b&&i.firstName&&(b.value=i.firstName),A&&i.lastName!==void 0&&(A.value=i.lastName),homeLeadEmailInput&&i.email&&(homeLeadEmailInput.value=i.email),homeLeadPhoneInput&&i.phone&&(homeLeadPhoneInput.value=String(i.phone).replace(/\D+/g,"").slice(0,15)),homeLeadWebsiteInput&&i.websiteUrl&&(homeLeadWebsiteInput.value=i.websiteUrl),homeLeadCountrySelect&&i.phoneCountry){const q=Array.from(homeLeadCountrySelect.options).find(N=>N.value===i.phoneCountry);q&&(homeLeadCountrySelect.value=q.value)}homeLeadBudgetInput&&i.monthlyBudget&&(homeLeadBudgetInput.value=i.monthlyBudget),homeLeadServiceSelect&&S&&Array.from(homeLeadServiceSelect.options).some(N=>N.value===S)&&(homeLeadServiceSelect.value=S),f&&(f.value="MA0"),l()}catch{}};if(homeLeadOptions.forEach(m=>{m.addEventListener("click",()=>{const i=String(m.dataset.leadOption||"").trim();i&&(e.has(i)?e.delete(i):e.add(i),d())})}),homeLeadOpenButton?.addEventListener("click",y),homeLeadHeaderOpenButtons.forEach(m=>m.addEventListener("click",i=>{i.preventDefault(),u()})),document.addEventListener("click",m=>{const i=m.target.closest("[data-footer-lead-cta], [data-open-lead-modal-header]");i&&(homeLeadHeaderOpenButtons.includes(i)||(m.preventDefault(),m.stopPropagation(),u()))},!0),window.openLeadModalDirectGlobal=()=>{try{window.sessionStorage.removeItem(CHAT_LEAD_MODAL_KEY),window.sessionStorage.removeItem(CHAT_LEAD_MODAL_AT_KEY)}catch{}g(),u()},homeLeadCloseButtons.forEach(m=>{m.addEventListener("click",p)}),document.addEventListener("keydown",m=>{m.key==="Escape"&&!homeLeadModal.hidden&&p()}),homeLeadPhoneInput?.addEventListener("input",()=>{homeLeadPhoneInput.value=homeLeadPhoneInput.value.replace(/\D+/g,"").slice(0,15),homeLeadPhoneInput.setCustomValidity("")}),homeLeadEmailInput?.addEventListener("input",()=>{homeLeadEmailInput.value=homeLeadEmailInput.value.trimStart(),homeLeadEmailInput.setCustomValidity("")}),homeLeadWebsiteInput?.addEventListener("input",()=>{homeLeadWebsiteInput.setCustomValidity("")}),homeLeadWebsiteInput?.addEventListener("blur",()=>{const m=s(homeLeadWebsiteInput.value);if(!homeLeadWebsiteInput.value.trim()){homeLeadWebsiteInput.setCustomValidity("");return}if(!m||!a.test(homeLeadWebsiteInput.value.trim())){homeLeadWebsiteInput.setCustomValidity("Enter a valid website URL."),homeLeadWebsiteInput.reportValidity();return}homeLeadWebsiteInput.value=m.replace(/\/$/,""),homeLeadWebsiteInput.setCustomValidity("")}),homeLeadCountrySelect&&!homeLeadCountrySelect.value){const m=c();m&&(homeLeadCountrySelect.value=m)}homeLeadBudgetInput?.addEventListener("change",l),l();try{window.sessionStorage.removeItem(CHAT_LEAD_MODAL_KEY),window.sessionStorage.removeItem(CHAT_LEAD_MODAL_AT_KEY)}catch{}homeLeadForm.addEventListener("submit",async m=>{m.preventDefault();const i=homeLeadForm.dataset.ma0LeadMode==="true"||h(),b=String(homeLeadServiceSelect?.value||"").trim()||(i?"prospect":"");if(!b&&!i){homeLeadFeedback&&(homeLeadFeedback.textContent="Select a service first."),homeLeadServiceSelect?.reportValidity();return}if(!homeLeadForm.reportValidity())return;const A=new FormData(homeLeadForm),f={...Object.fromEntries(A.entries()),serviceInterests:[b]};if(f.firstName=String(f.firstName||"").trim(),f.lastName=String(f.lastName||"").trim(),f.email=String(f.email||"").trim(),f.websiteUrl=String(f.websiteUrl||"").trim(),f.phone=String(f.phone||"").trim(),f.monthlyBudget=String(f.monthlyBudget||"").trim(),f.phoneCountry=String(f.phoneCountry||"").trim(),f.serviceInterest=b,f.country=f.phoneCountry,i){let S="/";try{S=String(window.sessionStorage.getItem("ma360_chat_source_page")||"").trim()||"/"}catch{S="/"}f.sourcePage=S,f.source=`MA0 + ${S}`,f.sourceContext="ma0_chatbot"}try{const S=window.maVisitorPayload?window.maVisitorPayload():null;S&&(f.visitor=S)}catch{}if(!i&&(!f.firstName||!f.lastName||!f.websiteUrl||!f.monthlyBudget||!f.phone||!f.phoneCountry||!f.serviceInterest)||i&&(!f.firstName||!f.email)){homeLeadFeedback&&(homeLeadFeedback.textContent="Complete all required fields before submitting.");return}if(!t.test(f.email)){homeLeadEmailInput?.setCustomValidity("Enter a valid email address."),homeLeadEmailInput?.reportValidity(),homeLeadFeedback&&(homeLeadFeedback.textContent="Enter a valid email address.");return}const C=f.websiteUrl?s(f.websiteUrl):"";if(!i&&!C){homeLeadWebsiteInput?.setCustomValidity("Enter a valid website URL."),homeLeadWebsiteInput?.reportValidity(),homeLeadFeedback&&(homeLeadFeedback.textContent="Enter a valid website URL.");return}if(f.websiteUrl=C?C.replace(/\/$/,""):"",homeLeadWebsiteInput&&(homeLeadWebsiteInput.value=f.websiteUrl,homeLeadWebsiteInput.setCustomValidity("")),f.phone&&!r.test(f.phone)){homeLeadPhoneInput?.setCustomValidity("Phone number must contain 7 to 15 digits only."),homeLeadPhoneInput?.reportValidity(),homeLeadFeedback&&(homeLeadFeedback.textContent="Phone number must contain 7 to 15 digits only.");return}const _=homeLeadForm.querySelector(".lead-form-submit");_&&(_.disabled=!0,_.textContent="Sending..."),homeLeadFeedback&&(homeLeadFeedback.textContent="");try{const S=await fetch("/api/leads",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),q=await S.json().catch(()=>({}));if(!S.ok){const N=String(q.error||"").trim(),D=S.status===404||/route not found
550/i.test(N)?"Lead endpoint unavailable. Restart the local server and try again.":N,G=S.status===404?"Lead endpoint unavailable. Restart the local server and try again.":"Unable to submit your request.";throw new Error(D||G)}homeLeadFeedback&&(homeLeadFeedback.textContent="Request received. We\u2019ll get back to you shortly."),homeLeadForm.reset(),l(),e.clear(),d();try{window.sessionStorage.removeItem("ma360_ma0_after_form"),window.sessionStorage.removeItem("ma360_chat_source_page"),window.sessionStorage.removeItem("ma360_chat_call_context")}catch{}try{window.sessionStorage.setItem("ma360_lead_booking",JSON.stringify({firstName:f.firstName||"",lastName:f.lastName||"",email:f.email||"",phone:f.phone||"",phoneCountry:f.phoneCountry||"",websiteUrl:f.websiteUrl||"",monthlyBudget:f.monthlyBudget||"",serviceInterests:f.serviceInterests,leadId:q.leadId||"",scheduleToken:q.scheduleToken||""}))}catch{}window.setTimeout(()=>{window.location.href="/schedule-call"},350)}catch(S){homeLeadFeedback&&(homeLeadFeedback.textContent=S.message||"Unable to submit your request.")}finally{_&&(_.disabled=!1,_.textContent="Book a call")}}),d()}if(activePage==="home"&&siteHeader&&headerNav&&heroSection&&!reduceMotion){const e="is-idle-sweep",o=headerNav.querySelector(".main-nav-shimmer"),n=o?o.querySelectorAll("path"):[];let s=null,c=null,l=!1,d=!1;const p=()=>{s!==null&&(window.clearTimeout(s),s=null)},h=()=>{c!==null&&(window.clearTimeout(c),c=null)},v=()=>{if(!o||n.length===0)return;const b=parseFloat(getComputedStyle(headerNav).getPropertyValue("--header-shimmer-inset"))||0,A=headerNav.getBoundingClientRect(),f=getComputedStyle(headerNav),C=parseFloat(f.borderTopLeftRadius)||0,_=Math.max(1,A.width+b*2),S=Math.max(1,A.height+b*2),q=Math.min(C+b,_/2,S/2),N=buildRoundedRectPath(_,S,q);o.setAttribute("viewBox",`0 0 ${_} ${S}`),n.forEach(D=>{D.setAttribute("d",N)})},L=()=>{const b=headerNav.getBoundingClientRect();return b.width>0&&b.height>0&&b.bottom>0&&b.top<window.innerHeight},w=()=>{if(!desktopHeaderFrame.matches||document.hidden||siteHeader.classList.contains("is-menu-open")||document.body.classList.contains("home-header-hidden")||window.scrollY>24)return!1;const b=heroSection.getBoundingClientRect();return b.top<=24&&b.bottom>window.innerHeight*.72&&L()},y=()=>{h(),d=!1,headerNav.classList.remove(e)},u=(b=2350)=>{h(),!(!l||!w()||d)&&(c=window.setTimeout(()=>{!l||!w()||d||(headerNav.classList.remove(e),headerNav.offsetWidth,d=!0,headerNav.classList.add(e))},b))},g=()=>{p(),w()&&(s=window.setTimeout(()=>{w()&&(l=!0,u(0))},5e3))},m=()=>{l=!1,p(),y(),g()};headerNav.addEventListener("animationend",b=>{b.animationName!=="home-header-edge-shimmer"||!(b.target instanceof Element)||!b.target.classList.contains("main-nav-shimmer-aura")||(y(),l&&w()&&u())}),v(),"ResizeObserver"in window&&new ResizeObserver(()=>{if(v(),!w()){l=!1,p(),y();return}!l&&!d&&g()}).observe(headerNav),["mousemove","pointerdown","keydown","touchstart","wheel"].forEach(b=>{window.addEventListener(b,m,{passive:!0})}),window.addEventListener("scroll",m,{passive:!0}),window.addEventListener("resize",()=>{v(),m()},{passive:!0}),document.addEventListener("visibilitychange",m),g()}if(homeSequence&&homeWordFull&&homeWordStack&&homeWordGrowth&&homeWordAgency&&!reduceMotion&&"IntersectionObserver"in window){const e=[homeWordFull,homeWordStack,homeWordGrowth,homeWordAgency],t=[];let r=!1;const a=()=>{for(;t.length;)window.clearTimeout(t.pop())},o=()=>{a(),e.forEach(c=>{c.classList.remove("is-sequence-active")}),r=!1},n=()=>{o(),r=!0,e.forEach((c,l)=>{const d=l*340,p=d+620;t.push(window.setTimeout(()=>{c.classList.add("is-sequence-active")},d)),t.push(window.setTimeout(()=>{c.classList.remove("is-sequence-active")},p))}),t.push(window.setTimeout(()=>{r=!1},1700))};new IntersectionObserver(c=>{c.forEach(l=>{l.isIntersecting?r||n():o()})},{threshold:.58,rootMargin:"-6% 0px -10% 0px"}).observe(homeSequence)}if(depthCopy&&depthLine&&depthGhostMid&&depthGhostBack&&depthBody&&homeSequence&&heroSection&&nextHomeSection&&desktopSequence&&!reduceMotion){let e=0,t=!1,r=window.scrollY,a=0;const o=!!(proofSection&&proofShell&&proofCards.length&&proofNavItems.length===proofCards.length),n=!!(recognitionSection&&recognitionShell&&recognitionTrack&&recognitionCards.length);let s=-1,c=0,l=-1,d=0;const p=()=>{const E=window.scrollY,x=document.body.classList.contains("home-header-force-hidden"),B=E<r-2;if(e>=1&&y()||o&&b()){document.body.classList.add("home-header-force-hidden"),document.body.classList.add("home-header-hidden"),siteHeader?.classList.add("is-scroll-hidden"),r=E;return}document.body.classList.remove("home-header-force-hidden"),x&&B&&(document.body.classList.remove("home-header-hidden"),siteHeader?.classList.remove("is-scroll-hidden")),r=E},h=()=>
550{if(t||e!==0)return;const E=homeSequence.getBoundingClientRect();E.top<window.innerHeight*.88&&E.bottom>window.innerHeight*.12&&v(1)},v=E=>{if(e=E,E===0){depthLine.style.transform="translate3d(0, 0.9rem, -120px) scale(0.88) rotateX(18deg)",depthLine.style.opacity="0",depthLine.style.filter="blur(8px)",depthGhostMid.style.transform="translate3d(0, 0, -280px) scale(0.74) rotateX(34deg)",depthGhostMid.style.opacity="0.12",depthGhostMid.style.filter="blur(18px)",depthGhostBack.style.transform="translate3d(0, 0, -420px) scale(0.64) rotateX(42deg)",depthGhostBack.style.opacity="0.08",depthGhostBack.style.filter="blur(26px)",depthBody.style.opacity="0",depthBody.style.transform="translate3d(-50%, -50%, -180px) scale(0.74) rotateX(20deg)",depthBody.style.filter="blur(18px)";return}if(E===1){depthLine.style.transform="translate3d(0, 0, 0) scale(1) rotateX(0)",depthLine.style.opacity="1",depthLine.style.filter="blur(0)",depthGhostMid.style.transform="translate3d(0, 0, -55px) scale(0.92) rotateX(10deg)",depthGhostMid.style.opacity="0.03",depthGhostMid.style.filter="blur(18px)",depthGhostBack.style.transform="translate3d(0, 0, -120px) scale(0.84) rotateX(16deg)",depthGhostBack.style.opacity="0.015",depthGhostBack.style.filter="blur(26px)",depthBody.style.opacity="0",depthBody.style.transform="translate3d(-50%, -50%, -180px) scale(0.74) rotateX(20deg)",depthBody.style.filter="blur(18px)";return}if(E===2){depthLine.style.transform="translate3d(0, -1.1rem, -80px) scale(0.94) rotateX(8deg)",depthLine.style.opacity="0",depthLine.style.filter="blur(10px)",depthGhostMid.style.transform="translate3d(0, 0, -55px) scale(0.92) rotateX(10deg)",depthGhostMid.style.opacity="0",depthGhostMid.style.filter="blur(22px)",depthGhostBack.style.transform="translate3d(0, 0, -120px) scale(0.84) rotateX(16deg)",depthGhostBack.style.opacity="0",depthGhostBack.style.filter="blur(30px)",depthBody.style.opacity="1",depthBody.style.transform="translate3d(-50%, -50%, 120px) scale(1.06) rotateX(0)",depthBody.style.filter="blur(0)";return}depthLine.style.transform="translate3d(0, -1.1rem, -80px) scale(0.94) rotateX(8deg)",depthLine.style.opacity="0",depthLine.style.filter="blur(10px)",depthGhostMid.style.transform="translate3d(0, 0, -55px) scale(0.92) rotateX(10deg)",depthGhostMid.style.opacity="0",depthGhostMid.style.filter="blur(22px)",depthGhostBack.style.transform="translate3d(0, 0, -120px) scale(0.84) rotateX(16deg)",depthGhostBack.style.opacity="0",depthGhostBack.style.filter="blur(30px)",depthBody.style.opacity="1",depthBody.style.transform="translate3d(-50%, -50%, 300px) scale(1.3) rotateX(0)",depthBody.style.filter="blur(0)"},L=(E,x=0)=>{t=!0;const B=E.getBoundingClientRect().top+x;if(Math.abs(B)>1){const j=window.scrollY+B;window.scrollTo({top:j,left:0,behavior:"auto"})}window.setTimeout(()=>{t=!1,p()},520)},w=()=>{const E=heroSection.getBoundingClientRect();return E.top<=80&&E.bottom>window.innerHeight*.45},y=()=>{const E=homeSequence.getBoundingClientRect();return E.top<=80&&E.bottom>80},u=()=>{const E=homeSequence.getBoundingClientRect();return E.top<=window.innerHeight*.76&&E.bottom>window.innerHeight*.4},g=()=>{if(!n)return!1;const E=recognitionShell.getBoundingClientRect();return E.top<=108&&E.bottom>window.innerHeight*.32},m=()=>{if(!n)return!1;const E=recognitionSection.getBoundingClientRect();return E.top<=window.innerHeight*.72&&E.bottom>window.innerHeight*.42},i=()=>{if(!resultsSection)return!1;const E=resultsSection.getBoundingClientRect();return E.top<=140&&E.bottom>window.innerHeight*.45},b=()=>{if(!o)return!1;const E=proofShell.getBoundingClientRect();return E.top<=108&&E.bottom>window.innerHeight*.32},A=()=>{if(!o)return!1;const E=proofSection.getBoundingClientRect();return E.top<=window.innerHeight*.72&&E.bottom>window.innerHeight*.42},f=E=>{if(!o)return;s=clamp(E,-1,proofCards.length-1);const x=s>=0,B=proofCards.length>1&&s>=0?s/(proofCards.length-1):0;proofSection.classList.toggle("is-sequence-driving",x),proofShell.style.setProperty("--proof-line-progress",String(B)),proofSection.style.setProperty("--proof-core-progress",String(B)),proofCards.forEach((j,U)=>{j.classList.toggle("is-active",x&&U===s),j.classList.toggle("is-past",x&&U<s),j.classList.toggle("is-future",x&&U>s)}
550),proofNavItems.forEach((j,U)=>{j.classList.toggle("is-active",x&&U===s),j.classList.toggle("is-past",x&&U<s)})},C=()=>{if(!o)return;const E=Number.parseFloat(getComputedStyle(proofShell).top)||96;L(proofShell,-E)},_=()=>{if(!o)return!1;const E=Number.parseFloat(getComputedStyle(proofShell).top)||96;return Math.abs(proofShell.getBoundingClientRect().top-E)>3},S=(E=840)=>{c=performance.now()+E},q=E=>{if(!n)return;l=clamp(E,-1,recognitionCards.length-1);const x=l>=0,B=[0,1.02,2.04,3.06],j=l>=0?B[l]??l:0;recognitionSection.classList.toggle("is-sequence-driving",x),recognitionSection.style.setProperty("--recognition-track-progress",String(j)),recognitionCards.forEach((U,M)=>{U.classList.toggle("is-sequence-active",x&&M===l),U.classList.toggle("is-sequence-past",x&&M<l),U.classList.toggle("is-sequence-future",x&&M>l)})},N=()=>{if(!n)return;const E=Number.parseFloat(getComputedStyle(recognitionShell).top)||96;L(recognitionShell,-E)},D=()=>{if(!n)return!1;const E=Number.parseFloat(getComputedStyle(recognitionShell).top)||96;return Math.abs(recognitionShell.getBoundingClientRect().top-E)>3},G=(E=820)=>{d=performance.now()+E},z=(E=880)=>{a=performance.now()+E},O=E=>{if(t)return!0;if(E<0&&(siteHeader?.classList.remove("is-scroll-hidden"),document.body.classList.remove("home-header-hidden")),E>0&&w())return z(950),L(homeSequence),window.requestAnimationFrame(()=>v(1)),!0;if(E>0&&e<3&&!y()&&u())return z(950),L(homeSequence),e===0&&window.requestAnimationFrame(()=>v(1)),!0;if(E>0&&!b()&&A())return s<0&&f(0),S(1100),C(),!0;if(o&&E<0&&!b()&&i())return f(proofCards.length-1),S(900),C(),!0;if(b()){if(_())return S(980),C(),!0;if(performance.now()<c)return!0;if(E>0)return s<proofCards.length-1?(f(s+1),S(980),C(),!0):(L(resultsSection),!0);if(E<0)return s>=0?(f(s-1),S(980),C(),s<0&&(L(homeSequence),window.requestAnimationFrame(()=>v(3))),!0):(L(homeSequence),window.requestAnimationFrame(()=>v(3)),!0)}if(E>0&&l===-1&&!g()&&m())return G(1100),N(),!0;if(n&&E<0&&!g()&&i())return q(recognitionCards.length-1),G(900),N(),!0;if(g()){if(performance.now()<d)return!0;if(E>0&&l===-1&&D())return G(1100),N(),!0;if(E>0)return l<recognitionCards.length-1?(q(l+1),G(),!0):(L(resultsSection),!0);if(E<0)return l>=0?(q(l-1),G(),l<0&&(L(homeSequence),window.requestAnimationFrame(()=>v(3))),!0):(L(homeSequence),window.requestAnimationFrame(()=>v(3)),!0)}if(y()){if(performance.now()<a)return!0;if(E>0){if(e===1)return t=!0,z(),v(2),L(homeSequence),window.setTimeout(()=>{t=!1},430),!0;if(e===2)return t=!0,z(),v(3),L(homeSequence),window.setTimeout(()=>{t=!1},430),!0;if(e===3)return z(),v(3),o?(f(0),S(900),C()):n?(q(-1),G(900),N()):L(nextHomeSection),!0}if(E<0){if(e===2)return t=!0,z(),v(1),L(homeSequence),window.setTimeout(()=>{t=!1},430),!0;if(e===3)return t=!0,z(),v(2),L(homeSequence),window.setTimeout(()=>{t=!1},430),!0;if(e===1)return z(),v(0),L(heroSection),!0}}return!1};v(0),o&&f(0),n&&q(-1),p(),h(),window.addEventListener("scroll",()=>{p(),h()},{passive:!0}),window.addEventListener("resize",()=>{p(),h()}),window.addEventListener("wheel",E=>{if(Math.abs(E.deltaY)<8)return;const x=E.deltaY>0?1:-1;O(x)&&E.preventDefault()},{passive:!1}),window.addEventListener("keydown",E=>{let x=0;E.key==="ArrowDown"||E.key==="PageDown"||E.key===" "?x=1:(E.key==="ArrowUp"||E.key==="PageUp")&&(x=-1),x!==0&&O(x)&&E.preventDefault()})}const logoSyncDarkSelectorsByPage={home:".ma-footer",work:".wk-hero, .ma-footer"},logoSyncDarkSelector=logoSyncDarkSelectorsByPage[activePage]||"";if(logoSyncDarkSelector&&siteHeader){const e=siteHeader.querySelector("[data-adaptive-logo]"),t=Array.from(document.querySelectorAll(logoSyncDarkSelector)),r=activePage==="home"?Array.from(document.querySelectorAll(".home-awards-frame, .home-careers-frame, .home-faq-frame")):[];let a=!1;const o=()=>{if(a=!1,!e||!t.length)return;const s=siteHeader.getBoundingClientRect(),c=s.top+s.height*.5,l=Math.max(siteHeader.offsetHeight||0,s.height||0,64)+24,d=t.some(L=>{const w=L.getBoundingClientRect(),y=L.classList.contains("hero-orbit")||L.classList.contains("ab-hero")||L.classList.contains("ab3-hero")||L.classList.contains("wk-hero"),u=s.bottom>=w.top&&s.top<=w.bottom,g=c>
550=w.top&&c<=w.bottom,m=y&&window.scrollY<Math.max(L.offsetHeight-s.height,0);return u||g||m}),p=r.some(L=>{const w=L.getBoundingClientRect();return w.top<=l&&w.bottom>=0}),h=d?"dark":"light",v=h==="dark"?e.dataset.logoDark:e.dataset.logoLight;siteHeader.setAttribute("data-logo-surface",h),p&&(document.body.classList.remove("home-header-force-hidden","home-header-hidden"),siteHeader.classList.remove("is-scroll-hidden")),v&&e.getAttribute("src")!==v&&e.setAttribute("src",v)},n=()=>{a||(a=!0,requestAnimationFrame(o))};window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n,{passive:!0}),window.addEventListener("load",n),window.addEventListener("pageshow",n),window.addEventListener(logoRefreshEventName,n),o(),n()}(function(){if(typeof document>"u")return;const t=a=>{document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a,{once:!0}):a()},r=()=>window.matchMedia&&window.matchMedia("(max-width: 767px)").matches;t(()=>{if(!document.body.matches('[data-page="home"]'))return;const a=document.querySelector(".home-magic-bento-grid");if(!a||a.classList.contains("home-stack-redesign"))return;let o=0,n=null,s=0;const c=1500,l=1400,d=120,p=()=>Array.from(a.querySelectorAll(".home-magic-bento-card")).filter(u=>u.offsetParent!==null),h=()=>{if(!r()||Date.now()<s)return;const u=p();if(u.length<2)return;if(o=(o+1)%u.length,o===0){a.scrollTo({left:0,behavior:"auto"});return}const g=u[o];a.scrollTo({left:g.offsetLeft-a.offsetLeft-parseInt(getComputedStyle(a).paddingLeft||0,10),behavior:"smooth"})},v=()=>{n||r()&&(n=window.setInterval(h,c))},L=()=>{n&&(window.clearInterval(n),n=null)};"IntersectionObserver"in window?new IntersectionObserver(g=>{for(const m of g)m.isIntersecting?v():L()},{threshold:.25}).observe(a):v();const w=u=>{s=Math.max(s,Date.now()+u)};a.addEventListener("touchstart",()=>w(l),{passive:!0}),a.addEventListener("touchmove",()=>w(l),{passive:!0}),a.addEventListener("wheel",()=>w(l),{passive:!0});let y=null;a.addEventListener("scroll",()=>{y&&clearTimeout(y),y=setTimeout(()=>{const u=p();let g=0,m=1/0;const i=parseInt(getComputedStyle(a).paddingLeft||0,10);u.forEach((b,A)=>{const f=Math.abs(b.offsetLeft-a.offsetLeft-i-a.scrollLeft);f<m&&(m=f,g=A)}),o=g},d)},{passive:!0}),window.addEventListener("resize",()=>{L(),r()&&v()})})})(),function(){if(typeof document>"u")return;const t=()=>window.matchMedia&&window.matchMedia("(max-width: 768px)").matches;(a=>{document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a,{once:!0}):a()})(()=>{const a=()=>{const n=document.querySelector('.ma-chat-composer input[name="message"]');!n||n.dataset.maChatMobile==="1"||(n.setAttribute("enterkeyhint","send"),n.setAttribute("inputmode","text"),n.setAttribute("autocapitalize","sentences"),n.setAttribute("autocorrect","on"),n.setAttribute("spellcheck","true"),n.dataset.maChatMobile="1")};a(),new MutationObserver(n=>{for(const s of n)for(const c of s.addedNodes){if(c.nodeType!==1)continue;if((c.classList?.contains("ma-chat-panel")?c:c.querySelector?.(".ma-chat-panel"))||c.querySelector?.(".ma-chat-composer")){a();return}}}).observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("focusin",n=>{if(!t())return;const s=n.target;!s||!s.matches||s.matches(".ma-chat-composer input")&&window.setTimeout(()=>{const c=document.querySelector(".ma-chat-body");c&&(c.scrollTop=c.scrollHeight)},240)},!0)})}(),function(){if(typeof document>"u")return;(r=>{document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r,{once:!0}):r()})(()=>{document.querySelectorAll(".ma-footer-grid").forEach(r=>{if(r.querySelector(":scope > .ma-footer-collapse"))return;const o=Array.from(r.querySelectorAll(":scope > .ma-footer-col")).filter(l=>!l.classList.contains("ma-footer-col-brand"));if(o.length===0)return;const n=document.createElement("div");n.className="ma-footer-collapse",n.id="ma-footer-collapse";const s=document.createElement("button");s.type="button",s.className="ma-footer-collapse-toggle",s.setAttribute("aria-expanded","false"),s.setAttribute("aria-controls","ma-footer-collapse"),s.innerHTML='<span class="ma-footer-collapse-toggle-label">Site map</span><span class="ma-footer-collapse-toggle-chev" aria-hidden="true"></span>';const c=r.querySelector(":scope > .ma-footer-col-brand");c&&c.nextSibling?r.insertBefore(s,c.nextSibling):r.insertBefore(s,r.firstChild),o.forEach(l=>n.appendChild(l)),r.appendChild(n),s.addEventListener("click",()=>{const l=s.getAttribute("aria-expanded")!=="true";s.setAttribute("aria-expanded",String(l)),n.classList.toggle("is-open",l),s.querySelector(".ma-footer-collapse-toggle-label").textContent=l?"Hide site map":"Site map"})})})}(),function(){if(typeof document>"u")return;(r=>{document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r,{once:!0}):r()})(()=>
550{if(document.querySelector(".ma-mh"))return;const r=document.querySelector(".site-header"),a=r&&r.querySelector(".main-nav"),o=r&&r.querySelector(".brand"),n=o&&o.querySelector("img"),s=r&&r.querySelector(".header-star-cta"),c=document.body?.dataset?.page||"",l=document.body?.dataset?.pageBlog||"";(()=>{if(document.getElementById("ma-mh-surface-guard"))return;const R=document.createElement("style");R.id="ma-mh-surface-guard",R.textContent=`
551@media (max-width: 1024px) {
552  body:is([data-page="services"], [data-page="case-study"], [data-page="work"], [data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-toggle,
553  body:is([data-page="services"], [data-page="case-study"], [data-page="work"], [data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-search {
554    display: inline-flex !important;
555    width: 42px !important;
556    height: 42px !important;
557    color: #07111f !important;
558    /* Visible liquid glass: frosted white fill + a clear ink border and a
559       layered drop/inset shadow so the control never washes out on the
560       light canvas (white-on-white was the invisible case). */
561    background: rgba(255, 255, 255, 0.72) !important;
562    border-color: rgba(15, 24, 40, 0.34) !important;
563    box-shadow:
564      0 6px 16px rgba(7, 17, 31, 0.16),
565      0 1px 2px rgba(7, 17, 31, 0.12),
566      inset 0 1px 0 rgba(255, 255, 255, 0.92) !important;
567    -webkit-backdrop-filter: blur(16px) saturate(180%) !important;
568    backdrop-filter: blur(16px) saturate(180%) !important;
569  }
570
571  body:is([data-page="services"], [data-page="case-study"], [data-page="work"], [data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-toggle::before,
572  body:is([data-page="services"], [data-page="case-study"], [data-page="work"], [data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-search::before {
573    display: block !important;
574    background: linear-gradient(160deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0) 72%) !important;
575  }
576
577  /* Crisper magnifier glyph so the thin-stroke search icon reads as clearly
578     as the solid hamburger bars in the same cluster. */
579  body:is([data-page="services"], [data-page="case-study"], [data-page="work"], [data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-search-ico svg {
580    stroke-width: 2.4 !important;
581  }
582
583  body:is([data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-brand {
584    display: inline-flex !important;
585    flex: 0 1 auto !important;
586    min-width: 0 !important;
587    max-width: min(36vw, 8.6rem) !important;
588  }
589
590  body:is([data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-brand img {
591    height: 23px !important;
592    width: auto !important;
593    max-width: 100% !important;
594    filter: none !important;
595    opacity: 1 !important;
596  }
597
598  body:is([data-page="knowledge"], [data-page="careers"], [data-page="jobs"]) .ma-mh-brand {
599    max-width: min(60vw, 15rem) !important;
600  }
601
602  body:is([data-page="knowledge"], [data-page="careers"], [data-page="jobs"]) .ma-mh-brand img {
603    height: clamp(36px, 5.2vw, 42px) !important;
604    max-height: 42px !important;
605    object-fit: contain !important;
606  }
607
608  body:is([data-page="services"], [data-page="case-study"], [data-page="work"], [data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-drawer.is-open {
609    display: flex !important;
610  }
611
612  body:is([data-page="services"], [data-page="case-study"], [data-page="work"], [data-page="knowledge"], [data-page="careers"], [data-page="jobs"], [data-page="contact"], [data-page-blog="article"]) .ma-mh-backdrop.is-open {
613    display: block !important;
614  }
615
616  .ma-mh-drawer {
617    padding-top: max(4.35rem, calc(env(safe-area-inset-top, 0px) + 3.65rem)) !important;
618  }
619
620  .ma-mh-drawer-close {
621    position: absolute !important;
622    top: max(0.9rem, calc(env(safe-area-inset-top, 0px) + 0.75rem)) !important;
623    right: max(1rem, calc(env(safe-area-inset-right, 0px) + 0.95rem)) !important;
624    z-index: 5 !important;
625    align-self: auto !important;
626  }
627
628  .ma-mh-drawer > .ma-ssearch--drawer {
629    margin-top: 0 !important;
630  }
631}`,(document.head||document.documentElement).appendChild(R)})();const p=["knowledge","careers","jobs","contact"].includes(c)||l==="article",h=p?n&&n.getAttribute("data-logo-light")||"/assets/black.png":n&&n.getAttribute("data-logo-dark")||"/assets/markage360-white.png",v=n&&n.getAttribute("alt")||"MarkAge360",L=s&&s.getAttribute("href")||"/contact",w="Let's talk",y=R=>{if(!R)return"";const Z=R.getAttribute("data-nav-label");if(Z)return Z.trim();const Q=R.querySelector("[data-nav-item-label]");if(Q)return Q.textContent.trim();const ce=R.querySelector(".nav-mega-col-title");return ce?ce.textContent.trim():(R.textContent||"").trim()},u=R=>({type:"link",href:R.getAttribute("href")||"#",label:y(R),nav:R.getAttribute("data-nav")||"",active:R.classList.contains("is-active")}),g=a?Array.from(a.children).map(R=>{if(R.matches("a"))return u(R);if(R.matches("[data-nav-group]")){const Z=(R.querySelector("[data-nav-resource-label]")?.textContent||R.querySelector(".nav-resource-trigger span")?.textContent||R.textContent||"Resources").trim(),ce=R.getAttribute("data-nav-group")==="services"?Array.from(R.querySelectorAll(".nmv2-pillar-title, [data-nav-mobile-extra]")).map(oe=>({type:"link",href:oe.getAttribute("href")||"#",label:(oe.querySelector("span")?.textContent||oe.textContent||"").trim(),nav:"",active:oe.classList.contains("is-active")})).filter(oe=>oe.label.length>0):Array.from(R.querySelectorAll(".nav-resource-menu a")).map(u).filter(oe=>oe.label.length>0);return ce.length?{type:"group",label:Z,href:R.getAttribute("data-nav-group")==="services"?normalizeServicesIndexUrl(R.getAttribute("data-nav-group-url")):R.getAttribute("data-nav-group-url")||"",active:R.classList.contains("is-active")||ce.some(oe=>oe.active),children:ce}:null}return null}).filter(R=>R&&R.label.length>0):[{type:"link",href:"/about",label:"About",nav:"about"},{type:"link",href:"/services/",label:"Services",nav:"services"},{type:"link",href:"/work",label:"Work",nav:"work"},{type:"link",href:"/careers",label:"Careers",nav:"careers"},{type:"group",label:"Resources",children:[{type:"link",href:"/blogs",label:"360Lens",nav:"knowledge"}]},{type:"link",href:"/contact",label:"Contact",nav:"contact"}],m=document.createElement("header");m.className="ma-mh",m.setAttribute("role","banner"),m.setAttribute("aria-label","Mobile site header");const i=document.createElement("a");i.className="ma-mh-brand",i.href="/",i.setAttribute("aria-label",v+" home");const b=document.createElement("img");b.src=h,b.alt=v,b.decoding="async",b.loading="eager",b.dataset.adaptiveLogo="",b.dataset.logoLight=n&&n.getAttribute("data-logo-light")||"/assets/black.png",b.dataset.logoDark=n&&n.getAttribute("data-logo-dark")||"/assets/markage360-white.png",b.dataset.logoFallback=p?"light":"dark",i.appendChild(b);const A=document.createElement("div");A.className="ma-mh-actions";const f=document.createElement("a");f.className="ma-mh-cta",f.href=L,f.textContent=w,f.setAttribute("data-open-lead-modal-header","");const C=document.createElement("button");C.className="ma-mh-toggle",C.type="button",C.setAttribute("aria-expanded","false"),C.setAttribute("aria-controls","ma-mh-drawer"),C.setAttribute("aria-label","Open menu");const _=document.createElement("span");_.className="ma-mh-toggle-bars",_.setAttribute("aria-hidden","true"),C.appendChild(_);const S=document.createElement("button");S.className="ma-mh-search",S.type="button",S.setAttribute("aria-label","Search the site"),S.setAttribute("aria-haspopup","dialog"),S.innerHTML=`
632      <span class="ma-mh-search-ico" aria-hidden="true">
633        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
634          <circle class="ma-mh-search-lens" cx="11" cy="11" r="6.3"></circle>
635          <line class="ma-mh-search-handle" x1="16.6" y1="16.6" x2="21" y2="21"></line>
636        </svg>
637      </span>`,A.appendChild(f),A.appendChild(S),A.appendChild(C),m.appendChild(i),m.appendChild(A);const q=document.createElement("div");q.className="ma-mh-backdrop",q.setAttribute("aria-hidden","true");const N=document.createElement("div");N.className="ma-mh-drawer",N.id="ma-mh-drawer",N.setAttribute("role","dialog"),N.setAttribute("aria-modal","true"),N.setAttribute("aria-label","Mobile navigation");const D="+12296093010",G=document.createElement("div");G.className="ma-mh-drawer-head ma-mh-nigel";const z=document.createElement("a");z.href="tel:"+D,z.className="ma-mh-nigel-card",z.setAttribute("aria-label","Call Nigel \u2014 MarkAge360 AI customer care"),z.innerHTML=`
638      <span class="ma-mh-nigel-avatar" aria-hidden="true">
639        <span class="ma-mh-nigel-avatar-ring ma-mh-nigel-avatar-ring--1"></span>
640        <span class="ma-mh-nigel-avatar-ring ma-mh-nigel-avatar-ring--2"></span>
641        <img class="ma-mh-nigel-avatar-photo" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-4.0.3&auto=format&fit=facearea&facepad=2.6&w=160&q=80" alt="" loading="lazy" decoding="async" />
642        <span class="ma-mh-nigel-avatar-dot"></span>
643      </span>
644      <span class="ma-mh-nigel-copy">
645        <span class="ma-mh-nigel-name">Nigel</span>
646        <span class="ma-mh-nigel-status">
647          <span class="ma-mh-nigel-status-text">AI customer care</span>
648        </span>
649      </span>
650      <span class="ma-mh-nigel-call" aria-hidden="true">
651        <span class="ma-mh-nigel-call-icon">
652          <svg viewBox="0 0 22 22" fill="none">
653            <path d="M5.4 4.2c.5-.6 1.2-.9 2-.7l2 .4c.7.1 1.2.7 1.2 1.4v2.4c0 .6-.3 1.1-.8 1.3l-1.4.7c.9 2 2.4 3.5 4.4 4.4l.7-1.4c.2-.5.7-.8 1.3-.8h2.4c.7 0 1.3.5 1.4 1.2l.4 2c.1.8-.2 1.5-.8 2-1 .8-2.4 1.2-4 1-3.7-.4-7.3-3-9-6.5-1-1.9-1.2-3.8-.5-5z"
654              fill="currentColor"/>
655          </svg>
656        </span>
657        <span class="ma-mh-nigel-call-label">Call</span>
658      </span>
659    `;const O=document.createElement("button");O.type="button",O.className="ma-mh-drawer-close",O.setAttribute("aria-label","Close menu"),O.innerHTML="&times;",G.appendChild(z),G.appendChild(O);const E=document.createElement("nav");E.className="ma-mh-drawer-nav",E.setAttribute("aria-label","Primary");const x=window.location.pathname.startsWith("/tools/")?"tools":document.body.getAttribute("data-page")||"";E.classList.add("ma-mh-nav--panels");const B=document.createElement("div");B.className="ma-mh-panel ma-mh-panel--root",B.setAttribute("data-mh-panel","root");const j=[],U=(R,Z)=>{B.classList.add("is-pushed"),j.forEach(ce=>ce.classList.toggle("is-active",ce===R)),N.classList.add("ma-mh-has-sub"),Z&&Z.setAttribute("aria-expanded","true"),R.scrollTop=0;const Q=R.querySelector("[data-mh-back]");Q&&window.setTimeout(()=>{try{Q.focus({preventScroll:!0})}catch{Q.focus()}},80)},M=()=>{B.classList.remove("is-pushed"),j.forEach(R=>{R.classList.remove("is-active");const Z=R._mhParentBtn;Z&&Z.setAttribute("aria-expanded","false")}),N.classList.remove("ma-mh-has-sub")},H=()=>M();N._mhResetPanels=H;const F=R=>{const Z=document.createElement("span");return Z.className="ma-mh-row-label",Z.textContent=R,Z};g.forEach(R=>{if(R.type==="group"){const Q=R.label.toLowerCase().replace(/[^a-z0-9]+/g,"-"),ce="ma-mh-panel-"+Q,oe=R.active||R.children?.some(le=>le.nav&&le.nav===x),fe=document.createElement("button");fe.type="button",fe.className="ma-mh-row ma-mh-row--parent",fe.setAttribute("aria-haspopup","true"),fe.setAttribute("aria-controls",ce),fe.setAttribute("aria-expanded","false"),oe&&fe.classList.add("is-active"),fe.appendChild(F(R.label));const ve=document.createElement("span");ve.className="ma-mh-row-fwd",ve.setAttribute("aria-hidden","true"),fe.appendChild(ve),B.appendChild(fe);const me=document.createElement("div");me.className="ma-mh-panel ma-mh-panel--sub",me.id=ce,me.setAttribute("data-mh-panel",Q),me.setAttribute("role","group"),me.setAttribute("aria-label",R.label),me._mhParentBtn=fe;const be=document.createElement("div");be.className="ma-mh-subhead";const pe=document.createElement("button");pe.type="button",pe.className="ma-mh-back",pe.setAttribute("data-mh-back",""),pe.setAttribute("aria-label","Back to main menu"),pe.innerHTML='<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M15 5l-7 7 7 7" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg>';const ke=document.createElement("span");if(ke.className="ma-mh-subhead-title",ke.textContent=R.label,be.appendChild(pe),be.appendChild(ke),me.appendChild(be),R.href){const le=document.createElement("a");le.className="ma-mh-row ma-mh-row--child ma-mh-row--overview",le.href=R.href,le.appendChild(F("Explore all "+R.label)),me.appendChild(le)}(R.children||[]).forEach(le=>{const ye=document.createElement("a");ye.className="ma-mh-row ma-mh-row--child",ye.href=le.href,le.nav&&ye.setAttribute("data-nav",le.nav),(le.active||le.nav&&le.nav===x)&&(ye.classList.add("is-active"),ye.setAttribute("aria-current","page")),ye.appendChild(F(le.label)),me.appendChild(ye)}),pe.addEventListener("click",M),fe.addEventListener("click",()=>U(me,fe)),j.push(me),E.appendChild(me);return}const Z=document.createElement("a");Z.className="ma-mh-row",Z.href=R.href,R.nav&&Z.setAttribute("data-nav",R.nav),(R.active||R.nav&&R.nav===x)&&(Z.classList.add("is-active"),Z.setAttribute("aria-current","page")),Z.appendChild(F(R.label)),B.appendChild(Z)}),E.insertBefore(B,E.firstChild);const V=document.createElement("div");V.className="ma-mh-drawer-foot";const X=document.createElement("button");X.type="button",X.className="ma-mh-letstalk",X.setAttribute("data-open-lead-modal-header",""),X.setAttribute("aria-label","Let's talk \u2014 open the contact form"),X.innerHTML=`
660      <span class="ma-mh-letstalk-label">Let's talk</span>
661      <span class="ma-mh-letstalk-arrow" aria-hidden="true">
662        <svg viewBox="0 0 18 18" fill="none">
663          <path d="M3.5 9h11M9 3.5l5.5 5.5L9 14.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
664        </svg>
665      </span>
666      <span class="ma-mh-letstalk-shine" aria-hidden="true"></span>
667    `,V.appendChild(X);const J=maBuildServicesSearch({variant:"drawer"});N.appendChild(J),N.appendChild(G),N.appendChild(E),N.appendChild(V),document.body.insertBefore(m,document.body.firstChild),document.body.appendChild(q),document.body.appendChild(N);const P=R=>{C.setAttribute("aria-expanded",String(R)),C.setAttribute("aria-label",R?"Close menu":"Open menu"),N.classList.toggle("is-open",R),q.classList.toggle("is-open",R),document.body.classList.toggle("ma-mh-locked",R),!R&&typeof N._mhResetPanels=="function"&&window.setTimeout(()=>{N.classList.contains("is-open")||N._mhResetPanels()},420)},T=()=>P(!0),Y=()=>P(!1);(function(){const Z=re=>String(re??"").replace(/[&<>"]/g,ee=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[ee]),Q=document.createElement("div");Q.className="ma-search",Q.hidden=!0,Q.innerHTML=`
668        <div class="ma-search-scrim" data-search-close></div>
669        <div class="ma-search-sheet" role="dialog" aria-modal="true" aria-label="Search MarkAge360">
670          <div class="ma-search-bar">
671            <span class="ma-search-bar-ico" aria-hidden="true">
672              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
673                <circle cx="11" cy="11" r="6.3"></circle>
674                <line x1="16.6" y1="16.6" x2="21" y2="21"></line>
675              </svg>
676            </span>
677            <input type="search" class="ma-search-field" enterkeyhint="search"
678                   placeholder="Search pages, services, work, articles\u2026"
679                   autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false"
680                   aria-label="Search the website" aria-controls="ma-search-results" />
681            <button class="ma-search-clear" type="button" aria-label="Clear search" hidden>
682              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="6" y1="6" x2="18" y2="18"></line><line x1="18" y1="6" x2="6" y2="18"></line></svg>
683            </button>
684            <button class="ma-search-cancel" type="button" data-search-close>Cancel</button>
685          </div>
686          <div class="ma-search-scroll">
687            <p class="ma-search-status" aria-live="polite"></p>
688            <div class="ma-search-suggest">
689              <span class="ma-search-suggest-label">Jump to</span>
690              <div class="ma-search-chips">
691                <a class="ma-search-chip" href="/services/">Services</a>
692                <a class="ma-search-chip" href="/work">Work</a>
693                <a class="ma-search-chip" href="/about">About</a>
694                <a class="ma-search-chip" href="/blogs">360Lens</a>
695                <a class="ma-search-chip" href="/careers">Careers</a>
696                <a class="ma-search-chip" href="/contact">Contact</a>
697              </div>
698            </div>
699            <div class="ma-search-results" id="ma-search-results" role="listbox" aria-label="Search results"></div>
700            <p class="ma-search-empty" hidden></p>
701          </div>
702        </div>`,document.body.appendChild(Q);const ce=Q.querySelector(".ma-search-sheet"),oe=Q.querySelector(".ma-search-field"),fe=Q.querySelector(".ma-search-clear"),ve=Q.querySelector(".ma-search-status"),me=Q.querySelector(".ma-search-suggest"),be=Q.querySelector(".ma-search-results"),pe=Q.querySelector(".ma-search-empty");let ke=null,le="idle",ye=-1,qe="";const Ae=()=>{le==="ready"||le==="loading"||(le="loading",ve.textContent="Loading the site index\u2026",fetch("/api/search-index",{headers:{Accept:"application/json"}}).then(re=>re.ok?re.json():Promise.reject(new Error("bad status"))).then(re=>{ke=Array.isArray(re.items)?re.items:[],ke.forEach(ee=>{ee._t=String(ee.title||"").toLowerCase(),ee._hay=`${ee._t} ${String(ee.keywords||"").toLowerCase()} ${String(ee.description||"").toLowerCase()} ${String(ee.type||"").toLowerCase()}`}),le="ready",ve.textContent="",Q.classList.contains("is-open")&&Ce(oe.value)}
702).catch(()=>{le="error",ve.textContent="Search is unavailable right now. Please try again."}))},Te={Page:16,Service:12,Industry:8,"Case study":6,Article:4,Career:4},Ne=(re,ee,de)=>{if(de.some(Le=>!re._hay.includes(Le)))return-1;let ue=Te[re.type]||0;const he=re._t;return he===ee?ue+=1200:he.startsWith(ee)?ue+=600:he.includes(ee)&&(ue+=320),de.forEach(Le=>{he.includes(Le)&&(ue+=70,new RegExp(`\\b${Le.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}`).test(he)&&(ue+=30)),String(re.keywords||"").toLowerCase().includes(Le)&&(ue+=22),String(re.description||"").toLowerCase().includes(Le)&&(ue+=10)}),ue-=Math.min(he.length,60)*.15,ue},$e=(re,ee)=>{const de=Z(re),ue=ee.map(he=>he.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).filter(Boolean).sort((he,Le)=>Le.length-he.length).join("|");if(!ue)return de;try{return de.replace(new RegExp(`(${ue})`,"ig"),"<mark>$1</mark>")}catch{return de}},_e=(re,ee)=>{be.innerHTML=re.map((de,ue)=>`
703            <a class="ma-search-hit" href="${Z(de.url)}" role="option" data-idx="${ue}" style="--i:${ue}">
704              <span class="ma-search-hit-body">
705                <span class="ma-search-hit-title">${$e(de.title,ee)}</span>
706                ${de.description?`<span class="ma-search-hit-desc">${$e(de.description,ee)}</span>`:""}
707              </span>
708              <span class="ma-search-hit-type" data-type="${Z(de.type)}">${Z(de.type)}</span>
709            </a>`).join("")},Re=re=>{const ee=be.querySelectorAll(".ma-search-hit");if(!ee.length){ye=-1;return}ye=(re%ee.length+ee.length)%ee.length,ee.forEach((de,ue)=>de.classList.toggle("is-active",ue===ye)),ee[ye].scrollIntoView({block:"nearest"})},Ce=re=>{const ee=String(re||"").trim().toLowerCase();if(qe=ee,fe.hidden=!ee,ye=-1,!ee){me.hidden=!1,be.innerHTML="",pe.hidden=!0,ve.textContent=le==="ready"?"":ve.textContent;return}if(me.hidden=!0,le!=="ready"){Ae();return}const de=ee.split(/\s+/).filter(Boolean),ue=ke.map(he=>({it:he,s:Ne(he,ee,de)})).filter(he=>he.s>=0).sort((he,Le)=>Le.s-he.s).slice(0,24).map(he=>he.it);if(!ue.length){be.innerHTML="",pe.hidden=!1,pe.textContent=`No matches for \u201C${re.trim()}\u201D.`,ve.textContent="";return}pe.hidden=!0,_e(ue,de),ve.textContent=`${ue.length} result${ue.length===1?"":"s"}`};let Ee;oe.addEventListener("input",()=>{window.clearTimeout(Ee),Ee=window.setTimeout(()=>Ce(oe.value),110)}),fe.addEventListener("click",()=>{oe.value="",Ce(""),oe.focus()});const De=()=>{Y(),Q.hidden=!1,document.body.classList.add("ma-search-open"),requestAnimationFrame(()=>{Q.classList.add("is-open"),S.setAttribute("aria-expanded","true"),oe.focus({preventScroll:!0})}),Ae(),Ce(oe.value)},Me=()=>{Q.classList.remove("is-open"),S.setAttribute("aria-expanded","false"),document.body.classList.remove("ma-search-open");const re=()=>{Q.hidden=!0,Q.removeEventListener("transitionend",ee)},ee=de=>{(de.target===Q||de.target===ce)&&re()};Q.addEventListener("transitionend",ee),window.setTimeout(re,360)};S.addEventListener("click",De),Q.querySelectorAll("[data-search-close]").forEach(re=>re.addEventListener("click",ee=>{ee.preventDefault(),Me()})),Q.addEventListener("click",re=>{re.target.closest(".ma-search-hit, .ma-search-chip")&&Me()}),Q.addEventListener("keydown",re=>{if(re.key==="Escape")re.preventDefault(),Me(),S.focus();else if(re.key==="ArrowDown")re.preventDefault(),Re(ye+1);else if(re.key==="ArrowUp")re.preventDefault(),Re(ye-1);else if(re.key==="Enter"){const ee=be.querySelectorAll(".ma-search-hit"),de=ye>=0?ee[ye]:ee[0];de&&(re.preventDefault(),de.click())}})})(),C.addEventListener("click",()=>{P(C.getAttribute("aria-expanded")!=="true")}),O.addEventListener("click",Y),q.addEventListener("click",Y),E.querySelectorAll("a").forEach(R=>R.addEventListener("click",Y)),z.addEventListener("click",()=>{window.setTimeout(Y,0)});const K=R=>{R?.preventDefault?.(),Y(),window.setTimeout(()=>{if(typeof window.openLeadModalDirectGlobal=="function"){window.openLeadModalDirectGlobal();return}document.querySelector("[data-open-lead-modal-header], [data-open-lead-modal]")?.click()},220)};f.addEventListener("click",K),X.addEventListener("click",K),document.addEventListener("keydown",R=>{R.key==="Escape"&&N.classList.contains("is-open")&&Y()});let ae=window.scrollY||0,ie=!1;const ge=()=>{ie||(ie=!0,window.requestAnimationFrame(()=>{const R=window.scrollY||0,Z=R-ae;N.classList.contains("is-open")||(R<24?m.classList.remove("is-scroll-hidden"):Z>6?m.classList.add("is-scroll-hidden"):Z<-6&&m.classList.remove("is-scroll-hidden")),ae=R,ie=!1}))};window.addEventListener("scroll",ge,{passive:!0})})}(),function(){const e=document.querySelector("[data-careers-section]"),t=e?.querySelector("[data-careers-count]");if(!e||!t)return;const r=e.querySelector("[data-careers-stamp]"),a=e.querySelector("[data-careers-count-label]"),o=e.querySelector("[data-careers-title-reel]"),n=p=>String(Math.max(0,Number(p)||0)).padStart(2,"0"),s=["Future roles"],c=p=>String(p||"").replace(/\s+/g," ").trim(),l=p=>{if(!o)return;const h=Array.from(new Set((Array.isArray(p)?p:[]).map(w=>
709c(w?.title)).filter(Boolean))),v=h.length?h:s,L=v.length>1?[...v,v[0]]:v;o.innerHTML=L.map(w=>`<li>${escapeHtmlText(w)}</li>`).join(""),o.style.setProperty("--careers-reel-count",String(v.length)),o.style.setProperty("--careers-reel-duration",`${Math.max(4,v.length*2.4).toFixed(1)}s`),o.style.animationPlayState=v.length>1?"running":"paused",o.setAttribute("aria-label",v.join(", "))},d=p=>{const h=Array.isArray(p)?p.filter(w=>w&&w.endedAt!==!0):[],v=h.length,L=n(v);t.setAttribute("data-target",String(v)),t.dataset.careersCounterAnimated==="true"&&(t.textContent=L),r&&(r.textContent=`No.${L} / 26`),a&&(a.textContent=v===1?"open role, across teams.":"open roles, across teams."),l(h)};fetch("/api/jobs/public",{headers:{Accept:"application/json"}}).then(p=>p.ok?p.json():null).then(p=>d(p?.jobs)).catch(()=>{})}(),function(){const e=document.querySelectorAll("[data-careers-count]");if(!e.length)return;const t=window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;function r(o){const n=parseInt(o.getAttribute("data-target")||"0",10);if(!Number.isFinite(n))return;if(t){o.textContent=String(n).padStart(2,"0"),o.dataset.careersCounterAnimated="true";return}const s=900,c=performance.now(),l=parseInt(o.textContent,10)||0,d=n-l;let p=l;function h(v){const L=Math.min(1,(v-c)/s),w=1-Math.pow(1-L,3),y=Math.round(l+d*w);y!==p&&(o.textContent=String(y).padStart(2,"0"),o.classList.add("is-tick"),requestAnimationFrame(()=>o.classList.remove("is-tick")),p=y),L<1?requestAnimationFrame(h):(o.textContent=String(n).padStart(2,"0"),o.dataset.careersCounterAnimated="true")}requestAnimationFrame(h)}if(!("IntersectionObserver"in window)){e.forEach(r);return}const a=new IntersectionObserver(o=>{o.forEach(n=>{n.isIntersecting&&(r(n.target),a.unobserve(n.target))})},{threshold:.45});e.forEach(o=>{o.textContent="0",a.observe(o)})}(),function(){const e=()=>{const t=document.querySelector(".ma-footer-partners");if(!t||t.dataset.mobileWrapped==="true"||!window.matchMedia("(max-width: 640px)").matches||document.body.dataset.page==="home")return;const a=document.createElement("details");a.className="ma-footer-partners-collapse";const o=document.createElement("summary");o.className="ma-footer-partners-summary",o.innerHTML=`
710      <span class="ma-footer-partners-summary-label">Partners &amp; credentials</span>
711      <span class="ma-footer-partners-summary-caret" aria-hidden="true"></span>
712    `,t.parentNode.insertBefore(a,t),a.appendChild(o),a.appendChild(t),t.dataset.mobileWrapped="true"};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}(),function(){const e=()=>{const t=document.querySelector(".ma-footer");if(!t||t.dataset.mobileCollapseWrapped==="true"||!window.matchMedia("(max-width: 640px)").matches)return;const a=t.querySelector(".ma-footer-shell"),o=t.querySelector(".ma-footer-grid"),n=o&&o.querySelector(".ma-footer-col-brand"),s=n&&n.querySelector(".ma-footer-brand");if(!a||!o||!n||!s)return;const c=o.querySelector(":scope > .ma-footer-collapse");if(c){for(;c.firstChild;)o.insertBefore(c.firstChild,c);c.remove()}const l=o.querySelector(":scope > .ma-footer-collapse-toggle");l&&l.remove();const d=document.createElement("div");d.className="ma-footer-collapse",d.id="ma-footer-collapse";const p=document.createElement("div");p.className="ma-footer-brand-extras";let h=s.nextSibling;for(;h;){const w=h.nextSibling;p.appendChild(h),h=w}p.children.length&&d.appendChild(p),Array.from(o.children).filter(w=>w!==n).forEach(w=>d.appendChild(w));let v=o.nextSibling;for(;v;){const w=v.nextSibling;d.appendChild(v),v=w}const L=document.createElement("button");if(L.type="button",L.className="ma-footer-collapse-toggle",L.setAttribute("aria-expanded","false"),L.setAttribute("aria-controls","ma-footer-collapse"),L.innerHTML=`
713      <span class="ma-footer-collapse-toggle-label">View more</span>
714      <span class="ma-footer-collapse-toggle-caret" aria-hidden="true"></span>
715    `,document.body.dataset.page==="home"){const w=d.querySelector(".ma-footer-partners");if(w){const y=document.createElement("div");y.className="ma-footer-partners-band";const u=document.createElement("span");u.className="ma-footer-partners-band-label",u.textContent="Partners & credentials",y.appendChild(u),y.appendChild(w),n.appendChild(y)}}n.appendChild(L),a.appendChild(d),t.classList.add("is-collapsible"),L.addEventListener("click",()=>{const w=t.classList.toggle("is-collapse-open");L.setAttribute("aria-expanded",String(w)),L.querySelector(".ma-footer-collapse-toggle-label").textContent=w?"View less":"View more"}),t.dataset.mobileCollapseWrapped="true"};window.ma360ApplyMobileFooterCollapse=e,document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}(),function(){const t=window.matchMedia("(min-width: 768px) and (max-width: 1023px)");let r=!1,a=null;const o=()=>{typeof a=="function"&&a(),a=null,r=!1},n=()=>{const c=document.querySelector('body[data-page="home"] .home-magic-bento-grid.card-grid');if(!c||r||c.classList.contains("home-stack-redesign"))return;r=!0;let l=0;const d=()=>!!c.querySelector(".home-magic-bento-card--dup"),p=()=>{l=d()?Math.max(1,Math.round(c.scrollWidth/2)):0}
715;p(),window.setTimeout(p,250),window.setTimeout(p,1200);const h=()=>{l<=0||(c.scrollLeft>=l?c.scrollLeft-=l:c.scrollLeft<0&&(c.scrollLeft+=l))},v=.55,L=1e9;let w=!1,y=!1,u=0,g=0,m=0,i=0,b=0;const A=E=>{const x=b?Math.min(40,E-b):16;b=E;const B=performance.now();d()&&!w&&B>=m&&(c.scrollLeft+=v*(x/16),h()),i=requestAnimationFrame(A)};i=requestAnimationFrame(A);const f=E=>{m=performance.now()+E},C=E=>{if(E.pointerType==="touch"){f(5e3);return}w=!0,y=!1,u=E.clientX,g=c.scrollLeft,c.classList.add("is-bento-dragging");try{c.setPointerCapture(E.pointerId)}catch{}},_=E=>{if(!w)return;const x=E.clientX-u;Math.abs(x)>4&&(y=!0),c.scrollLeft=g-x,h()},S=E=>{if(w){w=!1,c.classList.remove("is-bento-dragging"),f(2200);try{c.releasePointerCapture(E.pointerId)}catch{}}},q=E=>{y&&(E.preventDefault(),E.stopPropagation(),y=!1)},N=()=>{w||h()},D=()=>{m=performance.now()+L},G=()=>{f(400)},z=()=>f(5e3),O=()=>p();c.addEventListener("pointerdown",C),c.addEventListener("pointermove",_),c.addEventListener("pointerup",S),c.addEventListener("pointercancel",S),c.addEventListener("click",q,!0),c.addEventListener("scroll",N,{passive:!0}),c.addEventListener("mouseenter",D),c.addEventListener("mouseleave",G),c.addEventListener("touchstart",z,{passive:!0}),window.addEventListener("resize",O),a=()=>{cancelAnimationFrame(i),c.removeEventListener("pointerdown",C),c.removeEventListener("pointermove",_),c.removeEventListener("pointerup",S),c.removeEventListener("pointercancel",S),c.removeEventListener("click",q,!0),c.removeEventListener("scroll",N),c.removeEventListener("mouseenter",D),c.removeEventListener("mouseleave",G),c.removeEventListener("touchstart",z),window.removeEventListener("resize",O),c.classList.remove("is-bento-dragging")}},s=()=>{t.matches?n():o()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",s,{once:!0}):s(),typeof t.addEventListener=="function"?t.addEventListener("change",s):typeof t.addListener=="function"&&t.addListener(s)}(),function(){const e=".ma-mh, .site-header, header";let t=document.querySelector('meta[name="theme-color"]:not([media])');t||(t=document.createElement("meta"),t.setAttribute("name","theme-color"),document.head.appendChild(t)),document.querySelectorAll('meta[name="theme-color"][media]').forEach(h=>h.remove());const r=h=>Math.max(0,Math.min(255,Math.round(h))).toString(16).padStart(2,"0"),a=h=>{if(!h)return null;const v=h.match(/rgba?\(([^)]+)\)/i);if(v){const w=v[1].split(/[,\s/]+/).map(i=>parseFloat(i.trim())),[y,u,g,m=1]=w;return m===0?null:`#${r(y)}${r(u)}${r(g)}`}const L=h.match(/color\(\s*srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)/i);return L?`#${r(+L[1]*255)}${r(+L[2]*255)}${r(+L[3]*255)}`:h},o=h=>!h||h==="transparent"||/rgba?\([^)]*[,\s]\s*0(\.0+)?\s*\)\s*$/i.test(h)||/\/\s*0(\.0+)?\s*\)/.test(h);function n(){const h=Math.round(window.innerWidth/2);for(const L of[84,120,168,220]){const w=document.elementsFromPoint(h,L)||[];for(const y of w){if(y===document.documentElement||y===document.body)break;if(y.closest&&y.closest(e))continue;const u=getComputedStyle(y).backgroundColor;if(!o(u))return u}}const v=getComputedStyle(document.body).backgroundColor;return o(v)?"#ffffff":v}let s="";function c(){const h=a(n());h&&h!==s&&(s=h,t.setAttribute("content",h))}let l=!1;const d=()=>{l||(l=!0,requestAnimationFrame(()=>{l=!1,c()}))},p=()=>{let h=0;c();const v=setInterval(()=>{c(),++h>=16&&clearInterval(v)},280)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",p,{once:!0}):p(),window.addEventListener("load",c),document.addEventListener("scroll",d,{passive:!0}),window.addEventListener("resize",d,{passive:!0})}(),function(){if(!document.body||document.body.dataset.page!=="home")return;const e="https://www.youtube.com/@markage360official",t='<svg viewBox="0 0 16 16" aria-hidden="true"><path d="M4 2.6v10.8l9-5.4z"/></svg>',r='<svg viewBox="0 0 16 16" aria-hidden="true"><rect x="4" y="3" width="3" height="10" rx="1"/><rect x="9" y="3" width="3" height="10" rx="1"/></svg>',a=window.matchMedia("(max-width: 1024px)"),o=4500;let n=null,s=[],c=[],l=null,d=null,p=null,h=!0,v=!1,L=null,w=!1,y=0,u=0,g=0,m=0;const i=U=>{const M=n.getBoundingClientRect(),H=U.getBoundingClientRect(),F=H.left-M.left+n.scrollLeft+H.width/2;return Math.max(0,F-n.clientWidth/2)},b=()=>{const U=n.scrollLeft+n.clientWidth/2;let M=0,H=1/0;const F=n.getBoundingClientRect();
715return s.forEach((V,X)=>{const J=V.getBoundingClientRect(),P=J.left-F.left+n.scrollLeft+J.width/2,T=Math.abs(P-U);T<H&&(H=T,M=X)}),M},A=U=>{s[U]&&(g=0,_(0),n.scrollTo({left:i(s[U]),behavior:"smooth"}))},f=()=>{const U=b();U!==m&&(m=U,g=0,_(0)),c.forEach((M,H)=>M.classList.toggle("is-active",H===U))},C=()=>{const U=(b()+1)%s.length;A(U)},_=U=>{if(!d)return;const M=Math.max(0,Math.min(1,Number(U)||0));d.style.setProperty("--svc-progress",M.toFixed(4))},S=()=>{y&&cancelAnimationFrame(y),y=0,u=0},q=U=>{u||(u=U);const M=U-u;u=U,f(),h&&!v&&!document.hidden&&s.length>1&&(g+=M,g>=o?(g=0,_(1),C()):_(g/o)),d&&(d.dataset.paused=h&&!v&&!document.hidden?"false":"true"),y=requestAnimationFrame(q)},N=()=>{S(),m=b(),g=0,_(0),y=requestAnimationFrame(q)},D=()=>{G(),N()},G=()=>{p&&(clearInterval(p),p=null),S()},z=U=>{h=U,l&&(l.innerHTML=U?r:t,l.setAttribute("aria-label",U?"Pause":"Play")),d&&(d.dataset.paused=U?"false":"true")};function O(){G(),document.querySelectorAll(".home-svc-film, .home-svc-controls").forEach(U=>U.remove()),n=null,s=[],c=[],d=null,l=null}function E(U,M){const H=U.closest(".home-editorial-shell, .home-editorial-frame")?.querySelector(".home-magic-bento-intro");if(H&&!H.querySelector(".home-svc-film")){const F=document.createElement("a");F.className="home-svc-film",F.href=e,F.target="_blank",F.rel="noreferrer noopener",F.innerHTML='Watch the film <span class="home-svc-film-icon"><svg viewBox="0 0 10 10" aria-hidden="true"><path d="M2 1l6 4-6 4z"/></svg></span>',H.appendChild(F)}if(n=M,s=Array.from(M.children),d=M.parentElement.querySelector(".home-svc-controls"),d&&Number(d.dataset.count)!==s.length&&(d.remove(),d=null),!d){d=document.createElement("div"),d.className="home-svc-controls",d.dataset.count=String(s.length),d.style.setProperty("--svc-progress","0");const F=document.createElement("div");F.className="home-svc-dots",s.forEach((V,X)=>{const J=document.createElement("button");J.type="button",J.className="home-svc-dot"+(X===0?" is-active":""),J.setAttribute("aria-label","Go to slide "+(X+1)),J.addEventListener("click",()=>{A(X)}),F.appendChild(J)}),l=document.createElement("button"),l.type="button",l.className="home-svc-play",l.addEventListener("click",()=>z(!h)),d.append(F,l),M.insertAdjacentElement("afterend",d)}if(c=Array.from(d.querySelectorAll(".home-svc-dot")),l=d.querySelector(".home-svc-play"),z(!0),M.dataset.svcWired!=="1"){M.dataset.svcWired="1";const F=()=>{w||(w=!0,requestAnimationFrame(()=>{w=!1,f()}))};M.addEventListener("scroll",F,{passive:!0});const V=()=>{v=!0,L&&clearTimeout(L)},X=()=>{L&&clearTimeout(L),L=setTimeout(()=>{v=!1},900)};M.addEventListener("pointerdown",V,{passive:!0}),M.addEventListener("touchstart",V,{passive:!0}),M.addEventListener("wheel",()=>{V(),X()},{passive:!0}),M.addEventListener("pointerup",X,{passive:!0}),M.addEventListener("touchend",X,{passive:!0}),window.addEventListener("blur",()=>{v=!1})}D(),f()}function x(){const U=document.querySelector(".home-stack-redesign"),M=U?U.querySelector(".home-stack-list"):null;if(!a.matches||!M||!M.children.length){O();return}n===M&&s.length===M.children.length&&d&&d.isConnected||E(U,M)}const B=()=>{x()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",B,{once:!0}):B(),[400,1e3,2e3].forEach(U=>setTimeout(B,U)),window.addEventListener("load",B),(a.addEventListener?a.addEventListener.bind(a,"change"):a.addListener.bind(a))(B),window.addEventListener("resize",()=>{clearTimeout(window.__svcResizeT),window.__svcResizeT=setTimeout(B,200)});const j=document.querySelector(".home-editorial-shell");j&&window.MutationObserver&&new MutationObserver(()=>{clearTimeout(window.__svcMoT),window.__svcMoT=setTimeout(B,120)}).observe(j,{childList:!0,subtree:!0})}(),function e(){if(!document.body){document.addEventListener("DOMContentLoaded",e,{once:!0});return}if(document.querySelector(".ma-totop"))return;var t="http://www.w3.org/2000/svg",r=window.matchMedia("(prefers-reduced-motion: reduce)").matches,a=document.createElement("button");a.type="button",a.className="ma-totop",a.setAttribute("aria-label","Scroll back to top");var o=document.createElementNS(t,"svg");o.setAttribute("class","ma-totop-liquid"),o.setAttribute("viewBox","0 0 100 100"),o.setAttribute("preserveAspectRatio","none"),o.setAttribute("aria-hidden","true");var n=document.createElementNS(t,"defs"),s=document.createElementNS(t,"clipPath");s.setAttribute("id","ma-totop-clip");var c=document.createElementNS(t,"circle");c.setAttribute("cx","50"),c.setAttribute("cy","50"),c.setAttribute("r","50"),s.appendChild(c);var l=document.createElementNS(t,"linearGradient");l.setAttribute("id","ma-totop-grad"),l.setAttribute("x1","0"),l.setAttribute("y1","0"),l.setAttribute("x2","0"),l.setAttribute("y2","1"),[["0","#62a0ff"],["0.5","#2f7ef7"],["1","#1c5fd1"]].forEac
715h(function(E){var x=document.createElementNS(t,"stop");x.setAttribute("offset",E[0]),x.setAttribute("stop-color",E[1]),l.appendChild(x)}),n.appendChild(s),n.appendChild(l),o.appendChild(n);var d=document.createElementNS(t,"g");d.setAttribute("clip-path","url(#ma-totop-clip)");var p=document.createElementNS(t,"path");p.setAttribute("fill","url(#ma-totop-grad)");var h=document.createElementNS(t,"path");h.setAttribute("fill","none"),h.setAttribute("stroke","rgba(255,255,255,0.6)"),h.setAttribute("stroke-width","1.4"),h.setAttribute("stroke-linecap","round"),h.setAttribute("opacity","0"),d.appendChild(p),d.appendChild(h),o.appendChild(d);var v=document.createElementNS(t,"svg");v.setAttribute("class","ma-totop-arrow"),v.setAttribute("viewBox","0 0 24 24"),v.setAttribute("fill","none"),v.setAttribute("aria-hidden","true");var L=document.createElementNS(t,"path");L.setAttribute("d","M12 18.6 L12 6.2 M6.4 11.4 L12 5.6 L17.6 11.4"),L.setAttribute("stroke","currentColor"),L.setAttribute("stroke-width","2.2"),L.setAttribute("stroke-linecap","round"),L.setAttribute("stroke-linejoin","round"),v.appendChild(L),a.appendChild(o),a.appendChild(v),document.body.appendChild(a);var w=function(E){if(!(!E||!window.MutationObserver)){var x=function(){a.classList.toggle("chat-open",E.classList.contains("is-open"))};new MutationObserver(x).observe(E,{attributes:!0,attributeFilter:["class"]}),x()}},y=document.querySelector(".ma-chat-orb");y?w(y):window.addEventListener("ma0:orb-ready",function(E){w(E.detail&&E.detail.orb||document.querySelector(".ma-chat-orb"))},{once:!0});function u(E,x,B,j){for(var U=100-E*100,M=14,H="",F=0;F<=M;F++){var V=F/M*100,X=F/M*Math.PI*2,J=U+Math.sin(X*1.5+x)*B+Math.sin(X*3.1+x*1.6)*B*.45;H+=(F===0?"M ":" L ")+V.toFixed(2)+" "+J.toFixed(2)}return j||(H+=" L 100 100 L 0 100 Z"),H}function g(){var E=document.documentElement.scrollHeight-window.innerHeight;if(E<=0)return 0;var x=window.scrollY/E;return x<0?0:x>1?1:x}var m=!1;function i(E){E!==m&&(m=E,a.classList.toggle("is-visible",E))}var b=g(),A=!1;if(r){var f=function(E){p.setAttribute("d",u(E,0,0,!1)),a.classList.toggle("is-filled",E>.46)},C=function(){b=g(),A?(f(b),b<=.02&&(A=!1,i(!1))):(i(b>.5),f(b))};window.addEventListener("scroll",C,{passive:!0}),window.addEventListener("resize",C,{passive:!0}),a.addEventListener("click",function(){A=!0,window.scrollTo(0,0),C()}),C();return}var _=b,S=0,q=0,N=!1,D=0;function G(){N||(N=!0,D=0,requestAnimationFrame(z))}function z(E){D||(D=E);var x=Math.min(40,E-D);D=E;var B=x/16.6667;A?_<.02&&b<.5?(A=!1,i(!1)):i(!0):i(b>.5);var j=(b-_)*.16;S=(S+j)*Math.pow(.8,B),_+=S*B,_<0&&(_=0,S<0&&(S*=-.3)),_>1.12&&(_=1.12,S*=-.3);var U=Math.min(8,Math.abs(S)*200)+(_>.04?.5:0);q+=(.045+Math.abs(S)*1.1)*B;var M=_<0?0:_>1?1:_;p.setAttribute("d",u(M,q,U,!1)),M>.03&&U>.25?(h.setAttribute("d",u(M,q,U,!0)),h.setAttribute("opacity",Math.min(.55,U/8*.55).toFixed(2))):h.setAttribute("opacity","0"),a.classList.toggle("is-filled",M>.46);var H=m||A||_>.002||Math.abs(S)>8e-4;H?requestAnimationFrame(z):N=!1}var O=b;window.addEventListener("scroll",function(){var E=g();A&&E>O+.01&&(A=!1),O=E,b=E,G()},{passive:!0}),window.addEventListener("resize",function(){b=g(),O=b,G()},{passive:!0}),["wheel","touchstart","keydown"].forEach(function(E){window.addEventListener(E,function(){A&&(A=!1)},{passive:!0})}),a.addEventListener("click",function(){A=!0,window.scrollTo({top:0,behavior:"smooth"}),G()}),G()}(),function e(){if(!document.body){document.addEventListener("DOMContentLoaded",e,{once:!0});return}var t=document.querySelector(".ma-chat-orb");if(!t){window.addEventListener("ma0:orb-ready",function(){e()},{once:!0});return}var r=window.matchMedia("(pointer: fine)").matches,a=2200,o=155,n=205,s=40,c=48,l=!1,d=!1,p=null,h=0,v=window.scrollY,L=0,w=0,y=function(){return window.performance?performance.now():Date.now()};function u(){document.body.classList.remove("corner-idle")}function g(){l||d||t.classList.contains("is-open")||document.body.classList.add("corner-idle")}function m(f){u(),clearTimeout(p);var C=f||a;h=y()+C,!l&&!d&&(p=setTimeout(g,C))}if(setTimeout(function(){!l&&!d&&!t.classList.contains("is-open")&&document.body.classList.add("corner-idle")},1500),r){var i=0,b=0,A=0;window.addEventListener("pointermove",function(f){b=f.clientX,A=f.clientY,!i&&(i=requestAnimationFrame(function(){i=0;var C=t.getBoundingClientRect(),_=C.left+C.width/2,S=C.top+C.height/2,q=b-_,N=A-S,D=Math.sqrt(q*q+N*N);!l&&D<o?(l=!0,u(),clearTimeout(p)):l&&D>n&&(l=!1,m(1100))}))},{passive:!0})}window.addEventListener("scroll",function(){var f=window.scrollY,C=f-v;v=f,C<0?(L-=C,w=0):C>0&&(w+=C,L=0),L>=s?(L=0,m(2400)):w>=c&&!l&&!d&&(w=0,y()>=h&&g())},{passive:!0}),["focusin","focusout"].forEach(function(f){document.addEventListener(f,function(C){var _=C.target,S=_&&t.contains(_)||_&&_.closest&&_.closest(".ma-totop");S&&(f==="focusin"?(d=!0,u(),clearTimeout(p)):(d=!1,m(1500)))})}),window.MutationObserver&&new MutationObserver(function(){t.classList.contains("is-open")?(u(),clearTimeout(p)):m(2400)}).observe(t,{attributes:!0,attributeFilter:["class"]})}(),function(){const t=l=>String(l??"").replace(/[&<>"']/g,d=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[d]),r=window.maCampaignForms=window.maCampaignForms||{};document.querySelectorAll("script[data-ma-campaign-forms]").forEach(l=>{try{Object.assign(r,JSON.parse(l.textContent||"{}"))}catch{}});let a=null,o=null;const n=l=>{const d=`cf_${l.id}`,p=l.required?" required":"",h=l.required?' <span class="mcf-req" aria-hidden="true">*</span>':"",v=t(l.placeholder||"");let L;if(l.type==="textarea")L=`<textarea id="${d}" name="${t(l.id)}" rows="3" placeholder="${v}"${p}></textarea>`;else if(l.type==="select")L=`<select id="${d}" name="${t(l.id)}"${p}><option value="">Select\u2026</option>${(l.options||[]).map(w=>`<option value="${t(w)}">${t(w)}</option>`).join("")}</select>`;else{const w=l.type==="email"?"email":l.type==="tel"?"tel":"text";L=`<input id="${d}" name="${t(l.id)}" type="${w}" placeholder="${v}"${p} />`}return`<label class="mcf-field"><span class="mcf-label">${t(l.label)}${h}</span>${L}</label>`};function s(){if(!a)return;const l=a;if(a=null,l.classList.remove("is-open"),document.body.classList.remove("mcf-lock"),setTimeout(()=>l.remove(),220),o&&o.focus)try{o.focus()}catch{}}function c(l,d){a&&s(),o=d||document.activeElement;const p=Array.isArray(l.questions)?l.questions:[];a=document.createElement("div"),a.className="mcf-overlay",a.innerHTML=`
716      <div class="mcf-dialog" role="dialog" aria-modal="true" aria-label="${t(l.headline||"Get the guide")}">
717        <button type="button" class="mcf-close" aria-label="Close">&times;</button>
718        <div class="mcf-body" data-mcf-body>
719          ${l.eyebrow?`<span class="mcf-eyebrow">${t(l.eyebrow)}</span>`:""}
720          <h2 class="mcf-title">${t(l.headline||"Get instant access")}</h2>
721          <form class="mcf-form" novalidate>
722            <label class="mcf-field"><span class="mcf-label">Name <span class="mcf-req" aria-hidden="true">*</span></span><input name="__name" type="text" autocomplete="name" required /></label>
723            <label class="mcf-field"><span class="mcf-label">Email <span class="mcf-req" aria-hidden="true">*</span></span><input name="__email" type="email" autocomplete="email" required /></label>
724            ${p.map(n).join("")}
725            <p class="mcf-error" data-mcf-error hidden></p>
726            <button type="submit" class="mcf-submit">${t(l.ctaLabel||"Submit")}</button>
727            <p class="mcf-fineprint">We respect your privacy. Your details are never shared.</p>
728          </form>
729        </div>
730      </div>`,document.body.appendChild(a),document.body.classList.add("mcf-lock"),requestAnimationFrame(()=>a.classList.add("is-open"));const h=a.querySelector(".mcf-form"),v=a.querySelector("[data-mcf-error]");
730a.querySelector(".mcf-close").addEventListener("click",s),a.addEventListener("mousedown",y=>{y.target===a&&s()}),setTimeout(()=>{const y=h.querySelector("input,select,textarea");y&&y.focus()},60);const L=y=>(v.textContent=y,v.hidden=!1,!1),w=y=>{const u=a.querySelector("[data-mcf-body]"),g=y&&y.fulfillment||{type:l.fulfillment||"message",url:l.destinationLink||""},m=g.url||l.destinationLink||"",i=y&&y.successTitle||l.successTitle||"You're all set.",b=y&&y.successMessage||l.successMessage||"Check your inbox \u2014 your resource is on its way.";let A="";g.type==="url"&&m?A=`<a class="mcf-submit mcf-deliver" href="${t(m)}">Continue &rarr;</a>`:g.type==="pdf"&&m&&(A=`<a class="mcf-submit mcf-deliver" href="${t(m)}" target="_blank" rel="noopener" download>Download now &rarr;</a>`),u.innerHTML=`<div class="mcf-success"><div class="mcf-check" aria-hidden="true">&#10003;</div><h2 class="mcf-title">${t(i)}</h2><p class="mcf-success-msg">${t(b)}</p>${A}</div>`,g.type==="url"&&m?setTimeout(()=>{window.location.href=m},1500):g.type==="pdf"&&m&&setTimeout(()=>{window.open(m,"_blank","noopener")},900)};h.addEventListener("submit",async y=>{y.preventDefault(),v.hidden=!0;const u=new FormData(h),g=String(u.get("__name")||"").trim(),m=String(u.get("__email")||"").trim();if(!g)return L("Please enter your name.");if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(m))return L("Please enter a valid email address.");const i=p.map(f=>({id:f.id,value:String(u.get(f.id)||"").trim()}));for(const f of p){const C=i.find(_=>_.id===f.id);if(f.required&&(!C||!C.value))return L(`Please answer: ${f.label}`)}const b=h.querySelector(".mcf-submit"),A=b.textContent;b.disabled=!0,b.textContent="Sending\u2026";try{let f="";try{const q=document.querySelector("script[data-ma-campaign-eligible]")||document.querySelector("script[data-bj-config]");q&&(f=JSON.parse(q.textContent||"{}").postId||"")}catch{}const C={};try{const q=new URLSearchParams(window.location.search);["source","medium","campaign","term","content"].forEach(N=>{const D=q.get(`utm_${N}`);D&&(C[N]=String(D).slice(0,120))})}catch{}const _=await fetch(`/api/campaigns/${encodeURIComponent(l.id)}/submit`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:g,email:m,answers:i,postId:f,path:window.location.pathname,referrer:String(document.referrer||"").slice(0,300),utm:C,sessionId:(()=>{try{return window.localStorage.getItem("ma360.sid.v1")||""}catch{return""}})(),visitor:(()=>{try{return window.maVisitorPayload?window.maVisitorPayload():void 0}catch{return}})()})}),S=await _.json().catch(()=>({}));if(!_.ok)throw new Error(S.error||"Something went wrong. Please try again.");try{document.dispatchEvent(new CustomEvent("ma:campaign-submitted",{detail:{campaignId:l.id}}))}catch{}w(S)}catch(f){b.disabled=!1,b.textContent=A,L(f.message||"Something went wrong. Please try again.")}})}document.addEventListener("click",l=>{const d=l.target.closest("[data-campaign-form]");if(!d)return;const p=d.getAttribute("data-campaign-form"),h=r[p];h&&(l.preventDefault(),l.stopPropagation(),c(h,d))},!0),document.addEventListener("keydown",l=>{l.key==="Escape"&&a&&s()})}(),function(){"use strict";const e=a=>{if(!a||a.nodeName!=="VIDEO"||a.dataset.noDownload==="1")return;a.dataset.noDownload="1";const o=(a.getAttribute("controlsList")||"").split(/\s+/).filter(Boolean);o.includes("nodownload")||o.push("nodownload"),a.setAttribute("controlsList",o.join(" ")),a.addEventListener("contextmenu",n=>n.preventDefault())},t=a=>{!a||a.nodeType!==1||(a.nodeName==="VIDEO"&&e(a),a.querySelectorAll&&a.querySelectorAll("video").forEach(e))},r=()=>{t(document.body||document.documentElement),new MutationObserver(a=>{for(const o of a)o.addedNodes&&o.addedNodes.forEach(t)}).observe(document.documentElement,{childList:!0,subtree:!0})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r):r()}(),function(){"use strict";const e=()=>{if(document.body?.dataset?.page!=="home")return;const t=document.querySelector(".home-client-results.crx-cinema");if(!t||t.querySelector(".crx-backdrop"))return;const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=window.matchMedia("(min-width: 1025px)"),o=window.matchMedia("(hover: hover) and (pointer: fine)"),n=document.createElement("div");
730n.className="crx-backdrop",n.setAttribute("aria-hidden","true"),n.innerHTML='<div class="crx-aurora"></div><div class="crx-slot"></div><div class="crx-slot"></div><div class="crx-grain"></div><div class="crx-vignette"></div>',t.prepend(n);const s=[...n.querySelectorAll(".crx-slot")];let c=0,l=!1,d=null,p=0;const h=new Map,v=H=>String(H||"").normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),L="/videos/client-results/",w=H=>new Promise(F=>{const V=document.createElement("video");V.muted=!0,V.loop=!0,V.playsInline=!0,V.preload="auto",V.addEventListener("loadedmetadata",()=>F(V),{once:!0}),V.addEventListener("error",()=>F(null),{once:!0}),V.src=H}),y=H=>new Promise(F=>{const V=new Image;V.onload=()=>F(V),V.onerror=()=>F(null),V.src=H}),u=new Set([]),g=H=>!H||!u.has(H)?Promise.resolve(null):(h.has(H)||h.set(H,w(`${L}${H}.webm`).then(F=>F||w(`${L}${H}.mp4`)).then(F=>F||y(`${L}${H}.webp`)).then(F=>F||y(`${L}${H}.jpg`))),h.get(H)),m=H=>H.querySelector("video")?.pause(),i=()=>
730{if(!l||r.matches)return;const H=s[c].querySelector("video");H&&(H.play().catch(()=>{}),window.setTimeout(()=>{H.paused&&l&&!r.matches&&H.isConnected&&H.play().catch(()=>{})},350))},b=()=>{d=null,s.forEach(H=>{H.classList.remove("is-on"),m(H)}),n.classList.remove("is-media")},A=()=>t.querySelector(".home-client-result-panel.is-active"),f=()=>A()?.querySelector(".home-client-result-copy > span")?.textContent||"",C=new Map,_=H=>H?.querySelector(".home-client-result-media")?.dataset.crBackdrop||"",S=H=>!!(H&&(H.classList.contains("has-client-video-panel")||H.querySelector(".home-client-result-media video, .home-client-result-media iframe"))),q=H=>{const F=H?.querySelector(".home-client-result-media");if(!F)return"";if(F.dataset.crImage)return F.dataset.crImage;const V=F.style.getPropertyValue("--result-image")||"",X=/url\(\s*['"]?([^'")]+)['"]?\s*\)/.exec(V);return X?X[1]:""},N=H=>H?.querySelector(".home-client-result-media video")?.getAttribute("poster")||"",D=H=>{const F=_(H);if(F)return F;const V=q(H);if(S(H)){const X=N(H);return V&&X&&X!==V?V:""}return V},G=H=>H,z=H=>{if(!H)return Promise.resolve(null);const F=G(H);return C.has(F)||C.set(F,y(F)),C.get(F)},O=()=>{if(!a.matches||r.matches){b();return}const H=A(),F=v(f());if(F===d){i();return}const V=++p,X=D(H);g(F).then(J=>J?{media:J,photo:!1}:z(X).then(P=>P?{media:P,photo:!0}:null)).then(J=>{if(V!==p)return;if(!J){b();return}const P=s[1-c],T=s[c];J.media.parentElement!==P&&P.replaceChildren(J.media),P.classList.toggle("is-photo",J.photo),P.classList.add("is-on"),T.classList.remove("is-on"),m(T),c=1-c,d=F,n.classList.add("is-media"),i()})};let E=!1;const x=()=>{E||(E=!0,window.requestAnimationFrame(()=>{E=!1,O()}))},B=t.querySelector(".home-client-results-stage");B&&new MutationObserver(x).observe(B,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["class"]});const j=()=>{d=null,O()};a.addEventListener?.("change",j),r.addEventListener?.("change",j),new IntersectionObserver(H=>{l=H[0]?.isIntersecting??!1,t.classList.toggle("crx-inview",l),l?i():s.forEach(m)},{rootMargin:"160px 0px",threshold:.02}).observe(t);let U=null;const M=()=>{U&&(U.style.removeProperty("--crx-rx"),U.style.removeProperty("--crx-ry"),U=null)};B?.addEventListener("pointermove",H=>{if(!a.matches||!o.matches||r.matches)return;const F=t.querySelector(".home-client-result-panel.is-active .home-client-result-media");if(!F)return;U&&U!==F&&M();const V=F.getBoundingClientRect();if(!V.width||!V.height)return;const X=T=>Math.max(-.65,Math.min(.65,T)),J=X((H.clientX-V.left)/V.width-.5),P=X((H.clientY-V.top)/V.height-.5);F.style.setProperty("--crx-rx",`${(P*-4.6).toFixed(2)}deg`),F.style.setProperty("--crx-ry",`${(J*6.4).toFixed(2)}deg`),U=F}),B?.addEventListener("pointerleave",M),O()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}(),function(){"use strict";if(typeof document>"u")return;const e=()=>{if(!document.body||document.body.dataset.page!=="home")return;const t=document.querySelector(".home-client-results");if(!t)return;const r=0,a=.5,o=window.matchMedia("(min-width: 1025px) and (pointer: fine)"),n=window.matchMedia("(prefers-reduced-motion: reduce)");let s=0;const c=()=>o.matches&&!n.matches&&getComputedStyle(document.body).position!=="fixed",l=()=>Math.round(t.getBoundingClientRect().top+window.scrollY-r);let d=0;const p=()=>{if(d=0,!o.matches){document.body.classList.remove("crx-theatre");return}const y=t.getBoundingClientRect(),u=window.innerHeight,m=Math.max(0,Math.min(y.bottom,u)-Math.max(y.top,0))/u,b=document.body.classList.contains("crx-theatre")?m>.35:m>.6;document.body.classList.toggle("crx-theatre",b)},h=()=>{d||(d=window.requestAnimationFrame(p))};window.addEventListener("scroll",h,{passive:!0}),window.addEventListener("resize",h),o.addEventListener?.("change",h),p();const v=y=>{const u=window.scrollY,g=l(),m=window.innerHeight*a;return y>0?u>=g-m&&u<g-4:u>g+4&&u<=g+m};let L=0;const w=y=>{L=y,window.scrollTo({top:l(),behavior:"smooth"})};window.addEventListener("wheel",y=>{if(!c()||!(Math.abs(y.deltaY)>Math.abs(y.deltaX)))return;const g=Date.now(),m=y.deltaY>0?1:-1;if(g<s){m===L?y.preventDefault():s=0;return}Math.abs(y.deltaY)<4||v(m)&&(y.preventDefault(),w(m),s=g+650)},{passive:!1}),window.addEventListener("keydown",y=>{if(!c())return;const u=y.target,g=u&&u.tagName||"";if(/^(INPUT|TEXTAREA|SELECT)$/.test(g)||u&&u.isContentEditable)return;let m=0;if(y.key==="PageDown"||y.key===" "&&!y.shiftKey?m=1:(y.key==="PageUp"||y.key===" "&&y.shiftKey)&&(m=-1),!m)return;const i=Date.now();if(i<s){m===L?y.preventDefault():s=0;return}v(m)&&(y.preventDefault(),w(m),s=i+650)})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}(),function(){const t=()=>{const r=document.querySelectorAll("[data-sv-partners]");if(!r.length)return;const a=typeof window.matchMedia=="function"?window.matchMedia("(prefers-reduced-motion: reduce)"):null;r.forEach(o=>{const n=o.querySelector("[data-sv-partners-toggle]"),s=o.querySelector(".sv-partners-track");if(!n||!s)return;let c=!(a&&a.matches);const l=()=>{o.classList.toggle("is-playing",c),o.classList.toggle("is-paused",!c),n.setAttribute("aria-pressed",c?"true":"false");const d=c?"Pause the partner carousel":"Play the partner carousel";n.setAttribute("aria-label",d),n.setAttribute("title",d)};if(n.hidden=!1,l(),n.addEventListener("click",()=>{c=!c,l()}),a){const d=p=>{c=!p.matches,l()};typeof a.addEventListener=="function"?a.addEventListener("change",d):typeof a.addListener=="function"&&a.addListener(d)}})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}(),function(){const t=()=>{const r=document.querySelectorAll("[data-awards-section]");r.length&&r.forEach(a=>{const o=a.querySelector("[data-awards-filters]"),n=a.querySelector("[data-awards-grid]");if(!o||!n)return;const s=Array.from(o.querySelectorAll("[data-awards-filter]")),c=Array.from(n.querySelectorAll("[data-award-group]"));if(s.length<2||!c.length)return;const l=a.querySelector("[data-awards-status]"),d=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,p=v=>v.currentTarget.classList.remove("is-entering"),h=(v,L)=>{let w=0;if(c.forEach(y=>{const u=v==="all"||y.dataset.awardGroup===v;y.hidden=!u,u&&(w+=1,!(!L||d)&&(y.classList.remove("is-entering"),y.offsetWidth,y.classList.add("is-entering")))}
730),s.forEach(y=>{const u=y.dataset.awardsFilter===v;y.classList.toggle("is-active",u),y.setAttribute("aria-pressed",String(u))}),l){const y=s.find(g=>g.dataset.awardsFilter===v),u=y?(y.textContent||"").replace(/\s*\d+\s*$/,"").trim():v;l.textContent=v==="all"?`Showing all ${c.length} recognitions.`:`Showing ${w} of ${c.length} recognitions \u2014 ${u}.`}};c.forEach(v=>v.addEventListener("animationend",p)),o.addEventListener("click",v=>{const L=v.target.closest("[data-awards-filter]");!L||!o.contains(L)||h(L.dataset.awardsFilter,!0)}),o.hidden=!1,h("all",!1)})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.