{
  "version": 3,
  "sources": ["/cdn/shop/t/5/assets/cg-crispy.js?cg=sticky-atc-20260601"],
  "sourcesContent": ["(() => {\r\n  const initSiteHeader = (header) => {\r\n    if (!header || header.dataset.cgHeaderInitialized === 'true') {\r\n      return;\r\n    }\r\n\r\n    header.dataset.cgHeaderInitialized = 'true';\r\n\r\n    const menuToggle = header.querySelector('.cg-site-header__menu-toggle');\r\n    const menu = header.querySelector(`#${menuToggle?.getAttribute('aria-controls') || ''}`);\r\n\r\n    if (!menuToggle || !menu) {\r\n      return;\r\n    }\r\n\r\n    const setMenuOpen = (isOpen) => {\r\n      menu.hidden = !isOpen;\r\n      menuToggle.setAttribute('aria-expanded', String(isOpen));\r\n    };\r\n\r\n    menuToggle.addEventListener('click', () => {\r\n      setMenuOpen(menu.hidden);\r\n    });\r\n\r\n    menu.addEventListener('click', (event) => {\r\n      if (event.target.closest('a')) {\r\n        setMenuOpen(false);\r\n      }\r\n    });\r\n\r\n    document.addEventListener('click', (event) => {\r\n      if (!menu.hidden && !header.contains(event.target)) {\r\n        setMenuOpen(false);\r\n      }\r\n    });\r\n\r\n    document.addEventListener('keydown', (event) => {\r\n      if (event.key === 'Escape') {\r\n        setMenuOpen(false);\r\n      }\r\n    });\r\n  };\r\n\r\n  const initProductMain = (section) => {\r\n    if (!section || section.dataset.cgProductInitialized === 'true') {\r\n      return;\r\n    }\r\n\r\n    section.dataset.cgProductInitialized = 'true';\n\n    const productDescription = section.querySelector('.cg-product-lede');\n    if (productDescription) {\n      const descriptionChildren = Array.from(productDescription.children);\n      const meaningfulMediaSelector = 'img, picture, video, iframe, svg, canvas, table, hr';\n\n      for (let index = descriptionChildren.length - 1; index >= 0; index -= 1) {\n        const child = descriptionChildren[index];\n        const hasText = child.textContent.replace(/\\u00a0/g, ' ').trim().length > 0;\n        const hasMedia = child.matches(meaningfulMediaSelector) || child.querySelector(meaningfulMediaSelector);\n\n        if (hasText || hasMedia) {\n          break;\n        }\n\n        child.remove();\n      }\n    }\n\n    const form = section.querySelector('.cg-product-form');\n    const variantInput = form?.querySelector('[name=\"id\"]') || section.querySelector('[data-cg-variant-id]');\r\n    const atcButton = section.querySelector('[data-cg-product-atc]');\r\n    const priceNode = section.querySelector('[data-cg-product-price]');\r\n    const comparePriceNode = section.querySelector('[data-cg-product-compare-price]');\r\n    const stickyButton = section.querySelector('[data-cg-sticky-atc-button]');\r\n    const stickyPriceNode = section.querySelector('[data-cg-sticky-price]');\r\n    const variantsScript = section.querySelector('[data-cg-product-variants]');\r\n    const quantityInput = section.querySelector('[data-cg-quantity-stepper] [name=\"quantity\"]');\r\n    const productInformation = section.querySelector('[data-cg-product-information]');\r\n    const productInformationMessage = productInformation?.querySelector('[data-cg-product-information-message]');\r\n    const optionGroups = Array.from(section.querySelectorAll('[data-cg-option-group]'));\r\n    const mediaStage = section.querySelector('[data-cg-media-stage]');\r\n    const mediaItems = Array.from(section.querySelectorAll('[data-cg-media-id]'));\r\n    const thumbs = Array.from(section.querySelectorAll('[data-cg-media-thumb]'));\r\n    const mediaDots = Array.from(section.querySelectorAll('[data-cg-media-dot]'));\r\n    const mediaOpenItems = Array.from(section.querySelectorAll('[data-cg-media-open]'));\r\n    const lightbox = section.querySelector('[data-cg-media-lightbox]');\r\n    const lightboxDialog = section.querySelector('[data-cg-media-lightbox-dialog]');\r\n    const lightboxItems = Array.from(section.querySelectorAll('[data-cg-lightbox-media-id]'));\r\n    const lightboxClose = section.querySelector('[data-cg-media-lightbox-close]');\r\n    const lightboxPrev = section.querySelector('[data-cg-media-lightbox-prev]');\r\n    const lightboxNext = section.querySelector('[data-cg-media-lightbox-next]');\r\n    let lightboxLastFocus = null;\r\n    let activeLightboxMediaId =\r\n      lightboxItems.find((item) => item.classList.contains('is-active'))?.dataset.cgLightboxMediaId ||\r\n      lightboxItems[0]?.dataset.cgLightboxMediaId ||\r\n      null;\r\n    let suppressNextMediaClick = false;\r\n    let suppressNextMediaClickTimer = null;\r\n\r\n    let variants = [];\r\n    if (variantsScript?.textContent) {\r\n      try {\r\n        variants = JSON.parse(variantsScript.textContent);\r\n      } catch (error) {\r\n        variants = [];\r\n      }\r\n    }\r\n\r\n    let cartSubtotal = Number(productInformation?.dataset.cartSubtotal) || 0;\r\n\r\n    const getProductInformationVariant = () => {\r\n      const activeVariantId = variantInput?.value;\r\n      return variants.find((variant) => String(variant.id) === String(activeVariantId));\r\n    };\r\n\r\n    const getProductInformationQuantity = () => {\r\n      const value = Number(quantityInput?.value);\r\n      return Number.isFinite(value) && value > 0 ? Math.floor(value) : 1;\r\n    };\r\n\r\n    const updateProductInformation = () => {\r\n      if (!productInformation) {\r\n        return;\r\n      }\r\n\r\n      const threshold = Number(productInformation.dataset.thresholdCents) || 2500;\r\n      const flatRateMessage =\r\n        productInformation.dataset.flatRateMessage || '$7.95 flat rate shipping or free shipping at $25+';\r\n      const freeShippingMessage = productInformation.dataset.freeShippingMessage || 'Free shipping.';\r\n      const variant = getProductInformationVariant();\r\n      const selectionTotal = Math.max(0, Number(variant?.price) || 0) * getProductInformationQuantity();\r\n      const projectedSubtotal = cartSubtotal + selectionTotal;\r\n      const qualifiesForFreeShipping = projectedSubtotal >= threshold;\r\n      const state = qualifiesForFreeShipping ? 'free-shipping' : 'flat-rate';\r\n      const message = qualifiesForFreeShipping ? freeShippingMessage : flatRateMessage;\r\n\r\n      productInformation.dataset.state = state;\r\n      if (productInformationMessage && productInformationMessage.textContent.trim() !== message) {\r\n        productInformationMessage.textContent = message;\r\n      }\r\n    };\r\n\r\n    const refreshProductInformationCart = () => {\r\n      if (!productInformation || typeof window.fetch !== 'function') {\r\n        return;\r\n      }\r\n\r\n      const routesRoot = window.Shopify?.routes?.root || '/';\r\n      const cartUrl = `${routesRoot.endsWith('/') ? routesRoot : `${routesRoot}/`}cart.js`;\r\n\r\n      window\r\n        .fetch(cartUrl, {\r\n          credentials: 'same-origin',\r\n          headers: { Accept: 'application/json' },\r\n          cache: 'no-store'\r\n        })\r\n        .then((response) => {\r\n          if (!response.ok) {\r\n            throw new Error(`Cart request failed with ${response.status}`);\r\n          }\r\n          return response.json();\r\n        })\r\n        .then((cartData) => {\r\n          const nextSubtotal = Number(cartData.items_subtotal_price ?? cartData.total_price);\r\n          if (Number.isFinite(nextSubtotal)) {\r\n            cartSubtotal = nextSubtotal;\r\n          }\r\n          updateProductInformation();\r\n        })\r\n        .catch(() => {\r\n          updateProductInformation();\r\n        });\r\n    };\r\n\r\n    const setLightboxMedia = (mediaId) => {\r\n      if (!lightboxItems.length) {\r\n        return;\r\n      }\r\n\r\n      const requestedId = String(mediaId || '');\r\n      const targetId = lightboxItems.some((item) => item.dataset.cgLightboxMediaId === requestedId)\r\n        ? requestedId\r\n        : lightboxItems[0].dataset.cgLightboxMediaId;\r\n\r\n      activeLightboxMediaId = targetId;\r\n      lightboxItems.forEach((item) => {\r\n        item.classList.toggle('is-active', item.dataset.cgLightboxMediaId === targetId);\r\n      });\r\n    };\r\n\r\n    const closeLightbox = () => {\r\n      if (!lightbox || lightbox.hidden) {\r\n        return;\r\n      }\r\n\r\n      lightbox.hidden = true;\r\n      lightbox.setAttribute('aria-hidden', 'true');\r\n      document.documentElement.classList.remove('cg-product-media-lightbox-open');\r\n      document.body?.classList.remove('cg-product-media-lightbox-open');\r\n      document.removeEventListener('keydown', handleLightboxKeydown);\r\n\r\n      if (lightboxLastFocus && typeof lightboxLastFocus.focus === 'function') {\r\n        lightboxLastFocus.focus({ preventScroll: true });\r\n      }\r\n    };\r\n\r\n    const openLightbox = (mediaId, trigger) => {\r\n      if (!lightbox || !lightboxItems.length) {\r\n        return;\r\n      }\r\n\r\n      lightboxLastFocus = trigger || document.activeElement;\r\n      setLightboxMedia(mediaId);\r\n      lightbox.hidden = false;\r\n      lightbox.setAttribute('aria-hidden', 'false');\r\n      lightbox.classList.toggle('is-single-image', lightboxItems.length < 2);\r\n      document.documentElement.classList.add('cg-product-media-lightbox-open');\r\n      document.body?.classList.add('cg-product-media-lightbox-open');\r\n      document.addEventListener('keydown', handleLightboxKeydown);\r\n\r\n      window.requestAnimationFrame(() => {\r\n        (lightboxDialog || lightboxClose || lightbox).focus({ preventScroll: true });\r\n      });\r\n    };\r\n\r\n    const playActiveMediaVideo = (item) => {\r\n      const video = item?.querySelector('video');\r\n      if (!video) {\r\n        return;\r\n      }\r\n\r\n      const playback = video.play();\r\n      if (!playback || typeof playback.catch !== 'function') {\r\n        return;\r\n      }\r\n\r\n      playback.catch(() => {\r\n        if (!item.classList.contains('is-active') || !video.paused) {\r\n          return;\r\n        }\r\n\r\n        video.muted = true;\r\n        const mutedPlayback = video.play();\r\n        if (mutedPlayback && typeof mutedPlayback.catch === 'function') {\r\n          mutedPlayback.catch(() => {});\r\n        }\r\n      });\r\n    };\r\n\r\n    const activateMedia = (mediaId) => {\r\n      if (!mediaId) {\r\n        return;\r\n      }\r\n\r\n      const targetId = String(mediaId);\r\n      let activeMediaItem = null;\r\n\r\n      mediaItems.forEach((item) => {\r\n        const isActive = item.dataset.cgMediaId === targetId;\r\n        item.classList.toggle('is-active', isActive);\r\n\r\n        if (isActive) {\r\n          activeMediaItem = item;\r\n        } else {\r\n          item.querySelector('video')?.pause();\r\n        }\r\n\r\n        if (item.hasAttribute('data-cg-media-open')) {\r\n          item.tabIndex = isActive ? 0 : -1;\r\n        }\r\n      });\r\n\r\n      thumbs.forEach((thumb) => {\r\n        const isActive = thumb.dataset.cgMediaThumb === targetId;\r\n        thumb.classList.toggle('is-active', isActive);\r\n        if (isActive) {\r\n          thumb.setAttribute('aria-current', 'true');\r\n          thumb.scrollIntoView({ block: 'nearest', inline: 'nearest' });\r\n        } else {\r\n          thumb.removeAttribute('aria-current');\r\n        }\r\n      });\r\n\r\n      mediaDots.forEach((dot) => {\r\n        const isActive = dot.dataset.cgMediaDot === targetId;\r\n        dot.classList.toggle('is-active', isActive);\r\n        if (isActive) {\r\n          dot.setAttribute('aria-current', 'true');\r\n        } else {\r\n          dot.removeAttribute('aria-current');\r\n        }\r\n      });\r\n\r\n      setLightboxMedia(targetId);\r\n      playActiveMediaVideo(activeMediaItem);\r\n    };\r\n\r\n    const getActiveMediaIndex = () => {\r\n      const activeIndex = mediaItems.findIndex((item) => item.classList.contains('is-active'));\r\n      return activeIndex >= 0 ? activeIndex : 0;\r\n    };\r\n\r\n    const activateMediaByIndex = (index) => {\r\n      if (!mediaItems.length) {\r\n        return;\r\n      }\r\n\r\n      const nextIndex = (index + mediaItems.length) % mediaItems.length;\r\n      activateMedia(mediaItems[nextIndex]?.dataset.cgMediaId);\r\n    };\r\n\r\n    const getActiveLightboxIndex = () => {\r\n      const activeIndex = lightboxItems.findIndex(\r\n        (item) => item.dataset.cgLightboxMediaId === activeLightboxMediaId\r\n      );\r\n      return activeIndex >= 0 ? activeIndex : 0;\r\n    };\r\n\r\n    const activateLightboxByDirection = (direction) => {\r\n      if (!lightboxItems.length) {\r\n        return;\r\n      }\r\n\r\n      const nextIndex = (getActiveLightboxIndex() + direction + lightboxItems.length) % lightboxItems.length;\r\n      activateMedia(lightboxItems[nextIndex]?.dataset.cgLightboxMediaId);\r\n    };\r\n\r\n    function handleLightboxKeydown(event) {\r\n      if (!lightbox || lightbox.hidden) {\r\n        return;\r\n      }\r\n\r\n      if (event.key === 'Escape') {\r\n        event.preventDefault();\r\n        closeLightbox();\r\n      } else if (event.key === 'ArrowLeft') {\r\n        event.preventDefault();\r\n        activateLightboxByDirection(-1);\r\n      } else if (event.key === 'ArrowRight') {\r\n        event.preventDefault();\r\n        activateLightboxByDirection(1);\r\n      }\r\n    }\r\n\r\n    const suppressMediaClickOnce = () => {\r\n      suppressNextMediaClick = true;\r\n\r\n      if (suppressNextMediaClickTimer) {\r\n        window.clearTimeout(suppressNextMediaClickTimer);\r\n      }\r\n\r\n      suppressNextMediaClickTimer = window.setTimeout(() => {\r\n        suppressNextMediaClick = false;\r\n        suppressNextMediaClickTimer = null;\r\n      }, 320);\r\n    };\r\n\r\n    thumbs.forEach((thumb) => {\r\n      thumb.addEventListener('click', () => activateMedia(thumb.dataset.cgMediaThumb));\r\n    });\r\n\r\n    mediaDots.forEach((dot) => {\r\n      dot.addEventListener('click', () => activateMedia(dot.dataset.cgMediaDot));\r\n    });\r\n\r\n    mediaOpenItems.forEach((item) => {\r\n      item.addEventListener('click', (event) => {\r\n        if (suppressNextMediaClick) {\r\n          event.preventDefault();\r\n          suppressNextMediaClick = false;\r\n          return;\r\n        }\r\n\r\n        openLightbox(item.dataset.cgMediaOpen, item);\r\n      });\r\n\r\n      item.addEventListener('keydown', (event) => {\r\n        if (event.key !== 'Enter' && event.key !== ' ') {\r\n          return;\r\n        }\r\n\r\n        event.preventDefault();\r\n        openLightbox(item.dataset.cgMediaOpen, item);\r\n      });\r\n    });\r\n\r\n    if (lightbox) {\r\n      lightbox.classList.toggle('is-single-image', lightboxItems.length < 2);\r\n\r\n      lightboxClose?.addEventListener('click', closeLightbox);\r\n      lightboxPrev?.addEventListener('click', () => activateLightboxByDirection(-1));\r\n      lightboxNext?.addEventListener('click', () => activateLightboxByDirection(1));\r\n\r\n      lightbox.addEventListener('click', (event) => {\r\n        if (event.target === lightbox) {\r\n          closeLightbox();\r\n        }\r\n      });\r\n    }\r\n\r\n    if (mediaStage && mediaItems.length > 1) {\r\n      let swipeState = null;\r\n      let swipeResetTimer = null;\r\n      const swipePreviewDistance = 220;\r\n      const swipeSettleMs = 180;\r\n\r\n      const clearSwipeResetTimer = () => {\r\n        if (swipeResetTimer) {\r\n          window.clearTimeout(swipeResetTimer);\r\n          swipeResetTimer = null;\r\n        }\r\n      };\r\n\r\n      const clearSwipeVisuals = () => {\r\n        clearSwipeResetTimer();\r\n        mediaStage.classList.remove('is-swipe-previewing', 'is-swipe-settling');\r\n        mediaStage.style.removeProperty('--cg-product-swipe-current-opacity');\r\n        mediaStage.style.removeProperty('--cg-product-swipe-next-opacity');\r\n        mediaItems.forEach((item) => item.classList.remove('is-swipe-preview'));\r\n      };\r\n\r\n      const applySwipeVisuals = (direction, progress, isSettling = false) => {\r\n        const activeIndex = getActiveMediaIndex();\r\n        const previewIndex = (activeIndex + direction + mediaItems.length) % mediaItems.length;\r\n        const previewItem = mediaItems[previewIndex];\r\n        const easedProgress = Math.max(0, Math.min(progress, 1));\r\n\r\n        mediaItems.forEach((item) => {\r\n          item.classList.toggle('is-swipe-preview', item === previewItem);\r\n        });\r\n\r\n        mediaStage.classList.add('is-swipe-previewing');\r\n        mediaStage.classList.toggle('is-swipe-settling', isSettling);\r\n        mediaStage.style.setProperty('--cg-product-swipe-current-opacity', String(1 - easedProgress));\r\n        mediaStage.style.setProperty('--cg-product-swipe-next-opacity', String(easedProgress));\r\n      };\r\n\r\n      const resetSwipe = () => {\r\n        swipeState = null;\r\n      };\r\n\r\n      mediaStage.addEventListener('pointerdown', (event) => {\r\n        if (event.pointerType === 'mouse' && event.button !== 0) {\r\n          return;\r\n        }\r\n\r\n        if (event.target.closest('a, button, input, select, textarea, summary')) {\r\n          return;\r\n        }\r\n\r\n        clearSwipeVisuals();\r\n\r\n        swipeState = {\r\n          pointerId: event.pointerId,\r\n          startX: event.clientX,\r\n          startY: event.clientY,\r\n          lastX: event.clientX,\r\n          lastY: event.clientY,\r\n          isHorizontal: false,\r\n          direction: 1\r\n        };\r\n\r\n        try {\r\n          mediaStage.setPointerCapture(event.pointerId);\r\n        } catch (error) {}\r\n      });\r\n\r\n      mediaStage.addEventListener(\r\n        'pointermove',\r\n        (event) => {\r\n          if (!swipeState || event.pointerId !== swipeState.pointerId) {\r\n            return;\r\n          }\r\n\r\n          const deltaX = event.clientX - swipeState.startX;\r\n          const deltaY = event.clientY - swipeState.startY;\r\n\r\n          swipeState.lastX = event.clientX;\r\n          swipeState.lastY = event.clientY;\r\n\r\n          if (\r\n            !swipeState.isHorizontal &&\r\n            Math.abs(deltaX) > 10 &&\r\n            Math.abs(deltaX) > Math.abs(deltaY) * 1.25\r\n          ) {\r\n            swipeState.isHorizontal = true;\r\n          }\r\n\r\n          if (swipeState.isHorizontal) {\r\n            swipeState.direction = deltaX < 0 ? 1 : -1;\r\n            applySwipeVisuals(\r\n              swipeState.direction,\r\n              Math.min(Math.abs(deltaX) / swipePreviewDistance, 1)\r\n            );\r\n            event.preventDefault();\r\n          }\r\n        },\r\n        { passive: false }\r\n      );\r\n\r\n      const finishSwipe = (event, shouldAnimateBack = true) => {\r\n        if (!swipeState || event.pointerId !== swipeState.pointerId) {\r\n          return;\r\n        }\r\n\r\n        const deltaX = swipeState.lastX - swipeState.startX;\r\n        const deltaY = swipeState.lastY - swipeState.startY;\r\n        const direction = deltaX === 0 ? swipeState.direction : deltaX < 0 ? 1 : -1;\r\n        const isSwipe = Math.abs(deltaX) >= 44 && Math.abs(deltaX) > Math.abs(deltaY) * 1.3;\r\n\r\n        if (!swipeState.isHorizontal) {\r\n          clearSwipeVisuals();\r\n          resetSwipe();\r\n          return;\r\n        }\r\n\r\n        suppressMediaClickOnce();\r\n        applySwipeVisuals(direction, isSwipe ? 1 : 0, shouldAnimateBack);\r\n\r\n        swipeResetTimer = window.setTimeout(() => {\r\n          if (isSwipe) {\r\n            activateMediaByIndex(getActiveMediaIndex() + direction);\r\n          }\r\n\r\n          clearSwipeVisuals();\r\n          resetSwipe();\r\n        }, shouldAnimateBack ? swipeSettleMs : 0);\r\n      };\r\n\r\n      mediaStage.addEventListener('pointerup', (event) => {\r\n        finishSwipe(event);\r\n      });\r\n\r\n      mediaStage.addEventListener('pointercancel', (event) => {\r\n        finishSwipe(event);\r\n      });\r\n    }\r\n\r\n    const getSelectedOptions = () => {\r\n      return optionGroups.map((group) => {\r\n        const checked = group.querySelector('[data-cg-option-input]:checked');\r\n        return checked ? checked.value : null;\r\n      });\r\n    };\r\n\r\n    const findSelectedVariant = () => {\r\n      if (!variants.length) {\r\n        return null;\r\n      }\r\n\r\n      if (!optionGroups.length) {\r\n        return variants[0];\r\n      }\r\n\r\n      const selectedOptions = getSelectedOptions();\r\n      return variants.find((variant) => {\r\n        return variant.options.every((option, index) => option === selectedOptions[index]);\r\n      });\r\n    };\r\n\r\n    const setButtonState = (button, variant) => {\r\n      if (!button) {\r\n        return;\r\n      }\r\n\r\n      const availableText = button.dataset.availableText || atcButton?.dataset.availableText || 'Add to cart';\r\n      const soldOutText = button.dataset.soldOutText || atcButton?.dataset.soldOutText || 'Sold out';\r\n      const unavailableText = button.dataset.unavailableText || atcButton?.dataset.unavailableText || 'Unavailable';\r\n      const isAvailable = Boolean(variant?.available);\r\n\r\n      if (isPrelaunchInterceptionEnabled() && button.matches('[data-cg-prelaunch-open]')) {\r\n        button.disabled = false;\r\n        button.removeAttribute('disabled');\r\n        button.setAttribute('aria-disabled', 'false');\r\n        button.textContent = button.dataset.cgPrelaunchLabel || 'Join the drop';\r\n        return;\r\n      }\r\n\r\n      button.disabled = !isAvailable;\r\n      button.setAttribute('aria-disabled', String(!isAvailable));\r\n      button.textContent = variant ? (isAvailable ? availableText : soldOutText) : unavailableText;\r\n    };\r\n\r\n    const updateProductState = () => {\r\n      const variant = findSelectedVariant();\r\n\r\n      if (variantInput && variant?.id) {\r\n        variantInput.value = variant.id;\r\n      }\r\n\r\n      if (priceNode) {\r\n        priceNode.textContent = variant?.price_formatted || '';\r\n      }\r\n\r\n      if (stickyPriceNode) {\r\n        stickyPriceNode.textContent = variant?.price_formatted || '';\r\n      }\r\n\r\n      if (comparePriceNode) {\r\n        const showCompare = Boolean(\r\n          variant &&\r\n            variant.compare_at_price &&\r\n            Number(variant.compare_at_price) > Number(variant.price)\r\n        );\r\n        comparePriceNode.hidden = !showCompare;\r\n        comparePriceNode.textContent = showCompare ? variant.compare_at_price_formatted : '';\r\n      }\r\n\r\n      setButtonState(atcButton, variant);\r\n      setButtonState(stickyButton, variant);\r\n\r\n      if (variant?.featured_media_id) {\r\n        activateMedia(variant.featured_media_id);\r\n      }\r\n\r\n      updateProductInformation();\r\n    };\r\n\r\n    optionGroups.forEach((group) => {\r\n      group.addEventListener('change', updateProductState);\r\n    });\r\n\r\n    section.querySelectorAll('[data-cg-quantity-stepper]').forEach((stepper) => {\r\n      const input = stepper.querySelector('input');\r\n      const decrease = stepper.querySelector('[data-cg-quantity-decrease]');\r\n      const increase = stepper.querySelector('[data-cg-quantity-increase]');\r\n\r\n      if (!input || !decrease || !increase) {\r\n        return;\r\n      }\r\n\r\n      const changeQuantity = (amount) => {\r\n        const min = Number(input.min) || 1;\r\n        const current = Number(input.value) || min;\r\n        input.value = String(Math.max(min, current + amount));\r\n        input.dispatchEvent(new Event('change', { bubbles: true }));\r\n      };\r\n\r\n      decrease.addEventListener('click', () => changeQuantity(-1));\r\n      increase.addEventListener('click', () => changeQuantity(1));\r\n      input.addEventListener('change', () => {\r\n        const min = Number(input.min) || 1;\r\n        const current = Number(input.value) || min;\r\n        input.value = String(Math.max(min, current));\r\n      });\r\n    });\r\n\r\n    quantityInput?.addEventListener('input', updateProductInformation);\r\n    quantityInput?.addEventListener('change', updateProductInformation);\r\n    variantInput?.addEventListener('change', updateProductInformation);\r\n\r\n    if (stickyButton && form && atcButton) {\r\n      stickyButton.addEventListener('click', () => {\r\n        if (stickyButton.disabled) {\r\n          return;\r\n        }\r\n\r\n        if (\r\n          stickyButton.matches('[data-cg-prelaunch-open]') &&\r\n          isPrelaunchInterceptionEnabled()\r\n        ) {\r\n          return;\r\n        }\r\n\r\n        if (typeof form.requestSubmit === 'function') {\r\n          form.requestSubmit(atcButton);\r\n        } else {\r\n          atcButton.click();\r\n        }\r\n      });\r\n    }\r\n\r\n    const stickyBar = section.querySelector('[data-cg-sticky-atc]');\r\n    if (stickyBar) {\r\n      const productArea = section.querySelector('.cg-product-hero__inner') || section;\r\n      const stickyTrigger = document.querySelector('.cg-image-board') || productArea;\r\n      const footer = document.querySelector('footer, .cg-site-footer');\r\n      let isProductAreaBlockingSticky = true;\r\n      let isFooterVisible = false;\r\n      let hasReachedStickyTrigger = false;\r\n      let stickyBarFrame = null;\r\n\r\n      const updateStickyBarVisibility = () => {\r\n        const shouldShow = hasReachedStickyTrigger && !isProductAreaBlockingSticky && !isFooterVisible;\r\n        stickyBar.classList.toggle('is-sticky-visible', shouldShow);\r\n        stickyBar.classList.toggle('is-product-area-visible', isProductAreaBlockingSticky);\r\n        stickyBar.classList.toggle('is-before-sticky-trigger', !hasReachedStickyTrigger);\r\n        stickyBar.classList.toggle('is-footer-hidden', isFooterVisible);\r\n\r\n        if (shouldShow) {\r\n          stickyBar.style.display = 'grid';\r\n          stickyBar.style.opacity = '1';\r\n          stickyBar.style.pointerEvents = 'auto';\r\n          stickyBar.style.transform = 'translate(var(--cg-sticky-atc-x, 0px), 0)';\r\n          stickyBar.style.visibility = 'visible';\r\n        } else {\r\n          stickyBar.style.display = 'grid';\r\n          stickyBar.style.opacity = '0';\r\n          stickyBar.style.pointerEvents = 'none';\r\n          stickyBar.style.transform = 'translate(var(--cg-sticky-atc-x, 0px), calc(100% + 18px))';\r\n          stickyBar.style.visibility = 'hidden';\r\n        }\r\n      };\r\n\r\n      const elementIntersectsViewport = (element) => {\r\n        if (!element) {\r\n          return false;\r\n        }\r\n\r\n        const rect = element.getBoundingClientRect();\r\n        return rect.bottom > 0 && rect.top < window.innerHeight;\r\n      };\r\n\r\n      const elementOverlapsStickyZone = (element) => {\r\n        if (!element) {\r\n          return false;\r\n        }\r\n\r\n        const rect = element.getBoundingClientRect();\r\n        const stickyHeight = stickyBar.offsetHeight || 88;\r\n        const stickySafeTop = window.innerHeight - stickyHeight - 24;\r\n        return rect.bottom > stickySafeTop && rect.top < window.innerHeight;\r\n      };\r\n\r\n      const elementHasReachedRevealPoint = (element) => {\r\n        if (!element) {\r\n          return true;\r\n        }\r\n\r\n        const rect = element.getBoundingClientRect();\r\n        const revealPoint = window.innerHeight + 120;\r\n        return rect.top <= revealPoint;\r\n      };\r\n\r\n      const syncStickyBarFromLayout = () => {\r\n        isProductAreaBlockingSticky = elementOverlapsStickyZone(productArea);\r\n        isFooterVisible = elementIntersectsViewport(footer);\r\n        hasReachedStickyTrigger = elementHasReachedRevealPoint(stickyTrigger);\r\n        updateStickyBarVisibility();\r\n      };\r\n\r\n      const requestStickyBarSync = () => {\r\n        if (stickyBarFrame) {\r\n          return;\r\n        }\r\n\r\n        stickyBarFrame = window.requestAnimationFrame(() => {\r\n          stickyBarFrame = null;\r\n          syncStickyBarFromLayout();\r\n        });\r\n      };\r\n\r\n      syncStickyBarFromLayout();\r\n      window.addEventListener('scroll', requestStickyBarSync, { passive: true });\r\n      window.addEventListener('resize', requestStickyBarSync);\r\n    }\r\n\r\n    updateProductState();\r\n    refreshProductInformationCart();\r\n  };\r\n\r\n  const normalizeProductTikTokEmbeds = (section) => {\r\n    section\r\n      .querySelectorAll('.cg-product-videos__embed blockquote.tiktok-embed[data-video-id]')\r\n      .forEach((embed) => {\r\n        const videoId = embed.dataset.videoId?.trim();\r\n\r\n        if (!videoId || !/^\\d+$/.test(videoId)) {\r\n          return;\r\n        }\r\n\r\n        const player = document.createElement('iframe');\r\n        const params = new URLSearchParams({\r\n          controls: '1',\r\n          fullscreen_button: '1',\r\n          play_button: '1',\r\n          progress_bar: '1',\r\n          timestamp: '1',\r\n          volume_control: '1'\r\n        });\r\n\r\n        player.className = 'cg-product-videos__tiktok-player';\r\n        player.src = `https://www.tiktok.com/player/v1/${encodeURIComponent(videoId)}?${params}`;\r\n        player.title = 'TikTok video player';\r\n        player.loading = 'lazy';\r\n        player.allow = 'autoplay; encrypted-media; fullscreen; picture-in-picture';\r\n        player.setAttribute('allowfullscreen', '');\r\n\r\n        embed.replaceWith(player);\r\n      });\r\n\r\n    section\r\n      .querySelectorAll('.cg-product-videos__embed script[src*=\"tiktok.com/embed.js\"]')\r\n      .forEach((script) => script.remove());\r\n  };\r\n\r\n  const activateProductVideoMedia = (section) => {\r\n    if (!section || section.dataset.cgProductVideosMediaLoaded === 'true') {\r\n      return;\r\n    }\r\n\r\n    section.dataset.cgProductVideosMediaLoaded = 'true';\r\n\r\n    const loadedScriptSources = new Set(\r\n      Array.from(document.scripts)\r\n        .map((script) => script.src)\r\n        .filter(Boolean)\r\n    );\r\n\r\n    section.querySelectorAll('[data-cg-product-video-template]').forEach((template) => {\r\n      const shell = template.closest('[data-cg-product-video-shell]');\r\n      const media = template.content.cloneNode(true);\r\n\r\n      media.querySelectorAll('script').forEach((script) => {\r\n        const source = script.getAttribute('src');\r\n        let resolvedSource = '';\r\n\r\n        if (source) {\r\n          try {\r\n            resolvedSource = new URL(source, document.baseURI).href;\r\n          } catch (error) {}\r\n        }\r\n\r\n        if (resolvedSource && loadedScriptSources.has(resolvedSource)) {\r\n          script.remove();\r\n          return;\r\n        }\r\n\r\n        const activeScript = document.createElement('script');\r\n        Array.from(script.attributes).forEach((attribute) => {\r\n          activeScript.setAttribute(attribute.name, attribute.value);\r\n        });\r\n        activeScript.textContent = script.textContent;\r\n        script.replaceWith(activeScript);\r\n\r\n        if (resolvedSource) {\r\n          loadedScriptSources.add(resolvedSource);\r\n        }\r\n      });\r\n\r\n      template.replaceWith(media);\r\n      shell?.setAttribute('aria-busy', 'false');\r\n      shell?.setAttribute('data-cg-product-video-loaded', 'true');\r\n    });\r\n\r\n    normalizeProductTikTokEmbeds(section);\r\n\r\n    window.requestAnimationFrame(() => {\r\n      applyVideoEmbedSizing(section);\r\n      window.instgrm?.Embeds?.process?.();\r\n      window.twttr?.widgets?.load?.(section);\r\n    });\r\n  };\r\n\r\n  const observeProductVideoMedia = (section) => {\r\n    if (!section || section.dataset.cgProductVideosMediaObserved === 'true') {\r\n      return;\r\n    }\r\n\r\n    section.dataset.cgProductVideosMediaObserved = 'true';\r\n\r\n    if (!('IntersectionObserver' in window)) {\r\n      activateProductVideoMedia(section);\r\n      return;\r\n    }\r\n\r\n    const observer = new IntersectionObserver(\r\n      (entries) => {\r\n        if (!entries.some((entry) => entry.isIntersecting)) {\r\n          return;\r\n        }\r\n\r\n        observer.disconnect();\r\n        activateProductVideoMedia(section);\r\n      },\r\n      {\r\n        rootMargin: '0px',\r\n        threshold: 0.01\r\n      }\r\n    );\r\n\r\n    observer.observe(section);\r\n  };\r\n\r\n  const initProductVideos = (section) => {\r\n    if (!section || section.dataset.cgProductVideosInitialized === 'true') {\r\n      return;\r\n    }\r\n\r\n    section.dataset.cgProductVideosInitialized = 'true';\r\n    observeProductVideoMedia(section);\r\n\r\n    const viewport = section.querySelector('[data-cg-product-videos-viewport]');\r\n    const track = section.querySelector('[data-cg-product-videos-track]');\r\n    const slides = Array.from(section.querySelectorAll('[data-cg-product-videos-slide]'));\r\n    const previousButton = section.querySelector('[data-cg-product-videos-previous]');\r\n    const nextButton = section.querySelector('[data-cg-product-videos-next]');\r\n    const currentPosition = section.querySelector('[data-cg-product-videos-current]');\r\n\r\n    if (!viewport || !track || !slides.length) {\r\n      return;\r\n    }\r\n\r\n    let activeIndex = 0;\r\n    let scrollFrame = null;\r\n\r\n    const getClosestSlideIndex = () => {\r\n      const trackLeft = track.offsetLeft;\r\n\r\n      return slides.reduce((closestIndex, slide, index) => {\r\n        const closestDistance = Math.abs(\r\n          slides[closestIndex].offsetLeft - trackLeft - viewport.scrollLeft\r\n        );\r\n        const slideDistance = Math.abs(slide.offsetLeft - trackLeft - viewport.scrollLeft);\r\n\r\n        return slideDistance < closestDistance ? index : closestIndex;\r\n      }, 0);\r\n    };\r\n\r\n    const updateState = () => {\r\n      activeIndex = getClosestSlideIndex();\r\n\r\n      if (currentPosition) {\r\n        currentPosition.textContent = String(activeIndex + 1);\r\n      }\r\n\r\n      if (previousButton) {\r\n        previousButton.disabled = activeIndex <= 0;\r\n      }\r\n\r\n      if (nextButton) {\r\n        nextButton.disabled = activeIndex >= slides.length - 1;\r\n      }\r\n\r\n      slides.forEach((slide, index) => {\r\n        if (index === activeIndex) {\r\n          slide.setAttribute('aria-current', 'true');\r\n        } else {\r\n          slide.removeAttribute('aria-current');\r\n        }\r\n      });\r\n    };\r\n\r\n    const scrollToSlide = (index) => {\r\n      const nextIndex = Math.max(0, Math.min(index, slides.length - 1));\r\n      const left = slides[nextIndex].offsetLeft - track.offsetLeft;\r\n\r\n      viewport.scrollTo({\r\n        left,\r\n        behavior: 'smooth'\r\n      });\r\n    };\r\n\r\n    previousButton?.addEventListener('click', () => {\r\n      scrollToSlide(activeIndex - 1);\r\n    });\r\n\r\n    nextButton?.addEventListener('click', () => {\r\n      scrollToSlide(activeIndex + 1);\r\n    });\r\n\r\n    viewport.addEventListener(\r\n      'scroll',\r\n      () => {\r\n        if (scrollFrame) {\r\n          return;\r\n        }\r\n\r\n        scrollFrame = window.requestAnimationFrame(() => {\r\n          scrollFrame = null;\r\n          updateState();\r\n        });\r\n      },\r\n      { passive: true }\r\n    );\r\n\r\n    viewport.addEventListener('keydown', (event) => {\r\n      if (event.key === 'ArrowLeft') {\r\n        event.preventDefault();\r\n        scrollToSlide(activeIndex - 1);\r\n      } else if (event.key === 'ArrowRight') {\r\n        event.preventDefault();\r\n        scrollToSlide(activeIndex + 1);\r\n      }\r\n    });\r\n\r\n    window.addEventListener('resize', updateState);\r\n    window.requestAnimationFrame(updateState);\r\n  };\r\n\r\n  const initProductRelated = (section) => {\r\n    if (!section || section.dataset.cgRelatedInitialized === 'true') {\r\n      return;\r\n    }\r\n\r\n    section.dataset.cgRelatedInitialized = 'true';\r\n\r\n    const url = section.dataset.cgRecommendationsUrl;\r\n    const grid = section.querySelector('[data-cg-product-related-grid]');\r\n\r\n    if (!url || !grid) {\r\n      return;\r\n    }\r\n\r\n    fetch(url)\r\n      .then((response) => response.text())\r\n      .then((text) => {\r\n        const html = document.createElement('div');\r\n        html.innerHTML = text;\r\n\r\n        const incomingGrid = html.querySelector('[data-cg-product-related-grid]');\r\n        if (!incomingGrid || !incomingGrid.innerHTML.trim()) {\r\n          return;\r\n        }\r\n\r\n        grid.innerHTML = incomingGrid.innerHTML;\r\n      })\r\n      .catch(() => {});\r\n  };\r\n\r\n  const getPrelaunchModal = () => document.querySelector('[data-cg-prelaunch-modal]');\r\n\r\n  const isPrelaunchInterceptionEnabled = () => {\r\n    const modal = getPrelaunchModal();\r\n    return modal?.dataset.cgCtaInterception === 'true';\r\n  };\r\n\r\n  const scrollToPrelaunchFallback = (modal) => {\r\n    const fallbackSelector = modal?.dataset.cgFallbackTarget || '.cg-email-signup';\r\n    const fallback = document.querySelector(fallbackSelector);\r\n\r\n    if (fallback) {\r\n      fallback.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n    }\r\n  };\r\n\r\n  const initPrelaunchModal = (modal) => {\r\n    if (!modal || modal.dataset.cgPrelaunchInitialized === 'true') {\r\n      return;\r\n    }\r\n\r\n    modal.dataset.cgPrelaunchInitialized = 'true';\r\n\r\n    const dialog = modal.querySelector('.cg-prelaunch-modal__dialog');\r\n    const closeControls = Array.from(modal.querySelectorAll('[data-cg-prelaunch-close]'));\r\n    let returnFocusTo = null;\r\n    let suppressClicksUntil = 0;\r\n\r\n    const consumeEvent = (event) => {\r\n      if (!event) {\r\n        return;\r\n      }\r\n\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n\r\n      if (typeof event.stopImmediatePropagation === 'function') {\r\n        event.stopImmediatePropagation();\r\n      }\r\n    };\r\n\r\n    const getFocusable = () => {\r\n      return Array.from(\r\n        modal.querySelectorAll(\r\n          'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\r\n        )\r\n      ).filter((element) => element.offsetParent !== null);\r\n    };\r\n\r\n    const closeModal = (event) => {\r\n      consumeEvent(event);\r\n      suppressClicksUntil = Date.now() + 600;\r\n      modal.hidden = true;\r\n      document.documentElement.classList.remove('cg-prelaunch-modal-open');\r\n\r\n      if (returnFocusTo && typeof returnFocusTo.focus === 'function') {\r\n        returnFocusTo.focus({ preventScroll: true });\r\n      }\r\n\r\n      returnFocusTo = null;\r\n    };\r\n\r\n    const openModal = (trigger) => {\r\n      if (modal.dataset.cgHasEmbed !== 'true') {\r\n        scrollToPrelaunchFallback(modal);\r\n        return;\r\n      }\r\n\r\n      returnFocusTo = trigger || document.activeElement;\r\n      modal.hidden = false;\r\n      document.documentElement.classList.add('cg-prelaunch-modal-open');\r\n\r\n      window.requestAnimationFrame(() => {\r\n        const focusTarget = getFocusable()[0] || dialog;\r\n        focusTarget?.focus({ preventScroll: true });\r\n      });\r\n    };\r\n\r\n    modal.cgOpenPrelaunchModal = openModal;\r\n    modal.cgClosePrelaunchModal = closeModal;\r\n\r\n    if (!modal.hidden) {\r\n      document.documentElement.classList.add('cg-prelaunch-modal-open');\r\n\r\n      window.requestAnimationFrame(() => {\r\n        const focusTarget = getFocusable()[0] || dialog;\r\n        focusTarget?.focus({ preventScroll: true });\r\n      });\r\n    }\r\n\r\n    closeControls.forEach((control) => {\r\n      control.addEventListener('pointerdown', consumeEvent);\r\n      control.addEventListener('pointerup', closeModal);\r\n      control.addEventListener('touchstart', consumeEvent, { passive: false });\r\n      control.addEventListener('click', closeModal);\r\n      control.addEventListener('touchend', closeModal, { passive: false });\r\n    });\r\n\r\n    modal.addEventListener(\r\n      'click',\r\n      (event) => {\r\n        if (Date.now() < suppressClicksUntil) {\r\n          consumeEvent(event);\r\n        }\r\n      },\r\n      true\r\n    );\r\n\r\n    document.addEventListener(\r\n      'click',\r\n      (event) => {\r\n        if (Date.now() < suppressClicksUntil) {\r\n          consumeEvent(event);\r\n        }\r\n      },\r\n      true\r\n    );\r\n\r\n    modal.addEventListener('keydown', (event) => {\r\n      if (event.key === 'Escape') {\r\n        closeModal();\r\n        return;\r\n      }\r\n\r\n      if (event.key !== 'Tab') {\r\n        return;\r\n      }\r\n\r\n      const focusable = getFocusable();\r\n      if (!focusable.length) {\r\n        event.preventDefault();\r\n        dialog?.focus();\r\n        return;\r\n      }\r\n\r\n      const first = focusable[0];\r\n      const last = focusable[focusable.length - 1];\r\n\r\n      if (event.shiftKey && document.activeElement === first) {\r\n        event.preventDefault();\r\n        last.focus();\r\n      } else if (!event.shiftKey && document.activeElement === last) {\r\n        event.preventDefault();\r\n        first.focus();\r\n      }\r\n    });\r\n  };\r\n\r\n  const initPrelaunchTriggers = () => {\r\n    if (document.documentElement.dataset.cgPrelaunchTriggersInitialized === 'true') {\r\n      return;\r\n    }\r\n\r\n    document.documentElement.dataset.cgPrelaunchTriggersInitialized = 'true';\r\n\r\n    const applyPrelaunchTriggerState = () => {\r\n      const enabled = isPrelaunchInterceptionEnabled();\r\n\r\n      document.documentElement.classList.toggle('cg-prelaunch-active', enabled);\r\n      document.documentElement.dataset.cgPrelaunchActive = String(enabled);\r\n\r\n      if (enabled) {\r\n        document.querySelectorAll('[data-cg-site-header]').forEach((header) => {\r\n          const menuToggle = header.querySelector('.cg-site-header__menu-toggle');\r\n          const menu = header.querySelector(`#${menuToggle?.getAttribute('aria-controls') || ''}`);\r\n\r\n          if (menuToggle) {\r\n            menuToggle.setAttribute('aria-expanded', 'false');\r\n          }\r\n\r\n          if (menu) {\r\n            menu.hidden = true;\r\n          }\r\n        });\r\n      }\r\n\r\n      document.querySelectorAll('[data-cg-prelaunch-label]').forEach((trigger) => {\r\n        if (!trigger.dataset.cgPrelaunchOriginalLabel) {\r\n          trigger.dataset.cgPrelaunchOriginalLabel = trigger.textContent.trim();\r\n        }\r\n\r\n        const nextLabel = enabled\r\n          ? trigger.dataset.cgPrelaunchLabel\r\n          : trigger.dataset.cgPrelaunchOriginalLabel;\r\n\r\n        if (nextLabel) {\r\n          trigger.textContent = nextLabel;\r\n        }\r\n      });\r\n\r\n      document.querySelectorAll('[data-cg-prelaunch-sold-out]').forEach((trigger) => {\r\n        if (enabled) {\r\n          if ('disabled' in trigger) {\r\n            trigger.disabled = false;\r\n          }\r\n\r\n          trigger.removeAttribute('disabled');\r\n          trigger.setAttribute('aria-disabled', 'false');\r\n          return;\r\n        }\r\n\r\n        if ('disabled' in trigger) {\r\n          trigger.disabled = true;\r\n        }\r\n\r\n        trigger.setAttribute('disabled', 'disabled');\r\n        trigger.setAttribute('aria-disabled', 'true');\r\n      });\r\n    };\r\n\r\n    applyPrelaunchTriggerState();\r\n    document.addEventListener('shopify:section:load', applyPrelaunchTriggerState);\r\n\r\n    document.addEventListener('click', (event) => {\r\n      const trigger = event.target.closest('[data-cg-prelaunch-open], a[href=\"#cg-prelaunch-modal\"]');\r\n      const modal = getPrelaunchModal();\r\n\r\n      if (!trigger || !isPrelaunchInterceptionEnabled()) {\r\n        return;\r\n      }\r\n\r\n      event.preventDefault();\r\n\r\n      if (modal?.cgOpenPrelaunchModal) {\r\n        modal.cgOpenPrelaunchModal(trigger);\r\n      } else {\r\n        scrollToPrelaunchFallback(modal);\r\n      }\r\n    });\r\n\r\n    document.addEventListener('submit', (event) => {\r\n      if (!isPrelaunchInterceptionEnabled()) {\r\n        return;\r\n      }\r\n\r\n      const submitter = event.submitter;\r\n      const trigger = submitter?.closest?.('[data-cg-prelaunch-open]') || event.target.querySelector('[data-cg-prelaunch-open]');\r\n\r\n      if (!trigger) {\r\n        return;\r\n      }\r\n\r\n      event.preventDefault();\r\n\r\n      const modal = getPrelaunchModal();\r\n      if (modal?.cgOpenPrelaunchModal) {\r\n        modal.cgOpenPrelaunchModal(trigger);\r\n      } else {\r\n        scrollToPrelaunchFallback(modal);\r\n      }\r\n    });\r\n  };\r\n\r\n  const shouldOpenPrelaunchFromUrl = () => {\r\n    const params = new URLSearchParams(window.location.search);\r\n\r\n    return (\r\n      window.location.hash === '#cg-prelaunch-modal' ||\r\n      window.location.hash === '#join-the-drop' ||\r\n      params.has('join-the-drop') ||\r\n      params.get('join') === 'drop' ||\r\n      params.get('cg_prelaunch') === '1'\r\n    );\r\n  };\r\n\r\n  const openPrelaunchFromUrl = () => {\r\n    if (!shouldOpenPrelaunchFromUrl()) {\r\n      return;\r\n    }\r\n\r\n    const modal = getPrelaunchModal();\r\n\r\n    if (!modal) {\r\n      return;\r\n    }\r\n\r\n    window.setTimeout(() => {\r\n      if (modal.cgOpenPrelaunchModal) {\r\n        modal.cgOpenPrelaunchModal();\r\n      } else {\r\n        scrollToPrelaunchFallback(modal);\r\n      }\r\n    }, 250);\r\n  };\r\n\r\n  const videoEmbedFrameSelector = [\r\n    '.cg-ugc-card--has-embed .cg-ugc-card__embed iframe',\r\n    '.cg-affiliate-signup-landing__video-card--has-embed .cg-affiliate-signup-landing__video-embed iframe',\r\n    '.cg-product-videos--natural .cg-product-videos__embed iframe'\r\n  ].join(',');\r\n\r\n  const applyVideoEmbedSizing = (root = document) => {\r\n    const frames = Array.from(root.querySelectorAll(videoEmbedFrameSelector));\r\n\r\n    frames.forEach((frame) => {\r\n      const height = Number.parseInt(frame.getAttribute('height') || '', 10);\r\n      const embed = frame.closest(\r\n        '.cg-ugc-card__embed, .cg-affiliate-signup-landing__video-embed, .cg-product-videos__embed'\r\n      );\r\n\r\n      frame.style.setProperty('aspect-ratio', 'auto', 'important');\r\n      frame.style.setProperty('max-height', 'none', 'important');\r\n\r\n      if (Number.isFinite(height) && height > 0) {\r\n        frame.style.setProperty('height', `${height}px`, 'important');\r\n        frame.style.setProperty('min-height', `${height}px`, 'important');\r\n        embed?.style.setProperty('min-height', `${height}px`);\r\n      }\r\n    });\r\n  };\r\n\r\n  const initVideoEmbedSizing = (root = document) => {\r\n    applyVideoEmbedSizing(root);\r\n    window.setTimeout(() => applyVideoEmbedSizing(root), 500);\r\n    window.setTimeout(() => applyVideoEmbedSizing(root), 1500);\r\n    window.setTimeout(() => applyVideoEmbedSizing(root), 3000);\r\n    window.setTimeout(() => applyVideoEmbedSizing(root), 6000);\r\n    window.setTimeout(() => applyVideoEmbedSizing(root), 9000);\r\n\r\n    if (root !== document || document.documentElement.dataset.cgVideoEmbedSizingInitialized === 'true') {\r\n      return;\r\n    }\r\n\r\n    document.documentElement.dataset.cgVideoEmbedSizingInitialized = 'true';\r\n\r\n    let frame = null;\r\n    const requestSizing = () => {\r\n      if (frame) {\r\n        return;\r\n      }\r\n\r\n      frame = window.requestAnimationFrame(() => {\r\n        frame = null;\r\n        applyVideoEmbedSizing();\r\n      });\r\n    };\r\n\r\n    if (document.body) {\r\n      const observer = new MutationObserver(requestSizing);\r\n      observer.observe(document.body, {\r\n        attributeFilter: ['height', 'style'],\r\n        attributes: true,\r\n        childList: true,\r\n        subtree: true\r\n      });\r\n    }\r\n\r\n    window.addEventListener('resize', requestSizing);\r\n  };\r\n\r\n  const revealApplicationSuccessFromUrl = () => {\r\n    const successTargets = [\r\n      {\r\n        param: 'wholesale_success',\r\n        errorParam: 'wholesale_error',\r\n        selector: '[data-cg-wholesale-success]'\r\n      },\r\n      {\r\n        param: 'affiliate_success',\r\n        errorParam: 'affiliate_error',\r\n        selector: '[data-cg-affiliate-success]'\r\n      }\r\n    ];\r\n\r\n    let shouldCleanUrl = false;\r\n\r\n    try {\r\n      const url = new URL(window.location.href);\r\n\r\n      successTargets.forEach(({ param, errorParam, selector }) => {\r\n        const hasSuccess = url.searchParams.has(param);\r\n        const hasError = url.searchParams.has(errorParam);\r\n\r\n        if (hasSuccess) {\r\n          const success = document.querySelector(selector);\r\n\r\n          if (success) {\r\n            success.hidden = false;\r\n            success.removeAttribute('hidden');\r\n            success.focus?.({ preventScroll: true });\r\n            window.setTimeout(() => {\r\n              success.scrollIntoView({ block: 'center' });\r\n            }, 50);\r\n          }\r\n        }\r\n\r\n        if (hasSuccess || hasError) {\r\n          url.searchParams.delete(param);\r\n          url.searchParams.delete(errorParam);\r\n          shouldCleanUrl = true;\r\n        }\r\n      });\r\n\r\n      if (shouldCleanUrl && window.history?.replaceState) {\r\n        window.history.replaceState(\r\n          window.history.state,\r\n          '',\r\n          `${url.pathname}${url.search}${url.hash}`\r\n        );\r\n      }\r\n    } catch (error) {}\r\n  };\r\n\r\n  const init = () => {\r\n    document.querySelectorAll('[data-cg-site-header]').forEach(initSiteHeader);\r\n    document.querySelectorAll('[data-cg-product-main]').forEach(initProductMain);\r\n    document.querySelectorAll('[data-cg-product-videos]').forEach(initProductVideos);\r\n    document.querySelectorAll('[data-cg-product-related]').forEach(initProductRelated);\r\n    document.querySelectorAll('[data-cg-prelaunch-modal]').forEach(initPrelaunchModal);\r\n    initPrelaunchTriggers();\r\n    initVideoEmbedSizing();\r\n    openPrelaunchFromUrl();\r\n    revealApplicationSuccessFromUrl();\r\n  };\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', init, { once: true });\r\n  } else {\r\n    init();\r\n  }\r\n\r\n  document.addEventListener('shopify:section:load', (event) => {\r\n    initSiteHeader(event.target.querySelector('[data-cg-site-header]'));\r\n    initProductMain(event.target.querySelector('[data-cg-product-main]'));\r\n    initProductVideos(event.target.querySelector('[data-cg-product-videos]'));\r\n    initProductRelated(event.target.querySelector('[data-cg-product-related]'));\r\n    initPrelaunchModal(event.target.querySelector('[data-cg-prelaunch-modal]'));\r\n    initVideoEmbedSizing(event.target);\r\n    openPrelaunchFromUrl();\r\n    revealApplicationSuccessFromUrl();\r\n  });\r\n\r\n  window.addEventListener('hashchange', openPrelaunchFromUrl);\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
