{
  "version": 3,
  "sources": ["/cdn/shop/t/188/assets/tr-builder-card-rotator.js?cb=1790543431"],
  "sourcesContent": ["(function () {\n  if (window.__trBuilderCardRotatorBound) return;\n  window.__trBuilderCardRotatorBound = true;\n\n  function boolFromData(value, fallback) {\n    if (value === undefined || value === null || value === '') return fallback;\n    if (typeof value === 'boolean') return value;\n    var normalized = String(value).toLowerCase().trim();\n    if (normalized === 'true' || normalized === '1') return true;\n    if (normalized === 'false' || normalized === '0') return false;\n    return fallback;\n  }\n\n  function numberFromData(value, fallback) {\n    var parsed = Number(value);\n    return Number.isFinite(parsed) ? parsed : fallback;\n  }\n\n  function appendRetryParam(url) {\n    if (!url) return url;\n    try {\n      var parsed = new URL(url, window.location.href);\n      parsed.searchParams.set('tr_retry', String(Date.now()));\n      return parsed.toString();\n    } catch (error) {\n      var separator = url.indexOf('?') === -1 ? '?' : '&';\n      return url + separator + 'tr_retry=' + Date.now();\n    }\n  }\n\n  function tempoBoostFromPercent(percent) {\n    var normalized = Math.max(0, Math.min(100, numberFromData(percent, 0))) / 100;\n    if (normalized <= 0) return 0;\n    return Math.min(1, Math.pow(normalized, 0.75) * 1.35);\n  }\n\n  function shuffleInPlace(items) {\n    for (var i = items.length - 1; i > 0; i -= 1) {\n      var j = Math.floor(Math.random() * (i + 1));\n      var tmp = items[i];\n      items[i] = items[j];\n      items[j] = tmp;\n    }\n  }\n\n  function getViewportScale() {\n    if (window.visualViewport && Number.isFinite(window.visualViewport.scale)) {\n      return window.visualViewport.scale;\n    }\n    return 1;\n  }\n\n  function isCoarseOrTouchContext() {\n    if (window.matchMedia && window.matchMedia('(pointer: coarse)').matches) return true;\n    return (navigator.maxTouchPoints || 0) > 0;\n  }\n\n  function initVideoCard(video) {\n    if (!video || video.dataset.trBuilderVideoReady === '1') return;\n    video.dataset.trBuilderVideoReady = '1';\n\n    var media = video.closest('.tr-collage-card__media') || video.parentElement;\n    var retryTimer = null;\n    var postPlayCheckTimer = null;\n    var autoplayResolutionTimer = null;\n    var retryCount = 0;\n    var maxRetryCount = 7;\n    var retryingSourceUrl = false;\n    var awaitingGesture = false;\n    var tapOverlay = null;\n\n    function clearRetryTimer() {\n      if (!retryTimer) return;\n      clearTimeout(retryTimer);\n      retryTimer = null;\n    }\n\n    function clearPostPlayCheckTimer() {\n      if (!postPlayCheckTimer) return;\n      clearTimeout(postPlayCheckTimer);\n      postPlayCheckTimer = null;\n    }\n\n    function clearAutoplayResolutionTimer() {\n      if (!autoplayResolutionTimer) return;\n      clearTimeout(autoplayResolutionTimer);\n      autoplayResolutionTimer = null;\n    }\n\n    function ensureTapOverlay() {\n      if (tapOverlay || !media) return tapOverlay;\n\n      tapOverlay = document.createElement('button');\n      tapOverlay.type = 'button';\n      tapOverlay.className = 'tr-video-tap-play';\n      tapOverlay.hidden = true;\n      tapOverlay.textContent = 'Tap to play';\n      tapOverlay.setAttribute('aria-label', 'Tap to play video');\n      tapOverlay.addEventListener('click', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n        requestPlay(false, true);\n      });\n\n      media.appendChild(tapOverlay);\n      return tapOverlay;\n    }\n\n    function setTapOverlayVisible(visible) {\n      var overlay = ensureTapOverlay();\n      if (!overlay) return;\n      overlay.hidden = !visible;\n      media.classList.toggle('tr-video-needs-tap', visible);\n    }\n\n    function shouldAttemptPlayback() {\n      if (document.hidden) return false;\n      var rect = video.getBoundingClientRect();\n      if (rect.width < 2 || rect.height < 2) return false;\n      var viewportHeight = window.innerHeight || document.documentElement.clientHeight || 0;\n      var viewportWidth = window.innerWidth || document.documentElement.clientWidth || 0;\n      var verticallyVisible = rect.bottom > 0 && rect.top < viewportHeight;\n      var horizontallyVisible = rect.right > 0 && rect.left < viewportWidth;\n      return verticallyVisible && horizontallyVisible;\n    }\n\n    function normalizeVideoState() {\n      video.autoplay = true;\n      video.loop = true;\n      video.muted = true;\n      video.defaultMuted = true;\n      video.playsInline = true;\n      video.setAttribute('autoplay', '');\n      video.setAttribute('loop', '');\n      video.setAttribute('muted', '');\n      video.setAttribute('playsinline', '');\n      video.setAttribute('webkit-playsinline', '');\n    }\n\n    function scheduleRetry(delayMs, withReload) {\n      if (retryTimer) return;\n      if (retryCount >= maxRetryCount) return;\n      retryTimer = setTimeout(function () {\n        retryTimer = null;\n        requestPlay(withReload);\n      }, delayMs);\n    }\n\n    function schedulePostPlayVerification(delayMs) {\n      clearPostPlayCheckTimer();\n      postPlayCheckTimer = setTimeout(function () {\n        postPlayCheckTimer = null;\n        if (!video.paused && !video.ended) return;\n        if (video.readyState >= 2) setTapOverlayVisible(true);\n        bindGestureRetry();\n        scheduleRetry(220, false);\n      }, delayMs);\n    }\n\n    function scheduleAutoplayResolutionCheck(delayMs) {\n      clearAutoplayResolutionTimer();\n      autoplayResolutionTimer = setTimeout(function () {\n        autoplayResolutionTimer = null;\n        if (!video.paused || video.ended) return;\n        if (video.readyState >= 2 || retryCount >= 2) {\n          setTapOverlayVisible(true);\n          bindGestureRetry();\n        }\n      }, delayMs);\n    }\n\n    function retrySourcesWithCacheBust() {\n      if (retryingSourceUrl) return false;\n      var sourceNodes = video.querySelectorAll('source[src]');\n      if (!sourceNodes.length) return false;\n      retryingSourceUrl = true;\n      sourceNodes.forEach(function (sourceNode) {\n        var src = sourceNode.getAttribute('src');\n        if (!src) return;\n        sourceNode.setAttribute('src', appendRetryParam(src));\n      });\n      try {\n        video.load();\n      } catch (error) {}\n      return true;\n    }\n\n    function bindGestureRetry() {\n      if (awaitingGesture) return;\n      awaitingGesture = true;\n\n      var onGesture = function () {\n        awaitingGesture = false;\n        window.removeEventListener('pointerdown', onGesture, true);\n        window.removeEventListener('touchstart', onGesture, true);\n        window.removeEventListener('keydown', onGesture, true);\n        requestPlay(false, true);\n      };\n\n      window.addEventListener('pointerdown', onGesture, { once: true, passive: true, capture: true });\n      window.addEventListener('touchstart', onGesture, { once: true, passive: true, capture: true });\n      window.addEventListener('keydown', onGesture, { once: true, capture: true });\n    }\n\n    function requestPlay(withReload, forceAttempt) {\n      normalizeVideoState();\n      if (!forceAttempt && !shouldAttemptPlayback()) {\n        scheduleRetry(260, false);\n        scheduleAutoplayResolutionCheck(1800);\n        return;\n      }\n      scheduleAutoplayResolutionCheck(1400);\n\n      if (video.readyState === 0) {\n        try {\n          video.load();\n        } catch (error) {}\n      }\n\n      if (withReload) {\n        try {\n          video.load();\n        } catch (error) {}\n      }\n\n      retryCount += 1;\n      var playPromise = null;\n\n      try {\n        playPromise = video.play();\n      } catch (error) {\n        scheduleRetry(320, true);\n        return;\n      }\n\n      if (!playPromise || typeof playPromise.then !== 'function') {\n        schedulePostPlayVerification(260);\n        return;\n      }\n\n      playPromise\n        .then(function () {\n          retryCount = 0;\n          clearRetryTimer();\n          clearPostPlayCheckTimer();\n          clearAutoplayResolutionTimer();\n          retryingSourceUrl = false;\n          setTapOverlayVisible(false);\n          schedulePostPlayVerification(180);\n        })\n        .catch(function (error) {\n          var errorName = error && error.name ? error.name : '';\n          if (errorName === 'NotAllowedError') {\n            setTapOverlayVisible(true);\n            bindGestureRetry();\n            scheduleRetry(180, false);\n            return;\n          }\n\n          if (retrySourcesWithCacheBust()) {\n            scheduleRetry(240, false);\n            return;\n          }\n\n          scheduleRetry(360, true);\n        });\n    }\n\n    normalizeVideoState();\n    var gestureTarget = video.closest('.tr-collage-card') || video;\n    video.addEventListener('playing', function () {\n      retryCount = 0;\n      clearRetryTimer();\n      clearPostPlayCheckTimer();\n      clearAutoplayResolutionTimer();\n      retryingSourceUrl = false;\n      setTapOverlayVisible(false);\n    });\n    gestureTarget.addEventListener('pointerdown', function () {\n      requestPlay(false, true);\n    }, { passive: true });\n    gestureTarget.addEventListener(\n      'touchstart',\n      function () {\n        requestPlay(false, true);\n      },\n      { passive: true }\n    );\n    gestureTarget.addEventListener('click', function () {\n      requestPlay(false, true);\n    });\n    video.addEventListener('loadedmetadata', function () {\n      requestPlay(false);\n    });\n    video.addEventListener('loadeddata', function () {\n      requestPlay(false);\n    });\n    video.addEventListener('canplay', function () {\n      requestPlay(false);\n    });\n    video.addEventListener('pause', function () {\n      if (video.ended) return;\n      scheduleRetry(140, false);\n    });\n    video.addEventListener('waiting', function () {\n      scheduleRetry(220, false);\n    });\n    video.addEventListener('stalled', function () {\n      scheduleRetry(260, true);\n    });\n    video.addEventListener('error', function () {\n      if (retrySourcesWithCacheBust()) {\n        scheduleRetry(280, false);\n        return;\n      }\n      scheduleRetry(360, true);\n    });\n    video.addEventListener('suspend', function () {\n      if (!video.paused || video.ended) return;\n      scheduleRetry(300, false);\n      scheduleAutoplayResolutionCheck(1800);\n    });\n    video.addEventListener('emptied', function () {\n      if (!video.paused || video.ended) return;\n      scheduleRetry(320, true);\n      scheduleAutoplayResolutionCheck(1800);\n    });\n\n    if ('IntersectionObserver' in window) {\n      var videoVisibilityObserver = new IntersectionObserver(\n        function (entries) {\n          entries.forEach(function (entry) {\n            if (!entry.isIntersecting) return;\n            requestPlay(false);\n          });\n        },\n        { root: null, threshold: 0.01, rootMargin: '120px 0px' }\n      );\n      videoVisibilityObserver.observe(video);\n    }\n\n    document.addEventListener('visibilitychange', function () {\n      if (!document.hidden) requestPlay(false);\n    });\n    window.addEventListener('pageshow', function () {\n      requestPlay(false);\n    });\n\n    scheduleAutoplayResolutionCheck(2200);\n    requestPlay(false);\n  }\n\n  function getSyncTextTarget(section, slotKey) {\n    if (!section || !slotKey) return null;\n    var targets = section.querySelectorAll('[data-tr-sync-text-target=\"true\"]');\n    for (var i = 0; i < targets.length; i += 1) {\n      if (String(targets[i].dataset.trSyncSlot || '').toLowerCase() === String(slotKey).toLowerCase()) {\n        return targets[i];\n      }\n    }\n    return null;\n  }\n\n  function readSyncPayloadFromSlide(slide) {\n    if (!slide) return null;\n    var payloadRoot = slide.querySelector('[data-tr-sync-payload]');\n    if (!payloadRoot) return null;\n    var bodyNode = payloadRoot.querySelector('[data-tr-sync-body-markup]');\n    return {\n      eyebrow: payloadRoot.dataset.eyebrow || '',\n      heading: payloadRoot.dataset.heading || '',\n      buttonLabel: payloadRoot.dataset.buttonLabel || '',\n      buttonUrl: payloadRoot.dataset.buttonUrl || '',\n      bodyHtml: bodyNode ? bodyNode.innerHTML : ''\n    };\n  }\n\n  function bodyMarkupHasContent(html) {\n    if (!html) return false;\n    var probe = document.createElement('div');\n    probe.innerHTML = html;\n    var text = (probe.textContent || '').replace(/\\u00a0/g, ' ').trim();\n    if (text) return true;\n    return !!probe.querySelector('img, video, iframe');\n  }\n\n  function ensureSyncTextDefaults(targetCard) {\n    if (!targetCard || targetCard.dataset.trSyncDefaultsReady === '1') return;\n\n    var eyebrowEl = targetCard.querySelector('[data-tr-sync-eyebrow-target]');\n    var headingEl = targetCard.querySelector('[data-tr-sync-heading-target]');\n    var rteWrapEl = targetCard.querySelector('[data-tr-sync-rte-wrap-target]');\n    var rteEl = targetCard.querySelector('[data-tr-sync-rte-target]');\n    var buttonEl = targetCard.querySelector('[data-tr-sync-button-target]');\n\n    targetCard.__trSyncDefaults = {\n      eyebrow: eyebrowEl ? (eyebrowEl.textContent || '') : '',\n      heading: headingEl ? (headingEl.textContent || '') : '',\n      bodyHtml: rteEl ? rteEl.innerHTML : '',\n      buttonLabel: buttonEl ? (buttonEl.textContent || '') : '',\n      buttonUrl: buttonEl ? (buttonEl.getAttribute('href') || '') : ''\n    };\n\n    targetCard.dataset.trSyncDefaultsReady = '1';\n  }\n\n  function applySyncPayloadToTextCard(targetCard, payload) {\n    if (!targetCard || !payload) return;\n\n    ensureSyncTextDefaults(targetCard);\n    var defaults = targetCard.__trSyncDefaults || {};\n\n    var eyebrowEl = targetCard.querySelector('[data-tr-sync-eyebrow-target]');\n    var headingEl = targetCard.querySelector('[data-tr-sync-heading-target]');\n    var rteWrapEl = targetCard.querySelector('[data-tr-sync-rte-wrap-target]');\n    var rteEl = targetCard.querySelector('[data-tr-sync-rte-target]');\n    var buttonEl = targetCard.querySelector('[data-tr-sync-button-target]');\n\n    var eyebrowText = (payload.eyebrow || '').trim() ? payload.eyebrow : (defaults.eyebrow || '');\n    var headingText = (payload.heading || '').trim() ? payload.heading : (defaults.heading || '');\n    var bodyHtml = bodyMarkupHasContent(payload.bodyHtml) ? payload.bodyHtml : (defaults.bodyHtml || '');\n    var payloadButtonLabel = (payload.buttonLabel || '').trim();\n    var payloadButtonUrl = (payload.buttonUrl || '').trim();\n    var buttonLabel = payloadButtonLabel ? payload.buttonLabel : '';\n    var buttonUrl = payloadButtonLabel ? (payloadButtonUrl || defaults.buttonUrl || '') : '';\n\n    function setElementVisible(element, visible) {\n      if (!element) return;\n      if (visible) {\n        element.removeAttribute('hidden');\n        element.style.display = '';\n      } else {\n        element.setAttribute('hidden', '');\n        element.style.display = 'none';\n      }\n    }\n\n    if (eyebrowEl) {\n      eyebrowEl.textContent = eyebrowText;\n      setElementVisible(eyebrowEl, Boolean((eyebrowText || '').trim()));\n    }\n\n    if (headingEl) {\n      headingEl.textContent = headingText;\n      setElementVisible(headingEl, Boolean((headingText || '').trim()));\n    }\n\n    if (rteEl) {\n      rteEl.innerHTML = bodyHtml;\n      rteEl.scrollTop = 0;\n      initTextCardRte(rteEl);\n      rteEl.dispatchEvent(new Event('scroll'));\n      if (rteWrapEl) {\n        setElementVisible(rteWrapEl, bodyMarkupHasContent(bodyHtml));\n      }\n    } else if (rteWrapEl) {\n      setElementVisible(rteWrapEl, false);\n    }\n\n    if (buttonEl) {\n      buttonEl.textContent = buttonLabel;\n      if (buttonUrl) buttonEl.setAttribute('href', buttonUrl);\n      else if (defaults.buttonUrl) buttonEl.setAttribute('href', defaults.buttonUrl);\n      setElementVisible(buttonEl, Boolean((buttonLabel || '').trim()));\n    }\n  }\n\n  function initRotator(container) {\n    if (!container || container.dataset.trCardRotatorReady === '1') return;\n    container.dataset.trCardRotatorReady = '1';\n\n    var slides = Array.prototype.slice.call(container.querySelectorAll('[data-tr-card-rotator-slide]'));\n    if (!slides.length) return;\n\n    var slidesWrap = container.querySelector('.tr-card-rotator__slides');\n    var autoplay = boolFromData(container.dataset.autoplay, true);\n    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) autoplay = false;\n    var intervalMs = Math.max(1000, numberFromData(container.dataset.intervalMs, 120000));\n    var randomStart = boolFromData(container.dataset.randomStart, true);\n    var randomSubset = boolFromData(container.dataset.randomSubset, false);\n    var maxItems = Math.max(1, numberFromData(container.dataset.maxItems, slides.length));\n    var swipeThresholdMobile = numberFromData(container.dataset.swipeThresholdMobile, 40);\n    var swipeThresholdDesktop = numberFromData(container.dataset.swipeThresholdDesktop, 50);\n    var tempoBoostPercent = Math.max(0, Math.min(100, numberFromData(container.dataset.tempoBoost, 0)));\n    var tempoBoost = tempoBoostFromPercent(tempoBoostPercent);\n    var mobileSwipeQuery = window.matchMedia('(max-width: 989px)');\n    var swipeIntentThreshold = 10;\n\n    var card = container.closest('.tr-collage-card');\n    var isContainCard = !!(card && card.classList.contains('tr-collage-card--fit-contain'));\n    var resizeRaf = 0;\n    var pauseReasons = new Set();\n    var advanceTimer = null;\n    var tempoRaf = 0;\n    var cycleStartAt = 0;\n    var cycleElapsedMs = 0;\n    var clickPauseTimer = null;\n    var suppressClickUntil = 0;\n    var currentIndex = 0;\n\n    var syncTextTarget = null;\n    if (container.dataset.trSyncSource === 'true') {\n      var syncSection = container.closest('.tr-builder-section');\n      var syncTargetSlot = String(container.dataset.trSyncTargetSlot || '').trim();\n      syncTextTarget = getSyncTextTarget(syncSection, syncTargetSlot);\n      ensureSyncTextDefaults(syncTextTarget);\n    }\n\n    var touchStartX = 0;\n    var touchStartY = 0;\n    var touchCurrentX = 0;\n    var touchCurrentY = 0;\n    var isTouchTracking = false;\n\n    var mouseStartX = 0;\n    var mouseStartY = 0;\n    var mouseCurrentX = 0;\n    var mouseCurrentY = 0;\n    var isMouseTracking = false;\n\n    if (randomSubset && slides.length > maxItems && slidesWrap) {\n      var shuffledPool = slides.slice();\n      shuffleInPlace(shuffledPool);\n      var keepSlides = shuffledPool.slice(0, maxItems);\n      var keepSet = new Set(keepSlides);\n\n      slides.forEach(function (slide) {\n        if (!keepSet.has(slide)) slide.remove();\n      });\n\n      keepSlides.forEach(function (slide) {\n        slidesWrap.appendChild(slide);\n      });\n\n      slides = keepSlides;\n    }\n\n    if (randomStart && slides.length > 1) {\n      currentIndex = Math.floor(Math.random() * slides.length);\n    } else {\n      for (var i = 0; i < slides.length; i += 1) {\n        if (slides[i].classList.contains('is-active')) {\n          currentIndex = i;\n          break;\n        }\n      }\n    }\n\n    if (slides.length < 2) autoplay = false;\n\n    function getContainImageBounds(slide, media, img) {\n      if (!slide || !media || !img) return null;\n\n      var slideRect = slide.getBoundingClientRect();\n      var mediaRect = media.getBoundingClientRect();\n      if (slideRect.width < 2 || slideRect.height < 2 || mediaRect.width < 2 || mediaRect.height < 2) return null;\n\n      var naturalWidth = img.naturalWidth || numberFromData(img.getAttribute('width'), 0);\n      var naturalHeight = img.naturalHeight || numberFromData(img.getAttribute('height'), 0);\n      var drawLeft = mediaRect.left;\n      var drawTop = mediaRect.top;\n      var drawWidth = mediaRect.width;\n      var drawHeight = mediaRect.height;\n\n      if (naturalWidth > 0 && naturalHeight > 0) {\n        var mediaRatio = mediaRect.width / mediaRect.height;\n        var imageRatio = naturalWidth / naturalHeight;\n\n        if (imageRatio > mediaRatio) {\n          drawWidth = mediaRect.width;\n          drawHeight = drawWidth / imageRatio;\n          drawTop = mediaRect.top + (mediaRect.height - drawHeight) / 2;\n        } else {\n          drawHeight = mediaRect.height;\n          drawWidth = drawHeight * imageRatio;\n          drawLeft = mediaRect.left + (mediaRect.width - drawWidth) / 2;\n        }\n      }\n\n      var left = Math.max(0, drawLeft - slideRect.left);\n      var top = Math.max(0, drawTop - slideRect.top);\n      var width = Math.max(0, Math.min(drawWidth, slideRect.width - left));\n      var height = Math.max(0, Math.min(drawHeight, slideRect.height - top));\n      var bottom = Math.max(0, slideRect.bottom - (drawTop + drawHeight));\n\n      return {\n        left: left,\n        top: top,\n        width: width,\n        height: height,\n        bottom: bottom\n      };\n    }\n\n    function getMediaBounds(slide, media) {\n      if (!slide || !media) return null;\n      var slideRect = slide.getBoundingClientRect();\n      var mediaRect = media.getBoundingClientRect();\n      if (slideRect.width < 2 || slideRect.height < 2 || mediaRect.width < 2 || mediaRect.height < 2) return null;\n\n      var left = Math.max(0, mediaRect.left - slideRect.left);\n      var top = Math.max(0, mediaRect.top - slideRect.top);\n      var width = Math.max(0, Math.min(mediaRect.width, slideRect.width - left));\n      var height = Math.max(0, Math.min(mediaRect.height, slideRect.height - top));\n\n      return {\n        left: left,\n        top: top,\n        width: width,\n        height: height\n      };\n    }\n\n    function clearContainImageGeometry(img) {\n      if (!img) return;\n      img.style.left = '';\n      img.style.top = '';\n      img.style.right = '';\n      img.style.bottom = '';\n      img.style.width = '';\n      img.style.height = '';\n      img.style.removeProperty('border-radius');\n      img.style.removeProperty('clip-path');\n    }\n\n    function applyContainImageGeometry(img, imageBounds) {\n      if (!img || !imageBounds) return;\n      img.style.setProperty('left', imageBounds.left + 'px', 'important');\n      img.style.setProperty('top', imageBounds.top + 'px', 'important');\n      img.style.setProperty('right', 'auto', 'important');\n      img.style.setProperty('bottom', 'auto', 'important');\n      img.style.setProperty('width', imageBounds.width + 'px', 'important');\n      img.style.setProperty('height', imageBounds.height + 'px', 'important');\n      img.style.setProperty('border-radius', 'var(--tr-card-radius)', 'important');\n      img.style.setProperty('clip-path', 'inset(0 round var(--tr-card-radius))', 'important');\n    }\n\n    function syncGeometry() {\n      slides.forEach(function (slide) {\n        var media = slide.querySelector('.tr-collage-card__media');\n        var img = slide.querySelector('.tr-collage-card__img');\n        var meta = slide.querySelector('.tr-collage-card__meta');\n        var tempoTrack = slide.querySelector('.tr-collage-card__tempo');\n        var imageBounds = null;\n        var alignmentBounds = null;\n\n        if (isContainCard && media && img) {\n          imageBounds = getContainImageBounds(slide, media, img);\n          if (imageBounds && imageBounds.width >= 2 && imageBounds.height >= 2) {\n            applyContainImageGeometry(img, imageBounds);\n            alignmentBounds = imageBounds;\n          } else {\n            clearContainImageGeometry(img);\n            alignmentBounds = getMediaBounds(slide, media);\n          }\n        } else if (img) {\n          clearContainImageGeometry(img);\n          if (media) alignmentBounds = getMediaBounds(slide, media);\n        } else if (media) {\n          alignmentBounds = getMediaBounds(slide, media);\n        }\n\n        if (meta) {\n          if (alignmentBounds && alignmentBounds.width >= 2) {\n            var metaInset = 4;\n            var alignedWidth = Math.max(0, alignmentBounds.width - metaInset * 2);\n            meta.style.width = alignedWidth.toFixed(2) + 'px';\n            meta.style.marginLeft = (alignmentBounds.left + metaInset).toFixed(2) + 'px';\n            meta.style.marginRight = '0';\n          } else {\n            meta.style.width = '';\n            meta.style.marginLeft = '';\n            meta.style.marginRight = '';\n          }\n        }\n\n        if (!tempoTrack) return;\n\n        var basisWidth = 0;\n        if (alignmentBounds && alignmentBounds.width >= 2) {\n          basisWidth = alignmentBounds.width;\n        } else if (media) {\n          var mediaRect = media.getBoundingClientRect();\n          basisWidth = mediaRect.width;\n        }\n\n        if (basisWidth > 0) {\n          var trackWidth = Math.max(42, basisWidth * 0.35);\n          tempoTrack.style.width = trackWidth.toFixed(2) + 'px';\n        } else {\n          tempoTrack.style.width = '';\n        }\n      });\n    }\n\n    function onResize() {\n      if (resizeRaf) cancelAnimationFrame(resizeRaf);\n      resizeRaf = requestAnimationFrame(function () {\n        updateZoomPauseState();\n        syncGeometry();\n      });\n    }\n\n    function setTempoProgress(progress) {\n      var normalized = Math.max(0, Math.min(1, progress));\n      var fillStartOpacity = 0.18 + tempoBoost * 0.2;\n      var fillEndOpacity = 0.8 + tempoBoost * 0.18;\n      var trackStartOpacity = 0.08 + tempoBoost * 0.14;\n      var trackEndOpacity = 0.16 + tempoBoost * 0.2;\n      var trackBaseHeight = 2;\n      var trackMaxHeight = 3.2 + tempoBoost * 1.4;\n      slides.forEach(function (slide, slideIndex) {\n        var fill = slide.querySelector('[data-tr-card-tempo-fill]');\n        var track = slide.querySelector('.tr-collage-card__tempo');\n        if (!fill) return;\n        var isActiveSlide = slideIndex === currentIndex;\n        var value = isActiveSlide ? normalized : 0;\n        var visibleWidth = isActiveSlide ? Math.max(0.015, value) : 0;\n\n        fill.style.width = (visibleWidth * 100).toFixed(2) + '%';\n        fill.style.opacity = (isActiveSlide ? fillStartOpacity + (fillEndOpacity - fillStartOpacity) * value : 0).toFixed(3);\n\n        if (track) {\n          var trackHeight = isActiveSlide\n            ? trackBaseHeight + (trackMaxHeight - trackBaseHeight) * value\n            : trackBaseHeight;\n          var trackOpacity = isActiveSlide\n            ? trackStartOpacity + (trackEndOpacity - trackStartOpacity) * value\n            : trackStartOpacity;\n          track.style.height = trackHeight.toFixed(2) + 'px';\n          track.style.opacity = trackOpacity.toFixed(3);\n        }\n      });\n    }\n\n    function stopTempoLoop() {\n      if (tempoRaf) {\n        cancelAnimationFrame(tempoRaf);\n        tempoRaf = 0;\n      }\n    }\n\n    function onTempoFrame(now) {\n      if (!autoplay || slides.length < 2 || pauseReasons.size > 0) {\n        stopTempoLoop();\n        return;\n      }\n\n      var elapsed = cycleElapsedMs;\n      if (cycleStartAt) elapsed += Math.max(0, now - cycleStartAt);\n      setTempoProgress(elapsed / intervalMs);\n      tempoRaf = requestAnimationFrame(onTempoFrame);\n    }\n\n    function startTempoLoop() {\n      stopTempoLoop();\n      if (!autoplay || slides.length < 2 || pauseReasons.size > 0) return;\n      tempoRaf = requestAnimationFrame(onTempoFrame);\n    }\n\n    function clearAdvanceTimer() {\n      if (advanceTimer) {\n        clearTimeout(advanceTimer);\n        advanceTimer = null;\n      }\n    }\n\n    function captureCycleElapsed() {\n      if (!cycleStartAt) return;\n      cycleElapsedMs += Math.max(0, performance.now() - cycleStartAt);\n      if (cycleElapsedMs > intervalMs) cycleElapsedMs = intervalMs;\n      cycleStartAt = 0;\n    }\n\n    function canChangeSlides() {\n      if (!isCoarseOrTouchContext()) return true;\n      return getViewportScale() <= 1.01;\n    }\n\n    function scheduleAdvance() {\n      clearAdvanceTimer();\n      stopTempoLoop();\n\n      if (!autoplay || slides.length < 2 || pauseReasons.size > 0) return;\n\n      if (cycleElapsedMs >= intervalMs) cycleElapsedMs = 0;\n      cycleStartAt = performance.now();\n      startTempoLoop();\n\n      var remaining = Math.max(50, intervalMs - cycleElapsedMs);\n      advanceTimer = setTimeout(function () {\n        cycleElapsedMs = 0;\n        cycleStartAt = 0;\n        setActive(currentIndex + 1);\n      }, remaining);\n    }\n\n    function addPauseReason(reason) {\n      if (pauseReasons.has(reason)) return;\n      pauseReasons.add(reason);\n      captureCycleElapsed();\n      clearAdvanceTimer();\n      stopTempoLoop();\n      setTempoProgress(cycleElapsedMs / intervalMs);\n    }\n\n    function removePauseReason(reason) {\n      if (!pauseReasons.has(reason)) return;\n      pauseReasons.delete(reason);\n\n      if (reason !== 'zoom') updateZoomPauseState();\n      if (pauseReasons.size === 0) scheduleAdvance();\n    }\n\n    function pauseOnClickTemporarily(ms) {\n      addPauseReason('click');\n      if (clickPauseTimer) clearTimeout(clickPauseTimer);\n      clickPauseTimer = setTimeout(function () {\n        clickPauseTimer = null;\n        removePauseReason('click');\n      }, ms);\n    }\n\n    function updateZoomPauseState() {\n      if (!autoplay || slides.length < 2) return;\n      if (canChangeSlides()) removePauseReason('zoom');\n      else addPauseReason('zoom');\n    }\n\n    function prioritizeSlideImage(slide, fetchPriority) {\n      if (!slide) return;\n      var img = slide.querySelector('.tr-collage-card__img');\n      if (!img) return;\n\n      // Promote deferred slide before paint.\n      // Slides rendered with data-src are placeholders to prevent the preload\n      // scanner from fetching hidden rotator images on page load.\n      if (img.dataset.src) {\n        if (img.dataset.sizes) img.sizes = img.dataset.sizes;\n        if (img.dataset.srcset) img.srcset = img.dataset.srcset;\n        img.src = img.dataset.src;\n        img.removeAttribute('data-src');\n        img.removeAttribute('data-srcset');\n        img.removeAttribute('data-sizes');\n      }\n\n      img.setAttribute('loading', 'eager');\n      img.loading = 'eager';\n\n      if (fetchPriority) {\n        img.setAttribute('fetchpriority', fetchPriority);\n        try {\n          img.fetchPriority = fetchPriority;\n        } catch (error) {}\n      }\n\n      if (typeof img.decode === 'function' && !img.complete) {\n        img.decode().catch(function () {});\n      }\n    }\n\n    function setActive(index) {\n      if (!slides.length) return;\n\n      if (index >= slides.length) currentIndex = 0;\n      else if (index < 0) currentIndex = slides.length - 1;\n      else currentIndex = index;\n\n      slides.forEach(function (slide, slideIndex) {\n        var isActive = slideIndex === currentIndex;\n        slide.classList.toggle('is-active', isActive);\n        slide.setAttribute('aria-hidden', isActive ? 'false' : 'true');\n\n        var link = slide.querySelector('.tr-collage-card__link');\n        if (link) {\n          if (isActive) link.removeAttribute('tabindex');\n          else link.setAttribute('tabindex', '-1');\n        }\n      });\n\n      prioritizeSlideImage(slides[currentIndex], 'high');\n      if (slides.length > 1) {\n        var nextIndex = (currentIndex + 1) % slides.length;\n        prioritizeSlideImage(slides[nextIndex], 'low');\n      }\n\n      syncGeometry();\n      if (syncTextTarget) {\n        applySyncPayloadToTextCard(syncTextTarget, readSyncPayloadFromSlide(slides[currentIndex]));\n      }\n      cycleElapsedMs = 0;\n      setTempoProgress(0);\n      scheduleAdvance();\n    }\n\n    function next() {\n      if (!canChangeSlides()) return false;\n      setActive(currentIndex + 1);\n      return true;\n    }\n\n    function prev() {\n      if (!canChangeSlides()) return false;\n      setActive(currentIndex - 1);\n      return true;\n    }\n\n    function maybeTriggerSwipe(deltaX, deltaY) {\n      var swipeThreshold = mobileSwipeQuery.matches ? swipeThresholdMobile : swipeThresholdDesktop;\n      if (Math.abs(deltaX) >= swipeThreshold && Math.abs(deltaX) > Math.abs(deltaY)) {\n        if (deltaX < 0) return next();\n        return prev();\n      }\n      return false;\n    }\n\n    function onTouchStart(event) {\n      if (slides.length < 2) return;\n      if (event.touches.length !== 1) return;\n      if (!canChangeSlides()) return;\n\n      var touch = event.touches[0];\n      touchStartX = touch.clientX;\n      touchStartY = touch.clientY;\n      touchCurrentX = touch.clientX;\n      touchCurrentY = touch.clientY;\n      isTouchTracking = true;\n      addPauseReason('touch');\n    }\n\n    function onTouchMove(event) {\n      if (!isTouchTracking) return;\n      if (event.touches.length !== 1) return;\n      if (!canChangeSlides()) return;\n\n      var touch = event.touches[0];\n      touchCurrentX = touch.clientX;\n      touchCurrentY = touch.clientY;\n\n      var deltaX = touchCurrentX - touchStartX;\n      var deltaY = touchCurrentY - touchStartY;\n      if (Math.abs(deltaX) > swipeIntentThreshold && Math.abs(deltaX) > Math.abs(deltaY)) {\n        event.preventDefault();\n      }\n    }\n\n    function onTouchEnd() {\n      if (!isTouchTracking) return;\n\n      var deltaX = touchCurrentX - touchStartX;\n      var deltaY = touchCurrentY - touchStartY;\n      var didSwipe = maybeTriggerSwipe(deltaX, deltaY);\n      if (didSwipe) suppressClickUntil = Date.now() + 350;\n\n      isTouchTracking = false;\n      setTimeout(function () {\n        removePauseReason('touch');\n      }, 80);\n    }\n\n    function onTouchCancel() {\n      isTouchTracking = false;\n      removePauseReason('touch');\n    }\n\n    function isInteractiveTarget(target) {\n      return Boolean(target && target.closest('button, input, select, textarea, summary, details'));\n    }\n\n    function onMouseDown(event) {\n      if (slides.length < 2) return;\n      if (event.button !== 0) return;\n      if (isInteractiveTarget(event.target)) return;\n      if (!canChangeSlides()) return;\n\n      isMouseTracking = true;\n      mouseStartX = event.clientX;\n      mouseStartY = event.clientY;\n      mouseCurrentX = event.clientX;\n      mouseCurrentY = event.clientY;\n      addPauseReason('pointer');\n      container.classList.add('tr-dragging');\n\n      window.addEventListener('mousemove', onMouseMove);\n      window.addEventListener('mouseup', onMouseUp);\n      window.addEventListener('blur', onMouseUp);\n    }\n\n    function onMouseMove(event) {\n      if (!isMouseTracking) return;\n      mouseCurrentX = event.clientX;\n      mouseCurrentY = event.clientY;\n\n      var deltaX = mouseCurrentX - mouseStartX;\n      var deltaY = mouseCurrentY - mouseStartY;\n      if (Math.abs(deltaX) > swipeIntentThreshold && Math.abs(deltaX) > Math.abs(deltaY)) {\n        event.preventDefault();\n      }\n    }\n\n    function onMouseUp() {\n      if (!isMouseTracking) return;\n\n      var deltaX = mouseCurrentX - mouseStartX;\n      var deltaY = mouseCurrentY - mouseStartY;\n      var didSwipe = maybeTriggerSwipe(deltaX, deltaY);\n      if (didSwipe) suppressClickUntil = Date.now() + 350;\n\n      isMouseTracking = false;\n      container.classList.remove('tr-dragging');\n      removePauseReason('pointer');\n\n      window.removeEventListener('mousemove', onMouseMove);\n      window.removeEventListener('mouseup', onMouseUp);\n      window.removeEventListener('blur', onMouseUp);\n    }\n\n    function onContainerClickCapture(event) {\n      if (Date.now() < suppressClickUntil) {\n        event.preventDefault();\n        event.stopPropagation();\n        return;\n      }\n\n      if (autoplay && slides.length > 1) pauseOnClickTemporarily(2500);\n    }\n\n    function onFocusOut() {\n      setTimeout(function () {\n        if (!container.contains(document.activeElement)) removePauseReason('focus');\n      }, 0);\n    }\n\n    function onSyncTargetFocusOut() {\n      if (!syncTextTarget) return;\n      setTimeout(function () {\n        if (!syncTextTarget.contains(document.activeElement)) removePauseReason('sync-focus');\n      }, 0);\n    }\n\n    if (slides.length > 1) {\n      container.classList.add('tr-drag-enabled');\n      container.addEventListener('touchstart', onTouchStart, { passive: true });\n      container.addEventListener('touchmove', onTouchMove, { passive: false });\n      container.addEventListener('touchend', onTouchEnd, { passive: true });\n      container.addEventListener('touchcancel', onTouchCancel, { passive: true });\n      container.addEventListener('mousedown', onMouseDown);\n      container.addEventListener('click', onContainerClickCapture, true);\n    }\n\n    slides.forEach(function (slide) {\n      var slideLink = slide.querySelector('.tr-collage-card__link');\n      if (!slideLink) return;\n      slideLink.setAttribute('draggable', 'false');\n      slideLink.addEventListener('dragstart', function (event) {\n        event.preventDefault();\n      });\n    });\n\n    container.addEventListener('mouseenter', function () {\n      addPauseReason('hover');\n    });\n    container.addEventListener('mouseleave', function () {\n      removePauseReason('hover');\n    });\n    container.addEventListener('focusin', function () {\n      addPauseReason('focus');\n    });\n    container.addEventListener('focusout', onFocusOut);\n\n    if (syncTextTarget) {\n      syncTextTarget.addEventListener('mouseenter', function () {\n        addPauseReason('sync-hover');\n      });\n      syncTextTarget.addEventListener('mouseleave', function () {\n        removePauseReason('sync-hover');\n      });\n      syncTextTarget.addEventListener('focusin', function () {\n        addPauseReason('sync-focus');\n      });\n      syncTextTarget.addEventListener('focusout', onSyncTargetFocusOut);\n    }\n\n    slides.forEach(function (slide) {\n      var img = slide.querySelector('.tr-collage-card__img');\n      if (!img) return;\n      if (!img.complete) {\n        img.addEventListener('load', syncGeometry);\n      }\n      img.addEventListener('error', function () {\n        if (img.dataset.trImageRetry === '1') return;\n        var retryUrl = img.currentSrc || img.getAttribute('src');\n        if (!retryUrl) return;\n\n        img.dataset.trImageRetry = '1';\n        img.setAttribute('loading', 'eager');\n        img.setAttribute('fetchpriority', 'high');\n        try {\n          img.fetchPriority = 'high';\n        } catch (error) {}\n        img.removeAttribute('srcset');\n        img.src = appendRetryParam(retryUrl);\n      });\n    });\n\n    if (window.visualViewport) {\n      window.visualViewport.addEventListener('resize', updateZoomPauseState);\n      window.visualViewport.addEventListener('scroll', updateZoomPauseState);\n    }\n\n    if ('IntersectionObserver' in window) {\n      var visibilityObserver = new IntersectionObserver(\n        function (entries) {\n          entries.forEach(function (entry) {\n            if (!entry.isIntersecting) return;\n            requestAnimationFrame(function () {\n              prioritizeSlideImage(slides[currentIndex], 'high');\n              syncGeometry();\n            });\n          });\n        },\n        { root: null, threshold: 0.01, rootMargin: '120px 0px' }\n      );\n      visibilityObserver.observe(container);\n    }\n\n    window.addEventListener('resize', onResize);\n    document.addEventListener('visibilitychange', function () {\n      if (document.hidden) addPauseReason('hidden');\n      else removePauseReason('hidden');\n    });\n\n    setActive(currentIndex);\n    syncGeometry();\n    updateZoomPauseState();\n    if (pauseReasons.size === 0) scheduleAdvance();\n  }\n\n  function initTextCardRte(rte) {\n    if (!rte || rte.dataset.trRteCueReady === '1') return;\n    rte.dataset.trRteCueReady = '1';\n    var cueHost = rte.closest('.tr-collage-card__rte-wrap') || rte;\n    var isAndroidPlatform = /Android/i.test((navigator && navigator.userAgent) || '');\n    var isTouchCapablePlatform =\n      (navigator && Number(navigator.maxTouchPoints || 0) > 0) ||\n      ('ontouchstart' in window) ||\n      (window.matchMedia && window.matchMedia('(pointer: coarse)').matches);\n    var interactionTimer = null;\n\n    if (cueHost && (isAndroidPlatform || isTouchCapablePlatform)) {\n      cueHost.classList.add('tr-rte-platform-touch');\n    }\n\n    function setInteractingState() {\n      if (!cueHost) return;\n      cueHost.classList.add('tr-rte-interacting');\n      if (interactionTimer) clearTimeout(interactionTimer);\n      interactionTimer = setTimeout(function () {\n        cueHost.classList.remove('tr-rte-interacting');\n        interactionTimer = null;\n      }, 700);\n    }\n\n    function syncRteCueState() {\n      var maxScrollTop = Math.max(0, rte.scrollHeight - rte.clientHeight);\n      var isScrollable = maxScrollTop > 2;\n      var isAtBottom = isScrollable && rte.scrollTop >= maxScrollTop - 2;\n      var hasScrolled = rte.scrollTop > 2;\n\n      rte.classList.toggle('tr-rte-scrollable', isScrollable);\n      rte.classList.toggle('tr-rte-at-bottom', isAtBottom);\n      rte.classList.toggle('tr-rte-has-scrolled', hasScrolled);\n      if (cueHost && cueHost !== rte) {\n        cueHost.classList.toggle('tr-rte-scrollable', isScrollable);\n        cueHost.classList.toggle('tr-rte-at-bottom', isAtBottom);\n        cueHost.classList.toggle('tr-rte-has-scrolled', hasScrolled);\n      }\n    }\n\n    rte.addEventListener(\n      'scroll',\n      function () {\n        setInteractingState();\n        syncRteCueState();\n      },\n      { passive: true }\n    );\n    rte.addEventListener('touchstart', setInteractingState, { passive: true });\n    rte.addEventListener('pointerdown', setInteractingState, { passive: true });\n    window.addEventListener('resize', syncRteCueState);\n\n    if ('ResizeObserver' in window) {\n      new ResizeObserver(syncRteCueState).observe(rte);\n    }\n\n    requestAnimationFrame(syncRteCueState);\n    setTimeout(syncRteCueState, 220);\n    setTimeout(syncRteCueState, 800);\n  }\n\n  function initAll(root) {\n    var scope = root || document;\n    var rotators = scope.querySelectorAll('[data-tr-card-rotator]');\n    var videos = scope.querySelectorAll('.tr-slot--type-video video, video[data-tr-builder-video]');\n    var rtes = scope.querySelectorAll('.tr-collage-card__rte');\n    rotators.forEach(initRotator);\n    videos.forEach(initVideoCard);\n    rtes.forEach(initTextCardRte);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function () {\n      initAll(document);\n    });\n  } else {\n    initAll(document);\n  }\n\n  document.addEventListener('shopify:section:load', function (event) {\n    initAll(event.target || document);\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
