1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="theme-color" content="#8CC04F"><title>About Z2 | Z2Data</title><meta name="description" content="Z2 offers intelligent business data, integrated software solutions, analytics tools and professional services, all leading to proactive decisions that avoid disruptions to the enterprise."><link rel="canonical" href="https://www.z2data.com/about/"><link rel="alternate" hreflang="en" href="https://www.z2data.com/about/"><link rel="alternate" hreflang="ja" href="https://www.z2data.com/ja/about/"><link rel="alternate" hreflang="de" href="https://www.z2data.com/de/about/"><link rel="alternate" hreflang="it" href="https://www.z2data.com/it/about/"><link rel="alternate" hreflang="pl" href="https://www.z2data.com/pl/about/"><link rel="alternate" hreflang="fr" href="https://www.z2data.com/fr/about/"><link rel="alternate" hreflang="ko" href="https://www.z2data.com/ko/about/"><link rel="alternate" hreflang="es" href="https://www.z2data.com/es/about/"><link rel="alternate" hreflang="pt" href="https://www.z2data.com/pt/about/"><link rel="alternate" hreflang="pt-BR" href="https://www.z2data.com/pt-br/about/"><link rel="alternate" hreflang="tr" href="https://www.z2data.com/tr/about/"><link rel="alternate" hreflang="th" href="https://www.z2data.com/th/about/"><link rel="alternate" hreflang="nl" href="https://www.z2data.com/nl/about/"><link rel="alternate" hreflang="vi" href="https://www.z2data.com/vi/about/"><link rel="alternate" hreflang="x-default" href="https://www.z2data.com/about/"><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><meta property="og:type" content="website"><meta property="og:url" content="https://www.z2data.com/about/"><meta property="og:title" content="About Z2 | Z2Data"><meta property="og:description" content="Z2 offers intelligent business data, integrated software solutions, analytics tools and professional services, all leading to proactive decisions that avoid disruptions to the enterprise."><meta property="og:image" content="https://z2-homepage.pages.dev/og/card.png?title=Supply+chain+intelligence%0Afor+complex+manufacturers&logo=hero&motif=pixels&textw=560&v=2"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:site_name" content="Z2Data"><meta property="og:locale" content="en_US"><meta property="og:locale:alternate" content="ja_JP"><meta property="og:locale:alternate" content="de_DE"><meta property="og:locale:alternate" content="it_IT"><meta property="og:locale:alternate" content="pl_PL"><meta property="og:locale:alternate" content="fr_FR"><meta property="og:locale:alternate" content="ko_KR"><meta property="og:locale:alternate" content="es_ES"><meta property="og:locale:alternate" content="pt_PT"><meta property="og:locale:alternate" content="pt_BR"><meta property="og:locale:alternate" content="tr_TR"><meta property="og:locale:alternate" content="th_TH"><meta property="og:locale:alternate" content="nl_NL"><meta property="og:locale:alternate" content="vi_VN"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@z2data"><meta name="twitter:title" content="About Z2 | Z2Data"><meta name="twitter:description" content="Z2 offers intelligent business data, integrated software solutions, analytics tools and professional services, all leading to proactive decisions that avoid disruptions to the enterprise."><meta name="twitter:image" content="https://z2-homepage.pages.dev/og/card.png?title=Supply+chain+intelligence%0Afor+complex+manufacturers&logo=hero&motif=pixels&textw=560&v=2">
1<script type="application/ld+json">[{"@context":"https://schema.org","@type":"Organization","@id":"https://www.z2data.com/#organization","name":"Z2Data","legalName":"Z2Data, Inc.","alternateName":"Z2","url":"https://www.z2data.com","logo":{"@type":"ImageObject","url":"https://www.z2data.com/brand/01-Logos/02-Digital/Positive/Z2_Logo_POS_RGB.svg"},"description":"Supply chain risk management and component intelligence platform for electronics manufacturers.","foundingDate":"2016","numberOfEmployees":{"@type":"QuantitativeValue","value":50},"knowsAbout":["Supply chain risk management","Electronic component intelligence","Component obsolescence and lifecycle management","Regulatory compliance (RoHS, REACH, PFAS, conflict minerals)","Geopolitical supply chain risk","Sub-tier supplier intelligence"],"sameAs":["https://www.linkedin.com/company/z2data","https://twitter.com/z2data","https://www.youtube.com/@z2data","https://www.crunchbase.com/organization/z2data","https://www.g2.com/products/z2data/reviews"],"contactPoint":[{"@type":"ContactPoint","contactType":"sales","email":"[email protected]","telephone":"+1-866-923-2821","url":"https://www.z2data.com/contact","areaServed":"Worldwide","availableLanguage":"English"},{"@type":"ContactPoint","contactType":"customer support","email":"[email protected]","url":"https://www.z2data.com/contact"}],"address":{"@type":"PostalAddress","streetAddress":"3080 Olcott Street, Suite A115","addressLocality":"Santa Clara","addressRegion":"CA","postalCode":"95054","addressCountry":"US"}},{"@context":"https://schema.org","@type":"WebSite","@id":"https://www.z2data.com/#website","url":"https://www.z2data.com","name":"Z2Data","inLanguage":"en","publisher":{"@id":"https://www.z2data.com/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.z2data.com/search?q={search_term_string}"},"query-input":"required name=search_term_string"}},{"@context":"https://schema.org","@type":"AboutPage","@id":"https://www.z2data.com/about/#webpage","url":"https://www.z2data.com/about/","name":"About Z2","description":"Z2 offers intelligent business data, integrated software solutions, analytics tools and professional services, all leading to proactive decisions that avoid disruptions to the enterprise.","isPartOf":{"@id":"https://www.z2data.com/#website"},"mainEntity":{"@id":"https://www.z2data.com/#organization"},"breadcrumb":{"@id":"https://www.z2data.com/about/#breadcrumb"}},{"@context":"https://schema.org","@type":"BreadcrumbList","@id":"https://www.z2data.com/about/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.z2data.com/"},{"@type":"ListItem","position":2,"name":"About","item":"https://www.z2data.com/about/"}]}]</script>
1<link rel="preload" href="/fonts/geist-latin.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/GT-Alpina-Standard-Regular.woff2" as="font" type="font/woff2" crossorigin><link rel="stylesheet" href="/fonts/z2icons.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/fonts/z2icons.css"></noscript><link rel="preconnect" href="https://a.storyblok.com"><link rel="icon" type="image/png" sizes="32x32" href="/brand/05-Favicon/32x32/Z2_Favicon_32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/brand/05-Favicon/16x16/Z2_Favicon_16x16.png"><link rel="apple-touch-icon" sizes="180x180" href="/brand/05-Favicon/180x180/Z2_Favicon_180x180.png"><link rel="manifest" href="/site.webmanifest">
1<script type="module" src="/_astro/BaseLayout.astro_astro_type_script_index_0_lang.C8ApF7f2.js"></script>
1<link rel="stylesheet" href="/_astro/_slug_.XaEZdCIz.css"> 2<style>.demo-cta-form[data-astro-cid-4f3t23wn]{width:100%;max-width:36rem;margin-inline:auto;flex:1 1 auto}.form-pill[data-astro-cid-4f3t23wn]{display:flex;align-items:center;background:#fff;border:2px solid;border-radius:9999px;padding:.375rem;overflow:hidden}.demo-email-input[data-astro-cid-4f3t23wn]{flex:1;min-width:0;padding:.75rem 1.25rem;font-family:Inter,DM Sans,sans-serif;font-size:.9375rem;background:transparent;border:none;outline:none}.demo-email-input[data-astro-cid-4f3t23wn]::-moz-placeholder{color:#231c13a6}.demo-email-input[data-astro-cid-4f3t23wn]::placeholder{color:#231c13a6}.demo-email-input[data-astro-cid-4f3t23wn]:focus{outline:none;box-shadow:none}.form-pill[data-astro-cid-4f3t23wn]:focus-within{outline:none}.demo-cta-btn[data-astro-cid-4f3t23wn]{flex-shrink:0;padding:.75rem 1.625rem;font-family:Inter,DM Sans,sans-serif;font-size:.9375rem;font-weight:600;border:none;border-radius:9999px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.demo-cta-btn[data-astro-cid-4f3t23wn]:hover{background:var(--color-sand-800)}.demo-cta-btn--lime[data-astro-cid-4f3t23wn]{border:2px solid var(--color-primary-deep)}.demo-cta-btn--lime[data-astro-cid-4f3t23wn]:hover{background:var(--color-primary-deep);color:var(--color-sand-100)}.demo-cta-err[data-astro-cid-4f3t23wn]{margin:.4rem 0 0 1.25rem}@media(max-width:560px){.form-pill[data-astro-cid-4f3t23wn]{flex-direction:column;border-radius:1.25rem;padding:.5rem;gap:.5rem}.demo-email-input[data-astro-cid-4f3t23wn]{width:100%;padding:.75rem 1rem}.demo-cta-btn[data-astro-cid-4f3t23wn]{width:100%;text-align:center}} 3.demo-cta-section[data-astro-cid-sxk4qlxd]{position:relative;padding-top:5rem;padding-bottom:7rem;overflow:hidden}.corner[data-astro-cid-sxk4qlxd]{position:absolute;width:10px;height:10px}.corner-tl[data-astro-cid-sxk4qlxd]{top:1.5rem;left:1.5rem}.corner-tr[data-astro-cid-sxk4qlxd]{top:1.5rem;right:1.5rem}.corner-bl[data-astro-cid-sxk4qlxd]{bottom:1.5rem;left:1.5rem}.corner-br[data-astro-cid-sxk4qlxd]{bottom:1.5rem;right:1.5rem}.demo-cta-inner[data-astro-cid-sxk4qlxd]{max-width:var(--max-width-container);margin:0 auto;padding-inline:2rem;text-align:center}.eyebrow[data-astro-cid-sxk4qlxd]{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:2.5rem}.eyebrow-rule[data-astro-cid-sxk4qlxd]{display:block;width:2.5rem;height:1px}.eyebrow-label[data-astro-cid-sxk4qlxd]{font-family:Inter,DM Sans,sans-serif;font-size:.6875rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.demo-cta-headline[data-astro-cid-sxk4qlxd]{font-family:var(--font-heading);font-size:clamp(2.75rem,6vw,5.5rem);font-weight:400;line-height:1.05;letter-spacing:-.02em;margin:0 auto 3rem;max-width:18ch}.demo-cta-headline[data-astro-cid-sxk4qlxd] em[data-astro-cid-sxk4qlxd]{font-style:italic}@media(max-width:900px){.demo-cta-section[data-astro-cid-sxk4qlxd]{padding-top:4rem;padding-bottom:3.5rem}.demo-cta-inner[data-astro-cid-sxk4qlxd]{padding-inline:1.5rem}}.demo-cta-section[data-astro-cid-sxk4qlxd] [data-astro-cid-sxk4qlxd]::-moz-selection{background-color:var(--color-sand-900);color:var(--color-signal-400)}.demo-cta-section[data-astro-cid-sxk4qlxd] [data-astro-cid-sxk4qlxd]::selection{background-color:var(--color-sand-900);color:var(--color-signal-400)}@media(max-width:560px){.demo-cta-section[data-astro-cid-sxk4qlxd]{padding-top:3.5rem;padding-bottom:3rem}.demo-cta-inner[data-astro-cid-sxk4qlxd]{padding-inline:1rem}} 4</style> 5<link rel="stylesheet" href="/_astro/about.DgPuCZAo.css"> 6<link rel="stylesheet" href="/_astro/_slug_.CaTaghe6.css">
6<script type="module" src="/_astro/page.DZZVrAzF.js"></script>
6</head> <body>
6<script>(function(){const LOCALES = ["en","ja","de","it","pl","fr","ko","es","pt","pt-br","tr","th","nl","vi"]; 7const NON_DEFAULT = ["ja","de","it","pl","fr","ko","es","pt","pt-br","tr","th","nl","vi"]; 8const DEFAULT_LOCALE = "en"; 9const AVAILABLE = ["ja","de","it","pl","fr","ko","es","pt","pt-br","tr","th","nl","vi"]; 10const COPY = {"ja":{"prompt":"ãã®ãã¼ã¸ã次ã®è¨èªã§è¡¨ç¤º","view":"表示","dismiss":"éãã","label":"æ¥æ¬èª"},"de":{"prompt":"Diese Seite anzeigen auf","view":"Anzeigen","dismiss":"SchlieÃen","label":"Deutsch"},"it":{"prompt":"Visualizza questa pagina in","view":"Visualizza","dismiss":"Chiudi","label":"Italiano"},"pl":{"prompt":"WyÅwietl tÄ stronÄ w","view":"WyÅwietl","dismiss":"Zamknij","label":"Polski"},"fr":{"prompt":"Afficher cette page en","view":"Afficher","dismiss":"Fermer","label":"Français"},"ko":{"prompt":"ì´ íì´ì§ë¥¼ ë¤ì ì¸ì´ë¡ 보기","view":"보기","dismiss":"ë«ê¸°","label":"íêµì´"},"es":{"prompt":"Ver esta página en","view":"Ver","dismiss":"Descartar","label":"Español"},"pt":{"prompt":"Ver esta página em","view":"Ver","dismiss":"Dispensar","label":"Português (Portugal)"},"pt-br":{"prompt":"Veja esta página em","view":"Ver","dismiss":"Fechar","label":"Português (Brasil)"},"tr":{"prompt":"Bu sayfayı görüntüleyin","view":"Görüntüle","dismiss":"Kapat","label":"Türkçe"},"th":{"prompt":"à¸à¸¹à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸","view":"à¸à¸¹","dismiss":"à¸à¸´à¸","label":"à¹à¸à¸¢"},"nl":{"prompt":"Bekijk deze pagina in","view":"Bekijken","dismiss":"Sluiten","label":"Nederlands"},"vi":{"prompt":"Xem trang nà y bằng","view":"Xem","dismiss":"Äóng","label":"Tiếng Viá»t"}}; 11 12 (function () { 13 try { 14 // Never act for automation/crawlers we can detect. 15 if (navigator.webdriver) return; 16 var langs = navigator.languages && navigator.languages.length ? navigator.languages : [navigator.language]; 17 if (!langs || !langs.length) return; 18 19 function readCookie(n) { 20 var m = document.cookie.match('(^|;)\\s*' + n + '\\s*=\\s*([^;]+)'); 21 return m ? m[2] : null; 22 } 23 function setCookie(n, v) { 24 document.cookie = n + '=' + v + ';path=/;max-age=31536000;samesite=lax'; 25 } 26 27 // Match the full tag first, then fall back to the base language â a bare 28 // slice(0,2) breaks region-qualified locales in both directions. 29 var current = (document.documentElement.lang || 'en').toLowerCase(); 30 if (LOCALES.indexOf(current) < 0) current = current.split('-')[0]; 31 var path = location.pathname; 32 var hasPrefix = NON_DEFAULT.some(function (l) { 33 return path === '/' + l || path.indexOf('/' + l + '/') === 0; 34 }); 35 36 // First supported locale among the browser's ordered preferences. Prefer an 37 // exact region match (pt-BR â pt-br) over the base language (pt-BR â pt). 38 var preferred = null; 39 for (var i = 0; i < langs.length; i++) { 40 var full = (langs[i] || '').toLowerCase(); 41 if (LOCALES.indexOf(full) >= 0) { preferred = full; break; } 42 var base = full.split('-')[0]; 43 if (LOCALES.indexOf(base) >= 0) { preferred = base; break; } 44 } 45 46 var cookie = readCookie('pref_lang'); 47 var chosen = cookie && LOCALES.indexOf(cookie) >= 0 ? cookie : null; 48 var desired = chosen || preferred; 49 if (!desired) return; 50 51 if (!hasPrefix) { 52 // On an English URL: redirect to the desired locale only if THIS page is 53 // actually translated into it (else the /ja/ URL is just English anyway). 54 if (desired !== DEFAULT_LOCALE && AVAILABLE.indexOf(desired) >= 0) { 55 if (!chosen) setCookie('pref_lang', desired); 56 location.replace('/' + desired + path + location.search + location.hash); 57 return; 58 } 59 return; 60 } 61 62 // On a localized URL: if the browser prefers a DIFFERENT language that this 63 // page is genuinely translated into, and the user hasn't settled on the 64 // current one, offer a banner. 65 if (preferred && preferred !== current && chosen !== current && AVAILABLE.indexOf(preferred) >= 0) { 66 showBanner(preferred); 67 } 68 69 function showBanner(loc) { 70 if (document.getElementById('z2-lang-banner')) return; 71 var c = COPY[loc]; 72 if (!c) return; 73 var rest = path.replace(new RegExp('^/' + current + '(?=/|$)'), '') || '/'; 74 var href = '/' + loc + (rest === '/' ? '' : rest) + location.search + location.hash; 75 76 var bar = document.createElement('div'); 77 bar.id = 'z2-lang-banner'; 78 bar.setAttribute('role', 'region'); 79 bar.setAttribute('aria-label', c.label); 80 bar.style.cssText = 81 'position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:9998;' + 82 'background:#231C13;color:#fff;border-radius:9999px;padding:10px 16px;display:flex;' + 83 'align-items:center;gap:14px;font:14px/1.2 system-ui,-apple-system,sans-serif;' + 84 'box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:92vw'; 85 86 var span = document.createElement('span'); 87 span.textContent = c.prompt + ' ' + c.label + '?'; 88 89 var view = document.createElement('a'); 90 view.href = href; 91 view.textContent = c.view; 92 view.style.cssText = 93 'color:#231C13;background:#8CC04F;border-radius:9999px;padding:6px 14px;' + 94 'text-decoration:none;font-weight:600;white-space:nowrap';
95 view.addEventListener('click', function () { setCookie('pref_lang', loc); }); 96 97 var x = document.createElement('button'); 98 x.type = 'button'; 99 x.setAttribute('aria-label', c.dismiss); 100 x.textContent = 'â'; 101 x.style.cssText = 'background:none;border:0;color:rgba(255,255,255,.6);cursor:pointer;font-size:14px;line-height:1'; 102 x.addEventListener('click', function () { setCookie('pref_lang', current); bar.remove(); }); 103 104 bar.appendChild(span); 105 bar.appendChild(view); 106 bar.appendChild(x); 107 document.body.appendChild(bar); 108 } 109 } catch (e) {} 110 })(); 111})();</script>
111
111<script>(function(){const NDL = ["ja","de","it","pl","fr","ko","es","pt","pt-br","tr","th","nl","vi"]; 112 113 (function () { 114 var seg = location.pathname.split('/')[1]; 115 if (NDL.indexOf(seg) === -1) return; 116 var p = '/' + seg; 117 function hasLocalePrefix(h) { 118 for (var k = 0; k < NDL.length; k++) { 119 var q = '/' + NDL[k]; 120 if (h === q || h.indexOf(q + '/') === 0) return true; 121 } 122 return false; 123 } 124 function fix(root) { 125 var links = (root || document).querySelectorAll('a[href^="/"]'); 126 for (var i = 0; i < links.length; i++) { 127 var a = links[i], h = a.getAttribute('href'); 128 if (!h || h.charAt(0) !== '/' || h.indexOf('//') === 0) continue; 129 if (hasLocalePrefix(h)) continue; // already localized 130 if (h.indexOf('/api/') === 0 || h.indexOf('/og/') === 0) continue; 131 if (a.hasAttribute('hreflang') || a.hasAttribute('data-no-localize')) continue; 132 a.setAttribute('href', p + h); 133 } 134 } 135 function run() { fix(document); } 136 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run); 137 else run(); 138 // Re-run if components inject links after load (mega-menus, carousels). 139 try { new MutationObserver(function (m) { for (var i = 0; i < m.length; i++) for (var j = 0; j < m[i].addedNodes.length; j++) { var n = m[i].addedNodes[j]; if (n.nodeType === 1) fix(n.querySelectorAll ? n : document); } }).observe(document.body, { childList: true, subtree: true }); } catch (e) {} 140 })(); 141 })();</script>
vendor: 70 bytes, line 141
141 <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=
141GTM-TFT483R
vendor: 85 bytes, line 141
141" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript>
141<style>iframe[src*="hs-web-interactive"],iframe[src*="hs-sites.com"]{display:none!important}</style>
141<script> 142 (function () { 143 function overlayOf(ifr) { 144 // Walk up to the outermost positioned container HubSpot injects (its 145 // backdrop), staying inside HubSpot's own appended subtree, and drop it 146 // so no ghost overlay blocks clicks. Falls back to the iframe itself. 147 var el = ifr, top = ifr; 148 for (var i = 0; i < 6 && el && el !== document.body; i++) { 149 var pos = getComputedStyle(el).position; 150 if (pos === 'fixed' || pos === 'absolute') top = el; 151 el = el.parentElement; 152 } 153 return top || ifr; 154 } 155 function sweep(node) { 156 if (!(node instanceof HTMLElement)) return; 157 var sel = 'iframe[src*="hs-web-interactive"],iframe[src*="hs-sites.com"]'; 158 var ifr = node.matches && node.matches(sel) ? node : (node.querySelector && node.querySelector(sel)); 159 if (ifr) overlayOf(ifr).remove(); 160 } 161 // Belt-and-suspenders: also close via HubSpot's supported CTA SDK. 162 window.hsCallsToActionReady = window.hsCallsToActionReady || []; 163 window.hsCallsToActionReady.push(function () { 164 try { window.HubSpotCallsToActions.closeAll(); } catch (e) {} 165 }); 166 new MutationObserver(function (muts) { 167 for (var m = 0; m < muts.length; m++) { 168 for (var n = 0; n < muts[m].addedNodes.length; n++) sweep(muts[m].addedNodes[n]); 169 } 170 }).observe(document.documentElement, { childList: true, subtree: true }); 171 })(); 172 </script>
172 <header id="site-header" class="z-50 bg-sand-100 transition-colors duration-200 relative" data-astro-cid-hnhh3bfe> <div class="container relative" data-astro-cid-hnhh3bfe> <div id="header-inner" class="flex items-center justify-between h-20 relative z-[2]" data-astro-cid-hnhh3bfe> <div class="flex items-center gap-8" data-astro-cid-hnhh3bfe> <a href="/" id="header-logo" class="flex items-center flex-shrink-0" aria-label="Z2 home" data-astro-cid-hnhh3bfe> <img src="/brand/01-Logos/02-Digital/Positive/Z2_Logo_POS_RGB_trimmed.svg" alt="Z2" width="80" height="32" class="h-8 w-auto" data-astro-cid-hnhh3bfe> </a> <nav id="main-nav" class="hidden lg:flex items-center gap-1" aria-label="Main navigation" data-astro-cid-hnhh3bfe> <button id="btn-products" aria-expanded="false" aria-controls="mega-products" class="mega-trigger flex items-center gap-1.5 whitespace-nowrap px-4 py-2 text-base font-medium text-sand-800 hover:text-sand-900 transition-colors duration-150" data-menu="products" data-astro-cid-hnhh3bfe> Products <svg id="chevron-products" class="w-3.5 h-3.5 opacity-50 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" data-astro-cid-hnhh3bfe></path> </svg> </button> <button id="btn-solutions" aria-expanded="false" aria-controls="mega-solutions" class="mega-trigger flex items-center gap-1.5 whitespace-nowrap px-4 py-2 text-base font-medium text-sand-800 hover:text-sand-900 transition-colors duration-150" data-menu="solutions" data-astro-cid-hnhh3bfe> Solutions for <svg id="chevron-solutions" class="w-3.5 h-3.5 opacity-50 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" data-astro-cid-hnhh3bfe></path> </svg> </button> <a href="/our-data" class="nav-flat-link px-4 py-2 text-base font-medium transition-colors duration-150 text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe> Our Data </a><a href="/our-ai" class="nav-flat-link px-4 py-2 text-base font-medium transition-colors duration-150 text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe> Our AI </a> </nav> </div> <div class="hidden lg:flex items-center gap-5" data-astro-cid-hnhh3bfe> <div class="z2-langsw z2-langsw--header" data-langsw data-astro-cid-fhi4yxem> <button type="button" class="z2-langsw__btn" aria-haspopup="true" aria-expanded="false" aria-label="Choose your language" data-langsw-btn data-astro-cid-fhi4yxem> <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="20" height="20" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-fhi4yxem="true" class="lucide lucide-globe z2-langsw__globe"> <circle cx="12" cy="12" r="10"></circle> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path> <path d="M2 12h20"></path> </svg> <span class="sr-only" data-astro-cid-fhi4yxem>English</span> </button> <ul class="z2-langsw__panel" role="menu" data-langsw-panel data-astro-cid-fhi4yxem> <li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="en" data-locale="en" href="/about/" class="z2-langsw__opt is-active" aria-current="true" data-astro-cid-fhi4yxem> English </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="ja" data-locale="ja" href="/ja/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> æ¥æ¬èª </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="de" data-locale="de" href="/de/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Deutsch </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="it" data-locale="it" href="/it/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Italiano </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="pl" data-locale="pl" href="/pl/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Polski </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="fr" data-locale="fr" href="/fr/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Français </a> </li><li role="none" data-astro-cid-fhi4yxem>
172 <a role="menuitem" hreflang="ko" data-locale="ko" href="/ko/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> íêµì´ </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="es" data-locale="es" href="/es/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Español </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="pt" data-locale="pt" href="/pt/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Português (Portugal) </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="pt-BR" data-locale="pt-br" href="/pt-br/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Português (Brasil) </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="tr" data-locale="tr" href="/tr/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Türkçe </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="th" data-locale="th" href="/th/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> à¹à¸à¸¢ </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="nl" data-locale="nl" href="/nl/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Nederlands </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="vi" data-locale="vi" href="/vi/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Tiếng Viá»t </a> </li> </ul> </div>
172<script type="module">(()=>{if(window.__z2LangSwInit)return;window.__z2LangSwInit=!0;const i=a=>{document.querySelectorAll("[data-langsw].is-open").forEach(n=>{n!==a&&(n.classList.remove("is-open"),n.querySelector("[data-langsw-btn]")?.setAttribute("aria-expanded","false"))})},l=a=>{if(!a.classList.contains("z2-langsw--footer"))return;const n=a.querySelector("[data-langsw-btn]"),t=a.querySelector("[data-langsw-panel]");if(!n||!t)return;const o=n.getBoundingClientRect();if(t.style.top="auto",t.style.bottom=`${Math.round(window.innerHeight-o.top+8)}px`,t.style.maxHeight="",window.innerWidth<640){t.style.left="0px",t.style.right="0px";const g=Math.round(o.top-8-12);t.style.maxHeight=`${Math.max(160,g)}px`;return}const e=8,s=t.offsetWidth||256,c=Math.max(e,window.innerWidth-s-e),d=Math.min(Math.max(Math.round(o.left),e),c);t.style.left=`${d}px`,t.style.right="auto"},r=()=>{document.querySelectorAll("[data-langsw].z2-langsw--footer.is-open").forEach(l)};window.addEventListener("resize",r),window.addEventListener("scroll",r,{passive:!0}),document.addEventListener("click",a=>{const n=a.target,t=n.closest("[data-langsw] .z2-langsw__opt");if(t){const e=t.getAttribute("data-locale");e&&(document.cookie=`pref_lang=${e};path=/;max-age=31536000;samesite=lax`);return}const o=n.closest("[data-langsw-btn]");if(o){const e=o.closest("[data-langsw]"),s=!e.classList.contains("is-open");i(s?e:null),s&&l(e),e.classList.toggle("is-open",s),o.setAttribute("aria-expanded",String(s));return}n.closest("[data-langsw]")||i()}),document.addEventListener("keydown",a=>{a.key==="Escape"&&i()})})();</script>
172 <a href="/demo" class="inline-flex items-center gap-1.5 rounded-full bg-signal-400 hover:bg-primary-deep border-2 border-primary-deep text-sand-900 hover:text-sand-100 text-sm font-medium px-5 py-2 transition-colors" data-astro-cid-hnhh3bfe> See a Demo </a> </div> <div class="flex items-center gap-0.5 lg:hidden" data-astro-cid-hnhh3bfe> <button id="mobile-lang-btn" class="p-2 rounded-md text-sand-800 hover:text-sand-900 hover:bg-sand-200 transition-colors" aria-label="Choose your language" aria-expanded="false" aria-controls="mobile-lang-menu" data-astro-cid-hnhh3bfe> <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="24" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-hnhh3bfe="true" class="lucide lucide-globe w-6 h-6"> <circle cx="12" cy="12" r="10"></circle> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path> <path d="M2 12h20"></path> </svg> </button> <button id="mobile-menu-btn" class="p-2 rounded-md text-sand-800 hover:text-sand-900 hover:bg-sand-200 transition-colors" aria-label="Open menu" aria-expanded="false" aria-controls="mobile-menu" data-astro-cid-hnhh3bfe> <svg id="menu-icon-open" class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" data-astro-cid-hnhh3bfe></path> </svg> <svg id="menu-icon-close" class="w-6 h-6 hidden" fill="none" viewBox="0 0 24 24" stroke="currentColor" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-astro-cid-hnhh3bfe></path> </svg> </button> </div> </div> <div id="mega-stack" class="mega-stack hidden lg:block absolute left-0 top-full" style="width: 100%;" data-astro-cid-hnhh3bfe> <div id="mega-clip" class="mega-clip" data-astro-cid-hnhh3bfe> <div id="mega-products" role="region" aria-label="Products menu" class="mega-panel bg-white" data-astro-cid-hnhh3bfe> <div class="flex items-stretch" data-astro-cid-hnhh3bfe> <div class="nav-product-frame flex-shrink-0 flex flex-col" data-astro-cid-hnhh3bfe> <span class="nav-corner nav-corner--tl" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span class="nav-corner nav-corner--tr" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span class="nav-corner nav-corner--bl" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span class="nav-corner nav-corner--br" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <ul class="divide-y divide-sand-600 border-t border-sand-600 flex-1 flex flex-col" data-astro-cid-hnhh3bfe> <li class="flex-1 flex" data-astro-cid-hnhh3bfe> <a href="/products/part-risk-manager" class="group flex flex-1 items-start gap-5 py-4 px-5 transition-colors duration-150 hover:bg-sand-100" data-astro-cid-hnhh3bfe> <img src="/brand/06-Product-Icons/Part-Risk-Manager/Z2_Product_Icons_Part-Risk-Manager.svg" alt="Part Risk Manager" class="flex-shrink-0 w-8 h-8 object-contain mt-0.5" aria-hidden="true" data-astro-cid-hnhh3bfe> <div class="flex-1 min-w-0" data-astro-cid-hnhh3bfe> <p class="text-xl font-semibold text-sand-900 mb-1" data-astro-cid-hnhh3bfe>Part Risk Manager</p> <p class="text-sm text-sand-500 leading-snug" data-astro-cid-hnhh3bfe>Component intelligence across 1B+ electronic parts.</p> </div> </a> </li><li class="flex-1 flex" data-astro-cid-hnhh3bfe> <a href="/products/compliance-manager" class="group flex flex-1 items-start gap-5 py-4 px-5 transition-colors duration-150 hover:bg-sand-100" data-astro-cid-hnhh3bfe> <img src="/brand/06-Product-Icons/Compliance-Manager/Z2_Product_Icons_Compliance-Manager.svg" alt="Compliance Manager" class="flex-shrink-0 w-8 h-8 object-contain mt-0.5" aria-hidden="true" data-astro-cid-hnhh3bfe> <div class="flex-1 min-w-0" data-astro-cid-hnhh3bfe> <p class="text-xl font-semibold text-sand-900 mb-1" data-astro-cid-hnhh3bfe>Compliance Manager</p> <p class="text-sm text-sand-500 leading-snug" data-astro-cid-hnhh3bfe>Assess parts against 270+ global regulations.</p> </div> </a> </li><li class="flex-1 flex" data-astro-cid-hnhh3bfe> <a href="/products/supply-chain-watch" class="group flex flex-1 items-start gap-5 py-4 px-5 transition-colors duration-150 hover:bg-sand-100" data-astro-cid-hnhh3bfe> <img src="/brand/06-Product-Icons/Supply-Chain-Watch/Z2_Product_Icons_Supply-Chain-Watch.svg" alt="Supply Chain Watch" class="flex-shrink-0 w-8 h-8 object-contain mt-0.5" aria-hidden="true" data-astro-cid-hnhh3bfe> <div class="flex-1 min-w-0" data-astro-cid-hnhh3bfe> <p class="text-xl font-semibold text-sand-900 mb-1" data-astro-cid-hnhh3bfe>Supply Chain Watch</p> <p class="text-sm text-sand-500 leading-snug" data-astro-cid-hnhh3bfe>Map and monitor your manufacturing supply chain.</p> </div> </a> </li><li class="flex-1 flex" data-astro-cid-hnhh3bfe> <a href="/products/supplier-insights" class="group flex flex-1 items-start gap-5 py-4 px-5 transition-colors duration-150 hover:bg-sand-100" data-astro-cid-hnhh3bfe> <img src="/brand/06-Product-Icons/Supplier-Insights/Z2_Product_Icons_Supplier-Insights.svg" alt="Supplier Insights" class="flex-shrink-0 w-8 h-8 object-contain mt-0.5" aria-hidden="true" data-astro-cid-hnhh3bfe> <div class="flex-1 min-w-0" data-astro-cid-hnhh3bfe> <p class="text-xl font-semibold text-sand-900 mb-1" data-astro-cid-hnhh3bfe>Supplier Insights</p> <p class="text-sm text-sand-500 leading-snug" data-astro-cid-hnhh3bfe>Risk profiles for 1M+ suppliers worldwide.</p> </div> </a> </li> </ul> </div> <div class="nav-mega-sidebar flex-1 flex flex-col" data-astro-cid-hnhh3bfe> <a href="/products/enterprise-hub" class="nav-sidebar-hub group relative flex flex-col p-7 overflow-hidden" aria-label="Z2 Enterprise Hub" data-astro-cid-hnhh3bfe> <img src="/images/z2-logo-pixels.svg" alt="" aria-hidden="true" class="nav-sidebar-deco" loading="lazy" decoding="async" width="800" height="800" data-astro-cid-hnhh3bfe> <div class="relative z-10" data-astro-cid-hnhh3bfe> <h3 class="nav-sidebar-hub-title" data-astro-cid-hnhh3bfe>Z2 Enterprise Hub</h3> <p class="nav-sidebar-hub-desc" data-astro-cid-hnhh3bfe> Unified risk visibility across parts, suppliers, compliance, and minerals: one integration, one workflow. </p> </div> </a> <a href="/our-ai" class="nav-sidebar-ai group relative flex flex-col p-6 overflow-hidden" aria-label="AI for Supply Chain" data-astro-cid-hnhh3bfe> <span class="nav-ai-grid" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <div class="relative z-10" data-astro-cid-hnhh3bfe> <h3 class="nav-sidebar-ai-title" data-astro-cid-hnhh3bfe>AI for Supply Chain</h3> <p class="nav-sidebar-ai-desc" data-astro-cid-hnhh3bfe>Autonomous agents surface risks before they become disruptions.</p> </div> </a> <a href="/professional-services" class="nav-sidebar-svc group relative flex flex-col p-6 overflow-hidden" aria-label="Professional Services" data-astro-cid-hnhh3bfe> <div data-astro-cid-hnhh3bfe> <h3 class="nav-sidebar-svc-title" data-astro-cid-hnhh3bfe>Professional Services</h3> <p class="nav-sidebar-svc-desc" data-astro-cid-hnhh3bfe>We fill your data gaps so your program runs clean.</p> </div> </a> </div> </div> </div> <div id="mega-solutions" role="region" aria-label="Solutions menu" class="mega-panel bg-white" data-astro-cid-hnhh3bfe> <div class="nav-sol-grid" data-astro-cid-hnhh3bfe> <div class="nav-sol-col" data-astro-cid-hnhh3bfe> <p class="nav-sol-col-header" data-astro-cid-hnhh3bfe>Topics</p> <ul data-astro-cid-hnhh3bfe> <li data-astro-cid-hnhh3bfe> <a href="/solutions/supply-chain-risk-management" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Risk-Score" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Supply Chain Risk Management</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/solutions/compliance-and-sustainability" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-growth-grow-leafs" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Compliance & Sustainability</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/solutions/electronic-supply-chain" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-processor-chip" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Electronics Supply Chain</span> </a> </li> </ul> </div> <div class="nav-sol-col" data-astro-cid-hnhh3bfe> <p class="nav-sol-col-header" data-astro-cid-hnhh3bfe>Teams</p> <ul data-astro-cid-hnhh3bfe> <li data-astro-cid-hnhh3bfe> <a href="/solutions/engineering" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Gear-Icon" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Engineering</span> </a> </li><li data-astro-cid-hnhh3bfe>
172 <a href="/solutions/procurement" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-shoppingcart" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Procurement</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/solutions/supply-chain" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Supply-Chain" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Supply Chain</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/solutions/compliance" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Supplier-Compliance" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Compliance</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/solutions/leadership" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Dashboard" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Leadership</span> </a> </li> </ul> </div> <div class="nav-sol-col" data-astro-cid-hnhh3bfe> <p class="nav-sol-col-header" data-astro-cid-hnhh3bfe>Industries</p> <ul data-astro-cid-hnhh3bfe> <li data-astro-cid-hnhh3bfe> <a href="/industries/aerospace-defense" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Aviation" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Aerospace & Defense</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/industries/automotive" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Automotive2" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Automotive</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/industries/consumer-electronics" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Computer-and-Office-Products" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Consumer Electronics</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/industries/medical-devices" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Health-Disease" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Medical Devices</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/industries/telecommunications" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-RF" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Telecommunications</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/industries/industrial" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-factory-industrial" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Industrial</span> </a> </li><li data-astro-cid-hnhh3bfe> <a href="/industries/robotics" class="nav-sol-link" data-astro-cid-hnhh3bfe> <span class="nav-sol-ico icon-Sensors" aria-hidden="true" data-astro-cid-hnhh3bfe></span> <span data-astro-cid-hnhh3bfe>Robotics</span> </a> </li> </ul> </div> </div> </div> </div> </div> </div> <div id="mobile-menu" class="hidden lg:hidden border-t border-sand-600 bg-sand-100" data-astro-cid-hnhh3bfe> <div class="container py-2" data-astro-cid-hnhh3bfe> <details class="group border-b border-sand-600" data-astro-cid-hnhh3bfe> <summary class="flex items-center justify-between px-3 py-3.5 text-sm font-semibold text-sand-800 cursor-pointer select-none list-none" data-astro-cid-hnhh3bfe> Products <svg class="w-4 h-4 text-sand-500 flex-shrink-0 transition-transform duration-200 group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" data-astro-cid-hnhh3bfe></path> </svg> </summary> <div class="pb-3 space-y-1" data-astro-cid-hnhh3bfe> <a href="/products/part-risk-manager" class="block px-3 py-2 rounded-md hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe> <span class="block text-sm font-semibold text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe>Part Risk Manager</span> <span class="block text-xs text-sand-500 mt-0.5" data-astro-cid-hnhh3bfe>
172Component intelligence across 1B+ electronic parts.</span> </a><a href="/products/compliance-manager" class="block px-3 py-2 rounded-md hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe> <span class="block text-sm font-semibold text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe>Compliance Manager</span> <span class="block text-xs text-sand-500 mt-0.5" data-astro-cid-hnhh3bfe>Assess parts against 270+ global regulations.</span> </a><a href="/products/supply-chain-watch" class="block px-3 py-2 rounded-md hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe> <span class="block text-sm font-semibold text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe>Supply Chain Watch</span> <span class="block text-xs text-sand-500 mt-0.5" data-astro-cid-hnhh3bfe>Map and monitor your manufacturing supply chain.</span> </a><a href="/products/supplier-insights" class="block px-3 py-2 rounded-md hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe> <span class="block text-sm font-semibold text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe>Supplier Insights</span> <span class="block text-xs text-sand-500 mt-0.5" data-astro-cid-hnhh3bfe>Risk profiles for 1M+ suppliers worldwide.</span> </a> <div class="mt-2 pt-2 border-t border-sand-600 space-y-1" data-astro-cid-hnhh3bfe> <a href="/products/enterprise-hub" class="block px-3 py-2 rounded-md hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe> <span class="block text-sm font-semibold text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe>Z2 Enterprise Hub</span> <span class="block text-xs text-sand-500 mt-0.5" data-astro-cid-hnhh3bfe>Unified risk visibility across parts, suppliers, compliance, and minerals: one integration, one workflow.</span> </a> <a href="/professional-services" class="block px-3 py-2 rounded-md hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe> <span class="block text-sm font-semibold text-sand-800 hover:text-sand-900" data-astro-cid-hnhh3bfe>Professional Services</span> <span class="block text-xs text-sand-500 mt-0.5" data-astro-cid-hnhh3bfe>We fill your data gaps so your program runs clean.</span> </a> </div> </div> </details> <details class="group border-b border-sand-600" data-astro-cid-hnhh3bfe> <summary class="flex items-center justify-between px-3 py-3.5 text-sm font-semibold text-sand-800 cursor-pointer select-none list-none" data-astro-cid-hnhh3bfe> Solutions <svg class="w-4 h-4 text-sand-500 flex-shrink-0 transition-transform duration-200 group-open:rotate-180" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" data-astro-cid-hnhh3bfe></path> </svg> </summary> <div class="pb-3" data-astro-cid-hnhh3bfe> <p class="px-3 pt-2 pb-1.5 text-[10px] font-semibold uppercase tracking-widest text-sand-500" data-astro-cid-hnhh3bfe>Teams</p> <div class="space-y-0.5" data-astro-cid-hnhh3bfe> <a href="/solutions/engineering" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Engineering </a><a href="/solutions/procurement" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Procurement </a><a href="/solutions/supply-chain" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Supply Chain </a><a href="/solutions/compliance" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Compliance </a><a href="/solutions/leadership" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Leadership </a> </div> <p class="px-3 pt-3 pb-1.5 text-[10px] font-semibold uppercase tracking-widest text-sand-500" data-astro-cid-hnhh3bfe>Industries</p> <div class="space-y-0.5" data-astro-cid-hnhh3bfe> <a href="/industries/aerospace-defense" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Aerospace & Defense </a><a href="/industries/automotive" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Automotive </a><a href="/industries/consumer-electronics" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Consumer Electronics </a><a href="/industries/medical-devices" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Medical Devices </a><a href="/industries/telecommunications" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Telecommunications </a><a href="/industries/industrial" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Industrial </a><a href="/industries/robotics" class="block px-3 py-2.5 text-sm text-sand-700 hover:text-sand-900 hover:bg-sand-200 rounded-md transition-colors" data-astro-cid-hnhh3bfe> Robotics </a> </div> </div> </details> <div class="border-b border-sand-600" data-astro-cid-hnhh3bfe> <a href="/our-data" class="block px-3 py-3.5 text-sm font-medium text-sand-800 hover:text-sand-900 hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe>Our Data</a> <a href="/our-ai" class="block px-3 py-3.5 text-sm font-medium text-sand-800 hover:text-sand-900 hover:bg-sand-200 transition-colors" data-astro-cid-hnhh3bfe>Our AI</a> </div> <div class="pt-4 pb-5 flex flex-col gap-3" data-astro-cid-hnhh3bfe> <a href="/demo" class="inline-flex items-center justify-center gap-1.5 rounded-full bg-signal-400 hover:bg-primary-deep border-2 border-primary-deep text-sand-900 hover:text-sand-100 text-sm font-medium px-5 py-2.5 transition-colors" data-astro-cid-hnhh3bfe> See a Demo </a> </div> </div> </div> <div id="mobile-lang-menu" class="hidden lg:hidden border-t border-sand-600 bg-sand-100" data-astro-cid-hnhh3bfe> <div class="container py-4" data-astro-cid-hnhh3bfe> <div class="flex items-center gap-2 mb-3 text-[10px] font-semibold uppercase tracking-widest text-sand-500" data-astro-cid-hnhh3bfe> <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="14" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-hnhh3bfe="true" class="lucide lucide-globe text-sand-700"> <circle cx="12" cy="12" r="10"></circle> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path> <path d="M2 12h20"></path> </svg> <span data-astro-cid-hnhh3bfe>Language</span> </div> <ul class="grid grid-cols-2 min-[420px]:grid-cols-3 gap-x-2 gap-y-1" data-astro-cid-hnhh3bfe> <li data-astro-cid-hnhh3bfe> <a href="/about/" hreflang="en" data-locale="en" aria-current="true" class="block px-3 py-2.5 rounded-md text-sm transition-colors bg-sand-900 text-white font-medium" data-astro-cid-hnhh3bfe> English </a> </li><li data-astro-cid-hnhh3bfe> <a href="/ja/about/" hreflang="ja" data-locale="ja" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> æ¥æ¬èª </a> </li><li data-astro-cid-hnhh3bfe> <a href="/de/about/" hreflang="de" data-locale="de" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Deutsch </a> </li><li data-astro-cid-hnhh3bfe> <a href="/it/about/" hreflang="it" data-locale="it" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Italiano </a> </li><li data-astro-cid-hnhh3bfe> <a href="/pl/about/" hreflang="pl" data-locale="pl" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Polski </a> </li><li data-astro-cid-hnhh3bfe> <a href="/fr/about/" hreflang="fr" data-locale="fr" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Français </a> </li><li data-astro-cid-hnhh3bfe>
172 <a href="/ko/about/" hreflang="ko" data-locale="ko" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> íêµì´ </a> </li><li data-astro-cid-hnhh3bfe> <a href="/es/about/" hreflang="es" data-locale="es" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Español </a> </li><li data-astro-cid-hnhh3bfe> <a href="/pt/about/" hreflang="pt" data-locale="pt" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Português (Portugal) </a> </li><li data-astro-cid-hnhh3bfe> <a href="/pt-br/about/" hreflang="pt-BR" data-locale="pt-br" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Português (Brasil) </a> </li><li data-astro-cid-hnhh3bfe> <a href="/tr/about/" hreflang="tr" data-locale="tr" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Türkçe </a> </li><li data-astro-cid-hnhh3bfe> <a href="/th/about/" hreflang="th" data-locale="th" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> à¹à¸à¸¢ </a> </li><li data-astro-cid-hnhh3bfe> <a href="/nl/about/" hreflang="nl" data-locale="nl" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Nederlands </a> </li><li data-astro-cid-hnhh3bfe> <a href="/vi/about/" hreflang="vi" data-locale="vi" class="block px-3 py-2.5 rounded-md text-sm transition-colors text-sand-800 hover:bg-sand-200" data-astro-cid-hnhh3bfe> Tiếng Viá»t </a> </li> </ul> </div> </div> </header> <div id="header-logo-ctx" role="menu" aria-label="Logo options" class="fixed z-[9999] hidden" data-astro-cid-hnhh3bfe> <div class="bg-white border border-sand-600 rounded shadow-md overflow-hidden min-w-[190px] font-sans" data-astro-cid-hnhh3bfe> <button data-logo-action="newtab" role="menuitem" class="flex items-center gap-2.5 w-full px-3.5 py-2.5 text-sm font-medium text-sand-800 hover:bg-sand-100 transition-colors text-left" data-astro-cid-hnhh3bfe> <svg class="w-4 h-4 text-sand-500 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.75" aria-hidden="true" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" data-astro-cid-hnhh3bfe></path> </svg> Open in new tab </button> <div class="h-px bg-sand-300" data-astro-cid-hnhh3bfe></div> <a href="/brand/" role="menuitem" class="flex items-center gap-2.5 w-full px-3.5 py-2.5 text-sm font-medium text-sand-800 hover:bg-sand-100 transition-colors text-left no-underline" data-astro-cid-hnhh3bfe> <svg class="w-4 h-4 text-sand-500 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.75" aria-hidden="true" data-astro-cid-hnhh3bfe> <path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" data-astro-cid-hnhh3bfe></path> </svg> Download Z2 Logo </a> </div> </div> <div id="nav-backdrop" class="fixed inset-0 pointer-events-none" style="z-index: 40; opacity: 0; transition: opacity 200ms ease-out; background: #F9F8F0;" aria-hidden="true" data-astro-cid-hnhh3bfe></div>
172<script> 173 // ââ Mega menu: hover + click-sticky âââââââââââââââââââââââââââ 174 let closeTimer = null; 175 let stickyMenu = null; // id of the menu that was clicked open 176 177 const backdrop = document.getElementById('nav-backdrop'); 178 179 function showBackdrop() { 180 if (!backdrop) return; 181 backdrop.style.opacity = '1'; 182 backdrop.classList.remove('pointer-events-none'); 183 backdrop.classList.add('pointer-events-auto'); 184 } 185 186 function hideBackdrop() { 187 if (!backdrop) return; 188 backdrop.style.opacity = '0'; 189 backdrop.classList.add('pointer-events-none'); 190 backdrop.classList.remove('pointer-events-auto'); 191 } 192 193 const megaStack = document.getElementById('mega-stack'); 194 const megaClip = document.getElementById('mega-clip'); 195 196 // Sets the shared frame height. `animate` is false on the first open, 197 // so the panel appears at full size instead of unrolling. 198 function setClipHeight(panel, animate) { 199 if (!megaClip || !panel) return; 200 if (!animate) megaClip.classList.add('no-anim'); 201 megaClip.style.height = panel.offsetHeight + 'px'; 202 if (!animate) { 203 void megaClip.offsetHeight; // flush the un-animated height 204 megaClip.classList.remove('no-anim'); 205 } 206 } 207 208 function openMega(id) { 209 clearTimeout(closeTimer); 210 211 const panel = document.getElementById('mega-' + id); 212 const btn = document.getElementById('btn-' + id); 213 const chevron = document.getElementById('chevron-' + id); 214 if (!panel || !btn) return; 215 216 // Frame already up? Then this is a switch: keep the frame in place and 217 // just ease its height while the panels crossfade. 218 const wasOpen = !!megaStack?.classList.contains('is-open'); 219 220 ['products', 'solutions'].filter(x => x !== id).forEach(id2 => { 221 // don't force-close a sticky sibling via hover; close it visually only if not sticky 222 if (stickyMenu !== id2) closeMega(id2); 223 }); 224 225 setClipHeight(panel, wasOpen); 226 megaStack?.classList.add('is-open'); 227 panel.classList.add('is-open'); 228 btn.setAttribute('aria-expanded', 'true'); 229 btn.classList.add('is-nav-active'); 230 if (chevron) chevron.style.transform = 'rotate(180deg)'; 231 showBackdrop(); 232 } 233 234 function closeMega(id) { 235 const panel = document.getElementById('mega-' + id); 236 const btn = document.getElementById('btn-' + id); 237 const chevron = document.getElementById('chevron-' + id); 238 if (!panel) return; 239 240 panel.classList.remove('is-open'); 241 if (btn) { btn.setAttribute('aria-expanded', 'false'); btn.classList.remove('is-nav-active'); } 242 if (chevron) chevron.style.transform = ''; 243 244 const anyOpen = ['products', 'solutions'].some( 245 x => x !== id && document.getElementById('btn-' + x)?.getAttribute('aria-expanded') === 'true' 246 ); 247 if (!anyOpen) { 248 megaStack?.classList.remove('is-open'); 249 hideBackdrop(); 250 } 251 } 252 253 function scheduleClose() { 254 // Never auto-close if a menu is sticky 255 if (stickyMenu) return; 256 closeTimer = setTimeout(() => { 257 ['products', 'solutions'].forEach(closeMega); 258 }, 120); 259 } 260 261 function cancelClose() { 262 clearTimeout(closeTimer); 263 } 264 265 function clearSticky() { 266 stickyMenu = null; 267 ['products', 'solutions'].forEach(closeMega); 268 } 269 270 // Hover on trigger buttons (only when no sticky menu active) 271 document.querySelectorAll('.mega-trigger').forEach((btn) => { 272 const id = btn.getAttribute('data-menu'); 273 274 btn.addEventListener('mouseenter', () => { 275 if (stickyMenu && stickyMenu !== id) { 276 // hovering a different trigger while one is sticky: close old, open new 277 const prev = stickyMenu; 278 stickyMenu = null; 279 closeMega(prev); 280 } 281 openMega(id); 282 }); 283 284 btn.addEventListener('mouseleave', scheduleClose); 285 286 // Click toggles sticky 287 btn.addEventListener('click', (e) => { 288 e.stopPropagation(); 289 if (stickyMenu === id) { 290 // already sticky: unstick and close 291 stickyMenu = null; 292 closeMega(id); 293 } else { 294 // make this one sticky (close any previous sticky first) 295 if (stickyMenu) closeMega(stickyMenu); 296 stickyMenu = id; 297 openMega(id); 298 } 299 }); 300 }); 301 302 // Keep open while hovering the frame (unless sticky, in which case it's always open). 303 // Bound to the shared stack, so the pointer never falls into a dead gap mid-morph. 304 if (megaStack) { 305 megaStack.addEventListener('mouseenter', cancelClose); 306 megaStack.addEventListener('mouseleave', scheduleClose); 307 } 308 309 // Close on Escape 310 document.addEventListener('keydown', (e) => { 311 if (e.key === 'Escape') clearSticky(); 312 }); 313 314 // Backdrop click closes sticky 315 backdrop?.addEventListener('click', clearSticky); 316
317 // Click anywhere outside the header clears sticky 318 document.addEventListener('click', (e) => { 319 const header = document.getElementById('site-header'); 320 if (header && !header.contains(e.target)) clearSticky(); 321 }); 322 323 // ââ Header logo right-click context menu âââââââââââââââââââââ 324 (function () { 325 const logoLink = document.getElementById('header-logo'); 326 const ctxMenu = document.getElementById('header-logo-ctx'); 327 if (!logoLink || !ctxMenu) return; 328 329 function hideCtx() { ctxMenu.classList.add('hidden'); } 330 331 function showCtx(x, y) { 332 ctxMenu.classList.remove('hidden'); 333 const margin = 8; 334 const rect = ctxMenu.getBoundingClientRect(); 335 const w = ctxMenu.offsetWidth || 200; 336 const h = ctxMenu.offsetHeight || 160; 337 const left = Math.min(x, window.innerWidth - w - margin); 338 const top = Math.min(y, window.innerHeight - h - margin); 339 ctxMenu.style.left = left + 'px'; 340 ctxMenu.style.top = top + 'px'; 341 } 342 343 logoLink.addEventListener('contextmenu', function (e) { 344 e.preventDefault(); 345 showCtx(e.clientX, e.clientY); 346 }); 347 348 ctxMenu.querySelector('[data-logo-action="newtab"]')?.addEventListener('click', function () { 349 window.open('/', '_blank', 'noopener,noreferrer'); 350 hideCtx(); 351 }); 352 353 document.addEventListener('click', hideCtx); 354 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') hideCtx(); }); 355 document.addEventListener('contextmenu', function (e) { 356 if (!logoLink.contains(e.target)) hideCtx(); 357 }); 358 })(); 359 360 // ââ Mobile menu + language panel ââââââââââââââââââââââââââââââ 361 // Two full-width panels drop below the header on mobile: the hamburger nav 362 // and the globe language switcher. Only one is open at a time â opening one 363 // closes the other; Escape closes both. 364 const mobileBtn = document.getElementById('mobile-menu-btn'); 365 const mobileMenu = document.getElementById('mobile-menu'); 366 const iconOpen = document.getElementById('menu-icon-open'); 367 const iconClose = document.getElementById('menu-icon-close'); 368 const langBtn = document.getElementById('mobile-lang-btn'); 369 const langMenu = document.getElementById('mobile-lang-menu'); 370 371 function closeMobileNav() { 372 mobileMenu?.classList.add('hidden'); 373 iconOpen?.classList.remove('hidden'); 374 iconClose?.classList.add('hidden'); 375 mobileBtn?.setAttribute('aria-expanded', 'false'); 376 } 377 378 function closeMobileLang() { 379 langMenu?.classList.add('hidden'); 380 langBtn?.setAttribute('aria-expanded', 'false'); 381 } 382 383 mobileBtn?.addEventListener('click', () => { 384 const willOpen = mobileMenu?.classList.contains('hidden'); 385 closeMobileLang(); 386 mobileMenu?.classList.toggle('hidden', !willOpen); 387 iconOpen?.classList.toggle('hidden', !!willOpen); 388 iconClose?.classList.toggle('hidden', !willOpen); 389 mobileBtn.setAttribute('aria-expanded', String(!!willOpen)); 390 }); 391 392 langBtn?.addEventListener('click', () => { 393 const willOpen = langMenu?.classList.contains('hidden'); 394 closeMobileNav(); 395 langMenu?.classList.toggle('hidden', !willOpen); 396 langBtn.setAttribute('aria-expanded', String(!!willOpen)); 397 }); 398 399 // Persist the explicit language choice so the auto-detect redirect honors it 400 // (mirrors the desktop LangSwitcher behavior). Read data-locale, NOT hreflang: 401 // hreflang carries BCP-47 casing (pt-BR) but LocaleAutoDetect matches the 402 // cookie against LOCALES, which holds the lowercase code (pt-br). 403 langMenu?.querySelectorAll('a[data-locale]').forEach((a) => { 404 a.addEventListener('click', () => { 405 const code = a.getAttribute('data-locale'); 406 if (code) document.cookie = `pref_lang=${code};path=/;max-age=31536000;samesite=lax`; 407 }); 408 }); 409 410 document.addEventListener('keydown', (e) => { 411 if (e.key === 'Escape') { closeMobileNav(); closeMobileLang(); } 412 }); 413 414 // ââ Product page sticky header ââââââââââââââââââââââââââââââââ 415 (function () { 416 const header = document.getElementById('site-header'); 417 const defaultLogo = document.getElementById('header-logo'); 418 const productLogo = document.getElementById('header-product-logo'); 419 const solutionLabel = document.getElementById('header-solution-label'); 420 const mainNav = document.querySelector('#site-header #main-nav'); 421 const productNav = document.getElementById('header-product-nav'); 422 const ctaBtn = document.getElementById('header-product-cta-btn'); 423 const ctaForm = document.getElementById('header-demo-capture'); 424 425 // Activate on product pages (product logo present) and solution pages (solution label present) 426 if (!header || (!productLogo && !solutionLabel)) return; 427 428 let active = false;
429 430 function apply(sticky) { 431 if (sticky === active) return; 432 active = sticky; 433 434 if (sticky) { 435 header.classList.add('is-product-sticky'); 436 // Product pages: swap Z2 logo â product icon + name 437 if (productLogo) { 438 defaultLogo?.classList.add('hidden'); 439 productLogo.classList.remove('hidden'); 440 productLogo.classList.add('flex'); 441 } 442 // Solution pages: keep Z2 logo, reveal solution name beside it 443 if (solutionLabel) { 444 solutionLabel.classList.remove('hidden'); 445 solutionLabel.classList.add('flex'); 446 } 447 // Always hide main nav: sticky bar shows only the brand/name + CTA 448 mainNav?.classList.add('!hidden'); 449 // Swap CTA button â email-capture pill 450 ctaBtn?.classList.add('!hidden'); 451 ctaForm?.classList.remove('hidden'); 452 ctaForm?.classList.add('flex'); 453 } else { 454 header.classList.remove('is-product-sticky'); 455 // Restore product logo state 456 if (productLogo) { 457 defaultLogo?.classList.remove('hidden'); 458 productLogo.classList.add('hidden'); 459 productLogo.classList.remove('flex'); 460 } 461 // Hide solution name 462 if (solutionLabel) { 463 solutionLabel.classList.add('hidden'); 464 solutionLabel.classList.remove('flex'); 465 } 466 // Restore main nav 467 mainNav?.classList.remove('!hidden'); 468 // Restore CTA button 469 ctaBtn?.classList.remove('!hidden'); 470 ctaForm?.classList.add('hidden'); 471 ctaForm?.classList.remove('flex'); 472 } 473 } 474 475 window.addEventListener('scroll', function () { apply(window.scrollY > 20); }, { passive: true }); 476 apply(window.scrollY > 20); 477 })(); 478</script>
478 <main class="ab-main" data-astro-cid-kh7btl4r> <section class="ab-hero bg-sand-100" id="ab-hero" data-astro-cid-kh7btl4r> <canvas id="ab-terrain" class="ab-terrain" aria-hidden="true" data-astro-cid-kh7btl4r></canvas> <div class="ab-container ab-hero-inner" data-astro-cid-kh7btl4r> <div class="ab-hero-top" data-astro-cid-kh7btl4r> <p class="ab-eyebrow text-sand-900" data-astro-cid-kh7btl4r>About Z2</p> <p class="ab-coords text-sand-600" data-astro-cid-kh7btl4r>37.39° N â 121.97° W · Santa Clara, CA</p> </div> <div class="ab-hero-main" data-astro-cid-kh7btl4r> <h1 class="ab-hero-h1 text-sand-900" data-astro-cid-kh7btl4r> <span class="ab-line" data-astro-cid-kh7btl4r><span class="ab-line-in" data-astro-cid-kh7btl4r>Z2 maps the</span></span> <span class="ab-line" data-astro-cid-kh7btl4r><span class="ab-line-in" data-astro-cid-kh7btl4r>terrain of every</span></span> <span class="ab-line" data-astro-cid-kh7btl4r><span class="ab-line-in" data-astro-cid-kh7btl4r>supply chain.</span></span> </h1> <p class="ab-hero-sub text-sand-800" data-astro-cid-kh7btl4r> Z2 helps OEMs close the gaps in their supply chain visibility, pairing the industry's deepest databases with AI, domain experts, automated workflows, and professional services. One map of every part, supplier, site, and regulation. </p> </div> </div> </section> <section class="ab-stats bg-white border-y border-sand-600" data-astro-cid-kh7btl4r> <div class="ab-container" data-astro-cid-kh7btl4r> <div class="ab-stats-grid" data-astro-cid-kh7btl4r> <div class="ab-stat" data-astro-cid-kh7btl4r> <span class="ab-stat-val text-sand-900" data-value="1B+" data-astro-cid-kh7btl4r>1B+</span> <span class="ab-stat-label text-sand-800" data-astro-cid-kh7btl4r>Components surveyed</span> </div><div class="ab-stat" data-astro-cid-kh7btl4r> <span class="ab-stat-val text-sand-900" data-value="1M+" data-astro-cid-kh7btl4r>1M+</span> <span class="ab-stat-label text-sand-800" data-astro-cid-kh7btl4r>Suppliers mapped</span> </div><div class="ab-stat" data-astro-cid-kh7btl4r> <span class="ab-stat-val text-sand-900" data-value="200K" data-astro-cid-kh7btl4r>200K</span> <span class="ab-stat-label text-sand-800" data-astro-cid-kh7btl4r>Manufacturing sites charted</span> </div><div class="ab-stat" data-astro-cid-kh7btl4r> <span class="ab-stat-val text-sand-900" data-value="270+" data-astro-cid-kh7btl4r>270+</span> <span class="ab-stat-label text-sand-800" data-astro-cid-kh7btl4r>Regulatory regimes tracked</span> </div> </div> </div> </section> <section class="ab-manifesto bg-sand-100" id="ab-manifesto" data-astro-cid-kh7btl4r> <div class="ab-container" data-astro-cid-kh7btl4r> <p class="ab-mf-text" data-astro-cid-kh7btl4r> <span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>Supply</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>chains</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>don't</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>fail</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>where</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>you're</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>looking.</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>They</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>fail</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>in</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>the</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>unmapped</span><span class="ab-mf-w text-sand-900" data-astro-cid-kh7btl4r>nodes.</span> </p> </div> <svg class="ab-mf-glyph text-sand-800" viewBox="811.09 200 534.07 800" aria-hidden="true" data-astro-cid-kh7btl4r> <path fill="currentColor" d="M1217.62,744.8v127.56l-.04.08h-217.1s.43-.39,118.77-102.05c152.45-131,225.89-203.24,225.89-327.24,0-116.82-85.5-243.15-267.35-243.15-83.35,0-115.25,31.12-115.25,31.12v127.33s27.87-33.87,101.42-33.87c81.22,0,135.15,59.53,135.15,129.87,0,83.35-94.69,160.2-191.86,245.57l-196.16,172.38v127.56h534.07v-255.15h-127.55ZM962.48,358.48h-127.56v127.56h127.56v-127.56Z" data-astro-cid-kh7btl4r></path> </svg> </section> <section class="ab-approach bg-sand-200 border-t border-sand-600" id="ab-approach" data-astro-cid-kh7btl4r> <div class="ab-container" data-astro-cid-kh7btl4r> <div class="ab-approach-head" data-astro-cid-kh7btl4r> <h2 class="ab-h2 text-sand-900" data-astro-cid-kh7btl4r>How we craft supply chain data.</h2> </div> <div class="ab-app-rows border-t border-sand-600" data-astro-cid-kh7btl4r> <div class="ab-app-row border-b border-sand-600" data-astro-cid-kh7btl4r> <div class="ab-app-left" data-astro-cid-kh7btl4r> <p class="ab-eyebrow ab-app-eyebrow text-primary-dark" data-astro-cid-kh7btl4r>Databases</p> <h3 class="ab-app-title text-sand-900" data-astro-cid-kh7btl4r>Databases built from the ground up</h3> </div> <p class="ab-app-body text-sand-800" data-astro-cid-kh7btl4r>The terrain itself: 1B+ components, 1M+ suppliers, 200K manufacturing sites, and 270+ regulatory regimes, built and maintained in-house for over a decade. Every part links to its suppliers, sites, raw materials, and regulations in one graph.</p> </div><div class="ab-app-row border-b border-sand-600" data-astro-cid-kh7btl4r> <div class="ab-app-left" data-astro-cid-kh7btl4r> <p class="ab-eyebrow ab-app-eyebrow text-primary-dark" data-astro-cid-kh7btl4r>Artificial Intelligence</p> <h3 class="ab-app-title text-sand-900" data-astro-cid-kh7btl4r>AI that monitors the supply chain</h3> </div> <p class="ab-app-body text-sand-800" data-astro-cid-kh7btl4r>Our models monitor 120+ disruption event types in real time, from factory fires to export controls to financial distress, and trace each one to every BOM it touches. Teams hear about it roughly two weeks before manual monitoring catches up.</p> </div><div class="ab-app-row border-b border-sand-600" data-astro-cid-kh7btl4r> <div class="ab-app-left" data-astro-cid-kh7btl4r> <p class="ab-eyebrow ab-app-eyebrow text-primary-dark" data-astro-cid-kh7btl4r>People</p> <h3 class="ab-app-title text-sand-900" data-astro-cid-kh7btl4r>Domain experts who verify it</h3> </div> <p class="ab-app-body text-sand-800" data-astro-cid-kh7btl4r>500+ data scientists, materials researchers, and compliance specialists work alongside the models. AI surfaces the signal; our people confirm it's real. Nothing ships on a guess.</p> </div><div class="ab-app-row border-b border-sand-600" data-astro-cid-kh7btl4r> <div class="ab-app-left" data-astro-cid-kh7btl4r> <p class="ab-eyebrow ab-app-eyebrow text-primary-dark" data-astro-cid-kh7btl4r>Automated Workflows</p> <h3 class="ab-app-title text-sand-900" data-astro-cid-kh7btl4r>Workflows that run themselves</h3> </div> <p class="ab-app-body text-sand-800" data-astro-cid-kh7btl4r>BOM analysis, PCN and EOL alerts, supplier outreach, and compliance evidence collection run automatically inside the platform, so your team spends its time acting on risk instead of compiling it.</p> </div><div class="ab-app-row border-b border-sand-600" data-astro-cid-kh7btl4r> <div class="ab-app-left" data-astro-cid-kh7btl4r> <p class="ab-eyebrow ab-app-eyebrow text-primary-dark" data-astro-cid-kh7btl4r>Services</p> <h3 class="ab-app-title text-sand-900" data-astro-cid-kh7btl4r>Professional services for the hard miles</h3> </div> <p class="ab-app-body text-sand-800" data-astro-cid-kh7btl4r>When a gap needs more than software, our services team works alongside yours: data cleanup, compliance campaigns, supplier engagement, and custom intelligence projects.</p> </div> </div> </div> </section> <section class="ab-mosaic bg-sand-100" id="ab-mosaic" data-astro-cid-kh7btl4r> <div class="ab-container" data-astro-cid-kh7btl4r>
478 <div class="ab-mosaic-head" data-astro-cid-kh7btl4r> <div data-astro-cid-kh7btl4r> <p class="ab-eyebrow text-primary-dark" data-astro-cid-kh7btl4r>The team</p> <h2 class="ab-h2 text-sand-900" data-astro-cid-kh7btl4r>Supply chain veterans.<br data-astro-cid-kh7btl4r>Zero shortcuts.</h2> </div> <div class="ab-mosaic-story" data-astro-cid-kh7btl4r> <p class="ab-lede text-sand-800" data-astro-cid-kh7btl4r> Z2's founders spent 20+ years inside complex manufacturing supply chains. They watched procurement scramble for data that didn't exist, compliance drown in spreadsheets, and engineers learn about obsolescence from a last-time-buy email. So they built the platform they always wanted. </p> <p class="ab-lede text-sand-800" data-astro-cid-kh7btl4r> Today, 500+ specialists work alongside our AI: domain experts, data scientists, materials and compliance researchers. The models surface the signal; our people confirm it's real. </p> </div> </div> <div class="ab-mosaic-grid" id="ab-mosaic-grid" data-astro-cid-kh7btl4r> <div class="ab-mosaic-col" data-shift="14" style="padding-top:0" data-astro-cid-kh7btl4r> <div class="ab-tile ab-tile--photo ab-tile--tall" data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-03.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-17.webp" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-10.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-06.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div> </div><div class="ab-mosaic-col" data-shift="36" style="padding-top:2rem" data-astro-cid-kh7btl4r> <div class="ab-tile ab-tile--photo ab-tile--tall" data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-01.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-15.webp" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-09.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div> </div><div class="ab-mosaic-col" data-shift="22" style="padding-top:0" data-astro-cid-kh7btl4r> <div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-07.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-16.webp" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo ab-tile--tall" data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-02.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-08.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div> </div><div class="ab-mosaic-col" data-shift="30" style="padding-top:2rem" data-astro-cid-kh7btl4r> <div class="ab-tile ab-tile--photo ab-tile--tall" data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-11.png" alt width="320" height="320" loading="lazy" decoding="async" style="object-position:center 10%" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-18.webp" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-12.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div> </div><div class="ab-mosaic-col" data-shift="18" style="padding-top:0" data-astro-cid-kh7btl4r> <div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-omeed.webp" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-05.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div><div class="ab-tile ab-tile--photo " data-astro-cid-kh7btl4r> <img src="/brand/team/bw/team-13.png" alt width="320" height="320" loading="lazy" decoding="async" data-astro-cid-kh7btl4r="true"> </div> </div> </div> </div> </section> <section aria-label="Companies that use Z2" class="bg-white border-y border-sand-300 py-10" data-astro-cid-midc3u7a> <div class="container" data-astro-cid-midc3u7a> <ul class="grid grid-cols-2 gap-x-4 gap-y-7 items-center w-full sm:grid-cols-4 lg:flex lg:flex-nowrap lg:justify-evenly lg:gap-x-4 lg:gap-y-0" role="list" data-astro-cid-midc3u7a> <li role="listitem" class="flex items-center justify-center" data-astro-cid-midc3u7a> <img src="/images/logo-qualcomm.png" alt="Qualcomm" title="Qualcomm" loading="eager" decoding="async" class="cust-bar-logo" data-astro-cid-midc3u7a> </li><li role="listitem" class="flex items-center justify-center" data-astro-cid-midc3u7a> <img src="/images/logo-teradyne.png" alt="Teradyne" title="Teradyne" loading="eager" decoding="async" class="cust-bar-logo" data-astro-cid-midc3u7a> </li><li role="listitem" class="flex items-center justify-center" data-astro-cid-midc3u7a>
478 <img src="/images/logo-netapp.png" alt="NetApp" title="NetApp" loading="eager" decoding="async" class="cust-bar-logo" data-astro-cid-midc3u7a> </li><li role="listitem" class="flex items-center justify-center" data-astro-cid-midc3u7a> <img src="/images/logo-paloalto.png" alt="Palo Alto Networks" title="Palo Alto Networks" loading="eager" decoding="async" class="cust-bar-logo" data-astro-cid-midc3u7a> </li><li role="listitem" class="flex items-center justify-center" data-astro-cid-midc3u7a> <img src="/images/logo-dell.png" alt="Dell" title="Dell" loading="eager" decoding="async" class="cust-bar-logo" data-astro-cid-midc3u7a> </li><li role="listitem" class="flex items-center justify-center" data-astro-cid-midc3u7a> <img src="/images/logos-clients/airbus.png" alt="Airbus" title="Airbus" loading="eager" decoding="async" class="cust-bar-logo" data-astro-cid-midc3u7a> </li><li role="listitem" class="flex items-center justify-center" data-astro-cid-midc3u7a> <img src="/images/logo-enphase-grey.svg" alt="Enphase" title="Enphase" loading="eager" decoding="async" class="cust-bar-logo" data-astro-cid-midc3u7a> </li> </ul> </div> </section> <section class="demo-cta-section bg-signal-400 text-sand-900" data-astro-cid-sxk4qlxd> <span class="corner corner-tl bg-sand-900" data-astro-cid-sxk4qlxd></span> <span class="corner corner-tr bg-sand-900" data-astro-cid-sxk4qlxd></span> <span class="corner corner-bl bg-sand-900" data-astro-cid-sxk4qlxd></span> <span class="corner corner-br bg-sand-900" data-astro-cid-sxk4qlxd></span> <div class="demo-cta-inner" data-astro-cid-sxk4qlxd> <h2 class="demo-cta-headline" data-astro-cid-sxk4qlxd> Find the supply chain risk before it <em data-astro-cid-sxk4qlxd>finds you.</em> </h2> <form class="demo-cta-form" id="demo-footer-capture" action="/demo" method="GET" novalidate data-astro-cid-4f3t23wn> <div class="form-pill border-sand-900" data-astro-cid-4f3t23wn> <input type="email" placeholder="Your work email address" class="demo-email-input text-sand-900" aria-label="Work email address" required data-astro-cid-4f3t23wn> <button type="submit" class="demo-cta-btn bg-sand-900 text-sand-100" data-astro-cid-4f3t23wn> Book My Demo â 479</button> </div> <p class="z2-form-err demo-cta-err" role="alert" aria-live="polite" data-astro-cid-4f3t23wn></p> </form> </div> </section> </main> <footer class="bg-sand-900 relative overflow-hidden"> <div class="absolute inset-0 pointer-events-none" style="mask-image:linear-gradient(to bottom,transparent 0%,transparent 45%,rgba(0,0,0,0.35) 65%,black 82%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 45%,rgba(0,0,0,0.35) 65%,black 82%);">
479 <canvas id="footer-terrain" class="w-full h-full" aria-hidden="true"></canvas> </div> <div class="container pt-10 pb-10 lg:pt-14 lg:pb-12 relative z-10"> <div class="flex items-start gap-8 xl:gap-12"> <div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-x-6 gap-y-10 flex-1 sm:gap-x-8 xl:gap-x-10"> <div> <div class="min-h-8 flex items-end mb-6"> <h3 class="type-eyebrow text-white text-[10px]">Products</h3> </div> <ul class="space-y-1"> <li> <a href="/products/supply-chain-watch" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Supply Chain Watch </a> </li><li> <a href="/products/compliance-manager" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Compliance Manager </a> </li><li> <a href="/products/part-risk-manager" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Part Risk Manager </a> </li><li> <a href="/products/supplier-insights" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Supplier Insights </a> </li> <li class="!mt-3 !mb-2"> <hr class="border-white/15 w-8"> </li> <li> <a href="/our-ai" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> AI for Supply Chain </a> </li><li> <a href="/products/enterprise-hub" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Z2 Enterprise Hub </a> </li><li> <a href="/professional-services" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Professional Services </a> </li> </ul> </div> <div> <div class="min-h-8 flex items-end mb-6"> <h3 class="type-eyebrow text-white text-[10px]">Solutions</h3> </div> <ul class="space-y-1"> <li> <a href="/solutions/supply-chain-risk-management" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Supply Chain Risk Management </a> </li><li> <a href="/solutions/compliance-and-sustainability" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Compliance & Sustainability </a> </li><li> <a href="/solutions/electronic-supply-chain" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Electronics Supply Chain </a> </li> </ul> </div> <div> <div class="min-h-8 flex items-end mb-6"> <h3 class="type-eyebrow text-white text-[10px]">For Industry</h3> </div> <ul class="space-y-1"> <li> <a href="/industries/consumer-electronics" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Consumer Electronics </a> </li><li> <a href="/industries/aerospace-defense" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Aerospace & Defense </a> </li><li> <a href="/industries/medical-devices" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Medical Devices </a> </li><li> <a href="/industries/automotive" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Automotive </a> </li><li> <a href="/industries/telecommunications" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Telecommunications </a> </li><li> <a href="/industries/industrial" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Industrial </a> </li><li> <a href="/industries/robotics" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Robotics </a> </li> </ul> </div> <div> <div class="min-h-8 flex items-end mb-6"> <h3 class="type-eyebrow text-white text-[10px]">Resources</h3> </div> <ul class="space-y-1"> <li> <a href="/insights" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Blog </a> </li><li> <a href="/newsletter" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Newsletter </a> </li><li> <a href="/case-studies" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Case Studies </a> </li><li> <a href="/guides" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Guides </a> </li> </ul> </div> <div> <div class="min-h-8 flex items-end mb-6"> <h3 class="type-eyebrow text-white text-[10px]">Company</h3> </div> <ul class="space-y-1"> <li> <a href="/about" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> About Us </a> </li><li> <a href="/contact" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Contact Us </a> </li><li> <a href="/our-data" class="text-sm text-white/70 hover:text-white transition-colors duration-150 leading-normal"> Our Data </a> </li> </ul> <a href="https://www.linkedin.com/company/z2data" target="_blank" rel="noopener noreferrer" aria-label="Z2 on LinkedIn" class="inline-flex items-center opacity-70 hover:opacity-100 transition-opacity duration-150 mt-6"> <svg class="h-6 w-6 text-white" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false"> <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.225 0z"></path> </svg> </a> </div> </div> </div> </div> <div id="footer-bottom" class="relative overflow-hidden z-10" style="height:140px"> <div class="container relative h-full pointer-events-none"> <div class="absolute bottom-4 left-0 z-10 flex flex-wrap items-center gap-x-3 gap-y-1.5 pl-4 sm:pl-6 lg:pl-8 pointer-events-auto"> <p class="type-footer-legal text-white/45 leading-snug m-0"> 480©2026 Z2Data. All rights reserved.  481<a href="/privacy-policy" class="underline underline-offset-2 hover:text-white/50 transition-colors">Privacy Policy</a> </p> <span class="hidden sm:inline text-white/20" aria-hidden="true">·</span> <div class="z2-langsw z2-langsw--footer" data-langsw data-astro-cid-fhi4yxem> <button type="button" class="z2-langsw__btn" aria-haspopup="true" aria-expanded="false" aria-label="Cho
481ose your language" data-langsw-btn data-astro-cid-fhi4yxem> <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="14" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-fhi4yxem="true" class="lucide lucide-globe z2-langsw__globe z2-langsw__globe--footer"> <circle cx="12" cy="12" r="10"></circle> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path> <path d="M2 12h20"></path> </svg> <span class="z2-langsw__current" data-astro-cid-fhi4yxem>English</span> <svg class="z2-langsw__caret" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true" data-astro-cid-fhi4yxem> <path stroke-linecap="round" stroke-linejoin="round" d="M6 15l6-6 6 6" data-astro-cid-fhi4yxem></path> </svg> </button> <ul class="z2-langsw__panel" role="menu" data-langsw-panel data-astro-cid-fhi4yxem> <li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="en" data-locale="en" href="/about/" class="z2-langsw__opt is-active" aria-current="true" data-astro-cid-fhi4yxem> English </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="ja" data-locale="ja" href="/ja/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> æ¥æ¬èª </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="de" data-locale="de" href="/de/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Deutsch </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="it" data-locale="it" href="/it/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Italiano </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="pl" data-locale="pl" href="/pl/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Polski </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="fr" data-locale="fr" href="/fr/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Français </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="ko" data-locale="ko" href="/ko/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> íêµì´ </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="es" data-locale="es" href="/es/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Español </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="pt" data-locale="pt" href="/pt/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Português (Portugal) </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="pt-BR" data-locale="pt-br" href="/pt-br/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Português (Brasil) </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="tr" data-locale="tr" href="/tr/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Türkçe </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="th" data-locale="th" href="/th/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> à¹à¸à¸¢ </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="nl" data-locale="nl" href="/nl/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Nederlands </a> </li><li role="none" data-astro-cid-fhi4yxem> <a role="menuitem" hreflang="vi" data-locale="vi" href="/vi/about/" class="z2-langsw__opt" data-astro-cid-fhi4yxem> Tiếng Viá»t </a> </li> </ul> </div> </div> <a href="/" id="footer-logo" aria-label="Z2 home" class="absolute top-0 right-0 pointer-events-auto"> <div aria-hidden="true" style="height:260px;width:372px;background-color:#231C13;-webkit-mask:url('/brand/01-Logos/02-Digital/Negative/Z2_Logo_NEG_RGB_trimmed.svg') no-repeat center/contain;mask:url('/brand/01-Logos/02-Digital/Negative/Z2_Logo_NEG_RGB_trimmed.svg') no-repeat center/contain;"></div> </a> </div> </div> </footer> <div id="footer-logo-ctx" role="menu" aria-label="Logo options" class="fixed z-[9999] hidden"> <div class="bg-white border border-sand-600 rounded shadow-md overflow-hidden min-w-[190px] font-sans"> <button data-logo-action="newtab" role="menuitem" class="flex items-center gap-2.5 w-full px-3.5 py-2.5 text-sm font-medium text-sand-800 hover:bg-sand-100 transition-colors text-left"> <svg class="w-4 h-4 text-sand-500 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.75" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path> </svg> Open in new tab </button> <div class="h-px bg-sand-300"></div> <div class="flex items-center gap-2.5 px-3.5 py-2.5 cursor-default select-none"> <svg class="w-4 h-4 text-sand-500 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.75" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"></path> </svg> <span class="text-sm font-medium text-sand-800">Download Z2 Logo</span> </div> <button data-logo-dl="svg" role="menuitem" class="flex items-center gap-2.5 w-full px-3.5 py-2 text-xs font-medium text-sand-700 hover:bg-sand-100 transition-colors text-left"> <svg class="w-4 h-4 text-sand-400 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.75" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M7 8l-4 4 4 4M17 8l4 4-4 4M14 4l-4 16"></path> </svg> 482SVG 483</button> <button data-logo-dl="png" role="menuitem" class="flex items-center gap-2.5 w-full px-3.5 py-2 text-xs font-medium text-sand-700 hover:bg-sand-100 transition-colors text-left"> <svg class="w-4 h-4 text-sand-400 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.75" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path> </svg> 484PNG 485</button> <button data-logo-dl="jpg" role="menuitem" class="flex items-center gap-2.5 w-full px-3.5 py-2 mb-1 text-xs font-medium text-sand-700 hover:bg-sand-100 transition-colors text-left"> <svg class="w-4 h-4 text-sand-400 flex-shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.75" aria-hidden="true"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <circle cx="8.5" cy="8.5" r="1.5"></circle> <path stroke-linecap="round" stroke-linejoin="round" d="M21 15l-5-5L5 21"></path> </svg> 486JPG 487</button> </div> </div>
487<script> 488 /* ââ Logo context menu ââââââââââââââââââââââââââââââââââââââââ */ 489 (function () { 490 const logoLink = document.getElementById('footer-logo'); 491 const ctxMenu = document.getElementById('footer-logo-ctx'); 492 if (!logoLink || !ctxMenu) return; 493 494 const logoFiles = { 495 svg: { url: '/brand/01-Logos/02-Digital/Negative/Z2_Logo_NEG_RGB.svg', name: 'Z2_Logo_White.svg' }, 496 png: { url: '/brand/01-Logos/02-Digital/Negative/Z2_Logo_NEG_RGB.png', name: 'Z2_Logo_White.png' }, 497 jpg: { url: '/brand/01-Logos/02-Digital/Negative/Z2_Logo_NEG_RGB.jpg', name: 'Z2_Logo_White.jpg' }, 498 }; 499 500 function hideCtx() { ctxMenu.classList.add('hidden'); } 501 502 function showCtx(x, y) { 503 ctxMenu.classList.remove('hidden'); 504 var margin = 8; 505 var w = ctxMenu.offsetWidth || 200; 506 var h = ctxMenu.offsetHeight || 160; 507 var left = Math.min(x, window.innerWidth - w - margin); 508 var top = Math.min(y, window.innerHeight - h - margin); 509 ctxMenu.style.left = left + 'px'; 510 ctxMenu.style.top = top + 'px'; 511 } 512 513 logoLink.addEventListener('contextmenu', function (e) { 514 e.preventDefault(); 515 showCtx(e.clientX, e.clientY); 516 }); 517 518 ctxMenu.querySelector('[data-logo-action="newtab"]') && ctxMenu.querySelector('[data-logo-action="newtab"]').addEventListener('click', function () { 519 window.open('/', '_blank', 'noopener,noreferrer'); 520 hideCtx(); 521 }); 522 523 ctxMenu.querySelectorAll('[data-logo-dl]').forEach(function (btn) { 524 btn.addEventListener('click', function () { 525 var fmt = btn.getAttribute('data-logo-dl'); 526 var file = logoFiles[fmt]; 527 if (!file) return; 528 var a = document.createElement('a'); 529 a.href = file.url; 530 a.download = file.name; 531 document.body.appendChild(a); 532 a.click(); 533 document.body.removeChild(a); 534 hideCtx(); 535 }); 536 }); 537 538 document.addEventListener('click', hideCtx); 539 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') hideCtx(); }); 540 document.addEventListener('contextmenu', function (e) { 541 if (!logoLink.contains(e.target)) hideCtx(); 542 }); 543 })(); 544 545 /* ââ Mosaic terrain animation âââââââââââââââââââââââââââââââââ */ 546 (function () { 547 var canvas = document.getElementById('footer-terrain'); 548 var wrap = canvas && canvas.closest('footer'); 549 if (!canvas || !canvas.getContext || !wrap) return; 550 551 var ctx = canvas.getContext('2d'); 552 var CELL = 5; 553 var MOUSE_R = 320; /* px â wide diffuse glow */ 554 var W, H, cols, rows, t = 0, raf = null; 555 var mxRaw = -9999, myRaw = -9999; /* mouse in page coords */ 556 557 function resize() { 558 W = canvas.width = canvas.offsetWidth; 559 H = canvas.height = canvas.offsetHeight; 560 cols = Math.ceil(W / CELL) + 1; 561 rows = Math.ceil(H / CELL) + 1; 562 } 563 564 /* 4 sine waves â slow rolling hills */ 565 function fieldVal(c, r) { 566 var x = c / Math.max(cols - 1, 1); 567 var y = r / Math.max(rows - 1, 1); 568 return ( 569 Math.sin(x * 3.1 + t * 0.22) * 0.38 + 570 Math.sin(x * 6.8 + y * 1.4 + t * 0.30) * 0.26 + 571 Math.sin((x - y) * 4.5 + t * 0.18) * 0.20 + 572 Math.sin(y * 5.2 - t * 0.14) * 0.16 573 ); 574 } 575 576 function draw() { 577 ctx.clearRect(0, 0, W, H); 578 579 /* mouse position relative to canvas */ 580 var rect = canvas.getBoundingClientRect(); 581 var mx = mxRaw - rect.left; 582 var my = myRaw - rect.top; 583 var hasMouse = mxRaw > -9000; 584 585 for (var r = 0; r < rows; r++) { 586 for (var c = 0; c < cols; c++) { 587 var v = (fieldVal(c, r) + 1) * 0.5; /* â [0,1] */ 588 589 /* edge vignette â fade left/right/bottom edges */ 590 var ex = c / Math.max(cols - 1, 1); 591 var ey = r / Math.max(rows - 1, 1); 592 var edgeX = Math.min(ex / 0.18, (1 - ex) / 0.18, 1); 593 var edgeY = Math.min(ey / 0.12, 1); 594 var edge = edgeX * edgeY; 595 596 /* constant dim base so grid never disappears */ 597 var a = 0.028 * edge; 598 599 /* height contribution â ramps up on peaks */ 600 if (v > 0.44) { 601 a += Math.pow((v - 0.44) / 0.56, 1.5) * 0.24 * edge; 602 } 603 604 /* subtle mouse proximity glow */ 605 if (hasMouse) { 606 var cx = c * CELL + CELL * 0.5; 607 var cy = r * CELL + CELL * 0.5; 608 var dx = cx - mx, dy = cy - my; 609 var d2 = dx * dx + dy * dy; 610 if (d2 < MOUSE_R * MOUSE_R) { 611 var falloff = 1 - Math.sqrt(d2) / MOUSE_R; 612 a += falloff * 0.06; 613 } 614 } 615 616 ctx.fillStyle = 'rgba(255,255,255,' + Math.min(a, 0.46).toFixed(3) + ')'; 617 ctx.fillRect(c * CELL, r * CELL, CELL - 1, CELL - 1); 618 } 619 } 620 621 t += 0.006; 622 raf = requestAnimationFrame(draw); 623 } 624 625 /* Track mouse on the wrap div (canvas has pointer-events:none) */ 626 wrap.addEventListener('mousemove', function (e) { 627 mxRaw = e.clientX; 628 myRaw = e.clientY; 629 }); 630 wrap.addEventListener('mouseleave', function () { 631 mxRaw = -9999; 632 myRaw = -9999; 633 }); 634 635 /* Pause when footer scrolls off-screen */ 636 if (typeof IntersectionObserver !== 'undefined') { 637 var io = new IntersectionObserver(function (entries) {
638 entries.forEach(function (e) { 639 if (e.isIntersecting) { 640 resize(); 641 if (!raf) draw(); 642 } else { 643 if (raf) { cancelAnimationFrame(raf); raf = null; } 644 } 645 }); 646 }, { threshold: 0 }); 647 io.observe(canvas); 648 } else { 649 resize(); 650 draw(); 651 } 652 653 var resizeTimer; 654 window.addEventListener('resize', function () { 655 clearTimeout(resizeTimer); 656 resizeTimer = setTimeout(resize, 120); 657 }); 658 })(); 659</script>
659 <div id="z2-exit-popup" class="z2ep-overlay fixed inset-0 z-[9998] flex items-center justify-center p-4 backdrop-blur-sm sm:p-6" data-cooldown-days="7" data-popup-id="default" hidden data-astro-cid-iottuixs> <div role="dialog" aria-modal="true" aria-labelledby="z2ep-headline" aria-describedby="z2ep-desc z2ep-bullets" tabindex="-1" class="z2ep-card relative max-h-[92vh] w-full border border-sand-300 bg-sand-100 shadow-2xl outline-none focus:outline-none focus-visible:outline-none max-w-4xl sm:grid sm:grid-cols-[1.15fr_0.85fr]" data-astro-cid-iottuixs> <button type="button" class="z2ep-close absolute right-4 top-4 z-10 inline-flex h-9 w-9 items-center justify-center rounded-full bg-white/90 text-sand-700 shadow-sm transition-colors hover:bg-white hover:text-sand-900" aria-label="Close" data-astro-cid-iottuixs> <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="24" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" data-astro-cid-iottuixs="true" class="lucide lucide-x h-5 w-5"> <path d="M18 6 6 18"></path> <path d="m6 6 12 12"></path> </svg> </button> <div class="z2ep-media overflow-hidden bg-sand-200 h-48 sm:order-2 sm:h-auto" data-astro-cid-iottuixs> <img src="/images/exit-popups/supply-chain-watch.webp" alt class="h-full w-full object-cover" loading="lazy" data-astro-cid-iottuixs> </div> <div class="relative p-6 sm:order-1 sm:p-10" data-astro-cid-iottuixs> <h2 id="z2ep-headline" class="type-header text-3xl leading-[1.08] text-sand-900 sm:text-4xl" data-astro-cid-iottuixs> <span class="block" data-astro-cid-iottuixs>Start your free trial.</span> <span class="block" data-astro-cid-iottuixs>Surface hidden supply-chain risk.</span> </h2> <ul id="z2ep-bullets" class="mt-5 space-y-3" data-astro-cid-iottuixs> <li class="flex items-start gap-3 text-left" data-astro-cid-iottuixs> <span aria-hidden="true" class="mt-[10px] h-1.5 w-1.5 shrink-0 bg-sand-900" data-astro-cid-iottuixs></span> <span class="type-body text-sand-800" data-astro-cid-iottuixs>Part & sub-tier risk</span> </li><li class="flex items-start gap-3 text-left" data-astro-cid-iottuixs> <span aria-hidden="true" class="mt-[10px] h-1.5 w-1.5 shrink-0 bg-sand-900" data-astro-cid-iottuixs></span> <span class="type-body text-sand-800" data-astro-cid-iottuixs>Compliance, PCN & shortage</span> </li><li class="flex items-start gap-3 text-left" data-astro-cid-iottuixs> <span aria-hidden="true" class="mt-[10px] h-1.5 w-1.5 shrink-0 bg-sand-900" data-astro-cid-iottuixs></span> <span class="type-body text-sand-800" data-astro-cid-iottuixs>Alerts routed to your team</span> </li> </ul> <form id="exit-popup-capture" action="/free-trial" method="GET" novalidate class="z2ep-form mt-7" data-astro-cid-iottuixs> <div class="flex flex-col gap-2 rounded-[28px] border-2 border-primary-deep bg-white p-2 sm:flex-row sm:items-center sm:gap-0 sm:rounded-full" data-astro-cid-iottuixs> <input type="email" placeholder="Your work email" aria-label="Work email address" class="z2ep-email w-full min-w-0 bg-transparent px-5 py-3 text-base text-sand-900 placeholder-sand-800 outline-none focus:outline-none focus-visible:outline-none focus:ring-0 sm:w-auto sm:flex-1" data-astro-cid-iottuixs> <button type="submit" class="z2ep-cta inline-flex w-full flex-shrink-0 items-center justify-center gap-1.5 rounded-full border-2 border-primary-deep bg-signal-400 px-6 py-3 text-sm font-medium text-sand-900 transition-colors hover:bg-primary-deep hover:text-sand-100 sm:w-auto sm:text-base" data-astro-cid-iottuixs> Start free trial <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true" data-astro-cid-iottuixs> <path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3" data-astro-cid-iottuixs></path> </svg> </button> </div> <p class="z2-form-err z2ep-err" role="alert" aria-live="polite" data-astro-cid-iottuixs></p> </form> </div> </div> </div>
659<script type="module">const t=document.getElementById("z2-exit-popup");if(t){let d=function(){try{const e=JSON.parse(localStorage.getItem(m)||"{}");return e&&e.day===y()&&Number(e.count)||0}catch{return 0}},h=function(){return f?!1:d()>=k},E=function(){try{localStorage.setItem(m,JSON.stringify({day:y(),count:d()+1}))}catch{}},S=function(e){if(e.key!=="Tab")return;const n=p.querySelectorAll('a[href],button:not([disabled]),input,[tabindex]:not([tabindex="-1"])');if(!n.length)return;const _=n[0],g=n[n.length-1];e.shiftKey&&document.activeElement===_?(e.preventDefault(),g.focus()):!e.shiftKey&&document.activeElement===g&&(e.preventDefault(),_.focus())},l=function(e){e.key==="Escape"?s("dismiss"):S(e)},u=function(){w||h()||(w=!0,E(),i=document.activeElement,t.hidden=!1,requestAnimationFrame(()=>t.classList.add("is-open")),document.body.style.overflow="hidden",p.focus(),document.addEventListener("keydown",l),o("z2_exit_popup_view"))},s=function(e){t.classList.remove("is-open"),document.body.style.overflow="",document.removeEventListener("keydown",l),window.setTimeout(()=>{t.hidden=!0},200),i&&i.focus(),e==="dismiss"&&o("z2_exit_popup_dismiss")};const p=t.querySelector('[role="dialog"]'),L=t.querySelector(".z2ep-close"),b=t.querySelector(".z2ep-form"),z=t.getAttribute("data-popup-id")||"exit-popup",m="z2_exit_popup_seen",k=2,f=/^(localhost|127\.0\.0\.1|0\.0\.0\.0)$/.test(location.hostname),o=e=>(window.dataLayer=window.dataLayer||[]).push({event:e,popup_id:z}),y=()=>new Date().toDateString();let i=null,w=!1;L.addEventListener("click",()=>s("dismiss")),t.addEventListener("click",e=>{e.target===t&&s("dismiss")}),b?.addEventListener("submit",()=>o("z2_exit_popup_click")),t.querySelector("a.z2ep-cta")?.addEventListener("click",()=>o("z2_exit_popup_click"));let c=f;const r=()=>{c=!0};let a=1;try{a=(parseInt(sessionStorage.getItem("z2_pageviews")||"0",10)||0)+1,sessionStorage.setItem("z2_pageviews",String(a))}catch{}a>=2&&r(),window.setTimeout(r,3e4),document.documentElement.addEventListener("mouseleave",e=>{c&&e.clientY<=0&&u()});let v=window.scrollY;window.addEventListener("scroll",()=>{const e=window.scrollY;(e+window.innerHeight)/document.documentElement.scrollHeight>=.5&&r(),c&&e<150&&v-e>60&&u(),v=e},{passive:!0})}</script>
659
659<script type="application/json" id="z2-form-err-strings">{"empty":"Please enter your work email.","invalid":"Please enter a valid email address.","free":"Please use your work email address, not a personal one.","disposable":"Please use a valid work email address.","generic":"Please use your work email address.","phoneRequired":"Enter your phone number.","phoneInvalid":"Enter a valid phone number.","firstNameRequired":"Enter your first name.","lastNameRequired":"Enter your last name.","companyRequired":"Enter your company name.","fieldRequired":"This field is required.","nameRequired":"Please enter your first and last name.","companyEnter":"Please enter your company.","contactReason":"Please choose at least one contact reason.","submitError":"Something went wrong. Please try again or email [email protected].","contactSubmitError":"Something went wrong. Please email [email protected] and we'll get right back to you.","webinarSubmitError":"Something went wrong. Email [email protected] and we'll register you.","gatedSubmitError":"Something went wrong. Email [email protected] and we'll help.","newsletterNotLive":"Signup isn't live here yet. Email [email protected] and we'll add you to the brief.","newsletterError":"Something went wrong. Email [email protected] and we'll add you to the brief.","sending":"Sendingâ¦","preparing":"Preparingâ¦"}</script>
659
659<script type="module">window.dataLayer=window.dataLayer||[];(function(e,n,r,t,m){e[t]=e[t]||[],e[t].push({"gtm.start":new Date().getTime(),event:"gtm.js"});var g=n.getElementsByTagName(r)[0],a=n.createElement(r),o="";a.async=!0,a.src="https://www.googletagmanager.com/gtm.js?id="+m+o,g.parentNode.insertBefore(a,g)})(window,document,"script","dataLayer","GTM-TFT483R");</script>
659
659<script> 660 (function () { 661 function payload() { 662 return JSON.stringify({ 663 landing: location.href, 664 referrer: document.referrer || '', 665 path: location.pathname, 666 }); 667 } 668 function send() { 669 try { 670 fetch('/api/track', { 671 method: 'POST', 672 keepalive: true, 673 headers: { 'Content-Type': 'application/json' }, 674 body: payload(), 675 }); 676 } catch (e) {} 677 } 678 send(); 679 // EU: if they accept analytics after load, fire again so the server can 680 // mint + record first-touch immediately (server is idempotent on vid). 681 try { 682 document.addEventListener('cookieyes_consent_update', function () { send(); }, { once: true }); 683 } catch (e) {} 684 })(); 685 </script>
685 </body> </html>
685<script type="module" src="/_astro/about.astro_astro_type_script_index_0_lang.CXyCFw6E.js"></script>
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.