PageSourceSearch

https://bemomentiq.com/contact-us

html bemomentiq.com collected 2026-10-05 20:01:47 UTC 24,822 bytes, 441 lines download raw bytes

1<!doctype html>
2<html lang="en">
3  <head>
4    <meta charset="UTF-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6    
6<script>
7      // Third-party-noise guard (must be first script in <head> so its
8      // capture-phase listeners register before Vite's runtime-error client
9      // is injected). gtag/GA4/Google Ads pings, LinkedIn Insight, and other
10      // vendor scripts occasionally `throw <non-Error>` (an empty object,
11      // string, or aborted-fetch rejection) when a beacon is blocked or
12      // returns 0/204. Replit's vite-plugin-runtime-error-modal logs these
13      // as `[RUNTIME_ERROR]{...message:"(unknown runtime error)"}`, which
14      // the workflow monitor flags as FAILED even though the app is healthy.
15      // This guard suppresses only those non-Error / unknown-error events;
16      // real Error throws (with a real message + stack) pass through.
17      (function () {
18        function isThirdPartyNoise(value) {
19          if (value == null) return true;
20          if (value instanceof Error) {
21            return !value.message || value.message === "(unknown runtime error)";
22          }
23          return true;
24        }
25        window.addEventListener(
26          "securitypolicyviolation",
27          function (event) {
28            console.warn("[CSP]", event.violatedDirective, "\u2192", event.blockedURI);
29            event.stopImmediatePropagation();
30          },
31          true,
32        );
33        window.addEventListener(
34          "error",
35          function (event) {
36            // Suppress only cross-origin / third-party script errors where
37            // `event.error` is not a real Error instance (CSP-blocked script
38            // loads, `throw "string"`, etc.). Real user-code errors carry a
39            // populated Error and pass through untouched.
40            if (isThirdPartyNoise(event.error)) {
41              event.stopImmediatePropagation();
42              event.preventDefault();
43            }
44          },
45          true,
46        );
47        window.addEventListener(
48          "unhandledrejection",
49          function (event) {
50            if (isThirdPartyNoise(event.reason)) {
51              console.warn("[unhandledrejection-suppressed]", event.reason);
52              event.stopImmediatePropagation();
53              event.preventDefault();
54            }
55          },
56          true,
57        );
58      })();
59    </script>
59
60
61    
62    
63    
64    
65    
66    
67    
68    
69    
70    
71    
72    
73    
74    
75
76    <!-- favicon.jpg is deliberately NOT listed here: it is a 1080x1080 / 88KB JPEG kept
77         only as the schema.org Organization `logo`. Browsers pick the largest declared
78         icon for high-DPI tabs, so listing it made them download 88KB to paint 16px. -->
79    <link rel="icon" type="image/x-icon" href="/favicon.ico?v=2" />
80    <link rel="icon" type="image/png" href="/favicon.png?v=2" />
81    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
82    <link rel="apple-touch-icon-precomposed" sizes="180x180" href="/apple-touch-icon-precomposed.png" />
83    <link rel="manifest" href="/site.webmanifest" />
84    <meta name="theme-color" content="#0a0a0a" />
85
86    <!-- The GA4 / LinkedIn dns-prefetch hints were removed with the consent gate
87         (#377). Their purpose was to warm DNS ahead of a load that was going to
88         happen anyway; now that the vendors wait for an affirmative choice, the
89         hints resolve advertising hostnames on behalf of visitors who go on to
90         decline — a lookup made for a connection that will never open.
91
92         The Calendly hint went the same way, one release later. Its "it warms a
93         first-party-initiated booking flow" justification stopped being true at
94         #474: booking assets now wait for intent (a scroll toward /live-hosts'
95         booking section, or the placeholder click), so the hint was resolving
96         Calendly's hostname at FIRST PAINT ON EVERY ROUTE on behalf of the vast
97         majority of visitors who never open that connection — and it was doing
98         so from a second, ungated place, while the 
98<script> half obeyed the
99         loader's gate. The warm-up was not dropped, it moved INTO the gate:
100         client/src/lib/calendly-loader.ts now emits preconnect + widget.css +
101         widget.js together, on intent.
102
103         So: this document names no Calendly host at all, and must not start to
104         (widget.css here was also a render-blocking stylesheet paid by every
105         route). tests/unit/calendly-asset-host-single-source.test.ts enforces
106         that the loader is the only file in client/ that may name it. -->
107
108    <!-- NOTE: do not re-add a preload for /og-image.jpg. It is only ever used as the
109         og:image / twitter:image meta value and is never painted on any route, so a
110         high-priority image preload just burned 43KB of LCP-critical bandwidth on
111         every page load (and tripped Chrome's "preloaded but not used" warning). -->
112    <!-- Typeface payload, in LCP priority order.
113         `Bricolage Grotesque` is the display face and therefore carries the <h1> on
114         "/", i.e. the LCP element itself — it must be in flight before the CSS chunk
115         resolves or the headline paints in the fallback and re-flows on swap.
116         `Martian Mono` carries every eyebrow/index/metric label, several of which sit
117         above the fold (the hero partner badge); a mono is far wider than the sans
118         fallback, so an un-preloaded swap there is a visible reflow, not a recolor.
119         Both are the `latin` subsets only (41KB + 11KB); the latin-ext companions are
120         declared below with a unicode-range and fetched on demand. Do not preload
121         those, and do not preload the mono's weights beyond 500 — nothing renders
122         them. -->
123    <link rel="preload" href="/fonts/bricolage-grotesque-latin.woff2" as="font" type="font/woff2" crossorigin />
124    <link rel="preload" href="/fonts/plus-jakarta-sans-latin.woff2" as="font" type="font/woff2" crossorigin />
125    <link rel="preload" href="/fonts/martian-mono-latin.woff2" as="font" type="font/woff2" crossorigin />
126    <style>
127      /* Display — Bricolage Grotesque (OFL). Variable weight 400..8
12700. */
128      @font-face {
129        font-family: "Bricolage Grotesque";
130        font-style: normal;
131        font-weight: 400 800;
132        font-display: swap;
133        src: url("/fonts/bricolage-grotesque-latin.woff2") format("woff2");
134        unicode-range:
135          U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
136          U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
137      }
138      @font-face {
139        font-family: "Bricolage Grotesque";
140        font-style: normal;
141        font-weight: 400 800;
142        font-display: swap;
143        src: url("/fonts/bricolage-grotesque-latin-ext.woff2") format("woff2");
144        unicode-range:
145          U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF,
146          U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
147      }
148      /* Signal/meta — Martian Mono (OFL). Single weight 500; labels only. */
149      @font-face {
150        font-family: "Martian Mono";
151        font-style: normal;
152        font-weight: 500;
153        font-display: swap;
154        src: url("/fonts/martian-mono-latin.woff2") format("woff2");
155        unicode-range:
156          U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
157          U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
158      }
159      @font-face {
160        font-family: "Martian Mono";
161        font-style: normal;
162        font-weight: 500;
163        font-display: swap;
164        src: url("/fonts/martian-mono-latin-ext.woff2") format("woff2");
165        unicode-range:
166          U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF,
167          U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
168      }
169      @font-face {
170        font-family: "Plus Jakarta Sans";
171        font-style: normal;
172        font-weight: 200 800;
173        font-display: swap;
174        src: url("/fonts/plus-jakarta-sans-latin.woff2") format("woff2");
175        unicode-range:
176          U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
177          U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
178      }
179      @font-face {
180        font-family: "Plus Jakarta Sans";
181        font-style: normal;
182        font-weight: 200 800;
183        font-display: swap;
184        src: url("/fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");
185        unicode-range:
186          U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF,
187          U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
188      }
189      /* METRIC-COMPATIBLE FALLBACK — GENERATED, DO NOT HAND-EDIT.
190         Produced by `npm run fonts:metrics` from the real cmap + hmtx + hhea tables
191         of plus-jakarta-sans-latin.woff2; `npm run fonts:metrics -- --check` (and
192         tests/unit/font-metrics.test.ts) fail if this block drifts from the font.
193
194         Why it exists: font-display:swap paints the fallback first, and a line of
195         real copy set in Plus Jakarta Sans is ~5% wider than the same line in
196         Arial. Without these overrides paragraphs re-wrap on swap and everything
197         below them moves, which is pure CLS, worst on exactly the slow connections
198         the p75 target is about. size-adjust scales Arial's glyphs so a text run
199         matches PJS's width; the ascent/descent overrides divide by that same
200         factor so the line box height is unchanged.
201
202         size-adjust is the ratio of FREQUENCY-WEIGHTED average advances, not of
203         OS/2 xAvgCharWidth — that ratio (132.53%, shipped until 2026-09) compared
204         an all-glyph mean with a weighted-lowercase one and set fallback text 27%
205         too wide. See script/font-metrics/fallback-overrides.ts.
206
207         The body sans is split by font-weight: 100–549 over Arial, 550–900 over
208         Arial Bold, because a single regular face makes the browser synthesize
209         bold, and synthetic bold keeps regular advances — bold runs grew ~3.4%
210         on swap. The display face (h1–h3, which render bold) is over Arial Bold. The display stack is declared in
211         client/src/styles/theme-tokens.css. */
212      @font-face {
213        font-family: "Plus Jakarta Sans Fallback";
214        font-weight: 100 549;
215        src: local("Arial");
216        size-adjust: 105.05%;
217        ascent-override: 98.81%;
218        descent-override: 21.13%;
219        line-gap-override: 0.00%;
220      }
221      @font-face {
222        font-family: "Plus Jakarta Sans Fallback";
223        font-weight: 550 900;
224        src: local("Arial Bold"), local("Arial-BoldMT");
225        size-adjust: 100.92%;
226        ascent-override: 102.86%;
227        descent-override: 22.00%;
228        line-gap-override: 0.00%;
229      }
230      @font-face {
231        font-family: "Bricolage Grotesque Fallback";
232        src: local("Arial Bold"), local("Arial-BoldMT");
233        size-adjust: 101.89%;
234        ascent-override: 91.28%;
235        descent-override: 26.50%;
236        line-gap-override: 0.00%;
237      }
238      html,
239      body {
240        margin: 0;
241        background: #0a0a0a;
242        color: #f2f2f2;
243        /* "Plus Jakarta Sans Fallback" sits immediately after the webfont so it is
244           what actually paints during swap. The generic stack stays behind it as a
245           last resort (a device with no Arial and no Roboto). */
246        font-family:
247          "Plus Jakarta Sans",
248          "Plus Jakarta Sans Fallback",
249          system-ui,
250          -apple-system,
251          Segoe UI,
252          Roboto,
253          sans-serif;
254        -webkit-font-smoothing: antialiased;
255        text-rendering: optimizeLegibility;
256        overflow-x: hidden;
257        max-width: 100%;
258      }
259      #root {
260        min-height: 100vh;
261        background: #0a0a0a;
262      }
263      /* The skip link is the FIRST element in <body>, and its `sr-only` class lives in the
264         Tailwind bundle — which arrives after first paint. Until then the anchor is a plain
265         inline element and generates a ~21px line box in normal flow, so <main> paints at
266         y=21 and snaps to y=0 the moment the bundle applies `position:absolute`. That is an
267         unconditional layout shift on EVERY route: measured 0.0146 desktop / 0.0259 mobile
268         on 170/170 route x viewport probes of the local deploy (2026-09-18) — 29%/52% of the
269         0.05 `cumulative-layout-shift` budget in lighthouserc.cjs, spent before a page does
270         anything. Giving the link its out-of-flow geometry inline removes the line box from
271         the very first layout.
272
273         Scoped `:not(:focus)` rather than duplicating `.sr-only`, so the `focus:not-sr-only`
274         utilities that reveal the link on keyboard focus are never competing with this rule:
275         when the link is focused this block simply does not match. Keep in sync with the
276         anchor's own class list below; tests/unit/skip-link-critical-css.test.ts fails if
277         either side drifts. */
278      a[data-testid="link-skip-to-content"]:not(:focus) {
279        position: absolute;
280        width: 1px;
281        height: 1px;
282        padding: 0;
283        margin: -1px;
284        overflow: hidden;
285        clip: rect(0, 0, 0, 0);
286        white-space: nowrap;
287        border-width: 0;
288      }
289      /* Critical above-the-fold styles applied to the React route fallback (#root [data-testid="page-skeleton"]) so / paints background, nav stripe, and hero shell before the main CSS chunk arrives. */
290      [data-testid="page-skeleton"] {
291        min-height: 100vh;
292        background: #0a0a0a;
293      }
294      [data-testid="page-skeleton"] > div:first-child {
295        height: 5rem;
296        background: rgba(10, 10, 10, 0.9);
297        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
298      }
299      [data-testid="hero-skeleton"] {
300        position: relative;
301        overflow: hidden;
302        background: #0a0a0a;
303        padding-top: 8rem;
304        padding-bottom: 3.5rem;
305        min-height: 100dvh;
306        display: flex;
307        flex-direction: column;
308        justify-content: center;
309      }
310      @media (min-width: 768px) {
311        [data-testid="hero-skeleton"] {
312          padding-top: 10rem;
313          padding-bottom: 5rem;
314        }
315      }
316      @media (min-width: 1024px) {
317        [data-testid="hero-skeleton"] {
318          padding-top: 11rem;
319          padding-bottom: 6rem;
320        }
321      }
322    </style>
323    
323<script type="module" crossorigin src="/assets/index-DAE-z7YX.js"></script>
323
324    <link rel="modulepreload" crossorigin href="/assets/vendor-react-Ck0C0d3-.js">
325    <link rel="modulepreload" crossorigin href="/assets/vendor-router-BNDQlcI8.js">
326    <link rel="modulepreload" crossorigin href="/assets/vendor-query-7BnrJQv7.js">
327    <link rel="modulepreload" crossorigin href="/assets/vendor-radix-CnNGGrEI.js">
328    <link rel="stylesheet" crossorigin href="/assets/index-X5uefO4-.css">
329  <title>Contact MomentIQ — Talk to a TikTok Shop Strategist</title>
330    <meta name="description" content="Connect with a MomentIQ strategist for a custom TikTok Shop growth plan spanning commerce operations, creators, content, LIVE, and paid media." />
331    <meta property="og:title" content="Contact MomentIQ — Talk to a TikTok Shop Strategist" />
332    <meta property="og:description" content="Connect with a MomentIQ strategist for a custom TikTok Shop growth plan spanning commerce operations, creators, content, LIVE, and paid media." />
333    <meta property="og:type" content="website" />
334    <meta property="og:url" content="https://bemomentiq.com/contact-us" />
335    <meta property="og:image" content="https://bemomentiq.com/og-image.jpg" />
336    <meta property="og:site_name" content="MomentIQ" />
337    <meta name="twitter:card" content="summary_large_image" />
338    <meta name="twitter:site" content="@babormomentiq" />
339    <meta name="twitter:title" content="Contact MomentIQ — Talk to a TikTok Shop Strategist" />
340    <meta name="twitter:description" content="Connect with a MomentIQ strategist for a custom TikTok Shop growth plan spanning commerce operations, creators, content, LIVE, and paid media." />
341    <meta name="twitter:image" content="https://bemomentiq.com/og-image.jpg" />
342    <link rel="canonical" href="https://bemomentiq.com/contact-us" />
343    
343<script type="application/ld+json">{"@context":"https://schema.org","@type":"ContactPage","name":"Contact MomentIQ","description":"Connect with a MomentIQ strategist for TikTok Shop growth","url":"https://bemomentiq.com/contact-us","publisher":{"@type":"Organization","name":"MomentIQ","url":"https://bemomentiq.com"}}</script>
343
344    
344<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://bemomentiq.com"},{"@type":"ListItem","position":2,"name":"Contact Us","item":"https://bemomentiq.com/contact-us"}]}</script>
344
345  <style data-premount>@font-face{font-family:"Premount Sans Fallback";font-weight:100 549;src:local("Arial");size-adjust:105.05%;ascent-override:98.81%;descent-override:21.13%;line-gap-override:0.00%;}@font-face{font-family:"Premount Sans Fallback";font-weight:550 900;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:100.92%;ascent-override:102.86%;descent-override:22.00%;line-gap-override:0.00%;}@font-face{font-family:"Premount Display Fallback";src:local("Arial");size-adjust:105.44%;ascent-override:88.20%;descent-override:25.61%;line-gap-override:0.00%;}.ssr-premount{max-width:72rem;margin:0 auto;padding:6rem 1.25rem 3rem;font-family:"Plus Jakarta Sans","Premount Sans Fallback",system-ui,sans-serif;}.ssr-premount h1,.ssr-premount h2,.ssr-premount h3{font-family:"Bricolage Grotesque","Premount Display Fallback",sans-serif;}.ssr-premount h1{font-family:"Premount Display Fallback",sans-serif;font-size:2.25rem;line-height:1.12;letter-spacing:-0.02em;margin:0 0 1rem;}@media (min-width:640px){.ssr-premount h1{font-size:3.25rem;}}@media (min-width:768px){.ssr-premount h1{font-size:4.75rem;}}.ssr-premount h2{font-size:clamp(1.25rem,2.4vw,1.75rem);margin:2rem 0 0.6rem;}.ssr-premount p,.ssr-premount li{color:#c9c9cf;line-height:1.65;max-width:65ch;}.ssr-premount a{color:#c084fc;text-decoration:none;}.ssr-premount a:hover{text-decoration:underline;}.ssr-premount nav ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:0.4rem 1.1rem;}.ssr-premount img{max-width:100%;height:auto;border-radius:12px;}</style>
346  </head>
347  <body>
348    <!-- The <noscript> LinkedIn tracking pixel was removed with the consent gate
349         (#377). It fired an advertising beacon for exactly the visitors who
350         cannot be asked — a consent banner is a React component, so a
351         JS-disabled visitor had no way to accept it and no way to decline it
352         either. "Decline means the pixel never loads" cannot be true while a
353         markup-only pixel loads unconditionally, and an un-declinable pixel is
354         the one case where the honest option is not to ship it. -->
355
356    <a
357      href="#main-content"
358      class="sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:z-[9999] focus:px-4 focus:py-2 focus:bg-purple-600 focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg focus:outline-none"
359      data-testid="link-skip-to-content"
360    >Skip to content</a
361    >
362    <main id="main-content" role="main"><div id="root"><div class="ssr-premount"><h1>Contact MomentIQ — Talk to a TikTok Shop Strategist</h1><p>Connect with a MomentIQ strategist for a custom TikTok Shop growth plan spanning commerce operations, creators, content, LIVE, and paid media.</p>
363<p class="page-byline">By <span itemprop="author" itemscope itemtype="https://schema.org/Person"><a href="https://bemomentiq.com/about" itemprop="url"><span itemprop="name">Alex Elsea</span></a></span>, Founder of MomentIQ — Reviewed <time itemprop="dateModified" datetime="2026-05-05">May 5, 2026</time></p>
364<section><h2>Contact MomentIQ</h2>
365<p>Talk to a TikTok Shop strategist about growing your brand across commerce operations, creators, content, LIVE, and paid media.</p>
366<ul><li>Response time: Within 24 hours</li><li>Custom strategy deck: Within 48 hours</li></ul></section>
367<nav aria-label="Main navigation"><ul>
368<li><a href="https://bemomentiq.com">Home</a></li>
369<li><a href="https://bemomentiq.com/solutions">Solutions</a></li>
370<li><a href="https://bemomentiq.com/solutions/tiktok-shop-agency">TikTok Shop Agency</a></li>
371<li><a href="https://bemomentiq.com/solutions/tiktok-shop-management">TikTok Shop Management</a></li>
372<li><a href="https://bemomentiq.com/solutions/live-selling">Live Selling</a></li>
373<li><a href="https://bemomentiq.com/solutions/fixed-rate-creators">Fixed Rate Creators</a></li>
374<li><a href="https://bemomentiq.com/solutions/affiliate-outreach">Affiliate Outreach</a></li>
375<li><a href="https://bemomentiq.com/solutions/tiktok-ads">TikTok Ads</a></li>
376<li><a href="https://bemomentiq.com/solutions/content-strategy">Content Strategy</a></li>
377<li><a href="https://bemomentiq.com/platform">Platform</a></li>
378<li><a href="https://bemomentiq.com/our-work">Our Work</a></li>
379<li><a href="https://bemomentiq.com/about">About</a></li>
380<li><a href="https://bemomentiq.com/contact-us">Contact</a></li>
381<li><a href="https://bemomentiq.com/blog">Blog</a></li>
382</ul></nav>
383<footer><p>© 2026 MomentIQ. All rights reserved.</p>
384<ul>
385<li><a href="https://bemomentiq.com/privacy-policy">MomentIQ Privacy</a></li>
386<li><a href="https://bemomentiq.com/terms-of-service">MomentIQ Terms</a></li>
387<li><a href="https://bemomentiq.com/contact-us">Talk to MomentIQ</a></li>
388<li><a href="https://bemomentiq.com/blog">MomentIQ Academy</a></li>
389</ul></footer></div></div></main>
390    <!-- React portals the visible site footer here so its contentinfo landmark
391         is a sibling of <main>, never a descendant of it. -->
392    <div id="site-footer-root"></div>
393    
394    
394<script>
395      // Analytics QUEUE STUBS only — zero network. The vendor 
395<script> fetches for
396      // GA4 and LinkedIn Insight are injected later, after LCP, by
397      // client/src/lib/third-party-loader.ts (see its module header).
398      //
399      // These stubs used to live inside the same DOMContentLoaded listener that
400      // injected the scripts. DOMContentLoaded fires BEFORE the lazy route chunk
401      // resolves and the hero paints on a cold mobile load, so googletagmanager.com
402      // and snap.licdn.com — plus their beacon fan-out to google-analytics.com and
403      // px.ads.linkedin.com — were downloading and executing inside the
404      // LCP-critical window. The epic budget for this surface is 0 third-party
405      // bytes before LCP.
406      //
407      // Installing the stubs synchronously here (and only the stubs) is what makes
408      // the deferral lossless: both vendors drain the queue their stub filled when
409      // the real script finally executes — gtag replays `dataLayer`, insight.min.js
410      // replays `lintrk.q` — so `page_view` and `web_vitals` events emitted before
411      // the fetch completes are preserved, not dropped. Do NOT move these into a
412      // module: analytics-core.ts calls window.gtag as soon as the app boots, and a
413      // module stub could lose the earliest events to a race.
414      (function () {
415        // Keep in sync with analytics-host.ts. Previews and local test runs must
416        // never configure the production GA property, even before vendor loading.
417        var hostname = window.location.hostname;
418        if (hostname === "bemomentiq.com" || hostname === "www.bemomentiq.com") {
419          window.dataLayer = window.dataLayer || [];
420          window.gtag = function () {
421            window.dataLayer.push(arguments);
422          };
423          window.gtag("js", new Date());
424          // ScrollToTop/analytics-core emits the initial and SPA page views.
425          // The config default would count the initial visit a second time.
426          window.gtag("config", "G-EGDD4RY5ED", { send_page_view: false });
427        }
428
429        window._linkedin_partner_id = "8657681";
430        window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
431        window._linkedin_data_partner_ids.push(window._linkedin_partner_id);
432        if (!window.lintrk) {
433          window.lintrk = function (a, b) {
434            window.lintrk.q.push([a, b]);
435          };
436          window.lintrk.q = [];
437        }
438      })();
439    </script>
439
440  </body>
441</html>

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.