{
  "version": 3,
  "sources": ["/cdn/shop/t/497/assets/plekify-v10.js?cb=20260706-1800"],
  "sourcesContent": ["/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   MURMURGO V1 \u2014 JS  (v3 / gate-2)\n   - Scroll reveal (IntersectionObserver, stagger, reduced-motion)\n   - Four-surface card toggle\n   - Demo itinerary tabs\n   - Citation popover (accessible: hover/focus/tap open; Esc + outside-click close)\n\n   NOTE: the itinerary pipeline + funnel visualizations are owned by the\n   embedded viz assets (murmurgo-viz-pipeline.js / -funnel.js / -data.js),\n   which read the corrected data (Plekify data layer = 450,899 universe;\n   WETU = enrichment of the final shortlist). The legacy inline\n   initPipeline/ITINERARIES block was removed (it was dead \u2014 no\n   [data-plk-pipeline] element exists \u2014 and carried stale WETU-as-universe\n   counts that contradicted the founder's data correction).\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n(function () {\n  'use strict';\n\n  var prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var isTouch = window.matchMedia('(pointer: coarse)').matches;\n\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     SCROLL REVEAL\n     \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n  function revealAll() {\n    document.querySelectorAll('.plk-reveal').forEach(function (el) {\n      el.classList.add('plk-revealed', 'is-visible');\n    });\n  }\n\n  function initReveals() {\n    if (prefersReducedMotion) { revealAll(); return; }\n\n    var pending = Array.prototype.slice.call(document.querySelectorAll('.plk-reveal:not(.plk-revealed):not(.is-visible)'));\n    if (!pending.length) return;\n\n    if (!('IntersectionObserver' in window)) { revealAll(); return; }\n\n    var io = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry, i) {\n        if (entry.isIntersecting) {\n          setTimeout(function () {\n            entry.target.classList.add('plk-revealed', 'is-visible');\n          }, i * 50); /* stagger 50ms */\n          io.unobserve(entry.target);\n        }\n      });\n    }, { rootMargin: '0px 0px -10% 0px', threshold: 0.1 });\n\n    pending.forEach(function (el) { io.observe(el); });\n  }\n\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     FOUR-SURFACE CARD TOGGLE\n     \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n  function initSurfaceCards() {\n    document.querySelectorAll('[data-plk-surface-card]').forEach(function (card) {\n      var header = card.querySelector('[data-plk-surface-toggle]');\n      if (!header) return;\n      header.addEventListener('click', function () {\n        var expanded = card.classList.toggle('is-expanded');\n        header.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n      });\n      header.addEventListener('keydown', function (e) {\n        if (e.key === 'Enter' || e.key === ' ') {\n          e.preventDefault();\n          header.click();\n        }\n      });\n    });\n  }\n\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     DEMO ITINERARY TABS\n     \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n  function initDemoTabs() {\n    var tabBtns = document.querySelectorAll('[data-plk-demo-tab]');\n    var panels = document.querySelectorAll('[data-plk-demo-panel]');\n    tabBtns.forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        var key = btn.dataset.mrmDemoTab;\n        tabBtns.forEach(function (b) {\n          var on = b === btn;\n          b.classList.toggle('is-active', on);\n          b.setAttribute('aria-selected', on ? 'true' : 'false');\n        });\n        panels.forEach(function (p) {\n          p.style.display = p.dataset.mrmDemoPanel === key ? '' : 'none';\n        });\n      });\n    });\n  }\n\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     CITATION POPOVERS  (stable, no scrim)\n     Open on hover(150ms)/focus/tap; popover keep-alive; Esc + outside-click\n     dismiss; focus returns to trigger; aria-expanded reflects state.\n     position:fixed (CSS) escapes overflow:hidden ancestors. Prefers opening\n     ABOVE the trigger; caret points at it. NO full-viewport scrim \u2014 the scrim\n     was the flicker root cause (it covered the trigger -> immediate mouseleave\n     -> teardown).\n     \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n  var openCite = null;\n  var citeHoverTimer = null;\n  var citeRepositionInterval = null;\n\n  function positionPopover(trigger, popover) {\n    /* Force a layout flush so the popover reports its true size even on the\n       first frame after [hidden] is removed (favicon images may not have\n       loaded yet, but offsetHeight forces the engine to lay out content). */\n    var popH = popover.offsetHeight;\n    var popW = popover.offsetWidth || 360;\n    var rect = trigger.getBoundingClientRect();\n    var gap = 18;\n    var vw = window.innerWidth;\n    var vh = window.innerHeight;\n    var spaceAbove = rect.top;\n    var spaceBelow = vh - rect.bottom;\n\n    /* Place above when it fits above; otherwise below when it fits below;\n       otherwise whichever side has more room. Never let the popover leave the\n       viewport \u2014 clamp afterwards. */\n    var placeAbove;\n    if (spaceAbove >= popH + gap) {\n      placeAbove = true;\n    } else if (spaceBelow >= popH + gap) {\n      placeAbove = false;\n    } else {\n      placeAbove = spaceAbove >= spaceBelow;\n    }\n\n    var top = placeAbove ? rect.top - popH - gap\n                         : rect.bottom + gap;\n    /* Clamp so the popover is always fully visible (12px margin). */\n    top = Math.max(12, Math.min(top, vh - popH - 12));\n\n    var left = rect.left + (rect.width / 2) - (popW / 2);\n    var maxLeft = vw - popW - 12;\n    left = Math.max(12, Math.min(left, maxLeft));\n\n    popover.style.top = top + 'px';\n    popover.style.left = left + 'px';\n    popover.classList.toggle('is-below', !placeAbove);\n\n    /* caret arrow points at the trigger's horizontal centre */\n    var arrowX = (rect.left + rect.width / 2) - left;\n    arrowX = Math.max(14, Math.min(popW - 14, arrowX));\n    popover.style.setProperty('--cite-arrow-x', arrowX + 'px');\n  }\n\n  function openCitePopover(trigger) {\n    if (openCite && openCite.trigger === trigger) return;\n    closeCitePopover();\n\n    var marker = trigger.getAttribute('data-plk-cite-marker');\n    var popover = (trigger.nextElementSibling && trigger.nextElementSibling.classList.contains('plk-cite-popover'))\n      ? trigger.nextElementSibling\n      : document.querySelector('.plk-cite-popover[data-plk-cite-marker=\"' + cssEscape(marker) + '\"]');\n    if (!popover) return;\n\n    /* Move popover into a dedicated .plekify-v10 layer on <body> so that:\n       (a) position:fixed is relative to the viewport, not a transformed\n           ancestor (.plk-reveal uses transform -> containing block -> breaks\n           fixed positioning), and\n       (b) the scoped CSS (.plekify-v10 .plk-cite-popover) still applies. */\n    var layer = document.getElementById('plk-cite-layer');\n    if (!layer) {\n      layer = document.createElement('div');\n      layer.id = 'plk-cite-layer';\n      layer.className = 'plekify-v10';\n      document.body.appendChild(layer);\n    }\n    if (popover.parentNode !== layer) {\n      layer.appendChild(popover);\n    }\n\n    popover.removeAttribute('hidden');\n    /* position after unhidden so getBoundingClientRect has size */\n    requestAnimationFrame(function () {\n      positionPopover(trigger, popover);\n      popover.classList.add('is-open');\n    });\n\n    trigger.setAttribute('aria-expanded', 'true');\n    openCite = { trigger: trigger, popover: popover };\n    /* keep the popover glued to the trigger while open (survives scroll + lazy-image layout shift) */\n    clearInterval(citeRepositionInterval);\n    citeRepositionInterval = setInterval(function () { if (openCite) positionPopover(openCite.trigger, openCite.popover); }, 120);\n  }\n\n  function closeCitePopover() {\n    if (!openCite) return;\n    var trigger = openCite.trigger;\n    var popover = openCite.popover;\n    popover.classList.remove('is-open');\n    trigger.setAttribute('aria-expanded', 'false');\n    var toClose = popover;\n    setTimeout(function () { toClose.setAttribute('hidden', ''); }, 180);\n    clearInterval(citeRepositionInterval);\n    citeRepositionInterval = null;\n    openCite = null;\n  }\n\n  function cssEscape(s) {\n    return String(s).replace(/([\"\\\\])/g, '\\\\$1');\n  }\n\n  function initCitations() {\n    var triggers = document.querySelectorAll('[data-plk-cite-trigger]');\n\n    triggers.forEach(function (trigger) {\n      if (trigger.dataset.plkCiteBound === '1') return;\n      trigger.dataset.plkCiteBound = '1';\n\n      /* hover open with 150ms delay */\n      trigger.addEventListener('mouseenter', function () {\n        if (isTouch) return;\n        clearTimeout(citeHoverTimer);\n        citeHoverTimer = setTimeout(function () { openCitePopover(trigger); }, 150);\n      });\n      trigger.addEventListener('mouseleave', function () {\n        if (isTouch) return;\n        clearTimeout(citeHoverTimer);\n        /* delay close so moving into the popover doesn't tear it down */\n        citeHoverTimer = setTimeout(function () {\n          if (!openCite || openCite.trigger !== trigger) return;\n          closeCitePopover();\n        }, 150);\n      });\n\n      /* focus opens */\n      trigger.addEventListener('focus', function () {\n        if (isTouch) return;\n        clearTimeout(citeHoverTimer);\n        openCitePopover(trigger);\n      });\n      trigger.addEventListener('blur', function () {\n        if (isTouch) return;\n        citeHoverTimer = setTimeout(function () {\n          if (!openCite || openCite.trigger !== trigger) return;\n          closeCitePopover();\n        }, 150);\n      });\n\n      /* click / tap toggles (touch primary path) */\n      trigger.addEventListener('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        if (openCite && openCite.trigger === trigger) {\n          closeCitePopover();\n        } else {\n          openCitePopover(trigger);\n        }\n      });\n\n      /* keyboard activation (Enter/Space also fire click; kept explicit) */\n      trigger.addEventListener('keydown', function (e) {\n        if (e.key === 'Enter' || e.key === ' ') {\n          e.preventDefault();\n          trigger.click();\n        }\n      });\n    });\n\n    /* hover-keep-alive on the popover itself */\n    document.querySelectorAll('.plk-cite-popover').forEach(function (pop) {\n      if (pop.dataset.plkCitePopBound === '1') return;\n      pop.dataset.plkCitePopBound = '1';\n      pop.addEventListener('mouseenter', function () { clearTimeout(citeHoverTimer); });\n      pop.addEventListener('mouseleave', function () {\n        citeHoverTimer = setTimeout(function () { closeCitePopover(); }, 150);\n      });\n    });\n\n    /* global dismiss handlers (bind once) */\n    if (!window.__plkCiteGlobalBound) {\n      window.__plkCiteGlobalBound = true;\n      document.addEventListener('keydown', function (e) {\n        if (e.key === 'Escape' && openCite) {\n          var t = openCite.trigger;\n          closeCitePopover();\n          if (t) t.focus();\n        }\n      });\n      document.addEventListener('click', function (e) {\n        if (!openCite) return;\n        if (openCite.popover.contains(e.target) || openCite.trigger.contains(e.target)) return;\n        closeCitePopover();\n      });\n      /* reposition on scroll/resize */\n      window.addEventListener('scroll', function () { if (openCite) positionPopover(openCite.trigger, openCite.popover); }, { passive: true });\n      window.addEventListener('resize', function () { if (openCite) positionPopover(openCite.trigger, openCite.popover); });\n    }\n  }\n\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     INIT\n     \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     TRAVEL-SEARCH RESULT CAP (plekify homepage only)\n     ========================================================================== */\n  function initTravelSearchCap() {\n    var embed = document.querySelector('.travel-search-frame__embed');\n    if (!embed || embed.dataset.plkTsCapBound === '1') return;\n    embed.dataset.plkTsCapBound = '1';\n    /* doc 71 \u00A728: the framed GTM demo band owns its growth (RO height\n       animation + <=749px internal viewport scroll). The legacy 66vh cap\n       + toggle fight it, and the cap's #FAFAFA fade is tuned to the band\n       background, not the white frame viewport. Never cap inside the frame. */\n    if (embed.closest('.plk-gtm-demo-band')) return;\n\n    var controls = document.createElement('div');\n    controls.className = 'plk-ts-cap';\n    controls.hidden = true;\n    var btn = document.createElement('button');\n    btn.type = 'button';\n    btn.className = 'plk-ts-cap__btn';\n    btn.textContent = 'Show all results \u2193';\n    controls.appendChild(btn);\n    embed.parentNode.insertBefore(controls, embed.nextSibling);\n\n    btn.addEventListener('click', function () {\n      embed.classList.remove('plk-ts-capped');\n      embed.classList.add('plk-ts-expanded');\n      controls.hidden = true;\n    });\n\n    function check() {\n      if (embed.classList.contains('plk-ts-expanded')) return;\n      var capPx = 0.66 * window.innerHeight;\n      if (embed.scrollHeight > capPx + 80) {\n        embed.classList.add('plk-ts-capped');\n        controls.hidden = false;\n      }\n    }\n    if ('MutationObserver' in window) {\n      var mo = new MutationObserver(check);\n      mo.observe(embed, { childList: true, subtree: true });\n    }\n    [400, 1200, 2500, 5000].forEach(function (t) { setTimeout(check, t); });\n  }\n\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     ASCII-AFRICA CANVAS (compact port of dash.plekify.com/login)\n     Renders the Plekify PMS \"Run your property. Book on Shopify.\" topography\n     into #plk-africa-canvas (the homepage PMS panel). Drifts gently; pauses\n     off-screen via IntersectionObserver; static under prefers-reduced-motion.\n     Africa outline: Natural Earth 1:50m (public domain) via world-atlas.\n     \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n  function initAfricaCanvas() {\n    var canvases = document.querySelectorAll('.plk-africa-canvas');\n    if (!canvases.length) return;\n    if (typeof Path2D === 'undefined') return;\n    var reduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n    var AFRICA_D = \"M515.6,819.7L503.7,806.5L499.6,794.9L494.6,772.1L494.2,753.2L465.3,705.3L465,681.9L473.6,656.1L485.8,641.9L487.6,630.4L478.4,608.8L482.5,601.5L470.7,577.2L480.4,574.4L515.4,574.8L527.8,598.5L546.8,597.1L548.8,588.2L552.5,586.5L560.3,585.8L560.5,589.7L573.1,590.1L573.5,613.3L578.4,621.8L578.5,631.9L596.7,628.4L601.1,634.3L610.9,632.1L611.6,636.5L618.9,639.4L627.5,640.2L631.1,636L635.6,643L644.6,646.2L651.1,655.3L659.3,656.1L659.5,642.3L651.6,644.3L644,635L647.1,625L644.4,610.7L649.8,602.7L669.8,599.5L656.8,579.3L653.3,544.1L649.4,537.6L657.1,526.2L661.1,502.4L675.2,489.2L669.6,484.7L671.3,473.9L658.2,461.8L642.2,464.3L630.6,455.2L613.5,453.9L608.5,457.7L584.8,460.3L580,466.6L559.9,463.1L551.8,456.4L546.6,456.5L538.5,465.3L539,475.6L533.1,489.5L529.7,517.1L513.1,534.7L510.7,551.8L496.9,563.8L493.6,563.3L493.1,557.6L486.2,559.2L482.9,563.4L479.9,560.9L476.6,562.3L472.5,565.9L473.1,572.6L470,573.3L465.3,560.4L443.1,537.8L446.7,538.7L442.1,536.7L435.7,525.3L440.7,528L432.1,517.6L434.8,518.6L438.5,515L439.1,507.5L443.9,510.7L446.1,509.1L438.8,505.3L442,505L439.5,498.9L444,490.4L445.5,478L441.3,470.3L442.7,467.5L435.3,467.1L434.4,462.1L430.7,462.4L427.3,458.1L427.7,462.1L414.6,460.4L412.9,463.9L411.2,460.3L412.2,464.1L403.8,465L397.5,459L398.1,452.2L394.4,451.6L397.1,450.7L386,442.8L375.5,441.9L378.4,440.1L352.4,445L316.7,459.9L304.7,456.4L308.5,453.5L303.3,439.5L311.3,422.7L309.2,409L303.5,404.5L288.4,406.5L278.4,398.7L272.3,401.2L270.8,395.6L266.5,396.3L262.6,401.9L255.7,398.8L250.4,403.7L255.5,420.6L249.5,420.1L252,424.1L249.5,429.7L246.8,429.7L248.8,436L245.6,441.1L257.9,448.2L257,464.3L239.8,456.7L227.5,445.7L203.7,431.6L203.8,427.6L199.8,426.9L195.2,420.3L199.3,418.2L196.2,418.8L197.5,415.5L190.7,408.4L190.7,404.2L182.8,400.7L181,395.1L172.4,390.3L172,387.3L175.8,386.2L171.2,384.2L175.7,382.2L166.4,384.1L157.3,376.8L161,375.3L157.5,375.1L157.7,366.5L172,366L161.1,367.2L159.1,359.9L149.3,352.1L159.7,341.6L165.5,318.4L160.2,302.5L163.5,293.1L156.4,283.9L154,286.4L155.8,275.1L166.9,254.2L177.6,244.7L182.9,228.2L191.9,223L198.7,210.3L213.7,206L228.3,194.5L234.1,186.6L232.6,172.4L238.6,160.1L246.5,152.7L263.9,145L274.4,125.4L281.4,124.2L288.4,131.7L306.3,129.5L307.7,132.5L317.7,132.9L351.9,117.5L379,113.5L395.4,116.1L408.2,111.4L423.6,113.9L442.7,108.7L448.2,110.1L450.6,115.2L456.4,111.7L458.2,113.7L451.4,120.4L458.2,131.3L446.8,142.4L449.4,147.6L470.7,157L481.5,156.4L501.9,162L507.6,172.4L530.5,177.8L542.5,184.7L554.1,179.2L555.2,163.9L571.5,156.1L587.2,159.6L589.3,163.9L606.5,166.4L610.3,171.3L626.9,171.9L651.7,178.8L673.4,170.5L682.1,171.2L684.7,173.3L680.8,173.9L684.4,176L685.6,173.8L689.8,176.3L707,173.5L714.6,193.4L707.2,211.9L696.7,203.2L689.4,188.1L687.6,192.8L699.9,210.5L717.7,247.4L724,253.1L721.1,254.9L723.1,263.8L735.3,273L740,283.6L742.3,308.3L754.1,316.4L764.2,343.8L767.2,348.2L768.1,344.4L771.7,349.4L782.2,353.6L805.7,377.9L805.5,381.5L796.7,386.5L804.5,387.2L798.1,396.9L806.1,409L812.9,414.3L844.8,425L855.5,425L865.9,409.3L865.9,389.8L885.9,382L890.9,383.7L888.5,398.6L892.3,399.2L887.4,399.8L886.2,409.6L855.5,462.7L834.7,484.5L809.6,502L784.5,531.3L771.9,540.2L761.2,561.5L756.6,576.7L764.6,586.9L762,602.2L766.5,619L776.1,626.2L774.2,650.7L778.5,670.7L767.8,688.4L742.7,700.6L730.8,713.6L715,724.8L711.8,723.6L719,752.7L720.5,749.6L721.4,751.6L720.9,770.7L715.5,777L691.8,787.7L689.6,791.6L692.4,794.4L693.6,792.4L692.8,800.5L689,815.2L676.1,827.9L664.8,845.1L645,862.9L625.2,874.6L605.9,879.6L581.4,877.9L550,885.9L540.4,878.6L537.3,881.5L536.1,879.8L537,874.7L530.7,865.1L535.9,861.6L534.6,853.4L515.9,820ZM872.3,645.2L876.7,652.1L881.7,679.7L879.3,683.3L876.1,677.9L873.7,678.5L875.6,688.9L871.4,697.1L870.4,708.9L846.9,778.4L842.1,782.4L824.6,786.6L813,780.7L804.7,752.5L807.3,741.4L817,726L812.4,698.7L817.8,686L835.9,680.9L838.5,682.9L839.3,678.5L844.4,675.3L846,677.6L848.8,670.4L850.1,673L855.4,669.4L853.3,666.1L855.1,658.5L858.5,659.1L864.4,654.2L864.2,645.7L868.8,641.4L871.7,644.3Z\";\n\n    var path2d = new Path2D(AFRICA_D);\n    var GLYPHS = \" .\u00B7,-:=+*#%@\";\n    var GLYPH_LAST = GLYPHS.length - 1;\n    var FONT_SIZE = 13;\n    var CONTOURS = 11;\n    var BW = 744, BH = 778, BX = 149, BY = 109;\n\n    function setupCanvas(canvas) {\n      if (!canvas || !canvas.getContext) return;\n      if (canvas.dataset.plkAfrica === '1') return;\n      canvas.dataset.plkAfrica = '1';\n      var ctx = canvas.getContext('2d', { alpha: true });\n\n    /* Per-instance theme: 'dark' (default) draws white glyphs for dark panels\n       (PMS-open). 'light' draws dark low-alpha glyphs so the continent reads as\n       a watermark on the light warm-grey footer. Set via data-plk-africa-theme. */\n    var lightMode = (canvas.getAttribute('data-plk-africa-theme') === 'light');\n    var glyphColor = lightMode\n      ? function (a) { return 'rgba(17,17,17,' + (a * 0.24).toFixed(3) + ')'; }\n      : function (a) { return 'rgba(255,255,255,' + a.toFixed(3) + ')'; };\n    var dotColor = lightMode ? 'rgba(17,17,17,0.05)' : 'rgba(255,255,255,0.12)';\n\n    var W = 0, H = 0, dpr = 1;\n    var cellW = 8, cellH = 15, cols = 0, rows = 0;\n    var cellInside = null, cellEdge = null;\n\n    function resize() {\n      var rect = canvas.getBoundingClientRect();\n      dpr = Math.min(window.devicePixelRatio || 1, 2);\n      W = Math.max(1, Math.floor(rect.width));\n      H = Math.max(1, Math.floor(rect.height));\n      canvas.width = Math.max(1, Math.floor(W * dpr));\n      canvas.height = Math.max(1, Math.floor(H * dpr));\n      ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n      ctx.font = '500 ' + FONT_SIZE + 'px \"Geist Mono\", ui-monospace, monospace';\n      ctx.textBaseline = 'top'; ctx.textAlign = 'left';\n      cellW = Math.max(4, ctx.measureText('M').width);\n      cellH = FONT_SIZE * 1.15;\n      cols = Math.ceil(W / cellW) + 1;\n      rows = Math.ceil(H / cellH) + 1;\n      buildMask();\n    }\n\n    function buildMask() {\n      var off = document.createElement('canvas');\n      off.width = Math.max(1, W); off.height = Math.max(1, H);\n      var o = off.getContext('2d');\n      var pad = 0.9;\n      var scale = Math.max(0.0001, Math.min((W * pad) / BW, (H * pad) / BH));\n      var drawW = BW * scale, drawH = BH * scale;\n      var offX = (W - drawW) / 2 + (W > 520 ? W * 0.14 : 0); /* push continent right so the copy column stays clean */\n      offX = Math.max(6, Math.min(offX, W - drawW - 6));\n      var offY = (H - drawH) / 2;\n      o.save(); o.translate(offX, offY); o.scale(scale, scale); o.translate(-BX, -BY);\n      o.fillStyle = '#fff'; o.fill(path2d); o.restore();\n      var img = o.getImageData(0, 0, W, H).data;\n      cellInside = new Uint8Array(cols * rows);\n      for (var r = 0; r < rows; r++) {\n        for (var c = 0; c < cols; c++) {\n          var sx = Math.floor(c * cellW + cellW / 2);\n          var sy = Math.floor(r * cellH + cellH / 2);\n          if (sx < 0 || sy < 0 || sx >= W || sy >= H) continue;\n          cellInside[r * cols + c] = img[(sy * W + sx) * 4 + 3] > 128 ? 1 : 0;\n        }\n      }\n      cellEdge = new Uint8Array(cols * rows);\n      for (var r2 = 1; r2 < rows - 1; r2++) {\n        for (var c2 = 1; c2 < cols - 1; c2++) {\n          var i = r2 * cols + c2;\n          if (!cellInside[i]) continue;\n          if (!cellInside[i - 1] || !cellInside[i + 1] || !cellInside[i - cols] || !cellInside[i + cols]) cellEdge[i] = 1;\n        }\n      }\n    }\n\n    function hash(x, y) {\n      var h = (x | 0) * 374761393 + (y | 0) * 668265263;\n      h = (h ^ (h >>> 13)) >>> 0; h = Math.imul(h, 1274126177) >>> 0; h = (h ^ (h >>> 16)) >>> 0;\n      return h / 4294967296;\n    }\n    function smooth(t) { return t * t * (3 - 2 * t); }\n    function vnoise(x, y) {\n      var x0 = Math.floor(x), y0 = Math.floor(y), fx = x - x0, fy = y - y0;\n      var v00 = hash(x0, y0), v10 = hash(x0 + 1, y0), v01 = hash(x0, y0 + 1), v11 = hash(x0 + 1, y0 + 1);\n      var sxa = smooth(fx), sya = smooth(fy);\n      var a = v00 + (v10 - v00) * sxa, b = v01 + (v11 - v01) * sxa;\n      return a + (b - a) * sya;\n    }\n    function fbm(x, y) {\n      var v = 0, amp = 0.5, freq = 1;\n      for (var o = 0; o < 4; o++) { v += amp * vnoise(x * freq, y * freq); freq *= 2; amp *= 0.5; }\n      return v;\n    }\n\n    var SCALE = 0.010, t = 0, running = false, rafId = 0, last = 0;\n    function draw() {\n      if (!reduced) t += 0.0033;\n      ctx.clearRect(0, 0, W, H);\n      ctx.font = '500 ' + FONT_SIZE + 'px \"Geist Mono\", ui-monospace, monospace';\n      ctx.textBaseline = 'top';\n      var driftX = t * 30, driftY = t * 14;\n      for (var r = 0; r < rows; r++) {\n        var py = r * cellH;\n        for (var c = 0; c < cols; c++) {\n          var i = r * cols + c, px = c * cellW;\n          var wx = (px - driftX) * SCALE, wy = (py - driftY) * SCALE;\n          if (!cellInside[i]) {\n            var s = fbm(wx * 1.7 + 50.5, wy * 1.7 - 31.2);\n            if (s > 0.70) { ctx.fillStyle = dotColor; ctx.fillText('\u00B7', px, py); }\n            continue;\n          }\n          var n = fbm(wx, wy);\n          var gi = (n * GLYPH_LAST) | 0;\n          if (gi < 0) gi = 0; else if (gi > GLYPH_LAST) gi = GLYPH_LAST;\n          var a;\n          if (cellEdge[i]) { a = 0.88 + n * 0.12; gi = Math.min(GLYPH_LAST, gi + 1); }\n          else {\n            a = 0.55 + n * 0.40;\n            var band = n * CONTOURS, frac = band - Math.floor(band);\n            if (Math.min(frac, 1 - frac) < 0.05) a = a + 0.20;\n          }\n          if (a > 0.98) a = 0.98;\n          ctx.fillStyle = glyphColor(a);\n          ctx.fillText(GLYPHS[gi], px, py);\n        }\n      }\n    }\n    function loop(ts) { if (ts - last >= 33) { last = ts; draw(); } if (running) rafId = requestAnimationFrame(loop); }\n    function start() { if (running) return; running = !reduced; resize(); draw(); if (running) rafId = requestAnimationFrame(loop); }\n    function stop() { running = false; if (rafId) cancelAnimationFrame(rafId); }\n\n    var rt;\n    window.addEventListener('resize', function () { clearTimeout(rt); rt = setTimeout(function () { resize(); draw(); }, 120); });\n\n    if ('IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function (entries) {\n        entries.forEach(function (e) { if (e.isIntersecting) start(); else stop(); });\n      }, { rootMargin: '120px' });\n      io.observe(canvas);\n    } else { start(); }\n\n    if (document.fonts && document.fonts.ready) {\n      document.fonts.ready.then(function () { resize(); draw(); });\n    }\n    }\n\n    for (var ci = 0; ci < canvases.length; ci++) {\n      setupCanvas(canvases[ci]);\n    }\n  }\n\n  function initAll() {\n    initReveals();\n    initSurfaceCards();\n    initDemoTabs();\n    initCitations();\n    initTravelSearchCap();\n    initAfricaCanvas();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initAll, { once: true });\n  } else {\n    initAll();\n  }\n\n  document.addEventListener('shopify:section:load', function () { setTimeout(initAll, 100); });\n})();\n"],
  "mappings": "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",
  "names": ["t"]
}
