{
  "version": 3,
  "sources": ["/cdn/shop/t/35/assets/tbb-light.js?nocache=28505"],
  "sourcesContent": ["/* TBB Round 5 interactions: scroll reveal, range tabs, spectrum explorer, compare table expand. No dependencies. */\n(() => {\n  const root = document.documentElement;\n  root.classList.add('js-lt');\n  const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  // reveal on scroll\n  const items = document.querySelectorAll('[data-lt-reveal]');\n  if (reduce || !('IntersectionObserver' in window)) items.forEach((el) => el.classList.add('is-in'));\n  else {\n    const io = new IntersectionObserver((entries) => entries.forEach((e) => { if (e.isIntersecting) { e.target.classList.add('is-in'); io.unobserve(e.target); } }), { rootMargin: '0px 0px -8% 0px', threshold: 0.08 });\n    items.forEach((el) => io.observe(el));\n  }\n\n  // range tabs (WAI-ARIA tabs with roving focus and a sliding pill)\n  document.querySelectorAll('[data-lt-tabs]').forEach((wrap) => {\n    const tabs = [...wrap.querySelectorAll('[role=\"tab\"]')];\n    const pill = wrap.querySelector('.lt-tabs__pill');\n    const place = (t) => { if (!pill) return; pill.style.width = t.offsetWidth + 'px'; pill.style.transform = `translateX(${t.offsetLeft - 4}px)`; };\n    const select = (t, focus) => {\n      tabs.forEach((x) => { const on = x === t; x.setAttribute('aria-selected', on); x.tabIndex = on ? 0 : -1; document.getElementById(x.getAttribute('aria-controls')).hidden = !on; });\n      place(t); if (focus) t.focus();\n    };\n    tabs.forEach((t, i) => {\n      t.addEventListener('click', () => select(t));\n      t.addEventListener('keydown', (e) => {\n        const k = { ArrowRight: 1, ArrowLeft: -1 }[e.key];\n        if (k) { e.preventDefault(); select(tabs[(i + k + tabs.length) % tabs.length], true); }\n        if (e.key === 'Home') { e.preventDefault(); select(tabs[0], true); }\n        if (e.key === 'End') { e.preventDefault(); select(tabs[tabs.length - 1], true); }\n      });\n    });\n    const cur = tabs.find((t) => t.getAttribute('aria-selected') === 'true') || tabs[0];\n    requestAnimationFrame(() => place(cur));\n    addEventListener('resize', () => place(tabs.find((t) => t.getAttribute('aria-selected') === 'true')));\n    if (document.fonts) document.fonts.ready.then(() => place(tabs.find((t) => t.getAttribute('aria-selected') === 'true')));\n  });\n\n  // spectrum explorer\n  document.querySelectorAll('[data-lt-spectrum]').forEach((sec) => {\n    const data = JSON.parse(sec.querySelector('script[type=\"application/json\"]').textContent);\n    const ticks = [...sec.querySelectorAll('.lt-tick')];\n    const out = sec.querySelector('.lt-readout');\n    const f = (k) => out.querySelector(`[data-f=\"${k}\"]`);\n    const show = (nm, focus) => {\n      const d = data[nm]; if (!d) return;\n      ticks.forEach((t) => { const on = t.dataset.nm === nm; t.setAttribute('aria-pressed', on); t.tabIndex = on ? 0 : -1; if (on && focus) t.focus(); });\n      out.style.setProperty('--c', d.color);\n      const swap = () => {\n        f('nm').firstChild.nodeValue = nm;\n        f('band').textContent = d.band;\n        f('note').textContent = d.note;\n        f('count').textContent = d.count;\n        f('models').innerHTML = d.models.map((m) => `<a href=\"${m.url}\">${m.code}</a>`).join('');\n        out.classList.remove('is-swapping');\n      };\n      if (reduce) swap(); else { out.classList.add('is-swapping'); setTimeout(swap, 180); }\n    };\n    ticks.forEach((t, i) => {\n      t.addEventListener('click', () => show(t.dataset.nm));\n      t.addEventListener('keydown', (e) => {\n        const k = { ArrowRight: 1, ArrowLeft: -1 }[e.key];\n        if (k) { e.preventDefault(); show(ticks[(i + k + ticks.length) % ticks.length].dataset.nm, true); }\n      });\n    });\n  });\n\n  // spectrum scale: drop the fade once scrolled to the end\n  document.querySelectorAll('.lt-spec__scale').forEach((el) => el.addEventListener('scroll', () => el.classList.toggle('is-end', el.scrollLeft + el.clientWidth >= el.scrollWidth - 4), { passive: true }));\n\n  // product page: Shopify leaves options unselected when the URL names no variant; select the first available\n  // variant's values so the buy button is ready (the theme's own change handler updates price and button)\n  const preselect = () => document.querySelectorAll('variant-picker').forEach((vp) => {\n    if (/[?&]variant=/.test(location.search)) return;\n    const data = vp.querySelector('script[data-selected-variant]'); if (!data) return;\n    let v; try { v = JSON.parse(data.textContent); } catch (e) { return; }\n    if (!v || !v.options) return;\n    let changed = null;\n    vp.querySelectorAll('[data-picker-field]').forEach((field, i) => {\n      if (field.querySelector('input:checked')) return;\n      const sel = field.querySelector('select');\n      if (sel) { if (!sel.value && v.options[i]) { sel.value = v.options[i]; changed = sel; } return; }\n      const inp = [...field.querySelectorAll('input[type=radio]')].find((x) => x.value === v.options[i]);\n      if (inp) { inp.checked = true; changed = inp; }\n    });\n    if (changed) changed.dispatchEvent(new Event('change', { bubbles: true }));\n  });\n  // the theme's picker resets its inputs while it initialises, so run after load\n  if (document.readyState === 'complete') setTimeout(preselect, 300); else addEventListener('load', () => setTimeout(preselect, 300));\n\n  // compare table: show the first ten rows, expand on request\n  document.querySelectorAll('[data-lt-compare]').forEach((sec) => {\n    const btn = sec.querySelector('[data-lt-more]');\n    const rows = sec.querySelectorAll('tbody tr').length;\n    if (!btn || rows <= 10) { btn && btn.parentElement.remove(); return; }\n    sec.classList.add('is-collapsed');\n    btn.addEventListener('click', () => { const c = sec.classList.toggle('is-collapsed'); btn.setAttribute('aria-expanded', !c); btn.querySelector('span').textContent = c ? btn.dataset.more : btn.dataset.less; });\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
