{
  "version": 3,
  "sources": ["/cdn/shop/t/31/assets/anatomy-posthog.js?anv=20260925_2"],
  "sourcesContent": ["(function () {\n  'use strict';\n\n  if (window.__ANATOMY_POSTHOG_LOADED__) return;\n  window.__ANATOMY_POSTHOG_LOADED__ = true;\n\n  var config = window.ANATOMY_POSTHOG_CONFIG || {};\n  if (!config.projectKey || !config.apiHost) return;\n\n  var VERSION = '2026-09-25.2-channel-tracking';\n  var FUNNEL_SCHEMA_VERSION = 'funnel_context_v2';\n\n  // Capture options for any event fired from a control that can navigate the\n  // document: link clicks, checkout redirects, cart adds that redirect. The\n  // SDK's default transport queues the request, and a navigation cancels it in\n  // flight. sendBeacon is handed to the browser, which delivers it regardless\n  // of unload. Measured before the fix: only 76.5% of in-session page\n  // transitions had a surviving click event, and add-to-cart events were lost\n  // at 38-47% on the landing page whose buy controls redirect to checkout.\n  var UNLOAD_SAFE_CAPTURE = { transport: 'sendBeacon', send_instantly: true };\n  var ATTRIBUTION_KEY = 'anatomy_attribution_v1';\n  var SESSION_KEY = 'anatomy_attribution_session_v1';\n  var FUNNEL_SESSION_KEY = 'anatomy_funnel_session_v1';\n  var BROWSER_FIRST_SEEN_KEY = 'anatomy_browser_first_seen_v1';\n  var CART_CONTEXT_KEY = 'anatomy_cart_context_v1';\n  var POSTHOG_CART_SYNC_KEY = 'anatomy_posthog_cart_sync_v1';\n  var CART_ATTRIBUTION_SYNC_HEADER = 'X-Anatomy-Cart-Attribution-Sync';\n  var CHECKOUT_INTENT_KEY = 'anatomy_checkout_intent_v1';\n  var CHECKOUT_HANDOFF_KEY = 'anatomy_checkout_handoff_v1';\n  var FUNNEL_STATE_KEY = 'anatomy_funnel_state_v1';\n  var OFFER_SIGNAL_KEY = 'anatomy_offer_signal_v1';\n  var VISITOR_ID_KEY = 'anatomy_visitor_id_v1';\n  var SCROLL_DEPTHS = [25, 50, 75, 90];\n  var scrollSeen = {};\n  var pageQualityCaptured = false;\n  var largestContentfulPaintMs = 0;\n  var MARKETING_QUERY_KEYS = [\n    'utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term',\n    'utm_placement', 'utm_site',\n    'utm_id', 'utm_adset_id', 'utm_ad_id', 'campaign_id', 'adset_id',\n    'ad_group_id', 'adgroup_id', 'ad_id', 'creative_id', 'discount', 'offer',\n    'sv1'\n  ];\n  // Same list as CLICK_ID_KEYS in anatomy-attribution.js.\n  var AD_QUERY_KEYS = [\n    'fbclid', 'gclid', 'gclsrc', 'dclid', 'gbraid', 'wbraid', 'gad_source',\n    'ttclid', 'twclid', 'li_fat_id', 'igshid', 'rdt_cid', 'qclid', 'sccid',\n    'msclkid', 'epik', 'irclid', '_kx', 'mc_cid', 'mc_eid',\n    'awc', 'sscid', 'lbclid', 'lb_hash', 'srsltid'\n  ];\n  var ANALYTICS_CART_ATTRIBUTE_SUFFIXES = [\n    'anatomy_visitor_id', 'posthog_distinct_id', 'posthog_session_id',\n    'schema_version', 'funnel_session_id', 'cart_token',\n    'experiment_id', 'experiment_version', 'experiment_phase',\n    'experiment_variant', 'experiment_bucket', 'experiment_assigned_at',\n    'experiment_is_qa_forced', 'protocol_choice_experiment_variant',\n    'checkout_path_experiment_variant',\n    'protocol_choice_experiment_is_qa_forced',\n    'checkout_path_experiment_is_qa_forced', 'current_page_url',\n    'current_page_path', 'checkout_intent_id', 'parent_checkout_intent_id',\n    'checkout_intent_source', 'checkout_intent_started_at',\n    'checkout_intent_page_url', 'checkout_intent_page_path',\n    'checkout_intent_referrer', 'checkout_intent_cta_text',\n    'checkout_intent_cta_id', 'checkout_intent_cta_slot',\n    'checkout_intent_cta_action', 'checkout_intent_cta_label_normalized',\n    'checkout_intent_cta_href', 'checkout_intent_cta_location',\n    'checkout_intent_variant_id', 'checkout_intent_form_action',\n    'checkout_behavior'\n  ];\n  var MARKETING_CART_ATTRIBUTE_SUFFIXES = [\n    'first_landing_url', 'first_landing_path', 'first_referrer',\n    'first_utm_source', 'first_utm_medium', 'first_utm_campaign',\n    'first_utm_content', 'first_utm_term', 'first_utm_placement',\n    'first_utm_site', 'first_utm_id',\n    'first_utm_adset_id', 'first_utm_ad_id', 'first_fbclid', 'first_gclid',\n    'first_gbraid', 'first_wbraid', 'first_ttclid', 'first_msclkid',\n    'first_timestamp', 'last_landing_url', 'last_landing_path',\n    'last_referrer', 'last_utm_source', 'last_utm_medium',\n    'last_utm_campaign', 'last_utm_content', 'last_utm_term',\n    'last_utm_placement', 'last_utm_site', 'last_utm_id',\n    'last_utm_adset_id', 'last_utm_ad_id', 'last_fbclid', 'last_gclid',\n    'last_gbraid', 'last_wbraid', 'last_ttclid', 'last_msclkid',\n    'last_timestamp', 'fbp', 'fbc', 'session_entry_url',\n    'session_entry_path', 'session_referrer', 'normalized_first_source',\n    'normalized_last_source', 'quality', 'is_paid_traffic', 'offer_code',\n    'active_offer_code', 'first_channel', 'first_platform', 'last_channel',\n    'last_platform'\n  ];\n  var AD_CART_ATTRIBUTE_SUFFIXES = [\n    'first_fbclid', 'first_gclid', 'first_gbraid', 'first_wbraid',\n    'first_ttclid', 'first_msclkid', 'last_fbclid', 'last_gclid',\n    'last_gbraid', 'last_wbraid', 'last_ttclid', 'last_msclkid', 'fbp', 'fbc'\n  ];\n\n  function cartAttributeKeys(suffixes) {\n    return suffixes.map(function (suffix) {\n      return 'attribution_' + suffix;\n    });\n  }\n\n  var ANALYTICS_CART_ATTRIBUTE_KEYS = cartAttributeKeys(ANALYTICS_CART_ATTRIBUTE_SUFFIXES);\n  var MARKETING_CART_ATTRIBUTE_KEYS = cartAttributeKeys(MARKETING_CART_ATTRIBUTE_SUFFIXES);\n  var AD_CART_ATTRIBUTE_KEYS = cartAttributeKeys(AD_CART_ATTRIBUTE_SUFFIXES);\n  var ALL_TRACKING_CART_ATTRIBUTE_KEYS = ANALYTICS_CART_ATTRIBUTE_KEYS.concat(MARKETING_CART_ATTRIBUTE_KEYS);\n\n  function analyticsAllowed() {\n    var privacy = window.AnatomyCustomerPrivacy;\n    return !!privacy\n      && typeof privacy.analyticsAllowed === 'function'\n      && privacy.analyticsAllowed() === true;\n  }\n\n  function marketingAllowed() {\n    var privacy = window.AnatomyCustomerPrivacy;\n    return !!privacy\n      && typeof privacy.marketingAllowed === 'function'\n      && privacy.marketingAllowed() === true;\n  }\n\n  function advertisingAllowed() {\n    var privacy = window.AnatomyCustomerPrivacy;\n    return !!privacy\n      && typeof privacy.advertisingAllowed === 'function'\n      && privacy.advertisingAllowed() === true;\n  }\n\n  function removeStorage(storage, key) {\n    try {\n      storage.removeItem(key);\n    }\n    catch (error) {}\n  }\n\n  function deleteCookie(name) {\n    try {\n      document.cookie = encodeURIComponent(name) + '=; Max-Age=0; Path=/; SameSite=Lax; Secure';\n      var hostname = String(window.location && window.location.hostname || '').replace(/^www\\./i, '');\n      if (hostname && hostname.indexOf('.') !== -1) {\n        document.cookie = encodeURIComponent(name) + '=; Max-Age=0; Path=/; Domain=.' + hostname + '; SameSite=Lax; Secure';\n      }\n    }\n    catch (error) {}\n  }\n\n  function cookieValue(name) {\n    var pairs = String(document.cookie || '').split(';');\n    for (var index = 0; index < pairs.length; index += 1) {\n      var pair = pairs[index].split('=');\n      var key = pair[0].trim();\n      try { key = decodeURIComponent(key); }\n      catch (error) {}\n      if (key === name) return pair.slice(1).join('=').trim();\n    }\n    return '';\n  }\n\n  // Internal and automated traffic. `?anatomy_internal=1` on any storefront URL\n  // marks this browser as internal with a first-party flag cookie (no\n  // identifier; it only exists for people who open that link) and\n  // `?anatomy_internal=0` clears it. Both flags become super properties, so\n  // PostHog's internal/test-user filter also covers SDK-captured events.\n  var INTERNAL_COOKIE = 'anatomy_internal';\n\n  function detectInternalTraffic() {\n    var flag = '';\n    try { flag = new URLSearchParams(window.location.search).get('anatomy_internal') || ''; }\n    catch (error) {}\n    if (flag === '1') {\n      try { document.cookie = INTERNAL_COOKIE + '=1; Max-Age=31536000; Path=/; SameSite=Lax; Secure'; }\n      catch (error) {}\n      return true;\n    }\n    if (flag === '0') {\n      deleteCookie(INTERNAL_COOKIE);\n      return false;\n    }\n    return cookieValue(INTERNAL_COOKIE) === '1';\n  }\n\n  var IS_INTERNAL = detectInternalTraffic();\n  var IS_AUTOMATION = !!(window.navigator && window.navigator.webdriver === true);\n\n  function postHogPersistencePrefix() {\n    return 'ph_' + String(config.projectKey || '') + '_';\n  }\n\n  function ownedPostHogPersistenceKey(key) {\n    var prefix = postHogPersistencePrefix();\n    return prefix.length > 4 && String(key || '').indexOf(prefix) === 0;\n  }\n\n  function storageKeys(storage) {\n    var keys = [];\n    try {\n      for (var index = 0; index < storage.length; index += 1) {\n        var key = storage.key(index);\n        if (key) keys.push(key);\n      }\n    }\n    catch (error) {}\n    return keys;\n  }\n\n  function clearPostHogPersistence() {\n    [window.localStorage, window.sessionStorage].forEach(function (storage) {\n      storageKeys(storage).forEach(function (key) {\n        if (ownedPostHogPersistenceKey(key)) removeStorage(storage, key);\n      });\n    });\n\n    try {\n      String(document.cookie || '').split(';').forEach(function (part) {\n        var rawName = part.split('=')[0].trim();\n        if (!rawName) return;\n        var name = rawName;\n        try { name = decodeURIComponent(rawName); }\n        catch (error) {}\n        if (ownedPostHogPersistenceKey(name)) deleteCookie(name);\n      });\n    }\n    catch (error) {}\n  }\n\n  function clearTrackingState() {\n    [VISITOR_ID_KEY, BROWSER_FIRST_SEEN_KEY, FUNNEL_STATE_KEY].forEach(function (key) {\n      removeStorage(window.localStorage, key);\n    });\n    [FUNNEL_SESSION_KEY, CART_CONTEXT_KEY, POSTHOG_CART_SYNC_KEY, CHECKOUT_INTENT_KEY, CHECKOUT_HANDOFF_KEY, OFFER_SIGNAL_KEY, 'anatomy_offer_code_v1'].forEach(function (key) {\n      removeStorage(window.sessionStorage, key);\n    });\n    deleteCookie('anatomy_visitor_id');\n    clearPostHogPersistence();\n  }\n\n  function readJson(key) {\n    if (!analyticsAllowed()) return {};\n    try {\n      var value = window.localStorage.getItem(key);\n      return value ? JSON.parse(value) : {};\n    }\n    catch (error) {\n      return {};\n    }\n  }\n\n  function uuid() {\n    if (window.crypto && typeof window.crypto.randomUUID === 'function') return window.crypto.randomUUID();\n    return 'an_' + Date.now().toString(36) + '_' + Math.random().toString(36).slice(2);\n  }\n\n  function visitorId() {\n    if (!analyticsAllowed()) return '';\n    try {\n      var stored = window.localStorage.getItem(VISITOR_ID_KEY);\n      if (stored) return stored;\n      stored = uuid();\n      window.localStorage.setItem(VISITOR_ID_KEY, stored);\n      return stored;\n    }\n    catch (error) {\n      return uuid();\n    }\n  }\n\n  function writeVisitorCookie(id) {\n    if (!id || !analyticsAllowed()) return;\n    try {\n      document.cookie = 'anatomy_visitor_id=' + encodeURIComponent(id) + '; Max-Age=31536000; Path=/; SameSite=Lax; Secure';\n    }\n    catch (error) {}\n  }\n\n  function directSessionId() {\n    if (window.posthog && typeof window.posthog.get_session_id === 'function') {\n      var sessionId = window.posthog.get_session_id();\n      if (sessionId) return String(sessionId);\n    }\n    return '';\n  }\n\n  function directDistinctId() {\n    if (window.posthog && typeof window.posthog.get_distinct_id === 'function') {\n      var distinctId = window.posthog.get_distinct_id();\n      if (distinctId) return String(distinctId);\n    }\n    return '';\n  }\n\n  function persistVisitorId(id) {\n    if (!id || !analyticsAllowed()) return '';\n    try {\n      window.localStorage.setItem(VISITOR_ID_KEY, id);\n    }\n    catch (error) {}\n    writeVisitorCookie(id);\n    return id;\n  }\n\n  function synchronizeVisitorIdWithPostHog() {\n    var distinctId = directDistinctId();\n    return distinctId ? persistVisitorId(distinctId) : visitorId();\n  }\n\n  function textOf(element) {\n    if (!element) return '';\n    var text = element.getAttribute('aria-label')\n      || element.getAttribute('title')\n      || element.getAttribute('value')\n      || element.textContent\n      || '';\n    return String(text).replace(/\\s+/g, ' ').trim().slice(0, 140);\n  }\n\n  function truncate(value, length) {\n    if (value === null || typeof value === 'undefined') return '';\n    var stringValue = String(value);\n    if (stringValue.length <= length) return stringValue;\n    return stringValue.slice(0, Math.max(length - 3, 0)) + '...';\n  }\n\n  function closestLabel(element) {\n    var parent = element && element.closest\n      ? element.closest('section, header, footer, main, [id], [class*=\"lp-\"], [data-section-type]')\n      : null;\n    if (!parent) return '';\n    return (parent.getAttribute('id') || parent.getAttribute('data-section-type') || parent.className || '').toString().slice(0, 180);\n  }\n\n  function safeUrl(url) {\n    if (!url) return '';\n    try {\n      var parsed = new URL(url || window.location.href, window.location.origin);\n      ['email', 'e', 'phone', 'name', 'first_name', 'last_name', 'address', 'token', 'password'].forEach(function (key) {\n        parsed.searchParams.delete(key);\n      });\n      if (!marketingAllowed()) {\n        MARKETING_QUERY_KEYS.concat(AD_QUERY_KEYS).forEach(function (key) {\n          parsed.searchParams.delete(key);\n        });\n      }\n      else if (!advertisingAllowed()) {\n        AD_QUERY_KEYS.forEach(function (key) {\n          parsed.searchParams.delete(key);\n        });\n      }\n      return parsed.href;\n    }\n    catch (error) {\n      return '';\n    }\n  }\n\n  function pathFromUrl(url) {\n    try {\n      return new URL(url || window.location.href, window.location.origin).pathname;\n    }\n    catch (error) {\n      return window.location.pathname || '';\n    }\n  }\n\n  function productModuleProps(element) {\n    var module = element && element.closest ? element.closest('[data-an-product-module]') : null;\n    if (!module) return {};\n    var selector = element && element.closest ? element.closest('[data-an-system-selector]') : null;\n    if (!selector && module.matches && module.matches('[data-an-system-selector]')) selector = module;\n    var selectorCard = element && element.closest ? element.closest('[data-an-selector-card]') : null;\n    var productContext = selectorCard || module;\n    var form = productContext.querySelector ? productContext.querySelector('form[action*=\"/cart/add\"], [data-lp-checkout-form]') : null;\n    var variantInput = form && form.querySelector ? form.querySelector('[name=\"id\"]') : null;\n    var cta = form && form.querySelector ? form.querySelector('button[type=\"submit\"], input[type=\"submit\"], a[href]') : null;\n    return {\n      module_identifier: module.getAttribute('data-an-module-id') || module.getAttribute('id') || '',\n      module_slot: module.getAttribute('data-an-module-slot') || '',\n      product_module_id: module.getAttribute('id') || '',\n      product_module_location: closestLabel(module),\n      product_module_text_sample: textOf(module).slice(0, 220),\n      selector_id: (selectorCard && selectorCard.getAttribute('data-selector-id')) || (selector && selector.getAttribute('data-selector-id')) || '',\n      selector_choice: (selectorCard && selectorCard.getAttribute('data-selector-choice')) || '',\n      selector_role: (selectorCard && selectorCard.getAttribute('data-selector-role')) || '',\n      product_handle: (selectorCard && selectorCard.getAttribute('data-product-handle')) || module.getAttribute('data-product-handle') || '',\n      product_title: (selectorCard && selectorCard.getAttribute('data-product-title')) || module.getAttribute('data-product-title') || '',\n      product_price: (selectorCard && selectorCard.getAttribute('data-product-price')) || module.getAttribute('data-product-price') || '',\n      product_available: (selectorCard && selectorCard.getAttribute('data-product-available')) || module.getAttribute('data-product-available') || '',\n      variant_id: (selectorCard && selectorCard.getAttribute('data-variant-id')) || module.getAttribute('data-variant-id') || (variantInput && variantInput.value) || '',\n      form_action: form && form.getAttribute ? form.getAttribute('action') || '' : '',\n      cta_text: cta ? textOf(cta) : '',\n      offer_exposure_id: module.getAttribute('data-an-offer-id') || '',\n      guarantee_exposure_id: module.getAttribute('data-an-guarantee-id') || '',\n      loyalty_exposure_id: module.getAttribute('data-an-loyalty-id') || '',\n      review_exposure_id: module.getAttribute('data-an-review-id') || '',\n      proof_exposure_id: module.getAttribute('data-an-proof-id') || '',\n      is_system_selector_context: !!selector,\n      is_selector_choice_context: !!selectorCard,\n      is_product_module_context: true\n    };\n  }\n\n  function ctaProps(target, extra) {\n    var form = target && target.closest ? target.closest('form') : null;\n    var variantInput = form && form.querySelector ? form.querySelector('[name=\"id\"]') : null;\n    var quantityInput = form && form.querySelector ? form.querySelector('[name=\"quantity\"]') : null;\n    return Object.assign({\n      cta_id: stableCtaId(target),\n      cta_slot: target && target.getAttribute ? target.getAttribute('data-an-cta-slot') || '' : '',\n      cta_action: target && target.getAttribute ? target.getAttribute('data-an-cta-action') || '' : '',\n      cta_text: textOf(target),\n      cta_label_normalized: normalizedCtaLabel(target),\n      cta_href: target && target.getAttribute ? safeUrl(target.getAttribute('href') || '') : '',\n      cta_location: closestLabel(target),\n      cta_tag: target && target.tagName ? target.tagName.toLowerCase() : '',\n      target_href: target && target.getAttribute ? safeUrl(target.getAttribute('href') || '') : '',\n      variant_id: (variantInput && variantInput.value) || (form && form.getAttribute ? form.getAttribute('data-lp-variant-id') || '' : ''),\n      quantity: quantityInput && quantityInput.value ? Number(quantityInput.value) : 1,\n      selected_product_path: form && form.getAttribute ? form.getAttribute('data-product-handle') || '' : '',\n      form_action: form && form.getAttribute ? form.getAttribute('action') || '' : ''\n    }, productModuleProps(target), extra || {});\n  }\n\n  function normalizedCtaLabel(element) {\n    if (!element) return '';\n    var accelerated = element.closest && element.closest('shopify-accelerated-checkout, shopify-accelerated-checkout-cart');\n    if (accelerated || (element.tagName && element.tagName.toUpperCase().indexOf('SHOPIFY-ACCELERATED-CHECKOUT') === 0)) {\n      return 'accelerated_checkout';\n    }\n    var label = textOf(element).toLowerCase();\n    if (/add to (bag|cart)|begin reconstruction/.test(label)) return 'add_to_cart';\n    if (/checkout|buy now/.test(label)) return 'checkout';\n    if (/measured results|results|proof/.test(label)) return 'view_proof';\n    return label.replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 80);\n  }\n\n  function stableCtaId(element) {\n    if (!element || !element.getAttribute) return '';\n    var explicit = element.getAttribute('data-an-cta-id') || element.getAttribute('data-testid') || element.id;\n    if (explicit) return String(explicit).slice(0, 160);\n    var form = element.closest ? element.closest('form') : null;\n    var module = element.closest ? element.closest('[data-an-product-module], [data-section-id], section[id]') : null;\n    var moduleId = module && (module.getAttribute('data-an-module-id') || module.getAttribute('data-section-id') || module.id);\n    var variant = form && form.querySelector ? form.querySelector('[name=\"id\"]') : null;\n    return [moduleId || closestLabel(element), normalizedCtaLabel(element), variant && variant.value].filter(Boolean).join(':').slice(0, 160);\n  }\n\n  function checkoutBehavior(form) {\n    if (!form || !form.getAttribute) return '';\n    try {\n      if (window.AnatomyFunnelExperiments && typeof window.AnatomyFunnelExperiments.checkoutModeForForm === 'function') {\n        var experimentMode = window.AnatomyFunnelExperiments.checkoutModeForForm(form);\n        if (experimentMode === 'direct' || experimentMode === 'drawer') return experimentMode;\n      }\n    }\n    catch (error) {}\n    var declared = form.getAttribute('data-an-checkout-default') || '';\n    if (declared === 'direct' || declared === 'drawer') return declared;\n    return form.hasAttribute('data-lp-redirect') ? 'direct' : 'drawer';\n  }\n\n  function emailCaptureProps(element, extra) {\n    var canonical = element && element.closest ? element.closest('[data-an-email-capture]') : null;\n    if (!canonical && element && element.matches && element.matches('[data-an-email-capture]')) canonical = element;\n    var host = canonical && canonical.querySelector ? canonical.querySelector('[data-klaviyo-form-id]') : null;\n    return Object.assign({\n      capture_id: canonical ? canonical.getAttribute('data-an-capture-id') || '' : '',\n      capture_context: canonical ? canonical.getAttribute('data-an-capture-context') || '' : '',\n      capture_trigger: canonical ? canonical.getAttribute('data-an-capture-trigger') || 'embedded_form' : '',\n      capture_variant: canonical ? canonical.getAttribute('data-an-capture-variant') || 'default' : '',\n      capture_step: canonical ? canonical.getAttribute('data-an-capture-step') || '' : '',\n      capture_origin_path: canonical ? canonical.getAttribute('data-an-capture-origin') || window.location.pathname : window.location.pathname,\n      capture_location: canonical ? closestLabel(canonical) : '',\n      capture_text: canonical ? textOf(canonical).slice(0, 220) : '',\n      klaviyo_form_id: host ? host.getAttribute('data-klaviyo-form-id') || '' : ''\n    }, extra || {});\n  }\n\n  function productOfferProps(element) {\n    return Object.assign({\n      offer_state_location: closestLabel(element),\n      offer_state_text_sample: textOf(element).slice(0, 220),\n      visible_price_text: element && element.querySelector ? textOf(element.querySelector('.lp-bundle__price, .lp-selector-card__price, .price, [data-price]')) : ''\n    }, productModuleProps(element));\n  }\n\n  function targetFromHash(hash) {\n    if (!hash || hash.charAt(0) !== '#') return null;\n    try {\n      return document.getElementById(decodeURIComponent(hash.slice(1)));\n    }\n    catch (error) {\n      return null;\n    }\n  }\n\n  function attrValue(attribution, touch, key) {\n    if (!attribution) return '';\n    if (attribution[key]) return attribution[key];\n    if (attribution[touch] && attribution[touch][key]) return attribution[touch][key];\n    return '';\n  }\n\n  function contextValue(attribution, key) {\n    if (!attribution) return '';\n    if (attribution[key]) return attribution[key];\n    if (attribution.context && attribution.context[key]) return attribution.context[key];\n    return '';\n  }\n\n  function sessionValue(session, key) {\n    if (!session) return '';\n    return session[key] || session['attribution_' + key] || '';\n  }\n\n  function normalizeSource(source, clickIds, referrer) {\n    source = String(source || '').toLowerCase();\n    referrer = String(referrer || '').toLowerCase();\n    clickIds = clickIds || {};\n    var evidence = source + ' ' + referrer;\n    if (evidence.indexOf('facebook') !== -1 || evidence.indexOf('instagram') !== -1 || source === 'fb' || source === 'ig' || source === 'meta' || clickIds.fbclid) return 'meta';\n    if (evidence.indexOf('tiktok') !== -1 || source === 'tt' || clickIds.ttclid) return 'tiktok';\n    if (evidence.indexOf('google') !== -1 || source === 'adwords' || clickIds.gclid || clickIds.gbraid || clickIds.wbraid) return 'google';\n    if (evidence.indexOf('pinterest') !== -1 || source === 'pin') return 'pinterest';\n    if (evidence.indexOf('klaviyo') !== -1) return 'klaviyo';\n    if (source) return source;\n    return 'direct_or_unknown';\n  }\n\n  function attributionQuality(props) {\n    if (props.last_utm_source || props.last_utm_campaign || props.last_utm_content) return 'utm';\n    if (props.last_fbclid || props.last_gclid || props.last_gbraid || props.last_wbraid || props.last_ttclid || props.last_msclkid) return 'click_id';\n    if (props.referrer || props.session_entry_referrer || props.last_referrer) return 'referrer';\n    return 'direct_or_unknown';\n  }\n\n  function viewportProps() {\n    var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection || {};\n    return {\n      viewport_width: window.innerWidth || 0,\n      viewport_height: window.innerHeight || 0,\n      screen_width: window.screen && window.screen.width,\n      screen_height: window.screen && window.screen.height,\n      device_pixel_ratio: window.devicePixelRatio || 1,\n      connection_effective_type: connection.effectiveType || '',\n      connection_save_data: !!connection.saveData\n    };\n  }\n\n  function queryParams() {\n    var params = {};\n    try {\n      var search = new URLSearchParams(window.location.search);\n      var allowedKeys = marketingAllowed() ? MARKETING_QUERY_KEYS.slice() : [];\n      if (advertisingAllowed()) allowedKeys = allowedKeys.concat(AD_QUERY_KEYS);\n      allowedKeys.forEach(function (key) {\n        var value = search.get(key);\n        if (value) params[key] = value.slice(0, 300);\n      });\n    }\n    catch (error) {}\n    return params;\n  }\n\n  function detectOfferCode() {\n    if (!analyticsAllowed() || !marketingAllowed()) return '';\n    var code = '';\n    try {\n      var pathMatch = window.location.pathname.match(/\\/discount\\/([^\\/\\?#]+)/i);\n      if (pathMatch && pathMatch[1]) code = decodeURIComponent(pathMatch[1]);\n      if (!code) {\n        var params = new URLSearchParams(window.location.search);\n        code = params.get('discount') || params.get('offer') || '';\n      }\n      code = String(code || '').trim().slice(0, 80);\n      if (code) window.sessionStorage.setItem('anatomy_offer_code_v1', code);\n      if (!code) code = window.sessionStorage.getItem('anatomy_offer_code_v1') || '';\n    }\n    catch (error) {}\n    return code;\n  }\n\n  function writeSessionJson(key, value) {\n    if (!analyticsAllowed()) return;\n    try {\n      window.sessionStorage.setItem(key, JSON.stringify(value || {}));\n    }\n    catch (error) {}\n  }\n\n  function readSessionJson(key) {\n    if (!analyticsAllowed()) return {};\n    try {\n      var value = window.sessionStorage.getItem(key);\n      return value ? JSON.parse(value) : {};\n    }\n    catch (error) {\n      return {};\n    }\n  }\n\n  function funnelSessionId() {\n    if (!analyticsAllowed()) return '';\n    var state = readSessionJson(FUNNEL_SESSION_KEY);\n    var now = Date.now();\n    if (state.id && state.last_seen_at && now - Number(state.last_seen_at) < 30 * 60 * 1000) {\n      state.last_seen_at = now;\n      writeSessionJson(FUNNEL_SESSION_KEY, state);\n      return state.id;\n    }\n    state = {\n      id: 'fs_' + uuid(),\n      started_at: new Date(now).toISOString(),\n      last_seen_at: now\n    };\n    writeSessionJson(FUNNEL_SESSION_KEY, state);\n    return state.id;\n  }\n\n  function browserState() {\n    if (!analyticsAllowed()) {\n      return {\n        browser_first_seen_at: '',\n        browser_visitor_state: 'unknown'\n      };\n    }\n    var firstSeen = '';\n    try {\n      firstSeen = window.localStorage.getItem(BROWSER_FIRST_SEEN_KEY) || '';\n      if (!firstSeen) {\n        firstSeen = new Date().toISOString();\n        window.localStorage.setItem(BROWSER_FIRST_SEEN_KEY, firstSeen);\n      }\n    }\n    catch (error) {}\n    return {\n      browser_first_seen_at: firstSeen,\n      browser_visitor_state: firstSeen && Date.now() - Date.parse(firstSeen) > 30 * 60 * 1000 ? 'returning' : 'new'\n    };\n  }\n\n  function deviceProps() {\n    var userAgent = navigator.userAgent || '';\n    var platform = navigator.userAgentData && navigator.userAgentData.platform\n      ? navigator.userAgentData.platform\n      : navigator.platform || '';\n    var browser = /Edg\\//.test(userAgent) ? 'edge'\n      : /OPR\\//.test(userAgent) ? 'opera'\n        : /Chrome\\//.test(userAgent) ? 'chrome'\n          : /Safari\\//.test(userAgent) && !/Chrome\\//.test(userAgent) ? 'safari'\n            : /Firefox\\//.test(userAgent) ? 'firefox'\n              : 'other';\n    var operatingSystem = /iPhone|iPad|iPod/.test(userAgent) ? 'ios'\n      : /Android/.test(userAgent) ? 'android'\n        : /Windows/.test(userAgent) ? 'windows'\n          : /Mac OS X/.test(userAgent) ? 'macos'\n            : /Linux/.test(userAgent) ? 'linux'\n              : platform.toLowerCase() || 'other';\n    return {\n      device_type: window.matchMedia && window.matchMedia('(max-width: 749px)').matches ? 'mobile' : 'desktop',\n      browser_name: browser,\n      operating_system: operatingSystem\n    };\n  }\n\n  function experimentProps() {\n    var assignments = window.AnatomyExperimentAssignments || {};\n    var ids = Object.keys(assignments);\n    var flagStates = window.AnatomyFunnelExperiments && window.AnatomyFunnelExperiments.states\n      ? window.AnatomyFunnelExperiments.states\n      : {};\n    var protocolState = flagStates['anatomy-protocol-choice-v1'] || {};\n    var checkoutState = flagStates['anatomy-checkout-path-v1'] || {};\n    var props = {\n      protocol_choice_experiment_variant: protocolState.variant || '',\n      protocol_choice_experiment_is_qa_forced: !!protocolState.forced,\n      checkout_path_experiment_variant: checkoutState.variant || '',\n      checkout_path_experiment_is_qa_forced: !!checkoutState.forced,\n      active_funnel_feature_flags: Object.keys(flagStates).filter(function (key) {\n        return !!(flagStates[key] && flagStates[key].variant);\n      })\n    };\n    if (ids.length) {\n      var assignment = assignments[ids[0]];\n      return Object.assign(props, {\n        experiment_id: assignment.experiment_id || ids[0],\n        experiment_version: assignment.version || '',\n        experiment_phase: assignment.phase || '',\n        experiment_variant: assignment.variant || '',\n        experiment_bucket: assignment.bucket,\n        experiment_assigned_at: assignment.assigned_at || '',\n        experiment_is_qa_forced: !!assignment.is_qa_forced,\n        experiment_analysis_eligible: !assignment.is_qa_forced\n      });\n    }\n    if (protocolState.variant) {\n      return Object.assign(props, {\n        experiment_id: 'anatomy-protocol-choice-v1',\n        experiment_version: '2026-07-26.1',\n        experiment_phase: protocolState.forced ? 'qa_forced' : 'posthog_feature_flag',\n        experiment_variant: protocolState.variant,\n        experiment_assigned_at: protocolState.appliedAt || '',\n        experiment_is_qa_forced: !!protocolState.forced,\n        experiment_analysis_eligible: !protocolState.forced\n      });\n    }\n    return props;\n  }\n\n  function cartContext() {\n    return readSessionJson(CART_CONTEXT_KEY);\n  }\n\n  function normalizedEvent(name) {\n    var aliases = {\n      an_page_viewed: 'page_viewed',\n      an_section_viewed: 'content_engaged',\n      an_scroll_depth_reached: 'content_engaged',\n      an_product_recommendation_seen: 'product_choice_exposed',\n      an_system_selector_viewed: 'product_choice_exposed',\n      an_product_selector_choice_viewed: 'product_choice_exposed',\n      an_product_selector_choice_clicked: 'product_choice_selected',\n      an_cta_clicked: 'commercial_action',\n      an_checkout_cta_clicked: 'checkout_intent',\n      an_product_purchase_form_submitted: 'purchase_form_submitted',\n      an_add_to_cart_cta_visible: 'cart_cta_visible',\n      an_add_to_cart_submitted: 'cart_add_submitted',\n      an_cart_action_succeeded: 'cart_action_succeeded',\n      an_cart_action_failed: 'cart_action_failed',\n      an_checkout_intent_started: 'checkout_intent',\n      an_cart_drawer_opened: 'cart_drawer_opened',\n      an_cart_drawer_checkout_visible: 'checkout_cta_visible',\n      an_cart_drawer_checkout_clicked: 'checkout_intent',\n      an_checkout_redirect_started: 'checkout_redirect_started',\n      an_experiment_assigned: 'experiment_assigned',\n      an_experiment_exposed: 'experiment_exposed'\n    };\n    return aliases[name] || name;\n  }\n\n  function funnelStage(name) {\n    if (/checkout/.test(name)) return 8;\n    if (/cart|commercial_action|product_choice_selected|add_to_cart|purchase_form/.test(name)) return 7;\n    if (/product_choice|content_engaged|recommendation|offer_state|review|guarantee|loyalty/.test(name)) return 6;\n    if (/page_viewed|page_quality|scroll|section/.test(name)) return 5;\n    if (/experiment/.test(name)) return 6;\n    return undefined;\n  }\n\n  function updateCartContext(cart) {\n    if (!cart || typeof cart !== 'object') return {};\n    var items = Array.isArray(cart.items) ? cart.items : [];\n    var state = {\n      cart_token: cart.token || cart.cart_token || '',\n      cart_value: typeof cart.total_price === 'number' ? cart.total_price / 100 : undefined,\n      cart_currency: cart.currency || config.currency || '',\n      cart_item_count: typeof cart.item_count === 'number' ? cart.item_count : items.reduce(function (sum, item) { return sum + (Number(item.quantity) || 0); }, 0),\n      cart_product_ids: items.map(function (item) { return item.product_id; }).filter(Boolean),\n      cart_product_handles: items.map(function (item) { return item.handle || (item.product && item.product.handle) || ''; }).filter(Boolean),\n      cart_variant_ids: items.map(function (item) { return item.variant_id || item.id; }).filter(Boolean),\n      cart_updated_at: new Date().toISOString()\n    };\n    writeSessionJson(CART_CONTEXT_KEY, state);\n    return state;\n  }\n\n  function baseProps(extra) {\n    var attribution = marketingAllowed() ? readJson(ATTRIBUTION_KEY) : {};\n    var session = marketingAllowed() ? readSessionJson(SESSION_KEY) : {};\n    var cart = cartContext();\n    var props = Object.assign({\n      schema_version: FUNNEL_SCHEMA_VERSION,\n      anatomy_tracking_version: VERSION,\n      anatomy_tracker_version_text: VERSION,\n      anatomy_visitor_id: visitorId(),\n      posthog_distinct_id: directDistinctId() || visitorId(),\n      funnel_session_id: funnelSessionId(),\n      posthog_session_id: directSessionId(),\n      page_url: safeUrl(window.location.href),\n      page_path: window.location.pathname,\n      page_title: document.title,\n      page_type: config.pageType || '',\n      template_name: config.templateName || '',\n      template_suffix: config.templateSuffix || '',\n      canonical_url: config.canonicalUrl || '',\n      referrer: marketingAllowed() ? safeUrl(document.referrer) : '',\n      first_landing_url: attrValue(attribution, 'first', 'first_landing_url'),\n      first_landing_path: attrValue(attribution, 'first', 'first_landing_path'),\n      first_referrer: attrValue(attribution, 'first', 'first_referrer'),\n      first_utm_source: attrValue(attribution, 'first', 'first_utm_source'),\n      first_utm_medium: attrValue(attribution, 'first', 'first_utm_medium'),\n      first_utm_campaign: attrValue(attribution, 'first', 'first_utm_campaign'),\n      first_utm_content: attrValue(attribution, 'first', 'first_utm_content'),\n      first_utm_term: attrValue(attribution, 'first', 'first_utm_term'),\n      first_utm_placement: attrValue(attribution, 'first', 'first_utm_placement'),\n      first_utm_site: attrValue(attribution, 'first', 'first_utm_site'),\n      first_utm_id: attrValue(attribution, 'first', 'first_utm_id'),\n      first_utm_adset_id: attrValue(attribution, 'first', 'first_utm_adset_id'),\n      first_utm_ad_id: attrValue(attribution, 'first', 'first_utm_ad_id'),\n      first_fbclid: attrValue(attribution, 'first', 'first_fbclid'),\n      first_gclid: attrValue(attribution, 'first', 'first_gclid'),\n      first_gbraid: attrValue(attribution, 'first', 'first_gbraid'),\n      first_wbraid: attrValue(attribution, 'first', 'first_wbraid'),\n      first_ttclid: attrValue(attribution, 'first', 'first_ttclid'),\n      first_msclkid: attrValue(attribution, 'first', 'first_msclkid'),\n      first_timestamp: attrValue(attribution, 'first', 'first_timestamp'),\n      last_landing_url: attrValue(attribution, 'last', 'last_landing_url'),\n      last_landing_path: attrValue(attribution, 'last', 'last_landing_path'),\n      last_referrer: attrValue(attribution, 'last', 'last_referrer'),\n      last_utm_source: attrValue(attribution, 'last', 'last_utm_source'),\n      last_utm_medium: attrValue(attribution, 'last', 'last_utm_medium'),\n      last_utm_campaign: attrValue(attribution, 'last', 'last_utm_campaign'),\n      last_utm_content: attrValue(attribution, 'last', 'last_utm_content'),\n      last_utm_term: attrValue(attribution, 'last', 'last_utm_term'),\n      last_utm_placement: attrValue(attribution, 'last', 'last_utm_placement'),\n      last_utm_site: attrValue(attribution, 'last', 'last_utm_site'),\n      last_utm_id: attrValue(attribution, 'last', 'last_utm_id'),\n      last_utm_adset_id: attrValue(attribution, 'last', 'last_utm_adset_id'),\n      last_utm_ad_id: attrValue(attribution, 'last', 'last_utm_ad_id'),\n      last_fbclid: attrValue(attribution, 'last', 'last_fbclid'),\n      last_gclid: attrValue(attribution, 'last', 'last_gclid'),\n      last_gbraid: attrValue(attribution, 'last', 'last_gbraid'),\n      last_wbraid: attrValue(attribution, 'last', 'last_wbraid'),\n      last_ttclid: attrValue(attribution, 'last', 'last_ttclid'),\n      last_msclkid: attrValue(attribution, 'last', 'last_msclkid'),\n      last_timestamp: attrValue(attribution, 'last', 'last_timestamp'),\n      attribution_fbp: contextValue(attribution, 'attribution_fbp'),\n      attribution_fbc: contextValue(attribution, 'attribution_fbc'),\n      session_entry_url: sessionValue(session, 'session_entry_url'),\n      session_entry_path: sessionValue(session, 'session_entry_path'),\n      session_entry_referrer: sessionValue(session, 'session_referrer'),\n      shop_domain: config.shopDomain || '',\n      cart_token: cart.cart_token || '',\n      cart_value: cart.cart_value,\n      cart_currency: cart.cart_currency || config.currency || '',\n      cart_item_count: cart.cart_item_count,\n      cart_product_ids: cart.cart_product_ids || [],\n      cart_product_handles: cart.cart_product_handles || [],\n      cart_variant_ids: cart.cart_variant_ids || [],\n      guarantee_exposure_id: document.querySelector('[data-an-guarantee-id]') ? document.querySelector('[data-an-guarantee-id]').getAttribute('data-an-guarantee-id') || '' : '',\n      loyalty_exposure_id: document.querySelector('[data-an-loyalty-id]') ? document.querySelector('[data-an-loyalty-id]').getAttribute('data-an-loyalty-id') || '' : '',\n      review_exposure_id: document.querySelector('[data-oke-reviews-widget], .okeReviews') ? 'onsite_reviews' : '',\n      quiz_exposure_id: config.templateSuffix === 'quiz' || config.templateSuffix === 'quiz-results' ? 'hair_consultation_v1' : '',\n      proof_exposure_id: document.querySelector('[data-an-proof-id], #measured-results') ? 'measured_results' : ''\n    }, viewportProps(), browserState(), deviceProps(), experimentProps(), queryParams(), extra || {});\n\n    props.active_offer_code = detectOfferCode();\n    props.is_internal = IS_INTERNAL;\n    props.is_automation = IS_AUTOMATION;\n\n    var channels = channelProps(props);\n    if (channels) {\n      props.first_platform = channels.first.platform;\n      props.first_channel = channels.first.channel;\n      props.last_platform = channels.last.platform;\n      props.last_channel = channels.last.channel;\n      props.session_platform = channels.session.platform;\n      props.session_channel = channels.session.channel;\n      props.normalized_first_source = channels.legacySource(channels.first);\n      props.normalized_last_source = channels.legacySource(channels.last);\n      props.attribution_quality = attributionQuality(props);\n      props.is_paid_traffic = channels.last.is_paid;\n      return props;\n    }\n\n    // No marketing consent (every source field is empty, and the sanitizer\n    // drops these properties from events) or no shared classifier.\n    props.normalized_last_source = normalizeSource(props.last_utm_source || props.utm_source, {\n      fbclid: props.last_fbclid || props.fbclid,\n      gclid: props.last_gclid || props.gclid,\n      gbraid: props.last_gbraid || props.gbraid,\n      wbraid: props.last_wbraid || props.wbraid,\n      ttclid: props.last_ttclid || props.ttclid\n    }, props.last_referrer || props.session_entry_referrer || props.referrer);\n    props.normalized_first_source = normalizeSource(props.first_utm_source, {\n      fbclid: props.first_fbclid,\n      gclid: props.first_gclid,\n      gbraid: props.first_gbraid,\n      wbraid: props.first_wbraid,\n      ttclid: props.first_ttclid\n    }, props.first_referrer);\n    props.attribution_quality = attributionQuality(props);\n    var lastMedium = String(props.last_utm_medium || '').toLowerCase().replace(/-/g, '_');\n    var currentMedium = String(props.utm_medium || '').toLowerCase().replace(/-/g, '_');\n    props.is_paid_traffic = lastMedium === 'paid_social'\n      || lastMedium === 'cpc'\n      || lastMedium === 'paid_search'\n      || currentMedium === 'paid_social'\n      || currentMedium === 'cpc'\n      || currentMedium === 'paid_search'\n      || !!(props.last_fbclid || props.last_gclid || props.last_gbraid || props.last_wbraid || props.last_ttclid || props.fbclid || props.gclid || props.gbraid || props.wbraid || props.ttclid);\n\n    return props;\n  }\n\n  // Channel of the first touch, the last touch and this session, by the shared\n  // classifier (window.AnatomyChannel, anatomy-attribution.js). The last touch\n  // falls back to the current page only when nothing is stored for it.\n  function channelProps(props) {\n    var api = window.AnatomyChannel;\n    if (!api || typeof api.classifyTouch !== 'function' || !marketingAllowed()) return null;\n    var last = api.classifyTouch(props, 'last');\n    if (last.platform === 'direct') {\n      var current = api.classify({ landing_url: props.page_url, referrer: props.referrer });\n      if (current.platform !== 'direct') last = current;\n    }\n    return {\n      first: api.classifyTouch(props, 'first'),\n      last: last,\n      session: api.classify({ landing_url: props.session_entry_url, referrer: props.session_entry_referrer }),\n      legacySource: api.legacySource\n    };\n  }\n\n  function isMarketingProperty(key) {\n    return /^(?:\\$?(?:initial_)?utm_|\\$?(?:initial_)?referr|first_|last_|session_entry_|session_channel$|session_platform$|normalized_(?:first|last)_source$|attribution_quality$|is_paid_traffic$|active_offer_code$|offer_code$|campaign_id$|adset_id$|ad_group_id$|adgroup_id$|ad_id$|creative_id$|sv1$)/i.test(key);\n  }\n\n  function isAdIdentifierProperty(key) {\n    return /(?:^|_)(?:fbclid|gclid|gclsrc|dclid|gbraid|wbraid|gad_source|ttclid|twclid|li_fat_id|igshid|rdt_cid|qclid|sccid|msclkid|epik|irclid|kx|mc_cid|mc_eid|fbp|fbc|awc|sscid|lbclid|lb_hash|srsltid)(?:$|_)/i.test(key);\n  }\n\n  function sanitizePostHogValue(value, key, depth) {\n    if (value === null || typeof value === 'undefined') return value;\n    if (depth > 6) return typeof value === 'object' ? undefined : value;\n    if (typeof value === 'string' && /(?:url|href|referrer)$/i.test(key)) return safeUrl(value);\n    if (Array.isArray(value)) {\n      return value.map(function (entry) {\n        return sanitizePostHogValue(entry, key, depth + 1);\n      });\n    }\n    if (typeof value !== 'object') return value;\n\n    var clean = {};\n    Object.keys(value).forEach(function (childKey) {\n      if (!marketingAllowed() && isMarketingProperty(childKey)) return;\n      if (!advertisingAllowed() && isAdIdentifierProperty(childKey)) return;\n      clean[childKey] = sanitizePostHogValue(value[childKey], childKey, depth + 1);\n    });\n    return clean;\n  }\n\n  function sanitizePostHogEvent(event) {\n    if (!analyticsAllowed()) return null;\n    if (!event || typeof event !== 'object') return event;\n    // rrweb snapshots are deeply nested structural payloads. Recursively\n    // rewriting them corrupts replay trees, so record them only when the\n    // complete marketing/advertising purpose gate is open and otherwise drop\n    // the snapshot atomically.\n    if (event.event === '$snapshot') {\n      return marketingAllowed() && advertisingAllowed() ? event : null;\n    }\n    var clean = Object.assign({}, event);\n    clean.properties = sanitizePostHogValue(event.properties || {}, 'properties', 0);\n    if (event.event === '$exception') {\n      classifyException(clean.properties);\n      // Other parties' scripts, browser extensions and in-app webviews are\n      // not ours to fix; only the storefront's own exceptions are sent.\n      if (DROPPED_EXCEPTION_OWNERS[clean.properties.exception_owner]) return null;\n    }\n    return clean;\n  }\n\n  var DROPPED_EXCEPTION_OWNERS = {\n    network_or_third_party: true,\n    browser_or_extension: true,\n    embedded_webview: true\n  };\n\n  function classifyException(properties) {\n    if (!properties || typeof properties !== 'object') return;\n    var sample = '';\n    try { sample = JSON.stringify(properties.$exception_list || properties).slice(0, 6000); }\n    catch (error) { sample = String(properties.$exception_message || ''); }\n    var lower = sample.toLowerCase();\n    var classification = {\n      exception_owner: 'unknown',\n      exception_fingerprint: 'unclassified',\n      exception_actionability: 'review'\n    };\n\n    if (/klaviyo/.test(lower) && /experience|assign|500/.test(lower)) {\n      classification = {\n        exception_owner: 'third_party_klaviyo',\n        exception_fingerprint: 'klaviyo_experience_assign_500',\n        exception_actionability: 'provider_transient'\n      };\n    }\n    else if (/_autofillcallbackhandler/.test(lower)) {\n      classification = {\n        exception_owner: 'browser_or_extension',\n        exception_fingerprint: 'autofill_callback_bridge_missing',\n        exception_actionability: 'non_storefront'\n      };\n    }\n    else if (/webkit/.test(lower) && /messagehandlers/.test(lower)) {\n      classification = {\n        exception_owner: 'embedded_webview',\n        exception_fingerprint: 'webkit_message_handler_missing',\n        exception_actionability: 'host_bridge'\n      };\n    }\n    else if (/resizeobserver loop/.test(lower)) {\n      classification = {\n        exception_owner: 'browser_or_extension',\n        exception_fingerprint: 'resize_observer_loop',\n        exception_actionability: 'non_storefront'\n      };\n    }\n    else if (/\"(?:value|\\$exception_message)\":\"script error\\.?\"/.test(lower)) {\n      // Our theme scripts are same-origin and report full errors; only a\n      // cross-origin script is reduced to \"Script error.\".\n      classification = {\n        exception_owner: 'network_or_third_party',\n        exception_fingerprint: 'cross_origin_script_error',\n        exception_actionability: 'non_storefront'\n      };\n    }\n    else if (/load failed|failed to fetch|networkerror|xmlhttprequest|xhr/.test(lower)) {\n      // The fetch wrapper (bindNetworkOutcomes) is in the stack of every page\n      // script's fetch and re-throws its failure, while this file's own\n      // requests all catch theirs. A frame from this file therefore says\n      // nothing about whose request failed: judge by the other frames.\n      var callerSample = lower.replace(/\"[^\"]*anatomy-posthog[^\"]*\"/g, '\"\"');\n      classification = {\n        exception_owner: /anatomy-quiz|anatomyhaircare\\.com/.test(callerSample) ? 'anatomy_network' : 'network_or_third_party',\n        exception_fingerprint: 'network_request_failed',\n        exception_actionability: 'correlate_with_request'\n      };\n    }\n    else if (/anatomy-posthog|anatomy-quiz|anatomyhaircare\\.com/.test(lower)) {\n      classification = {\n        exception_owner: 'anatomy_storefront',\n        exception_fingerprint: 'owned_javascript_exception',\n        exception_actionability: 'investigate'\n      };\n    }\n\n    Object.assign(properties, classification);\n  }\n\n  function sanitizeStoredPurposeState() {\n    if (!marketingAllowed()) {\n      [POSTHOG_CART_SYNC_KEY, CHECKOUT_INTENT_KEY, OFFER_SIGNAL_KEY, 'anatomy_offer_code_v1'].forEach(function (key) {\n        removeStorage(window.sessionStorage, key);\n      });\n      return;\n    }\n    if (advertisingAllowed()) return;\n    removeStorage(window.sessionStorage, POSTHOG_CART_SYNC_KEY);\n    try {\n      var intent = window.sessionStorage.getItem(CHECKOUT_INTENT_KEY);\n      if (!intent) return;\n      var parsed = JSON.parse(intent);\n      ['checkout_intent_page_url', 'checkout_intent_referrer', 'checkout_intent_cta_href'].forEach(function (key) {\n        if (parsed[key]) parsed[key] = safeUrl(parsed[key]);\n      });\n      window.sessionStorage.setItem(CHECKOUT_INTENT_KEY, JSON.stringify(parsed));\n    }\n    catch (error) {\n      removeStorage(window.sessionStorage, CHECKOUT_INTENT_KEY);\n    }\n  }\n\n  function putCartAttribute(attributes, key, value, length) {\n    var clean = truncate(value, length || 700);\n    if (!clean) return;\n    attributes[key] = clean;\n  }\n\n  function buildCheckoutIntent(target, source) {\n    target = target || null;\n    var form = target && target.closest ? target.closest('form') : null;\n    var variantInput = form && form.querySelector ? form.querySelector('[name=\"id\"]') : null;\n    var cart = cartContext();\n    var previousIntent = readSessionJson(CHECKOUT_INTENT_KEY);\n    var targetCtaId = stableCtaId(target);\n    var now = Date.now();\n    if (previousIntent.checkout_intent_id\n      && previousIntent.checkout_intent_cta_id === targetCtaId\n      && now - Number(previousIntent.checkout_intent_created_ms || 0) < 2000) {\n      return previousIntent;\n    }\n    var intent = {\n      checkout_intent_id: 'ci_' + Date.now().toString(36) + '_' + Math.random().toString(36).slice(2),\n      parent_checkout_intent_id: previousIntent.checkout_intent_id || '',\n      checkout_intent_created_ms: now,\n      checkout_intent_source: source || '',\n      checkout_intent_started_at: new Date().toISOString(),\n      checkout_intent_page_url: safeUrl(window.location.href),\n      checkout_intent_page_path: window.location.pathname,\n      checkout_intent_referrer: safeUrl(document.referrer),\n      checkout_intent_cta_text: textOf(target),\n      checkout_intent_cta_id: targetCtaId,\n      checkout_intent_cta_slot: target && target.getAttribute ? target.getAttribute('data-an-cta-slot') || '' : '',\n      checkout_intent_cta_action: target && target.getAttribute ? target.getAttribute('data-an-cta-action') || '' : '',\n      checkout_intent_cta_label_normalized: normalizedCtaLabel(target),\n      checkout_intent_cta_href: target && target.getAttribute ? safeUrl(target.getAttribute('href') || '') : '',\n      checkout_intent_cta_location: closestLabel(target),\n      checkout_intent_variant_id: form && form.getAttribute ? form.getAttribute('data-lp-variant-id') || '' : '',\n      checkout_intent_form_action: form && form.getAttribute ? form.getAttribute('action') || '' : '',\n      checkout_behavior: checkoutBehavior(form),\n      protocol_choice_experiment_variant: experimentProps().protocol_choice_experiment_variant || '',\n      checkout_path_experiment_variant: experimentProps().checkout_path_experiment_variant || '',\n      checkout_token: cart.cart_token || '',\n      value: cart.cart_value,\n      currency: cart.cart_currency || config.currency || '',\n      content_ids: cart.cart_variant_ids || [],\n      product_ids: cart.cart_product_ids || [],\n      item_count: cart.cart_item_count\n    };\n    if (!intent.checkout_intent_variant_id && variantInput) intent.checkout_intent_variant_id = variantInput.value || '';\n    writeSessionJson(CHECKOUT_INTENT_KEY, intent);\n    return intent;\n  }\n\n  function checkoutProvider(target, isAccelerated, href) {\n    var sample = (textOf(target) + ' ' + String(href || '')).toLowerCase();\n    if (/shop\\s*pay/.test(sample)) return 'shop_pay';\n    if (/apple\\s*pay/.test(sample)) return 'apple_pay';\n    if (/google\\s*pay|gpay/.test(sample)) return 'google_pay';\n    if (/paypal/.test(sample)) return 'paypal';\n    return isAccelerated ? 'accelerated_unknown' : 'shopify_checkout';\n  }\n\n  function recordCheckoutHandoff(intent, target, isAccelerated, href) {\n    if (!intent || !intent.checkout_intent_id) return;\n    var handoff = {\n      checkout_intent_id: intent.checkout_intent_id,\n      handoff_type: isAccelerated ? 'accelerated_checkout' : 'shopify_checkout',\n      handoff_provider: checkoutProvider(target, isAccelerated, href),\n      handoff_started_at: new Date().toISOString(),\n      handoff_started_ms: Date.now(),\n      handoff_origin_path: window.location.pathname,\n      handoff_origin_url: marketingAllowed()\n        ? safeUrl(window.location.href)\n        : window.location.origin + window.location.pathname\n    };\n    writeSessionJson(CHECKOUT_HANDOFF_KEY, handoff);\n    capture('an_external_checkout_handoff_started', handoff, UNLOAD_SAFE_CAPTURE);\n  }\n\n  function captureReturnedCheckoutHandoff(reason) {\n    var handoff = readSessionJson(CHECKOUT_HANDOFF_KEY);\n    var startedMs = Number(handoff.handoff_started_ms || 0);\n    if (!handoff.checkout_intent_id || !startedMs || Date.now() - startedMs < 2000) return;\n    var elapsed = Date.now() - startedMs;\n    capture('an_external_checkout_returned_to_storefront', {\n      checkout_intent_id: handoff.checkout_intent_id,\n      handoff_type: handoff.handoff_type || '',\n      handoff_provider: handoff.handoff_provider || '',\n      handoff_origin_path: handoff.handoff_origin_path || '',\n      handoff_elapsed_ms: elapsed,\n      handoff_return_reason: reason || 'page_show',\n      handoff_completed_status: 'unknown'\n    });\n    removeStorage(window.sessionStorage, CHECKOUT_HANDOFF_KEY);\n  }\n\n  function bindCheckoutHandoffReturns() {\n    window.addEventListener('pageshow', function (event) {\n      captureReturnedCheckoutHandoff(event.persisted ? 'back_forward_cache' : 'page_show');\n    });\n    window.setTimeout(function () {\n      captureReturnedCheckoutHandoff('storefront_reload');\n    }, 500);\n  }\n\n  function buildCartAttributes(extra) {\n    var props = baseProps(extra || {});\n    var intent = sanitizePostHogValue(readSessionJson(CHECKOUT_INTENT_KEY), 'checkout_intent', 0);\n    var attributes = {};\n\n    putCartAttribute(attributes, 'attribution_anatomy_visitor_id', props.anatomy_visitor_id, 300);\n    putCartAttribute(attributes, 'attribution_posthog_distinct_id', props.posthog_distinct_id || props.anatomy_visitor_id, 300);\n    putCartAttribute(attributes, 'attribution_posthog_session_id', props.posthog_session_id || directSessionId(), 300);\n    putCartAttribute(attributes, 'attribution_schema_version', props.schema_version, 80);\n    putCartAttribute(attributes, 'attribution_funnel_session_id', props.funnel_session_id, 300);\n    putCartAttribute(attributes, 'attribution_cart_token', props.cart_token, 300);\n\n    [\n      'experiment_id',\n      'experiment_version',\n      'experiment_phase',\n      'experiment_variant',\n      'experiment_bucket',\n      'experiment_assigned_at',\n      'experiment_is_qa_forced'\n    ].forEach(function (key) {\n      putCartAttribute(attributes, 'attribution_' + key, props[key], 300);\n    });\n\n    putCartAttribute(attributes, 'attribution_protocol_choice_experiment_variant', props.protocol_choice_experiment_variant, 80);\n    putCartAttribute(attributes, 'attribution_checkout_path_experiment_variant', props.checkout_path_experiment_variant, 80);\n    putCartAttribute(attributes, 'attribution_protocol_choice_experiment_is_qa_forced', props.protocol_choice_experiment_is_qa_forced ? 'true' : 'false', 20);\n    putCartAttribute(attributes, 'attribution_checkout_path_experiment_is_qa_forced', props.checkout_path_experiment_is_qa_forced ? 'true' : 'false', 20);\n\n    [\n      'first_landing_url',\n      'first_landing_path',\n      'first_referrer',\n      'first_utm_source',\n      'first_utm_medium',\n      'first_utm_campaign',\n      'first_utm_content',\n      'first_utm_term',\n      'first_utm_placement',\n      'first_utm_site',\n      'first_utm_id',\n      'first_utm_adset_id',\n      'first_utm_ad_id',\n      'first_fbclid',\n      'first_gclid',\n      'first_gbraid',\n      'first_wbraid',\n      'first_ttclid',\n      'first_msclkid',\n      'first_timestamp',\n      'last_landing_url',\n      'last_landing_path',\n      'last_referrer',\n      'last_utm_source',\n      'last_utm_medium',\n      'last_utm_campaign',\n      'last_utm_content',\n      'last_utm_term',\n      'last_utm_placement',\n      'last_utm_site',\n      'last_utm_id',\n      'last_utm_adset_id',\n      'last_utm_ad_id',\n      'last_fbclid',\n      'last_gclid',\n      'last_gbraid',\n      'last_wbraid',\n      'last_ttclid',\n      'last_msclkid',\n      'last_timestamp'\n    ].forEach(function (key) {\n      putCartAttribute(attributes, 'attribution_' + key, props[key], key.indexOf('url') !== -1 ? 700 : 300);\n    });\n\n    putCartAttribute(attributes, 'attribution_fbp', props.attribution_fbp, 300);\n    putCartAttribute(attributes, 'attribution_fbc', props.attribution_fbc, 350);\n    putCartAttribute(attributes, 'attribution_session_entry_url', props.session_entry_url, 700);\n    putCartAttribute(attributes, 'attribution_session_entry_path', props.session_entry_path, 350);\n    putCartAttribute(attributes, 'attribution_session_referrer', props.session_entry_referrer, 500);\n    putCartAttribute(attributes, 'attribution_normalized_first_source', props.normalized_first_source, 80);\n    putCartAttribute(attributes, 'attribution_normalized_last_source', props.normalized_last_source, 80);\n    putCartAttribute(attributes, 'attribution_first_channel', props.first_channel, 40);\n    putCartAttribute(attributes, 'attribution_first_platform', props.first_platform, 200);\n    putCartAttribute(attributes, 'attribution_last_channel', props.last_channel, 40);\n    putCartAttribute(attributes, 'attribution_last_platform', props.last_platform, 200);\n    putCartAttribute(attributes, 'attribution_quality', props.attribution_quality, 80);\n    putCartAttribute(attributes, 'attribution_is_paid_traffic', props.is_paid_traffic ? 'true' : 'false', 20);\n    putCartAttribute(attributes, 'attribution_current_page_url', props.page_url, 700);\n    putCartAttribute(attributes, 'attribution_current_page_path', props.page_path, 350);\n\n    if (props.active_offer_code) {\n      putCartAttribute(attributes, 'attribution_offer_code', props.active_offer_code, 120);\n      putCartAttribute(attributes, 'attribution_active_offer_code', props.active_offer_code, 120);\n    }\n\n    [\n      'checkout_intent_id',\n      'checkout_intent_source',\n      'checkout_intent_started_at',\n      'parent_checkout_intent_id',\n      'checkout_intent_page_url',\n      'checkout_intent_page_path',\n      'checkout_intent_referrer',\n      'checkout_intent_cta_text',\n      'checkout_intent_cta_id',\n      'checkout_intent_cta_slot',\n      'checkout_intent_cta_action',\n      'checkout_intent_cta_label_normalized',\n      'checkout_intent_cta_href',\n      'checkout_intent_cta_location',\n      'checkout_intent_variant_id',\n      'checkout_intent_form_action',\n      'checkout_behavior'\n    ].forEach(function (key) {\n      putCartAttribute(attributes, 'attribution_' + key, intent[key], key.indexOf('url') !== -1 || key.indexOf('href') !== -1 ? 700 : 300);\n    });\n\n    return attributes;\n  }\n\n  // `options` is posthog-js CaptureOptions. It matters for events fired from a\n  // control that navigates away (see UNLOAD_SAFE_CAPTURE): without it the\n  // event sits in the SDK's queue and dies with the document. Unknown keys are\n  // ignored by the SDK, so passing it is safe across versions.\n  function capture(name, props, options) {\n    if (!analyticsAllowed()) return;\n    var properties = baseProps(props);\n    properties.event_name_original = name;\n    properties.event_name_normalized = normalizedEvent(name);\n    properties.funnel_stage = funnelStage(properties.event_name_normalized);\n    updateFunnelState(name, properties);\n    var sessionId = directSessionId();\n    // Keep our own copy for the cart-attribute sync + reporting; in the preferred\n    // path below the SDK sets the canonical $session_id itself.\n    if (sessionId) properties.posthog_session_id = sessionId;\n    var consentEvent = sanitizePostHogEvent({ event: name, properties: properties });\n    if (!consentEvent) return;\n    properties = consentEvent.properties;\n\n    // Preferred path: hand the event to posthog-js. The SDK owns distinct_id, so\n    // it stays consistent across the anonymous\u2192identified transition instead of\n    // being pinned to anatomy_visitor_id (which would fragment a person's events\n    // once they identify). It also attaches $session_id, $lib, $os, $browser,\n    // $device_type and runs person processing \u2014 none of which a raw /capture/\n    // POST gets. The array.js stub queues calls until the SDK loads, and the\n    // first-party proxy makes that load reliable.\n    if (window.posthog && typeof window.posthog.capture === 'function') {\n      window.posthog.capture(name, properties, options);\n      return;\n    }\n\n    // Fallback only if the SDK object is absent (e.g. an event fired before the\n    // array.js stub is installed): raw /capture/ with our managed ids.\n    if (sessionId) properties.$session_id = sessionId;\n    properties.$current_url = properties.page_url;\n    properties.$pathname = properties.page_path;\n\n    var body = JSON.stringify({\n      api_key: config.projectKey,\n      event: name,\n      distinct_id: properties.anatomy_visitor_id,\n      properties: properties,\n      timestamp: new Date().toISOString()\n    });\n\n    fetch(config.apiHost.replace(/\\/$/, '') + '/capture/', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: body,\n      keepalive: body.length < 60000\n    }).catch(function () {});\n  }\n\n  function updateFunnelState(name, properties) {\n    var stage = Number(properties && properties.funnel_stage) || 0;\n    if (!stage) return;\n    var state = readJson(FUNNEL_STATE_KEY);\n    if (stage >= Number(state.highest_stage || 0)) {\n      state.highest_stage = stage;\n      state.highest_event = name;\n      state.highest_event_at = new Date().toISOString();\n    }\n    var productHandle = properties.product_handle\n      || (properties.cart_product_handles && properties.cart_product_handles[0])\n      || '';\n    if (productHandle) state.last_product_handle = productHandle;\n    if (properties.selector_choice) state.protocol_interest = properties.selector_choice;\n    state.last_page_path = window.location.pathname;\n    try {\n      window.localStorage.setItem(FUNNEL_STATE_KEY, JSON.stringify(state));\n    }\n    catch (error) {}\n  }\n\n  function navigationTimingProps() {\n    var props = {\n      page_quality_reason: '',\n      document_visibility_state: document.visibilityState || '',\n      lcp_ms: Math.round(largestContentfulPaintMs || 0),\n      resource_count: window.performance && performance.getEntriesByType ? performance.getEntriesByType('resource').length : 0\n    };\n    if (!window.performance) return props;\n\n    try {\n      var nav = performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n      if (nav) {\n        props.navigation_type = nav.type || '';\n        props.redirect_count = nav.redirectCount || 0;\n        props.time_to_first_byte_ms = Math.round(nav.responseStart || 0);\n        props.dom_content_loaded_ms = Math.round(nav.domContentLoadedEventEnd || 0);\n        props.load_event_end_ms = Math.round(nav.loadEventEnd || 0);\n        props.transfer_size = nav.transferSize || 0;\n        props.encoded_body_size = nav.encodedBodySize || 0;\n        props.decoded_body_size = nav.decodedBodySize || 0;\n        return props;\n      }\n\n      var timing = performance.timing || {};\n      if (timing.navigationStart) {\n        props.time_to_first_byte_ms = Math.max(0, timing.responseStart - timing.navigationStart);\n        props.dom_content_loaded_ms = Math.max(0, timing.domContentLoadedEventEnd - timing.navigationStart);\n        props.load_event_end_ms = Math.max(0, timing.loadEventEnd - timing.navigationStart);\n      }\n    }\n    catch (error) {}\n    return props;\n  }\n\n  function capturePageQuality(reason) {\n    if (pageQualityCaptured || !analyticsAllowed()) return;\n    pageQualityCaptured = true;\n    var props = navigationTimingProps();\n    props.page_quality_reason = reason || 'scheduled';\n    capture('an_page_quality_measured', props);\n  }\n\n  function cartUpdateUrl() {\n    var route = window.theme && window.theme.routes && window.theme.routes.cart_update_url\n      ? window.theme.routes.cart_update_url\n      : '/cart/update';\n\n    if (/\\.js(?:\\?|$)/.test(route)) return route;\n    return route.replace(/\\/$/, '') + '.js';\n  }\n\n  function privacyReconciliationAttributes() {\n    var attributes = analyticsAllowed()\n      ? buildCartAttributes({ cart_sync_reason: 'privacy_consent_reconcile' })\n      : {};\n    var keysToClear = [];\n\n    if (!analyticsAllowed()) {\n      keysToClear = ALL_TRACKING_CART_ATTRIBUTE_KEYS;\n    }\n    else if (!marketingAllowed()) {\n      keysToClear = MARKETING_CART_ATTRIBUTE_KEYS;\n    }\n    else if (!advertisingAllowed()) {\n      keysToClear = AD_CART_ATTRIBUTE_KEYS;\n    }\n    else {\n      return null;\n    }\n\n    keysToClear.forEach(function (key) {\n      attributes[key] = '';\n    });\n    return attributes;\n  }\n\n  function reconcileCartAttributesForPrivacy() {\n    var attributes = privacyReconciliationAttributes();\n    if (!attributes) return Promise.resolve(false);\n\n    var body = JSON.stringify({ attributes: attributes });\n    return fetch(cartUpdateUrl(), {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest',\n        [CART_ATTRIBUTION_SYNC_HEADER]: '1'\n      },\n      credentials: 'same-origin',\n      body: body,\n      keepalive: body.length < 60000\n    }).then(function (response) {\n      return !!response.ok;\n    }).catch(function () {\n      return false;\n    });\n  }\n\n  // Attributes that move with the page or the clock rather than with the\n  // visitor's attribution: the current page, attribution_quality (it reads the\n  // current page's referrer), timestamps, and the session ids that roll over\n  // after 30 idle minutes. They are still written; they just do not make a\n  // cart write necessary.\n  var CART_SYNC_VOLATILE_KEYS = {\n    attribution_current_page_url: true,\n    attribution_current_page_path: true,\n    attribution_quality: true,\n    attribution_posthog_session_id: true,\n    attribution_funnel_session_id: true\n  };\n\n  function cartSyncSignature(attributes) {\n    var stable = {};\n    Object.keys(attributes || {}).sort().forEach(function (key) {\n      if (CART_SYNC_VOLATILE_KEYS[key] || /_(?:timestamp|started_at|assigned_at)$/.test(key)) return;\n      stable[key] = attributes[key];\n    });\n    return JSON.stringify(stable);\n  }\n\n  function lastCartSyncSignature() {\n    try {\n      return window.sessionStorage.getItem(POSTHOG_CART_SYNC_KEY) || '';\n    }\n    catch (error) {\n      return '';\n    }\n  }\n\n  // `force` writes even when the signature matches the last successful write.\n  // Checkout intents and cart mutations force it: the cart they act on may not\n  // be the one this tab last wrote (a cart created by the add itself, or a new\n  // cart after an order), and the order only carries what that cart holds.\n  function syncPostHogCartAttributes(reason, keepalive, force) {\n    if (!analyticsAllowed()) return Promise.resolve(false);\n    var distinctId = visitorId();\n    if (!distinctId) return Promise.resolve(false);\n\n    var attributes = buildCartAttributes({\n      cart_sync_reason: reason || ''\n    });\n\n    var signature = cartSyncSignature(attributes);\n    if (!force && lastCartSyncSignature() === signature) return Promise.resolve(false);\n    return writeCartAttributes(reason, attributes, signature, keepalive);\n  }\n\n  // A page view writes the cart only if the attribution changed since the last\n  // successful write, or if the cart holds items (it may be a cart this tab\n  // never wrote). That still covers checkouts that start without a click we\n  // observe (express and accelerated paths), without a write on every page.\n  function syncCartAttributesOnPageLoad() {\n    if (!analyticsAllowed() || !visitorId()) return Promise.resolve(false);\n    var attributes = buildCartAttributes({ cart_sync_reason: 'page_load' });\n    var signature = cartSyncSignature(attributes);\n    if (lastCartSyncSignature() !== signature) {\n      return writeCartAttributes('page_load', attributes, signature, false);\n    }\n    return cartItemCount().then(function (count) {\n      if (!(count > 0) || !analyticsAllowed()) return false;\n      return writeCartAttributes('page_load', attributes, signature, false);\n    });\n  }\n\n  // The item count Liquid rendered into the page config; /cart.js only when the\n  // page did not carry one.\n  function cartItemCount() {\n    var rendered = config.cartItemCount;\n    if (typeof rendered === 'number' && isFinite(rendered)) return Promise.resolve(rendered);\n    return refreshCartContext().then(function (context) {\n      return Number(context && context.cart_item_count) || 0;\n    });\n  }\n\n  var cartAttributeWriteQueue = Promise.resolve();\n\n  function writeCartAttributes(reason, attributes, signature, keepalive) {\n    var operation = cartAttributeWriteQueue.then(function () {\n      if (!analyticsAllowed()) return false;\n      attributes = buildCartAttributes({ cart_sync_reason: reason || '' });\n      signature = cartSyncSignature(attributes);\n      return performCartAttributeWrite(reason, attributes, signature, keepalive, 0);\n    });\n    cartAttributeWriteQueue = operation.catch(function () { return false; });\n    return operation.then(function (context) {\n      if (!context) return false;\n      if (reason !== 'cart_token_bridge' && context.cart_token && attributes.attribution_cart_token !== context.cart_token) {\n        return syncPostHogCartAttributes('cart_token_bridge', keepalive).then(function (synced) {\n          return synced || lastCartSyncSignature() === cartSyncSignature(buildCartAttributes({}));\n        });\n      }\n      return true;\n    });\n  }\n\n  function performCartAttributeWrite(reason, attributes, signature, keepalive, attempt) {\n    var body = JSON.stringify({ attributes: attributes });\n    var options = {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest',\n        [CART_ATTRIBUTION_SYNC_HEADER]: '1'\n      },\n      credentials: 'same-origin',\n      body: body\n    };\n    if (keepalive && body.length < 60000) options.keepalive = true;\n\n    return fetch(cartUpdateUrl(), options)\n      .then(function (response) {\n        if (!analyticsAllowed()) return false;\n        if (!response.ok) {\n          var failure = new Error('Cart attribution update failed');\n          failure.status = response.status;\n          throw failure;\n        }\n        var parsed = response.clone && typeof response.clone === 'function'\n          ? response.clone().json().catch(function () { return null; })\n          : Promise.resolve(null);\n        return parsed.then(function (cart) {\n          if (!analyticsAllowed()) return false;\n          // Success is not captured: it fired on every page view (15% of all\n          // events). Failures above still are.\n          var context = updateCartContext(cart);\n          try {\n            window.sessionStorage.setItem(POSTHOG_CART_SYNC_KEY, signature);\n          }\n          catch (error) {}\n          if (attempt > 0) {\n            capture('an_cart_attribution_sync_recovered', {\n              cart_sync_reason: reason || '', cart_sync_attempts: attempt + 1\n            });\n          }\n          return context;\n        });\n      })\n      .catch(function (error) {\n        if (!analyticsAllowed()) return false;\n        var retryable = !error.status || error.status === 408 || error.status >= 500;\n        if (retryable && attempt < 2 && navigator.onLine !== false) {\n          return new Promise(function (resolve) { setTimeout(resolve, 300 * (attempt + 1)); }).then(function () {\n            if (!analyticsAllowed()) return false;\n            var currentAttributes = buildCartAttributes({ cart_sync_reason: reason || '' });\n            return performCartAttributeWrite(reason, currentAttributes, cartSyncSignature(currentAttributes), keepalive, attempt + 1);\n          });\n        }\n        capture('an_cart_attribution_sync_failed', {\n          cart_sync_reason: reason || '',\n          cart_sync_error: error.status ? 'http_error' : 'network_error',\n          cart_sync_status: error.status || 0,\n          cart_sync_attempts: attempt + 1,\n          cart_sync_attribute_count: Object.keys(attributes).length\n        });\n        return false;\n      });\n  }\n\n  function loadPostHog() {\n    var id = visitorId();\n    writeVisitorCookie(id);\n\n    window.posthog = window.posthog || [];\n    if (!window.posthog.__SV) {\n      var script = document.createElement('script');\n      script.async = true;\n      script.src = config.apiHost.replace(/\\/$/, '') + '/static/array.js';\n      var first = document.getElementsByTagName('script')[0];\n      first.parentNode.insertBefore(script, first);\n      window.posthog._i = [];\n      window.posthog.init = function (token, options, name) {\n        function factory(method) {\n          return function () {\n            window.posthog.push([method].concat(Array.prototype.slice.call(arguments, 0)));\n          };\n        }\n        var methods = 'capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset get_distinct_id get_session_id isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group resetGroups setPersonPropertiesForFlags'.split(' ');\n        var instance = window.posthog;\n        if (name) {\n          instance = window.posthog[name] = [];\n        }\n        instance.people = instance.people || [];\n        methods.forEach(function (method) {\n          var target = method.indexOf('people.') === 0 ? instance.people : instance;\n          target[method.replace('people.', '')] = factory(method);\n        });\n        window.posthog._i.push([token, options, name]);\n      };\n      window.posthog.__SV = 1;\n    }\n\n    window.posthog.init(config.projectKey, {\n      api_host: config.apiHost,\n      ui_host: config.uiHost || 'https://us.posthog.com',\n      // Multi-page storefront (full page loads, not an SPA): 'history_change'\n      // only fires $pageview on history-API navigations, so the on-load pageview\n      // was never captured (~6 $pageview/week vs ~1,356 real page loads), starving\n      // PostHog Web Analytics, sessions, paths and bounce. `true` captures a\n      // $pageview on every full page load \u2014 correct for this storefront.\n      capture_pageview: false,\n      capture_pageleave: true,\n      // Narrow autocapture: clicks on the controls that have no custom event\n      // (FAQ summaries, review \"read more\", carousel arrows, menu) plus CTAs.\n      // posthog-js applies the same allowlists to $rageclick, so rage clicks\n      // are recorded on these controls only; dead clicks are detected on any\n      // element.\n      autocapture: {\n        dom_event_allowlist: ['click'],\n        element_allowlist: ['a', 'button', 'summary'],\n        css_selector_allowlist: [\n          '[data-an-cta-id]',\n          'summary',\n          '.oke-readMore',\n          '.oke-reviewContent-readMore',\n          '[aria-label=\"Next\"]',\n          '[aria-label=\"Previous\"]',\n          '.menu-drawer-button',\n          '.drawer__menu-item'\n        ]\n      },\n      rageclick: true,\n      capture_dead_clicks: true,\n      save_campaign_params: false,\n      store_google: false,\n      save_referrer: false,\n      capture_performance: { web_vitals: true },\n      capture_exceptions: {\n        capture_unhandled_errors: true,\n        capture_unhandled_rejections: true\n      },\n      person_profiles: 'identified_only',\n      before_send: sanitizePostHogEvent,\n      bootstrap: {\n        distinctID: id,\n        isIdentifiedID: false\n      },\n      disable_session_recording: config.sessionRecording === false,\n      session_recording: {\n        // Protect every customer-entered value in session replay.\n        maskAllInputs: true,\n        maskInputOptions: { password: true }\n      },\n      loaded: function (instance) {\n        if (!analyticsAllowed()) {\n          try {\n            if (window.posthog && typeof window.posthog.opt_out_capturing === 'function') {\n              window.posthog.opt_out_capturing({ clear_persistence: true });\n            }\n          }\n          catch (error) {}\n          return;\n        }\n        synchronizeVisitorIdWithPostHog();\n        registerTrafficFlags(instance);\n        capture('$pageview', {\n          $current_url: safeUrl(window.location.href),\n          $pathname: window.location.pathname,\n          $referrer: marketingAllowed() ? safeUrl(document.referrer) : ''\n        });\n        capture('an_page_viewed', {\n          product_id: config.product && config.product.id,\n          product_handle: config.product && config.product.handle,\n          product_title: config.product && config.product.title,\n          product_price: config.product && config.product.price,\n          product_available: config.product && config.product.available,\n          collection_handle: config.collection && config.collection.handle\n        });\n        // Page-load cart write, only when the attribution changed or the cart\n        // holds items (see syncCartAttributesOnPageLoad). Keeps accelerated /\n        // dynamic / express checkouts that skip the click+submit sync triggers\n        // carrying attribution into the order.\n        try { syncCartAttributesOnPageLoad(); } catch (e) {}\n      }\n    });\n  }\n\n  // is_internal / is_automation as super properties, so they also reach events\n  // the SDK captures itself ($autocapture, $rageclick, $dead_click, $exception,\n  // $pageleave, $web_vitals). Called again after every posthog.reset(), which\n  // clears super properties.\n  function registerTrafficFlags(instance) {\n    if (!analyticsAllowed()) return;\n    var client = instance && typeof instance.register === 'function' ? instance : window.posthog;\n    if (!client) return;\n    try {\n      if (typeof client.register === 'function') {\n        client.register({ is_internal: IS_INTERNAL, is_automation: IS_AUTOMATION });\n      }\n      if (IS_INTERNAL && typeof client.setPersonProperties === 'function') {\n        client.setPersonProperties({ $internal_or_test_user: true });\n      }\n    }\n    catch (error) {}\n  }\n\n  function bindClicks() {\n    document.addEventListener('click', function (event) {\n      var target = event.target && event.target.closest\n        ? event.target.closest('a, button, input[type=\"submit\"], [role=\"button\"], shopify-accelerated-checkout, shopify-accelerated-checkout-cart')\n        : null;\n      if (!target) return;\n      var href = target.getAttribute('href') || '';\n      var label = textOf(target);\n      var hashTarget = targetFromHash(href);\n      var isHeroProductScroll = !!hashTarget\n        && target.closest('.lp-angle-hero-section')\n        && hashTarget.matches('[data-an-product-module]');\n      var isAccelerated = !!target.closest('shopify-accelerated-checkout, shopify-accelerated-checkout-cart')\n        || (target.tagName && target.tagName.toUpperCase().indexOf('SHOPIFY-ACCELERATED-CHECKOUT') === 0);\n      var productForm = target.closest('form[action*=\"/cart/add\"], [data-lp-checkout-form], .product-form, .lp-checkout-form');\n      var productCheckoutBehavior = productForm ? checkoutBehavior(productForm) : '';\n      var isCheckout = /\\/checkout(?:\\/|\\?|$)/.test(href)\n        || target.getAttribute('name') === 'checkout'\n        || productCheckoutBehavior === 'direct'\n        || isAccelerated;\n      var isProductCta = !!productForm;\n      var selectorCard = target.closest('[data-an-selector-card]');\n      var intent = (isCheckout || isProductCta)\n        ? buildCheckoutIntent(target, isCheckout ? 'checkout_cta_click' : 'cart_add_cta_click')\n        : {};\n      capture(isCheckout ? 'an_checkout_cta_clicked' : 'an_cta_clicked', ctaProps(target, {\n        is_product_cta: isProductCta,\n        is_checkout_cta: isCheckout,\n        checkout_behavior: productCheckoutBehavior,\n        checkout_intent_id: intent.checkout_intent_id || ''\n      }), UNLOAD_SAFE_CAPTURE);\n      if (selectorCard) {\n        capture('an_product_selector_choice_clicked', Object.assign(productModuleProps(selectorCard), ctaProps(target), {\n          selector_action: isCheckout ? 'direct_checkout' : (isProductCta ? 'add_to_cart_drawer' : (href ? 'product_link' : 'button')),\n          selector_choice: selectorCard.getAttribute('data-selector-choice') || '',\n          selector_role: selectorCard.getAttribute('data-selector-role') || ''\n        }), UNLOAD_SAFE_CAPTURE);\n      }\n      var cartCrossSell = target.closest('[data-an-cart-cross-sell]');\n      if (cartCrossSell) {\n        capture('an_cart_cross_sell_clicked', ctaProps(target, {\n          cross_sell_id: cartCrossSell.getAttribute('data-an-cart-cross-sell') || '',\n          cross_sell_products: (cartCrossSell.getAttribute('data-an-cross-sell-products') || '').split(',').filter(Boolean),\n          cart_routine_count: Number(cartCrossSell.getAttribute('data-an-cart-routine-count') || 0)\n        }), UNLOAD_SAFE_CAPTURE);\n      }\n      if (isCheckout) {\n        capture('an_checkout_intent_started', intent, UNLOAD_SAFE_CAPTURE);\n        recordCheckoutHandoff(intent, target, isAccelerated, href);\n        syncPostHogCartAttributes('checkout_click', true, true).then(function (synced) {\n          capture('an_checkout_intent_cart_sync_completed', {\n            checkout_intent_id: intent.checkout_intent_id || '',\n            cart_sync_succeeded: !!synced\n          });\n        });\n      }\n      if (isHeroProductScroll) {\n        capture('an_product_module_scroll_clicked', Object.assign(ctaProps(target), {\n          cta_text: label,\n          cta_href: href,\n          cta_location: closestLabel(target),\n          scroll_target_hash: href,\n          scroll_target_found: true\n        }, productModuleProps(hashTarget)));\n      }\n    }, true);\n\n    document.addEventListener('submit', function (event) {\n      var form = event.target;\n      if (!form || !form.matches) return;\n      var action = form.getAttribute('action') || '';\n      if (form.matches('[data-lp-checkout-form]')) {\n        var button = form.querySelector('button[type=\"submit\"], input[type=\"submit\"]');\n        var behavior = checkoutBehavior(form);\n        var formIntent = buildCheckoutIntent(button || form, behavior + '_product_submit');\n        syncPostHogCartAttributes(behavior + '_product_submit', true, true);\n        var formProps = Object.assign({\n          form_action: action,\n          variant_id: form.getAttribute('data-lp-variant-id') || '',\n          checkout_behavior: behavior,\n          checkout_experiment_id: form.getAttribute('data-an-checkout-experiment') || '',\n          checkout_intent_id: formIntent.checkout_intent_id || ''\n        }, productModuleProps(form), ctaProps(button || form));\n        capture('an_product_purchase_form_submitted', formProps, UNLOAD_SAFE_CAPTURE);\n        capture(behavior === 'direct' ? 'an_direct_checkout_submitted' : 'an_add_to_cart_submitted', formProps, UNLOAD_SAFE_CAPTURE);\n        return;\n      }\n      // Email-capture submits are observed via the native `klaviyoForms` event\n      // (bindKlaviyoForms), not a theme submit handler \u2014 Klaviyo embeds submit\n      // inside their own frame. The old [data-an-lead-capture-form] handler never\n      // matched the live Klaviyo markup and is removed.\n      if (/\\/cart\\/add/.test(action) || form.querySelector('[name=\"id\"]')) {\n        var cartButton = form.querySelector('button[type=\"submit\"], input[type=\"submit\"]');\n        var cartIntent = buildCheckoutIntent(cartButton || form, 'cart_add_submit');\n        syncPostHogCartAttributes('cart_add_submit', true, true);\n        capture('an_add_to_cart_submitted', Object.assign({\n          form_action: action,\n          variant_id: (form.querySelector('[name=\"id\"]') || {}).value || '',\n          checkout_intent_id: cartIntent.checkout_intent_id || ''\n        }, productModuleProps(form)));\n      }\n    }, true);\n  }\n\n  function cartDrawerProps(drawer, extra) {\n    var intent = readSessionJson(CHECKOUT_INTENT_KEY);\n    var cart = cartContext();\n    var checkout = drawer && drawer.querySelector\n      ? drawer.querySelector('[data-an-cart-drawer-action=\"checkout\"]')\n      : null;\n    return Object.assign({\n      cart_drawer_id: drawer && drawer.id ? drawer.id : 'CartDrawer',\n      checkout_intent_id: intent.checkout_intent_id || '',\n      parent_checkout_intent_id: intent.parent_checkout_intent_id || '',\n      checkout_intent_source: intent.checkout_intent_source || '',\n      originating_cta_id: intent.checkout_intent_cta_id || '',\n      originating_cta_slot: intent.checkout_intent_cta_slot || '',\n      originating_page_path: intent.checkout_intent_page_path || '',\n      cart_value: cart.cart_value,\n      cart_currency: cart.cart_currency || config.currency || '',\n      cart_item_count: cart.cart_item_count,\n      cart_product_handles: cart.cart_product_handles || [],\n      cart_variant_ids: cart.cart_variant_ids || [],\n      drawer_checkout_visible: !!checkout\n    }, extra || {});\n  }\n\n  function refreshCartContext() {\n    return fetch('/cart.js', {\n      headers: { 'Accept': 'application/json', 'X-Anatomy-Tracking-Read': '1' },\n      credentials: 'same-origin'\n    }).then(function (response) {\n      return response.ok ? response.json() : null;\n    }).then(function (cart) {\n      return cart ? updateCartContext(cart) : cartContext();\n    }).catch(function () {\n      return cartContext();\n    });\n  }\n\n  function bindCartDrawer() {\n    var lastDrawerAction = 'programmatic';\n\n    document.addEventListener('drawer:afterShow', function (event) {\n      var drawer = event.target && event.target.closest ? event.target.closest('[data-an-cart-drawer], cart-drawer') : null;\n      if (!drawer || drawer.id !== 'CartDrawer') return;\n      lastDrawerAction = 'open';\n      refreshCartContext().then(function () {\n        capture('an_cart_drawer_opened', cartDrawerProps(drawer));\n        var checkout = drawer.querySelector('[data-an-cart-drawer-action=\"checkout\"]');\n        if (checkout) capture('an_cart_drawer_checkout_visible', Object.assign(cartDrawerProps(drawer), ctaProps(checkout)));\n      });\n    });\n\n    document.addEventListener('drawer:afterHide', function (event) {\n      var drawer = event.target && event.target.closest ? event.target.closest('[data-an-cart-drawer], cart-drawer') : null;\n      if (!drawer || drawer.id !== 'CartDrawer') return;\n      capture('an_cart_drawer_closed', cartDrawerProps(drawer, { drawer_close_reason: lastDrawerAction }));\n      lastDrawerAction = 'programmatic';\n    });\n\n    document.addEventListener('click', function (event) {\n      var actionTarget = event.target && event.target.closest\n        ? event.target.closest('[data-an-cart-drawer-action]')\n        : null;\n      if (!actionTarget) return;\n      var drawer = actionTarget.closest('[data-an-cart-drawer], cart-drawer');\n      if (!drawer || drawer.id !== 'CartDrawer') return;\n      var action = actionTarget.getAttribute('data-an-cart-drawer-action') || 'unknown';\n      lastDrawerAction = action;\n      var eventName = {\n        checkout: 'an_cart_drawer_checkout_clicked',\n        close: 'an_cart_drawer_close_clicked',\n        continue_shopping: 'an_cart_drawer_continue_shopping_clicked',\n        view_cart: 'an_cart_drawer_view_cart_clicked',\n        cross_sell: 'an_cart_drawer_cross_sell_clicked'\n      }[action] || 'an_cart_drawer_action_clicked';\n      capture(eventName, Object.assign(cartDrawerProps(drawer, { cart_drawer_action: action }), ctaProps(actionTarget)));\n    }, true);\n\n    window.addEventListener('anatomy:checkout-redirect-started', function (event) {\n      var detail = event && event.detail ? event.detail : {};\n      capture('an_checkout_redirect_started', Object.assign({}, readSessionJson(CHECKOUT_INTENT_KEY), {\n        checkout_behavior: 'direct',\n        checkout_redirect_target: safeUrl(detail.target || '/checkout'),\n        checkout_experiment_id: detail.experimentId || '',\n        checkout_experiment_variant: detail.variant || ''\n      }));\n    });\n  }\n\n  function bindNetworkOutcomes() {\n    var originalFetch = window.fetch;\n    if (typeof originalFetch === 'function' && !originalFetch.__ANATOMY_FUNNEL_WRAPPED__) {\n      var cartActionType = function (path) {\n        if (/\\/cart\\/add(?:\\.js)?$/.test(path)) return 'cart_add';\n        if (/\\/cart\\/change(?:\\.js)?$/.test(path)) return 'cart_change';\n        if (/\\/cart\\/update(?:\\.js)?$/.test(path)) return 'cart_update';\n        return 'cart_unknown';\n      };\n\n      var requestHeaderValue = function (headers, name) {\n        if (!headers) return '';\n        var lowerName = String(name || '').toLowerCase();\n\n        try {\n          if (typeof Headers !== 'undefined' && headers instanceof Headers) {\n            return headers.get(name) || '';\n          }\n        }\n        catch (error) {}\n\n        if (Array.isArray(headers)) {\n          for (var index = 0; index < headers.length; index += 1) {\n            if (headers[index] && String(headers[index][0] || '').toLowerCase() === lowerName) {\n              return headers[index][1] || '';\n            }\n          }\n          return '';\n        }\n\n        try {\n          for (var key in headers) {\n            if (Object.prototype.hasOwnProperty.call(headers, key) && String(key).toLowerCase() === lowerName) {\n              return headers[key] || '';\n            }\n          }\n        }\n        catch (error) {}\n\n        return '';\n      };\n\n      var isAttributionCartSync = function (args, path) {\n        if (!/\\/cart\\/update(?:\\.js)?$/.test(path || '')) return false;\n        var request = args[0];\n        var options = args[1] || {};\n        var headerValue = requestHeaderValue(options.headers, CART_ATTRIBUTION_SYNC_HEADER);\n        if (!headerValue && request && request.headers) {\n          headerValue = requestHeaderValue(request.headers, CART_ATTRIBUTION_SYNC_HEADER);\n        }\n        return headerValue === '1' || headerValue === 'true';\n      };\n\n      var captureCartActionResult = function (response, path, startedAt) {\n        var props = {\n          cart_action_path: path,\n          cart_action_type: cartActionType(path),\n          cart_action_status: response.status,\n          cart_action_status_text: response.statusText || '',\n          cart_action_duration_ms: Date.now() - startedAt\n        };\n\n        if (response.ok) {\n          if (response.clone && typeof response.clone === 'function') {\n            response.clone().json().then(function (payload) {\n              if (payload && Array.isArray(payload.items)) {\n                Object.assign(props, updateCartContext(payload));\n              }\n              else if (payload) {\n                props.product_id = payload.product_id || '';\n                props.variant_id = payload.variant_id || payload.id || '';\n                props.quantity = payload.quantity || 1;\n                props.line_price = typeof payload.final_line_price === 'number' ? payload.final_line_price / 100 : undefined;\n              }\n              capture('an_cart_action_succeeded', props, UNLOAD_SAFE_CAPTURE);\n            }).catch(function () {\n              capture('an_cart_action_succeeded', props, UNLOAD_SAFE_CAPTURE);\n            });\n          }\n          else {\n            capture('an_cart_action_succeeded', props, UNLOAD_SAFE_CAPTURE);\n          }\n          return;\n        }\n\n        if (response.clone) {\n          response.clone().text().then(function (text) {\n            if (text) props.cart_action_response = text.slice(0, 500);\n            capture('an_cart_action_failed', props);\n          }).catch(function () {\n            capture('an_cart_action_failed', props);\n          });\n          return;\n        }\n\n        capture('an_cart_action_failed', props);\n      };\n\n      var wrappedFetch = function () {\n        var args = arguments;\n        var startedAt = Date.now();\n        var url = '';\n        try {\n          url = typeof args[0] === 'string' ? args[0] : args[0] && args[0].url;\n        }\n        catch (error) {}\n\n        return originalFetch.apply(this, args).then(function (response) {\n          var path = pathFromUrl(url);\n          if (isAttributionCartSync(args, path)) return response;\n          if (/\\/cart\\/add(?:\\.js)?$/.test(path) || /\\/cart\\/change(?:\\.js)?$/.test(path) || /\\/cart\\/update(?:\\.js)?$/.test(path)) {\n            captureCartActionResult(response, path, startedAt);\n            // Persist attribution onto the cart the moment its contents change via\n            // AJAX (add/change) \u2014 not only at checkout-click \u2014 so abandoned carts\n            // and Klaviyo flows still carry first/last-touch. syncPostHogCartAttributes\n            // POSTs /cart/update with CART_ATTRIBUTION_SYNC_HEADER, which\n            // isAttributionCartSync() filters above, so this cannot recurse. It is\n            // forced (the add may have created the cart) and keepalive: the\n            // landing-page direct checkout navigates 250 ms after the add.\n            if (response.ok && (/\\/cart\\/add(?:\\.js)?$/.test(path) || /\\/cart\\/change(?:\\.js)?$/.test(path))) {\n              syncPostHogCartAttributes('ajax_cart_mutation', true, true);\n            }\n          }\n          return response;\n        }).catch(function (error) {\n          var path = pathFromUrl(url);\n          if (isAttributionCartSync(args, path)) throw error;\n          if (/\\/cart\\/add(?:\\.js)?$/.test(path) || /\\/cart\\/change(?:\\.js)?$/.test(path) || /\\/cart\\/update(?:\\.js)?$/.test(path)) {\n            capture('an_cart_action_failed', {\n              cart_action_path: path,\n              cart_action_type: cartActionType(path),\n              cart_action_status: 0,\n              cart_action_error: error && error.name ? error.name : 'network_error',\n              cart_action_duration_ms: Date.now() - startedAt\n            });\n          }\n          throw error;\n        });\n      };\n      wrappedFetch.__ANATOMY_FUNNEL_WRAPPED__ = true;\n      window.fetch = wrappedFetch;\n    }\n  }\n\n  function captureOfferSignal() {\n    var offerCode = detectOfferCode();\n    if (!offerCode) return;\n\n    var signature = offerCode + '|' + window.location.pathname;\n    try {\n      if (window.sessionStorage.getItem(OFFER_SIGNAL_KEY) === signature) return;\n      window.sessionStorage.setItem(OFFER_SIGNAL_KEY, signature);\n    }\n    catch (error) {}\n\n    capture('an_offer_code_detected', {\n      offer_code: offerCode,\n      offer_source: window.location.pathname.indexOf('/discount/') === 0 ? 'discount_path' : 'query_or_session',\n      offer_landing_path: window.location.pathname\n    });\n  }\n\n  function bindIdentitySignals() {\n    window.addEventListener('anatomy:klaviyo-identity-synced', function (event) {\n      var detail = event && event.detail ? event.detail : {};\n      capture('an_email_identity_synced', {\n        identity_sync_reason: detail.reason || '',\n        identity_property_count: detail.propertyKeys && detail.propertyKeys.length ? detail.propertyKeys.length : 0\n      });\n      syncPostHogCartAttributes('email_identity_synced', true);\n    });\n\n    // Identity is owned solely by anatomy-klaviyo-identity-sync.js, which calls\n    // posthog.identify() with a hashed email (email_sha256_<hash>) on Klaviyo\n    // form submit and on the anatomy:identify-email event \u2014 consent-gated and\n    // session-deduped. We intentionally do NOT identify here: a second listener\n    // calling posthog.identify(rawEmail) competed with the hashed-email identity\n    // (two distinct_ids for one person). This file only reacts to the resulting\n    // anatomy:klaviyo-identity-synced event (handler above).\n\n    // Reset identity on logout so a shared device never merges two customers.\n    document.addEventListener('click', function (event) {\n      var link = event.target && event.target.closest ? event.target.closest('a[href]') : null;\n      if (!link) return;\n      if (/\\/account\\/logout/.test(link.getAttribute('href') || '')) {\n        try {\n          if (analyticsAllowed() && window.posthog && typeof window.posthog.reset === 'function') {\n            window.posthog.reset();\n            registerTrafficFlags();\n          }\n        }\n        catch (error) {}\n      }\n    }, true);\n  }\n\n  function bindScrollDepth() {\n    function onScroll() {\n      var doc = document.documentElement;\n      var scrollTop = window.scrollY || doc.scrollTop || 0;\n      var height = Math.max(doc.scrollHeight - window.innerHeight, 1);\n      var depth = Math.round((scrollTop / height) * 100);\n      SCROLL_DEPTHS.forEach(function (target) {\n        if (depth >= target && !scrollSeen[target]) {\n          scrollSeen[target] = true;\n          capture('an_scroll_depth_reached', { scroll_depth: target });\n        }\n      });\n    }\n    window.addEventListener('scroll', onScroll, { passive: true });\n    onScroll();\n  }\n\n  function bindSectionViews() {\n    if (!('IntersectionObserver' in window)) return;\n    // Volume control: an_section_viewed is a content-engagement funnel step, and\n    // funnels count DISTINCT USERS (not raw events), so one event per page load is\n    // sufficient. Firing once per section made this ~31% of all events (~6,975/wk)\n    // with no funnel benefit. Capture the first qualifying section, then stop.\n    var captured = false;\n    var observer = new IntersectionObserver(function (entries) {\n      if (captured) return;\n      entries.forEach(function (entry) {\n        if (captured || !entry.isIntersecting || entry.intersectionRatio < 0.35) return;\n        var element = entry.target;\n        var key = element.getAttribute('id') || element.getAttribute('data-section-type') || element.className || '';\n        key = key.toString().slice(0, 180);\n        if (!key) return;\n        captured = true;\n        capture('an_section_viewed', {\n          section_key: key,\n          section_text_sample: textOf(element).slice(0, 220)\n        });\n        observer.disconnect();\n      });\n    }, { threshold: [0.35] });\n\n    document.querySelectorAll('section, .lp-angle-hero, .lp-bundle-protocol, .lp-system-selector, .lp-products-trio, .lp-final-cta, .lp-results-proof, .lp-microscopy-proof').forEach(function (element) {\n      observer.observe(element);\n    });\n  }\n\n  function bindDecisionViews() {\n    if (!('IntersectionObserver' in window)) return;\n    var seen = {};\n    var observer = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (!entry.isIntersecting || entry.intersectionRatio < 0.45) return;\n        var element = entry.target;\n        var key = element.getAttribute('id') || element.getAttribute('data-product-handle') || element.className || textOf(element);\n        key = key.toString().slice(0, 180);\n        if (!key || seen[key]) return;\n        seen[key] = true;\n\n        if (element.matches('[data-an-product-recommendation]')) {\n          capture('an_product_recommendation_seen', {\n            product_handle: element.getAttribute('data-product-handle') || '',\n            product_title: element.getAttribute('data-product-title') || '',\n            product_price: element.getAttribute('data-product-price') || '',\n            recommendation_location: closestLabel(element)\n          });\n        }\n\n        if (element.matches('[data-an-system-selector]')) {\n          capture('an_system_selector_viewed', productModuleProps(element));\n        }\n\n        if (element.matches('[data-an-selector-card]')) {\n          capture('an_product_selector_choice_viewed', productModuleProps(element));\n        }\n\n        if (element.matches('[data-lp-checkout-form]')) {\n          var formCta = element.querySelector ? element.querySelector('button[type=\"submit\"], input[type=\"submit\"], a[href]') : null;\n          var checkoutVisibilityProps = Object.assign({\n            form_id: element.getAttribute('id') || '',\n            variant_id: element.getAttribute('data-lp-variant-id') || '',\n            checkout_behavior: checkoutBehavior(element),\n            checkout_experiment_id: element.getAttribute('data-an-checkout-experiment') || '',\n            form_action: element.getAttribute('action') || ''\n          }, productModuleProps(element), ctaProps(formCta || element));\n          capture(checkoutVisibilityProps.checkout_behavior === 'direct' ? 'an_checkout_cta_visible' : 'an_add_to_cart_cta_visible', checkoutVisibilityProps);\n          if (checkoutVisibilityProps.is_product_module_context) {\n            capture('an_product_module_cta_visible', checkoutVisibilityProps);\n          }\n        }\n\n        if (element.matches('[data-an-product-module]')) {\n          capture('an_product_module_viewed', productModuleProps(element));\n          capture('an_product_offer_state_viewed', productOfferProps(element));\n        }\n\n        if (element.matches('[data-an-email-capture]')) {\n          capture('an_email_capture_visible', emailCaptureProps(element));\n        }\n\n        if (element.matches('[data-an-cart-cross-sell]')) {\n          capture('an_cart_cross_sell_viewed', {\n            cross_sell_id: element.getAttribute('data-an-cart-cross-sell') || '',\n            cross_sell_products: (element.getAttribute('data-an-cross-sell-products') || '').split(',').filter(Boolean),\n            cart_routine_count: Number(element.getAttribute('data-an-cart-routine-count') || 0),\n            cross_sell_location: closestLabel(element)\n          });\n        }\n      });\n    }, { threshold: [0.45] });\n\n    document.querySelectorAll('[data-an-product-recommendation], [data-an-system-selector], [data-an-selector-card], [data-an-product-module], [data-lp-checkout-form], [data-an-email-capture], [data-an-cart-cross-sell]').forEach(function (element) {\n      observer.observe(element);\n    });\n  }\n\n  function bindKlaviyoForms() {\n    window.addEventListener('klaviyoForms', function (event) {\n      var detail = event && event.detail ? event.detail : {};\n      var formId = detail.formId || detail.formID || '';\n      var formHosts = formId ? document.querySelectorAll('[data-klaviyo-form-id=\"' + formId + '\"]') : [];\n      var formHost = null;\n      Array.prototype.some.call(formHosts, function (candidate) {\n        if (candidate.offsetParent !== null) {\n          formHost = candidate;\n          return true;\n        }\n        return false;\n      });\n      if (!formHost && formHosts.length) formHost = formHosts[0];\n      var metadata = detail.metaData || {};\n      var submittedFields = [];\n      try {\n        submittedFields = Object.keys(metadata).filter(function (key) {\n          return !/email|phone|name|address/i.test(key);\n        });\n      }\n      catch (error) {}\n\n      var props = emailCaptureProps(formHost, {\n        klaviyo_event_type: detail.type || '',\n        klaviyo_form_id: formId,\n        klaviyo_company_id: detail.companyId || detail.companyID || '',\n        capture_step: detail.step || detail.stepNumber || '',\n        capture_variant: detail.variant || detail.formVersion || '',\n        submitted_field_keys: submittedFields\n      });\n\n      if (detail.type === 'submit') {\n        capture('an_email_capture_submitted', props);\n      }\n      else if (detail.type === 'stepSubmit') {\n        capture('an_email_capture_step_submitted', props);\n      }\n      else if (detail.type === 'embedOpen' || detail.type === 'open') {\n        capture('an_email_capture_opened', props);\n      }\n      else if (detail.type) {\n        capture('an_klaviyo_form_event', props);\n      }\n    });\n  }\n\n  function bindPageQuality() {\n    try {\n      if ('PerformanceObserver' in window) {\n        var lcpObserver = new PerformanceObserver(function (entryList) {\n          var entries = entryList.getEntries();\n          var entry = entries[entries.length - 1];\n          if (entry) largestContentfulPaintMs = entry.startTime || 0;\n        });\n        lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });\n      }\n    }\n    catch (error) {}\n\n    if (document.readyState === 'complete') {\n      window.setTimeout(function () { capturePageQuality('document_complete'); }, 1800);\n    }\n    else {\n      window.addEventListener('load', function () {\n        window.setTimeout(function () { capturePageQuality('window_load'); }, 1800);\n      }, { once: true });\n    }\n    window.setTimeout(function () { capturePageQuality('timeout'); }, 6000);\n    window.addEventListener('pagehide', function () { capturePageQuality('pagehide'); }, { once: true });\n  }\n\n  var trackingInitialized = false;\n  var trackingRevoked = false;\n\n  function revokeTracking() {\n    if (window.posthog) {\n      try {\n        if (typeof window.posthog.reset === 'function') window.posthog.reset(true);\n      }\n      catch (error) {}\n      try {\n        if (typeof window.posthog.opt_out_capturing === 'function') {\n          window.posthog.opt_out_capturing({ clear_persistence: true });\n        }\n      }\n      catch (error) {}\n    }\n    trackingRevoked = true;\n    clearTrackingState();\n  }\n\n  function initializeTracking(snapshot) {\n    if (!analyticsAllowed()) {\n      if (snapshot && (snapshot.status === 'ready' || snapshot.status === 'error')) {\n        reconcileCartAttributesForPrivacy();\n        revokeTracking();\n      }\n      return;\n    }\n\n    sanitizeStoredPurposeState();\n    var needsPrivacyReconciliation = !marketingAllowed() || !advertisingAllowed();\n    if (needsPrivacyReconciliation) reconcileCartAttributesForPrivacy();\n\n    if (trackingInitialized) {\n      if (trackingRevoked && window.posthog && typeof window.posthog.reset === 'function') {\n        window.posthog.reset(true);\n      }\n      if (window.posthog && typeof window.posthog.opt_in_capturing === 'function') {\n        window.posthog.opt_in_capturing();\n      }\n      trackingRevoked = false;\n      synchronizeVisitorIdWithPostHog();\n      registerTrafficFlags();\n      if (!needsPrivacyReconciliation) syncPostHogCartAttributes('privacy_consent_changed', false);\n      return;\n    }\n\n    trackingInitialized = true;\n    trackingRevoked = false;\n    loadPostHog();\n    bindClicks();\n    bindCartDrawer();\n    bindNetworkOutcomes();\n    bindCheckoutHandoffReturns();\n    bindScrollDepth();\n    bindSectionViews();\n    bindDecisionViews();\n    bindKlaviyoForms();\n    bindIdentitySignals();\n    bindPageQuality();\n    captureOfferSignal();\n  }\n\n  var privacy = window.AnatomyCustomerPrivacy;\n  if (privacy && typeof privacy.subscribe === 'function') {\n    privacy.subscribe(initializeTracking);\n  }\n})();\n"],
  "mappings": "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",
  "names": ["privacy"]
}
