{
  "version": 3,
  "sources": ["/cdn/shop/t/26/assets/sec-nav.js?bust=1788217520763"],
  "sourcesContent": ["var NAV_DOCK = 57;\nvar NAV_REVEAL_Y = 550;\nvar NAV_REVEAL_Y_PHONE = 225;\nvar NAV_PHONE_MAX_W = 767;\nvar NAV_REVEAL = {\n  hospitality: { y:NAV_REVEAL_Y, phoneY:NAV_REVEAL_Y_PHONE },\n  safe:        { fromFirst:0.15 },\n  home:        { fromFirstInk:0.15 },\n  pitch:       { afterEl:'.pg .hero', afterOverlap:0, latch:true, y:404, phoneY:340 }\n};\nfunction navRevealY(){\n  var cfg = NAV_REVEAL[navPage()] || NAV_REVEAL.hospitality;\n  if (cfg.afterEl){\n    var a = document.querySelector(cfg.afterEl);\n    if (a){\n      var bottom = Math.round(a.getBoundingClientRect().bottom + (window.pageYOffset || 0));\n      return Math.max(80, bottom - (cfg.afterOverlap || 0));\n    }\n  }\n  if (cfg.fromFirst != null || cfg.fromFirstInk != null){\n    var items = navItems(), it = items.length ? items[0] : null;\n    var el = it ? document.querySelector(it.sel) : null;\n    if (el){\n      var anchor = el, useInk = (cfg.fromFirstInk != null);\n      var anchorByText = false;\n      if (it.landOn){ var f = navFindText(it.landOn.within, it.landOn.text); if (f){ anchor = f; useInk = false; anchorByText = true; } }\n      var top = Math.round((anchorByText ? navTextTop(anchor) : anchor.getBoundingClientRect().top) + (window.pageYOffset || 0));\n      if (useInk) top += inkLeadOf(el);\n      var frac = (cfg.fromFirstInk != null) ? cfg.fromFirstInk : cfg.fromFirst;\n      return Math.max(80, Math.round(top - frac * window.innerHeight));\n    }\n  }\n  var portrait = window.innerHeight > window.innerWidth;\n  return (portrait && window.innerWidth <= NAV_PHONE_MAX_W) ? cfg.phoneY : cfg.y;\n}\nvar NAV_BAR_H = 44;\n\nvar NAV_TABLES = {};\n\nNAV_TABLES.hospitality = [\n  { key:'savings',    label:'Savings',  sel:'.why-matters, #shopify-section-hosp-why-matters' },\n  { key:'demo',       label:'Demo',     sel:'.demo-sec, #shopify-section-hosp-demo' },\n  { key:'portal',     label:'Portal',   sel:'#portal-slot, #shopify-section-hosp-dashboard' },\n  { key:'alerts',     label:'Alerts',   sel:'#notif-slot, #shopify-section-hosp-notif', lead:0 },\n  { key:'features',   label:'Features', sel:'#why-slot, #shopify-section-hosp-why' },\n  { key:'keys',       label:'Keys',     sel:'#camera-slot, #shopify-section-hosp-camera', lead:0 },\n  { key:'comparison', label:'Compare',  sel:'#ps-slot, #ps-21' },\n  { key:'checkout',   label:'End of Stay', sel:'#insta-slot, #insta-live-slot', lead:0, phoneNudge:50 }\n];\n\nNAV_TABLES.safe = [\n  { key:'cameras',  label:'Cameras',        sel:'#shopify-section-last_line', phoneNudge:66 },\n  { key:'boltdown', label:'Bolt down',      sel:'#shopify-section-last_line_video', phoneNudge:-64 },\n  { key:'compare',  label:'Compare',        sel:'#shopify-section-compare_your_options' },\n  { key:'battery',  label:'Backup Battery', sel:'#shopify-section-blackout', gap:0 },\n  { key:'ota',      label:'OTA Updates',    sel:'#shopify-section-custom-content' },\n  { key:'specs',    label:'Specs',          sel:'#shopify-section-Technology', inkGap:26 },\n  { key:'size',     label:'Size',           sel:'#shopify-section-feature-row-product' },\n  { key:'inbox',    label:'In the box',     sel:'#shopify-section-whats_in_box',\n    landOn:{ within:'#shopify-section-feature-row-product', text:'Total Depth', gap:14, skipPhone:true } }\n];\n\nNAV_TABLES.home = [\n  { key:'features',  label:'Features',         sel:'#shopify-section-1611905979a264a8c5',\n    landOn:{ within:'#shopify-section-1611905979a264a8c5', text:'Sleek, discreet', gap:26 } },\n  { key:'madefor',   label:'Made for',         sel:'#shopify-section-16119220299f2d5bd5', inkGap:26,\n    phone:{ landOn:{ el:'#shopify-section-16119220299f2d5bd5 img', gap:0 } } },\n  { key:'finger',    label:'Fingerprint',      sel:'#shopify-section-1612243806ad752f73', inkGap:26,\n    tabletPortrait:{ hide:true } },\n  { key:'users',     label:'Multiple Users',   sel:'#shopify-section-161224623103aa8572', inkGap:26,\n    tabletPortrait:{ label:'User Access',\n      landOn:{ within:'#shopify-section-161224623103aa8572', text:'Have multiple users', gap:42 } } },\n  { key:'temporary', label:'Temporary access', sel:'#shopify-section-16122462542a5c2f8a', inkGap:26,\n    phone:{ inkGap:12 },\n    tabletPortrait:{ hide:true } },\n  { key:'touch',     label:'Touchscreen',      sel:'#shopify-section-1612156265121dd22f', inkGap:26,\n    tabletLandscape:{ landOn:{ within:'#shopify-section-1612156265121dd22f', text:'Dynamic. Sleek. Innovative', gap:26 } } },\n  { key:'cameras',   label:'Cameras',          sel:'#shopify-section-161215679087661614', inkGap:26,\n    tabletLandscape:{ landOn:{ within:'#shopify-section-161215679087661614', text:'Be aware from anywhere', gap:26 } } },\n  { key:'lockdown',  label:'Lockdown',         sel:'#shopify-section-161224628156adb46e', inkGap:26,\n    tabletPortrait:{ landOn:{ within:'#shopify-section-161224628156adb46e', text:'Remote lockdown', gap:26 } } },\n  { key:'security',  label:'Security',         sel:'#shopify-section-16122463527662adb9', inkGap:26 },\n  { key:'lights',    label:'Lights',           sel:'#shopify-section-1612246368187bc039', inkGap:26,\n    tabletPortrait:{ hide:true } }\n];\nNAV_TABLES.pitch = [\n  { key:'about',       label:'About',            sel:'.pg .hero', topStop:true,\n    landOn:{ within:'.pg .hero', text:'Problem', gap:20 } },\n  { key:'docs',        label:'Pitch Documents',  sel:'#s-docs',\n    landOn:{ el:'.pg > hr.sep', gap:12 } },\n  { key:'hospitality', label:'Hospitality',      sel:'#s-hotels', lead:0, gap:0,\n    phone:{ gap:20 }, tabletPortrait:{ gap:20 },\n    wide:{ label:'The Product' } },\n  { key:'consumer',    label:'Consumer',         sel:'#s-product', lead:0, gap:0,\n    phone:{ gap:20 }, tabletPortrait:{ gap:20 },\n    wide:{ hide:true } },\n  { key:'recognition', label:'Awards',           sel:'.pg .rail',\n    landOn:{ within:'.pg .rail', text:'Recognition and Awards', gap:26 },\n    wide:{ hide:true } }\n];\n\n\nfunction navCtx(){\n  var w = window.innerWidth, h = window.innerHeight, portrait = h > w;\n  if (portrait  && w <= NAV_PHONE_MAX_W) return 'phone';\n  if (portrait  && w >= 700 && w <= 1024) return 'tabletPortrait';\n  if (!portrait && w >= 900 && w <= 1200) return 'tabletLandscape';\n  return null;\n}\nfunction navItemNow(it){\n  var c = navCtx();\n  var wide = (it.wide && typeof window !== 'undefined' && window.innerWidth > 1120) ? it.wide : null;\n  if (!wide && (!c || !it[c])) return it;\n  var out = {}, k;\n  for (k in it) out[k] = it[k];\n  if (wide) for (k in wide) out[k] = wide[k];\n  if (c && it[c]) for (k in it[c]) out[k] = it[c][k];\n  return out;\n}\n\nfunction navPage(){\n  var p = (typeof window !== 'undefined' && window.NAV_PAGE) ? String(window.NAV_PAGE) : 'hospitality';\n  return NAV_TABLES[p] ? p : 'hospitality';\n}\nfunction navItems(){ return NAV_TABLES[navPage()]; }\n\n\nvar NAV_DEFAULT = 3;\n\nvar NAV_CONFIGS = [\n  { n:3, name:'Numbered', note:'CHOSEN. 01-08 in front of each label, so the bar itself says \"there are eight things here\", which is its job: telling a reader what the page holds before they scroll. \"04 Alerts\" doubles as a position read for free.' },\n  { n:1, name:'Underline',            arch:true, note:'Archived. The cleanest, but it says the least - a nav rather than a \"here is what is on this page\" device. Closest fallback if the bar should ever whisper.' },\n  { n:4, name:'Underline + progress', arch:true, note:'Archived. The rail was moved to the bottom and the per-item underline dropped because the two blue markers competed. Still lost to #3, which states the same progress in words and more legibly.' },\n  { n:2, name:'Pills',                arch:true, note:'Archived: rejected outright.' }\n];\nfunction navCfg(n){ for (var i=0;i<NAV_CONFIGS.length;i++){ if (NAV_CONFIGS[i].n===n) return NAV_CONFIGS[i]; } return NAV_CONFIGS[0]; }\n\nfunction navHTML(n){\n  n = n || NAV_DEFAULT;\n  var items = '', ITEMS = navItems();\n  for (var i=0;i<ITEMS.length;i++){\n    var it = ITEMS[i];\n    var num = n === 3 ? '<span class=\"hnav-num\">' + (i < 9 ? '0' : '') + (i+1) + '</span>' : '';\n    var attrs = '';\n    if (it.tabletPortrait  && it.tabletPortrait.hide)  attrs += ' data-hnav-hide-tp';\n    if (it.tabletLandscape && it.tabletLandscape.hide) attrs += ' data-hnav-hide-tl';\n    if (it.wide && it.wide.hide) attrs += ' data-hnav-hide-wide';\n    var lbl = '<span class=\"hnav-lbl\">' + it.label + '</span>';\n    if (it.wide && it.wide.label){\n      attrs += ' data-hnav-alt-wide';\n      lbl += '<span class=\"hnav-lbl hnav-lbl-wide\">' + it.wide.label + '</span>';\n    }\n    if (it.tabletPortrait && it.tabletPortrait.label){\n      attrs += ' data-hnav-alt-tp';\n      lbl += '<span class=\"hnav-lbl hnav-lbl-tp\">' + it.tabletPortrait.label + '</span>';\n    }\n    items += '<button type=\"button\" class=\"hnav-item\"' + attrs + ' data-hnav=\"' + it.key + '\">'\n      + num + lbl + '</button>';\n  }\n  var prog = n === 4 ? '<span class=\"hnav-prog\"><i></i></span>' : '';\n  return '<div class=\"hnav hnav-' + n + '\" data-hnav-bar aria-label=\"Sections on this page\">'\n    + prog + '<div class=\"hnav-in\"><div class=\"hnav-strip\">' + items + '</div></div></div>';\n}\n\nfunction navDockTop(){\n  var h = document.querySelector('#shopify-section-header, .hnav-mockhdr');\n  if (!h) return null;\n  if (getComputedStyle(h).position !== 'fixed') return null;\n  var b = h.getBoundingClientRect();\n  if (b.height < 1) return null;\n  return Math.max(0, Math.round(b.bottom));\n}\n\nfunction navTextTop(el){\n  try {\n    var r = document.createRange();\n    r.selectNodeContents(el);\n    var rects = r.getClientRects(), best = null;\n    for (var i=0;i<rects.length;i++){\n      var q = rects[i];\n      if (q.width < 1 || q.height < 1) continue;\n      if (best === null || q.top < best) best = q.top;\n    }\n    if (best !== null) return best;\n  } catch (e) {}\n  return el.getBoundingClientRect().top;\n}\n\nfunction navFindEl(sel){\n  var all = document.querySelectorAll(sel);\n  for (var i=0;i<all.length;i++){\n    var n = all[i], r = n.getBoundingClientRect(), cs = getComputedStyle(n);\n    if (r.width < 20 || r.height < 20) continue;\n    if (cs.visibility === 'hidden' || cs.display === 'none' || parseFloat(cs.opacity) < 0.05) continue;\n    return n;\n  }\n  return null;\n}\n\nfunction navFindText(within, text){\n  var root = document.querySelector(within);\n  if (!root) return null;\n  var all = root.querySelectorAll('*'), best = null;\n  for (var i=0;i<all.length;i++){\n    var n = all[i];\n    if ((n.textContent || '').replace(/\\s+/g,' ').trim().indexOf(text) !== 0) continue;\n    if (best === null || best.contains(n)) best = n;\n  }\n  return best;\n}\n\nfunction inkLeadOf(el){\n  var top = el.getBoundingClientRect().top, best = null, all = el.querySelectorAll('*');\n  for (var i=0;i<all.length;i++){\n    var n = all[i], r = n.getBoundingClientRect();\n    if (r.width < 8 || r.height < 8) continue;\n    var cs = getComputedStyle(n);\n    if (cs.visibility === 'hidden' || cs.display === 'none' || parseFloat(cs.opacity) < 0.05) continue;\n    var media = /^(IMG|IFRAME|VIDEO|CANVAS|svg|SVG)$/.test(n.tagName), own = '';\n    for (var c=0;c<n.childNodes.length;c++) if (n.childNodes[c].nodeType === 3) own += n.childNodes[c].nodeValue;\n    if (!(media || own.trim())) continue;\n    var t = media ? r.top : navTextTop(n);\n    if (best === null || t < best) best = t;\n  }\n  return best === null ? 0 : Math.max(0, Math.round(best - top));\n}\n\nfunction _navTargets(){\n  var out = [], ITEMS = navItems();\n  for (var i=0;i<ITEMS.length;i++){\n    var el = document.querySelector(ITEMS[i].sel);\n    if (!el) continue;\n    var landEl = el, lo = ITEMS[i].landOn, inkOverride = ITEMS[i].inkGap;\n    var isPhone = (window.innerHeight > window.innerWidth) && window.innerWidth <= NAV_PHONE_MAX_W;\n    var byText = false;\n    if (lo && !(lo.skipPhone && isPhone)){\n      var f = lo.el ? navFindEl(lo.el) : navFindText(lo.within, lo.text);\n      if (f){ landEl = f; byText = !lo.el; if (lo.gap != null) inkOverride = null; }\n    }\n    else if (lo && lo.skipPhone && isPhone) lo = null;\n    out.push({ key:ITEMS[i].key, el:el, landEl:landEl, lead:ITEMS[i].lead,\n               phoneNudge:ITEMS[i].phoneNudge, gap:(lo && lo.gap != null) ? lo.gap : ITEMS[i].gap,\n               inkGap:inkOverride, byText:byText, topStop:!!ITEMS[i].topStop });\n  }\n  return out;\n}\n\nfunction navInit(){\n  var bar = document.querySelector('[data-hnav-bar]');\n  if (!bar || bar._navReady) return;\n  bar._navReady = true;\n\n  var targets = _navTargets();\n  var buttons = bar.querySelectorAll('.hnav-item');\n  var strip = bar.querySelector('.hnav-strip');\n  var fill = bar.querySelector('.hnav-prog i');\n\n  var lastDock = null;\n  function applyDock(){\n    var t = navDockTop();\n    if (t === null || t === lastDock) return;\n    lastDock = t;\n    bar.style.top = t + 'px';\n    var h = bar.offsetHeight || NAV_BAR_H;\n    document.documentElement.style.setProperty('--secnav-bottom', (t + h) + 'px');\n  }\n  applyDock();\n\n  var settleRaf = null;\n  function settleDock(){\n    if (settleRaf) return;\n    var frames = 0;\n    settleRaf = requestAnimationFrame(function step(){\n      applyDock();\n      if (++frames < 90) return (settleRaf = requestAnimationFrame(step));\n      settleRaf = null;\n    });\n  }\n\n  function navOffset(){\n    var r = bar.getBoundingClientRect();\n    var top = bar.classList.contains('is-shown') ? r.top : parseFloat(getComputedStyle(bar).top) || 0;\n    return Math.round(Math.max(0, top) + r.height + 8);\n  }\n  var offset = navOffset();\n\n  var GAP = 52;\n  var LEAD_CAP = 90;\n  function leadOf(el){\n    var head = el.querySelector('h1,h2,h3,.ps-title,.demo-title,.insta-head,.wy-title,.pt-title,.cam-title,.worth-title,p');\n    if (!head) return 0;\n    return Math.max(0, Math.round(head.getBoundingClientRect().top - el.getBoundingClientRect().top));\n  }\n\n  var INK_MAX_FRAC = 0.12;\n\n  var PHONE_MAX_W = NAV_PHONE_MAX_W;\n\n  function marginFor(el, leadOverride, phoneNudge, gapOverride, inkGapOverride){\n    var navBottom = navOffset() - 8;\n    if (inkGapOverride != null){\n      var im = navBottom + inkGapOverride - inkLeadOf(el);\n      var ip = window.innerHeight > window.innerWidth;\n      if (phoneNudge && ip && window.innerWidth <= PHONE_MAX_W) im = im - phoneNudge;\n      return Math.max(0, im);\n    }\n    if (gapOverride === 0 || gapOverride > 0 || gapOverride < 0){\n      var gm = navBottom + gapOverride;\n      var gp = window.innerHeight > window.innerWidth;\n      if (phoneNudge && gp && window.innerWidth <= PHONE_MAX_W) gm = gm - phoneNudge;\n      return Math.max(0, gm);\n    }\n    var lead = (leadOverride === 0 || leadOverride > 0) ? leadOverride : leadOf(el);\n    var m = Math.max(0, navBottom + GAP - Math.min(lead, LEAD_CAP));\n    var inkBelowBar = (m - navBottom) + inkLeadOf(el);\n    var allowed = Math.round(window.innerHeight * INK_MAX_FRAC);\n    if (inkBelowBar > allowed) m = Math.max(0, m - (inkBelowBar - allowed));\n    var portrait = window.innerHeight > window.innerWidth;\n    if (phoneNudge && portrait && window.innerWidth <= PHONE_MAX_W) m = Math.max(0, m - phoneNudge);\n    return m;\n  }\n  function syncScrollable(){\n    if (!strip) return;\n    bar.classList.toggle('is-scrollable', strip.scrollWidth > strip.clientWidth + 4);\n  }\n\n  function applyOffset(){\n    applyDock();\n    syncScrollable();\n    offset = navOffset();\n    targets.forEach(function(t){ t.landEl.style.scrollMarginTop = marginFor(t.landEl, t.lead, t.phoneNudge, t.gap, t.inkGap) + 'px'; });\n  }\n\n  function desiredY(el, lead, phoneNudge, gap, inkGap, byText){\n    var m = marginFor(el, lead, phoneNudge, gap, inkGap);\n    el.style.scrollMarginTop = m + 'px';\n    return Math.max(0, Math.round(window.pageYOffset + (byText ? navTextTop(el) : el.getBoundingClientRect().top) - m));\n  }\n  function scrollToY(y, smooth){\n    try { window.scrollTo({ top:y, left:0, behavior: smooth ? 'smooth' : 'instant' }); return; } catch (e) {}\n    try { window.scrollTo({ top:y, behavior: smooth ? 'smooth' : 'auto' }); return; } catch (e) {}\n    window.scrollTo(0, y);\n  }\n  var jumpAnim = null;\n\n  var CANCEL_EVENTS = ['touchstart','wheel','keydown','mousedown'];\n  var jumping = false, releaseEvents = ['touchstart','wheel','keydown','mousedown'];\n  function holdStrip(){\n    jumping = true;\n    for (var i=0;i<releaseEvents.length;i++) window.addEventListener(releaseEvents[i], letGo, { passive:true });\n  }\n  function letGo(){\n    jumping = false;\n    for (var i=0;i<releaseEvents.length;i++) window.removeEventListener(releaseEvents[i], letGo);\n  }\n\n  var pinToken = null;\n  function stopPin(){ if (pinToken) pinToken.stop = true; }\n  function pinStrip(){\n    if (!strip) return;\n    var sl = strip.scrollLeft, frames = 0, tok = { stop:false };\n    pinToken = tok;\n    var prevSB = strip.style.scrollBehavior;\n    strip.style.scrollBehavior = 'auto';\n    (function keep(){\n      if (tok.stop || !jumping || frames++ > 60){ strip.style.scrollBehavior = prevSB; return; }\n      if (Math.abs(strip.scrollLeft - sl) > 1) strip.scrollLeft = sl;\n      requestAnimationFrame(keep);\n    })();\n  }\n\n  function _visSibling(btn, dir){\n    var n = dir < 0 ? btn.previousElementSibling : btn.nextElementSibling;\n    while (n && n.offsetParent === null) n = dir < 0 ? n.previousElementSibling : n.nextElementSibling;\n    return n;\n  }\n  function showChipAndNext(btn, pad){\n    if (!strip || !btn) return;\n    if (strip.scrollWidth <= strip.clientWidth + 4) return;\n    var prev = _visSibling(btn, -1), next = _visSibling(btn, 1);\n    var left  = prev ? prev.offsetLeft : btn.offsetLeft;\n    var right = next ? (next.offsetLeft + next.offsetWidth) : (btn.offsetLeft + btn.offsetWidth);\n    var vl = strip.scrollLeft, vr = vl + strip.clientWidth;\n    if (left >= vl + pad && right <= vr - pad) return;\n    if (right - left > strip.clientWidth){\n      strip.scrollLeft = Math.max(0, btn.offsetLeft - (strip.clientWidth - btn.offsetWidth) / 2);\n    } else if (right > vr){\n      strip.scrollLeft = Math.max(0, right - strip.clientWidth + 8);\n    } else if (left < vl){\n      strip.scrollLeft = Math.max(0, left - 8);\n    }\n  }\n\n  function revealChip(key){\n    if (!strip) return;\n    stopPin();\n    strip.style.scrollBehavior = '';\n    var btn = null;\n    for (var i=0;i<buttons.length;i++) if (buttons[i].getAttribute('data-hnav') === key) btn = buttons[i];\n    showChipAndNext(btn, 2);\n  }\n  function releaseStrip(){}\n\n  var dbgBox = null;\n  if (/[?&]navdebug/.test(location.search)){\n    dbgBox = document.createElement('div');\n    dbgBox.style.cssText = 'position:fixed;left:6px;bottom:6px;z-index:99999;background:rgba(0,0,0,.84);'\n      + 'color:#fff;font:11px/1.4 ui-monospace,Menlo,monospace;padding:7px 9px;border-radius:8px;'\n      + 'max-width:76vw;pointer-events:none;white-space:pre-wrap';\n    dbgBox.textContent = 'nav debug ready';\n    document.body.appendChild(dbgBox);\n  }\n  function dbgSay(t){ if (dbgBox) dbgBox.textContent = t; }\n  var dbgLast = null;\n\n  function jumpTo(el, lead, phoneNudge, gap, key, inkGap, byText){\n    key = key || el.getAttribute('data-hnav-key');\n    if (jumpAnim) jumpAnim.cancelled = true;\n\n    var margin = marginFor(el, lead, phoneNudge, gap, inkGap);\n    el.style.scrollMarginTop = margin + 'px';\n    function targetY(){\n      return Math.max(0, Math.round(window.pageYOffset + (byText ? navTextTop(el) : el.getBoundingClientRect().top) - margin));\n    }\n\n    var from = window.pageYOffset, h0 = window.innerHeight;\n    var target = targetY();\n    var dist = Math.abs(target - from);\n    var anim = { cancelled:false };\n    jumpAnim = anim;\n\n    var target0 = target, userTook = false;\n    var rec = null;\n    if (dbgBox){\n      rec = { slMin:1e9, slMax:-1e9, hMin:1e9, hMax:-1e9, hidden:0, lit:0, frames:0 };\n      (function sample(){\n        if (!rec || rec.done) return;\n        var sl = strip ? Math.round(strip.scrollLeft) : 0;\n        rec.slMin = Math.min(rec.slMin, sl); rec.slMax = Math.max(rec.slMax, sl);\n        rec.hMin = Math.min(rec.hMin, window.innerHeight); rec.hMax = Math.max(rec.hMax, window.innerHeight);\n        if (!bar.classList.contains('is-shown')) rec.hidden++;\n        rec.frames++;\n        if (rec.frames < 200) requestAnimationFrame(sample);\n      })();\n    }\n    dbgLast = rec;\n    dbgSay('tap ' + (key || '?') + '\\nfrom ' + Math.round(from)\n      + '  want ' + target0 + '\\ndock ' + lastDock + '  h ' + window.innerHeight);\n\n    holdStrip();\n\n    function onUser(){ userTook = true; anim.cancelled = true; finish(); }\n    function finish(){\n      for (var i=0;i<CANCEL_EVENTS.length;i++) window.removeEventListener(CANCEL_EVENTS[i], onUser);\n      if (jumpAnim === anim) jumpAnim = null;\n      if (!userTook){\n        var k = key;\n        setActive(k);\n        revealChip(k);\n      }\n      releaseStrip();\n      if (rec) setTimeout(function(){\n        rec.done = true;\n        dbgSay('tap ' + (key || '?')\n          + '\\nscroll ' + Math.round(from) + ' -> ' + Math.round(window.pageYOffset)\n          + '  (wanted ' + target0 + ')'\n          + '\\nSTRIP moved: ' + (rec.slMax - rec.slMin) + 'px   (' + rec.slMin + '..' + rec.slMax + ')'\n          + '\\nBAR hidden for ' + rec.hidden + ' of ' + rec.frames + ' frames'\n          + '\\nVIEWPORT h ' + rec.hMin + '..' + rec.hMax\n          + '\\nhighlight changed ' + rec.lit + 'x' + (userTook ? '   (you scrolled)' : ''));\n      }, 900);\n      else dbgSay('tap ' + (key || '?') + '\\nfrom ' + Math.round(from)\n        + '  want ' + target0 + '\\nended at ' + Math.round(window.pageYOffset)\n        + (userTook ? '  (you scrolled)' : '')\n        + '\\noff by ' + Math.round(window.pageYOffset - targetY())\n        + '  dock ' + lastDock + '  h ' + window.innerHeight);\n    }\n    for (var i=0;i<CANCEL_EVENTS.length;i++) window.addEventListener(CANCEL_EVENTS[i], onUser, { passive:true });\n\n    var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    if (reduce || dist < 8){ scrollToY(target, false); finish(); return; }\n\n    scrollToY(target, true);\n\n    var LAND_SLOP = 24;\n\n    var still = 0, lastY = -1, waited = 0;\n    (function watch(){\n      if (anim.cancelled) return;\n      var y = Math.round(window.pageYOffset);\n      still = (y === lastY) ? still + 1 : 0;\n      lastY = y;\n      if (still < 5 && ++waited < 180) return requestAnimationFrame(watch);\n      landed();\n    })();\n\n    function landed(){\n      if (anim.cancelled) return;\n      if (Math.abs(window.pageYOffset - from) < 2 && dist > 8){\n        try { el.scrollIntoView({ block:'start', inline:'nearest' }); } catch (e) { el.scrollIntoView(true); }\n        return finish();\n      }\n      if (window.innerHeight !== h0) return finish();\n      var want = targetY();\n      if (Math.abs(want - window.pageYOffset) <= LAND_SLOP) return finish();\n      scrollToY(want, true);\n      finish();\n    }\n  }\n  applyOffset();\n  window.addEventListener('resize', function(){ placeSentinel(); applyOffset(); syncShown(); }, { passive:true });\n\n  var hdrEl = document.querySelector('#shopify-section-header, .hnav-mockhdr');\n  if (hdrEl && window.ResizeObserver){\n    var ro = new ResizeObserver(function(){ applyDock(); syncShown(); });\n    try { ro.observe(hdrEl, { box:'border-box' }); } catch (e) { ro.observe(hdrEl); }\n  }\n  if (hdrEl){\n    ['transitionend','webkitTransitionEnd','animationend'].forEach(function(evt){\n      hdrEl.addEventListener(evt, applyDock, { passive:true });\n    });\n  }\n  if (document.readyState === 'complete') setTimeout(applyOffset, 60);\n  else window.addEventListener('load', function(){ setTimeout(applyOffset, 60); });\n  for (var b=0;b<buttons.length;b++){\n    buttons[b].addEventListener('click', function(){\n      var key = this.getAttribute('data-hnav'), el = null, lead, nudge, gap, inkGap, byText = false;\n      var raw = null, ITEMS = navItems();\n      for (var i=0;i<ITEMS.length;i++) if (ITEMS[i].key === key) raw = navItemNow(ITEMS[i]);\n      for (var j=0;j<targets.length;j++) if (targets[j].key === key) el = targets[j].el;\n      if (!el || !raw) return;\n      lead = raw.lead; nudge = raw.phoneNudge; gap = raw.gap; inkGap = raw.inkGap;\n      if (raw.landOn){\n        var isPh = (window.innerHeight > window.innerWidth) && window.innerWidth <= NAV_PHONE_MAX_W;\n        if (!(raw.landOn.skipPhone && isPh)){\n          var lf = raw.landOn.el ? navFindEl(raw.landOn.el) : navFindText(raw.landOn.within, raw.landOn.text);\n          if (lf){\n            el = lf; byText = !raw.landOn.el;\n            if (raw.landOn.gap != null){ gap = raw.landOn.gap; inkGap = null; }\n          }\n        }\n      }\n      holdStrip();\n      pinStrip();\n      setActive(key);\n      jumpTo(el, lead, nudge, gap, key, inkGap, byText);\n    });\n  }\n\n  var lastActiveKey = null;\n  function setActive(key){\n    if (dbgLast && !dbgLast.done && key !== lastActiveKey) dbgLast.lit++;\n    lastActiveKey = key;\n    var activeBtn = null;\n    for (var i=0;i<buttons.length;i++){\n      var on = buttons[i].getAttribute('data-hnav') === key;\n      buttons[i].classList.toggle('is-on', on);\n      buttons[i].setAttribute('aria-current', on ? 'true' : 'false');\n      if (on) activeBtn = buttons[i];\n    }\n    if (fill && activeBtn){\n      var idx = Array.prototype.indexOf.call(buttons, activeBtn);\n      fill.style.width = Math.round(((idx + 1) / buttons.length) * 100) + '%';\n    }\n    if (jumping || !activeBtn || !strip) return;\n    showChipAndNext(activeBtn, 8);\n  }\n\n  var line = (offset - 8) + GAP + 8;\n  var seen = {};\n  var firstT = null;\n  for (var fi=0; fi<targets.length; fi++){ if (!targets[fi].topStop){ firstT = targets[fi]; break; } }\n  var first = firstT ? firstT.el : null;\n  function firstVisibleTop(){\n    if (!firstT) return null;\n    var el = firstT.landEl || firstT.el;\n    return firstT.byText ? navTextTop(el) : el.getBoundingClientRect().top;\n  }\n\n  var sentinel = document.createElement('div');\n  sentinel.setAttribute('data-hnav-sentinel','');\n  sentinel.style.cssText = 'position:absolute;top:' + navRevealY() + 'px;left:0;width:1px;height:1px;'\n    + 'opacity:0;pointer-events:none';\n  document.body.appendChild(sentinel);\n  function placeSentinel(){\n    var y = navRevealY() + 'px';\n    if (sentinel.style.top !== y) sentinel.style.top = y;\n  }\n  var pastSentinel = false;\n\n  var wasShown = false;\n  function syncShown(){\n    applyDock();\n    var show = pastSentinel;\n    if (!show && firstT){ var ft = firstVisibleTop(); if (ft !== null) show = ft <= line; }\n    bar.classList.toggle('is-shown', show);\n    if (show && !wasShown) settleDock();\n    wasShown = show;\n  }\n\n  var latched = false;\n  var latching = !!(NAV_REVEAL[navPage()] || {}).latch;\n  new IntersectionObserver(function(entries){\n    var e = entries[0];\n    var past = !e.isIntersecting && e.boundingClientRect.top < 0;\n    if (past && latching) latched = true;\n    pastSentinel = past || latched;\n    syncShown();\n  }, { threshold:0 }).observe(sentinel);\n\n  var wireMatched = false;\n  var activeObs = new IntersectionObserver(function(entries){\n    entries.forEach(function(e){ seen[e.target.getAttribute('data-hnav-key')] = e.isIntersecting; });\n    syncShown();\n    for (var i=targets.length-1;i>=0;i--){\n      if (seen[targets[i].key]){\n        var btn = null;\n        for (var b2=0;b2<buttons.length;b2++) if (buttons[b2].getAttribute('data-hnav') === targets[i].key) btn = buttons[b2];\n        if (btn && btn.offsetParent === null) continue;\n        wireMatched = true;\n        if (!jumping) setActive(targets[i].key);\n        return;\n      }\n    }\n    if (wireMatched) return;\n    lightFromPosition();\n  }, { rootMargin: '-' + line + 'px 0px -' + Math.max(0, (window.innerHeight - line - 1)) + 'px 0px', threshold:0 });\n\n  function lightFromPosition(){\n    if (jumping) return;\n    var underKey = null, pastKey = null, pastTop = -Infinity;\n    for (var p=0;p<targets.length;p++){\n      var pb = null;\n      for (var b3=0;b3<buttons.length;b3++) if (buttons[b3].getAttribute('data-hnav') === targets[p].key) pb = buttons[b3];\n      if (pb && pb.offsetParent === null) continue;\n      var pr = targets[p].el.getBoundingClientRect();\n      if (pr.top <= line + 1 && pr.bottom >= line) underKey = targets[p].key;\n      if (pr.top <= line + 1 && pr.top > pastTop){ pastTop = pr.top; pastKey = targets[p].key; }\n    }\n    var key = underKey || pastKey;\n    if (key) setActive(key);\n  }\n\n  targets.forEach(function(t){ t.el.setAttribute('data-hnav-key', t.key); activeObs.observe(t.el); });\n\n  if (!first) bar.classList.add('is-shown');\n  else syncShown();\n\n  setActive(targets.length ? targets[0].key : '');\n\n  function settleArrival(){\n    lightFromPosition();\n    requestAnimationFrame(function(){ requestAnimationFrame(lightFromPosition); });\n    setTimeout(lightFromPosition, 300);\n  }\n  if (document.readyState === 'complete') settleArrival();\n  else window.addEventListener('load', settleArrival, { once:true });\n  window.addEventListener('pageshow', settleArrival);\n}\n"],
  "mappings": "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",
  "names": ["i"]
}
