{
  "version": 3,
  "sources": ["/cdn/shop/t/1/assets/ww.js?x=3013"],
  "sourcesContent": ["/* Woodrow Wear behaviour. Ported from woodrowwear-design/index.html.\n   Every interactive section is a custom element, so it re-initialises when the theme editor\n   re-renders it. Cart adds go through Shopify's AJAX cart and announce themselves with the\n   standard CartLinesUpdateEvent, which keeps Horizon's cart drawer in sync. */\n\nconst $ = (s, c = document) => c.querySelector(s);\nconst $$ = (s, c = document) => [...c.querySelectorAll(s)];\nconst clamp = (v, a, b) => Math.min(b, Math.max(a, v));\nconst reduced = matchMedia('(prefers-reduced-motion: reduce)').matches;\nconst designMode = document.documentElement.classList.contains('shopify-design-mode');\nconst PAW = `<svg viewBox='0 0 100 100'><ellipse cx='21' cy='33' rx='11.5' ry='15'/><ellipse cx='43' cy='20' rx='11.5' ry='16'/><ellipse cx='66' cy='24' rx='11.5' ry='15.5'/><ellipse cx='85' cy='45' rx='10.5' ry='13.5'/><path d='M47 47c17 0 31 12 31 26 0 12-10 20-22 20H38c-12 0-22-8-22-20 0-14 14-26 31-26Z'/></svg>`;\nconst ref = (root, name) => root.querySelector(`[data-r=\"${name}\"]`);\n\n/* \u2500\u2500 toast \u2500\u2500 */\nlet toastTimer;\nexport function toast(msg) {\n  const t = $('#ww-toast');\n  if (!t) return;\n  t.textContent = msg;\n  t.classList.add('on');\n  clearTimeout(toastTimer);\n  toastTimer = setTimeout(() => t.classList.remove('on'), 2400);\n}\n\n/* \u2500\u2500 cart \u2500\u2500 */\nfunction setBagCount(n) {\n  $$('[data-ww-bag-count]').forEach((el) => (el.textContent = n));\n  $$('[data-ww-bag]').forEach((b) => {\n    b.classList.remove('bump');\n    void b.offsetWidth;\n    b.classList.add('bump');\n  });\n}\n\nfunction flyToBag(fromEl, imgSrc) {\n  const bag = $('[data-ww-bag]');\n  if (reduced || !bag || !fromEl || !imgSrc) return Promise.resolve();\n  const br = fromEl.getBoundingClientRect(), cr = bag.getBoundingClientRect();\n  const f = document.createElement('div');\n  f.className = 'flyer';\n  f.innerHTML = `<img src=\"${imgSrc}\" alt=\"\">`;\n  f.style.left = br.left + br.width / 2 - 23 + 'px';\n  f.style.top = br.top + br.height / 2 - 23 + 'px';\n  const wrap = document.createElement('div');\n  wrap.className = 'ww';\n  wrap.appendChild(f);\n  document.body.appendChild(wrap);\n  return new Promise((res) => {\n    f.animate(\n      [\n        { transform: 'translate(0,0) scale(1) rotate(0deg)', opacity: 1 },\n        { transform: `translate(${cr.left + cr.width / 2 - br.left - br.width / 2}px,${cr.top + cr.height / 2 - br.top - br.height / 2}px) scale(.3) rotate(220deg)`, opacity: 0.3 },\n      ],\n      { duration: 780, easing: 'cubic-bezier(.5,0,.35,1)' }\n    ).onfinish = () => { wrap.remove(); res(); };\n  });\n}\n\n/** Adds a variant to the Shopify cart. Resolves with the ajax cart; throws Error(message) on failure. */\nexport async function addToCart(variantId, quantity, source) {\n  const routes = typeof Theme !== 'undefined' ? Theme.routes : null;\n  const addUrl = routes?.cart_add_url || '/cart/add.js';\n  const cartUrl = (routes?.cart_url || '/cart') + '.js';\n  const sections = $$('cart-items-component').map((el) => el.dataset.sectionId).filter(Boolean);\n\n  let Events = null;\n  try { Events = await import('@shopify/events'); } catch (e) { /* cart still works without the drawer refresh */ }\n  const deferred = Events?.CartLinesUpdateEvent?.createPromise?.();\n  if (deferred) {\n    (source || document).dispatchEvent(\n      new Events.CartLinesUpdateEvent({\n        action: 'add',\n        context: 'product',\n        lines: [{ merchandiseId: String(variantId), quantity }],\n        promise: deferred.promise,\n      })\n    );\n  }\n\n  try {\n    const res = await fetch(addUrl, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n      body: JSON.stringify({ items: [{ id: Number(variantId), quantity }], sections: sections.join(','), sections_url: location.pathname }),\n    });\n    const data = await res.json();\n    const cart = await fetch(cartUrl, { headers: { Accept: 'application/json' } }).then((r) => r.json());\n    const failed = !res.ok || data.status;\n    deferred?.resolve({\n      cart: Events.CartLinesUpdateEvent.createCartFromAjaxResponse(cart),\n      detail: { items: cart.items, source: 'ww', itemCount: quantity, sections: data.sections, didError: !!failed },\n    });\n    if (failed) throw new Error(data.description || data.message || 'Could not Add to cart');\n    if (!deferred) setBagCount(cart.item_count);\n    return cart;\n  } catch (err) {\n    deferred?.reject?.(err);\n    throw err;\n  }\n}\n\n/* keep the Bag count in step with every cart change on the page, Horizon's included */\nimport('@shopify/events')\n  .then(({ StandardEvents }) => {\n    document.addEventListener(StandardEvents.cartLinesUpdate, (e) => {\n      e.promise\n        ?.then(({ cart }) => { if (cart?.totalQuantity !== undefined) setBagCount(cart.totalQuantity); })\n        .catch(() => {});\n    });\n  })\n  .catch(() => {});\n\n/* \u2500\u2500 header \u2500\u2500 */\nclass WWHeader extends HTMLElement {\n  connectedCallback() {\n    const nav = $('[data-ww-nav]', this), burger = $('[data-ww-burger]', this), menu = $('.menu', this);\n    const subToggles = $$('[data-ww-sub-toggle]', menu);\n    const openSub = (b, o) => {\n      b.closest('.menu__g').classList.toggle('open', o);\n      b.setAttribute('aria-expanded', o);\n    };\n    const openMenu = (o) => {\n      document.body.classList.toggle('nav-open', o);\n      document.body.classList.toggle('is-locked', o);\n      burger?.setAttribute('aria-expanded', o);\n      if (!o) subToggles.forEach((b) => openSub(b, false));\n    };\n    burger?.addEventListener('click', () => openMenu(!document.body.classList.contains('nav-open')));\n    subToggles.forEach((b) => b.addEventListener('click', () => openSub(b, b.getAttribute('aria-expanded') !== 'true')));\n    $$('a', menu).forEach((a) => a.addEventListener('click', () => openMenu(false)));\n    addEventListener('keydown', (e) => { if (e.key === 'Escape') openMenu(false); });\n\n    /* the header is two rows and fixed, so its height is measured, not assumed */\n    const setH = () => {\n      const h = nav.offsetHeight + 'px';\n      document.documentElement.style.setProperty('--ww-navh', h);\n      document.body.style.setProperty('--header-height', h);\n      document.body.style.setProperty('--header-group-height', h);\n    };\n    setH();\n    new ResizeObserver(setH).observe(nav);\n    document.fonts?.ready.then(setH);\n\n    let lastY = 0, ticking = false;\n    addEventListener('scroll', () => {\n      if (ticking) return;\n      ticking = true;\n      requestAnimationFrame(() => {\n        const y = scrollY;\n        nav.classList.toggle('stuck', y > 18);\n        if (!document.body.classList.contains('nav-open')) nav.classList.toggle('hide', y > lastY && y > 360);\n        lastY = y;\n        ticking = false;\n      });\n    }, { passive: true });\n\n    const load = $('[data-ww-loader]', this);\n    if (load) {\n      const finish = () => { load.classList.add('done'); setTimeout(() => load.remove(), 1500); };\n      if (reduced || designMode) finish(); else setTimeout(finish, 1500);\n    }\n  }\n}\n\n/* \u2500\u2500 generic section: reveals, counters, lazy video, parallax \u2500\u2500 */\nconst revealIO = new IntersectionObserver((es) => es.forEach((e) => {\n  if (e.isIntersecting) { e.target.classList.add('in'); revealIO.unobserve(e.target); }\n}), { rootMargin: '0px 0px -10% 0px', threshold: 0.06 });\n\nconst videoIO = new IntersectionObserver((es) => es.forEach((e) => {\n  const v = e.target;\n  if (e.isIntersecting) {\n    if (!v.src && v.dataset.src) v.src = v.dataset.src;\n    v.preload = 'auto';\n    v.play()?.catch(() => {});\n  } else v.pause();\n}), { threshold: 0.25 });\n\nconst countIO = new IntersectionObserver((es) => es.forEach((e) => {\n  if (!e.isIntersecting) return;\n  countIO.unobserve(e.target);\n  const el = e.target, to = +el.dataset.count;\n  if (reduced) { el.textContent = to.toLocaleString('en-US'); return; }\n  const t0 = performance.now(), dur = 1200;\n  (function step(t) {\n    const p = clamp((t - t0) / dur, 0, 1);\n    el.textContent = Math.round(to * (1 - Math.pow(1 - p, 3))).toLocaleString('en-US');\n    if (p < 1) requestAnimationFrame(step);\n  })(t0);\n}), { threshold: 0.5 });\n\nconst paraImgs = new Set();\nlet paraRaf = false;\nfunction paraUpdate() {\n  paraImgs.forEach((im) => {\n    if (!im.isConnected) return paraImgs.delete(im);\n    const r = im.parentElement.getBoundingClientRect();\n    if (r.bottom < 0 || r.top > innerHeight) return;\n    const p = (r.top + r.height / 2 - innerHeight / 2) / innerHeight;\n    im.style.transform = `translate3d(0,${(-p * 9).toFixed(2)}%,0)`;\n  });\n  paraRaf = false;\n}\nif (!reduced) addEventListener('scroll', () => { if (!paraRaf) { paraRaf = true; requestAnimationFrame(paraUpdate); } }, { passive: true });\n\nclass WWSec extends HTMLElement {\n  connectedCallback() {\n    $$('.rv', this).forEach((el) => (designMode ? el.classList.add('in') : revealIO.observe(el)));\n    $$('[data-lazyvid]', this).forEach((v) => videoIO.observe(v));\n    $$('[data-count]', this).forEach((el) => { if (!reduced) el.textContent = '0'; countIO.observe(el); });\n    if (!reduced) { $$('.band__img', this).forEach((im) => paraImgs.add(im)); paraUpdate(); }\n    $$('[data-drag]', this).forEach((el) => { dragScroll(el); autoSlide(el, [...el.children]); });\n    $$('[data-r=\"rowdots\"]', this).forEach((d) => scrollDots(d.parentElement.querySelector('[data-drag]'), d));\n  }\n}\n\n/* \u2500\u2500 mouse drag for horizontal rows (touch and trackpads scroll natively) \u2500\u2500 */\nfunction dragScroll(el) {\n  let x0 = null, s0 = 0, moved = false;\n  el.addEventListener('pointerdown', (e) => {\n    if (e.pointerType !== 'mouse' || e.button !== 0) return;\n    x0 = e.clientX; s0 = el.scrollLeft; moved = false;\n  });\n  el.addEventListener('pointermove', (e) => {\n    if (x0 === null) return;\n    const d = e.clientX - x0;\n    if (!moved && Math.abs(d) < 5) return;\n    if (!moved) { moved = true; el.classList.add('is-drag'); el.setPointerCapture(e.pointerId); }\n    el.scrollLeft = s0 - d;\n  });\n  const end = () => { if (x0 === null) return; x0 = null; el.classList.remove('is-drag'); };\n  el.addEventListener('pointerup', end);\n  el.addEventListener('pointercancel', end);\n  el.addEventListener('click', (e) => { if (moved) { e.preventDefault(); e.stopPropagation(); moved = false; } }, true);\n  el.addEventListener('dragstart', (e) => e.preventDefault());\n}\n\n/* \u2500\u2500 horizontal rows advance one card every 1.5s, back to the start at the end;\n   pauses on hover, for a few seconds after a touch, drag or wheel, and off screen \u2500\u2500 */\nconst AUTO_MS = 2500;\nfunction autoSlide(row, items) {\n  if (reduced || designMode || items.length < 2) return;\n  let hover = false, until = 0, seen = false;\n  const hold = () => { until = Date.now() + 4000; };\n  row.addEventListener('mouseenter', () => { hover = true; });\n  row.addEventListener('mouseleave', () => { hover = false; });\n  ['pointerdown', 'touchstart', 'wheel', 'focusin'].forEach((ev) => row.addEventListener(ev, hold, { passive: true }));\n  new IntersectionObserver(([e]) => { seen = e.isIntersecting; }, { threshold: 0.3 }).observe(row);\n  const timer = setInterval(() => {\n    if (!row.isConnected) return clearInterval(timer);\n    if (!seen || hover || document.hidden || Date.now() < until) return;\n    if (!/auto|scroll/.test(getComputedStyle(row).overflowX)) return; /* e.g. terrain on desktop is scroll-driven */\n    const max = row.scrollWidth - row.clientWidth;\n    if (max < 2) return;\n    const step = items[1].offsetLeft - items[0].offsetLeft || row.clientWidth;\n    const left = row.scrollLeft >= max - 2 ? 0 : Math.min(max, (Math.round(row.scrollLeft / step) + 1) * step);\n    row.scrollTo({ left, behavior: 'smooth' });\n  }, AUTO_MS);\n}\n\n/* \u2500\u2500 one dot per screenful of a horizontal row, so it reads as \"more to the right\" \u2500\u2500 */\nfunction scrollDots(row, dots) {\n  if (!row) return;\n  const items = [...row.children];\n  let pages = 0, per = 1;\n  const step = () => (items.length > 1 ? items[1].offsetLeft - items[0].offsetLeft : row.clientWidth) || 1;\n  const update = () => {\n    const end = row.scrollLeft >= row.scrollWidth - row.clientWidth - 2;\n    const on = end ? pages - 1 : Math.floor(Math.round(row.scrollLeft / step()) / per);\n    [...dots.children].forEach((b, k) => b.setAttribute('aria-selected', String(k === on)));\n  };\n  const build = () => {\n    per = Math.max(1, Math.round(row.clientWidth / step()));\n    const n = Math.ceil(items.length / per);\n    if (n !== pages) {\n      pages = n;\n      dots.hidden = n < 2;\n      dots.replaceChildren(...Array.from({ length: n }, (_, k) => {\n        const b = document.createElement('button');\n        b.type = 'button';\n        b.setAttribute('role', 'tab');\n        b.setAttribute('aria-label', `Photos ${k * per + 1} to ${Math.min(items.length, (k + 1) * per)}`);\n        b.addEventListener('click', () => {\n          const i = Math.min(k * per, items.length - per);\n          row.scrollTo({ left: items[i].offsetLeft - items[0].offsetLeft, behavior: reduced ? 'auto' : 'smooth' });\n        });\n        return b;\n      }));\n    }\n    update();\n  };\n  row.addEventListener('scroll', update, { passive: true });\n  new ResizeObserver(build).observe(row);\n  build();\n}\n\n/* \u2500\u2500 hero slider \u2500\u2500 */\nclass WWSlider extends HTMLElement {\n  connectedCallback() {\n    const slides = $$('.slide', this), dots = ref(this, 'dots');\n    if (slides.length < 2) return;\n    const interval = (+this.dataset.interval || 2.5) * 1000;\n    let i = 0, timer = null;\n    slides.forEach((_, n) => {\n      const b = document.createElement('button');\n      b.type = 'button';\n      b.setAttribute('role', 'tab');\n      b.setAttribute('aria-label', 'Slide ' + (n + 1));\n      b.setAttribute('aria-selected', String(n === 0));\n      b.addEventListener('click', () => { go(n); rest(); });\n      dots.appendChild(b);\n    });\n    const dotEls = $$('button', dots);\n    const go = (n) => {\n      i = ((n % slides.length) + slides.length) % slides.length;\n      slides.forEach((s, k) => {\n        s.classList.toggle('is-on', k === i);\n        $$('video', s).forEach((v) => {\n          if (k === i) { if (!v.src && v.dataset.src) v.src = v.dataset.src; v.play()?.catch(() => {}); } else v.pause();\n        });\n      });\n      dotEls.forEach((d, k) => d.setAttribute('aria-selected', String(k === i)));\n    };\n    this.go = go;\n    const next = () => go(i + 1), prev = () => go(i - 1);\n    ref(this, 'next')?.addEventListener('click', () => { next(); rest(); });\n    ref(this, 'prev')?.addEventListener('click', () => { prev(); rest(); });\n    const stop = () => { if (timer) clearInterval(timer); timer = null; };\n    const start = () => { if (reduced || designMode) return; stop(); timer = setInterval(next, interval); };\n    const rest = () => { stop(); start(); };\n    this.addEventListener('mouseenter', stop);\n    this.addEventListener('mouseleave', start);\n    this.addEventListener('focusin', stop);\n    this.addEventListener('focusout', start);\n    this.addEventListener('keydown', (e) => {\n      if (e.key === 'ArrowRight') { next(); rest(); e.preventDefault(); }\n      if (e.key === 'ArrowLeft') { prev(); rest(); e.preventDefault(); }\n    });\n    let sx = null;\n    this.addEventListener('pointerdown', (e) => { sx = e.clientX; });\n    this.addEventListener('pointerup', (e) => {\n      if (sx === null) return;\n      const d = e.clientX - sx; sx = null;\n      if (Math.abs(d) > 55) { d < 0 ? next() : prev(); rest(); }\n    });\n    new IntersectionObserver((es) => es.forEach((e) => (e.isIntersecting ? start() : stop())), { threshold: 0.2 }).observe(this);\n    /* theme editor: selecting a slide block shows it */\n    this.addEventListener('shopify:block:select', (e) => { const n = slides.indexOf(e.target.closest('.slide')); if (n > -1) { stop(); go(n); } });\n  }\n}\n\n/* \u2500\u2500 crossed marquees \u2500\u2500 */\nclass WWMarquee extends HTMLElement {\n  connectedCallback() {\n    const tracks = $$('.tick__t', this).map((el) => ({ el, sign: +el.dataset.dir || 1, x: 0, w: 0, row: el.firstElementChild }));\n    tracks.forEach((t) => { for (let i = 0; i < 4; i++) t.el.appendChild(t.row.cloneNode(true)); });\n    const measure = () => tracks.forEach((t) => { t.w = t.row.getBoundingClientRect().width; });\n    measure();\n    addEventListener('resize', measure, { passive: true });\n    if (reduced) return;\n    let v = 0, dir = 1, prev = scrollY;\n    addEventListener('scroll', () => {\n      const d = scrollY - prev; prev = scrollY;\n      if (d !== 0) dir = d > 0 ? 1 : -1;\n      v = clamp(Math.abs(d) * 0.22, 0, 9);\n    }, { passive: true });\n    const tick = () => {\n      if (!this.isConnected) return;\n      v *= 0.93;\n      tracks.forEach((t) => {\n        t.x -= dir * t.sign * (0.55 + v);\n        if (t.w) { if (t.x <= -t.w) t.x += t.w; if (t.x > 0) t.x -= t.w; }\n        t.el.style.transform = `translate3d(${t.x}px,0,0)`;\n      });\n      requestAnimationFrame(tick);\n    };\n    tick();\n  }\n}\n\n/* \u2500\u2500 sock builder \u2500\u2500 */\nconst lc = (s) => String(s ?? '').trim().toLowerCase();\nconst isHoundValue = (s) => /grey|gray\\s*hound|hound/i.test(String(s));\n/* XXS \u2192 XXXL order, whatever order the variants were created in; unknown values keep their place at the end */\nconst SIZE_RANK = { xxs: 1, xs: 2, s: 3, small: 3, m: 4, medium: 4, l: 5, large: 5, xl: 6, xxl: 7, xxxl: 8 };\nconst sizeRank = (s) => SIZE_RANK[lc(s).split(/[\\s(]/)[0]] ?? 99;\nconst bySize = (list) => list.map((z, i) => [z, i]).sort((a, b) => sizeRank(a[0]) - sizeRank(b[0]) || a[1] - b[1]).map((x) => x[0]);\nconst escAttr = (s) => String(s ?? '').replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;');\n\nclass WWBuilder extends HTMLElement {\n  connectedCallback() {\n    if (this._ready) return;\n    this._ready = true;\n    const D = JSON.parse(ref(this, 'data').textContent);\n    Object.values(D.levels).forEach((L) => {\n      L.pts = (L.pts || []).map((p) => p.trim()).filter(Boolean);\n      L.colors = (L.colors || []).map(lc).filter(Boolean);\n    });\n    D.sizes.std = D.sizes.std.map((s) => s.trim()).filter(Boolean);\n    D.sizes.hound = D.sizes.hound.map((s) => s.trim()).filter(Boolean);\n    this.D = D;\n    const keys = Object.keys(D.levels);\n    this.s = {\n      level: D.levels[D.def.level] ? D.def.level : keys[0],\n      color: D.def.color || D.colors[0]?.k,\n      shape: 'std', size: null, angle: 0, flipped: false,\n    };\n    if (!this.s.level) return;\n\n    /* six frames + dots */\n    this.imgs = [];\n    const frames = ref(this, 'frames'), dots = ref(this, 'dots');\n    for (let i = 0; i < 6; i++) {\n      const im = document.createElement('img');\n      im.alt = ''; im.draggable = false; im.decoding = 'async';\n      if (i) im.loading = 'lazy';\n      frames.appendChild(im); this.imgs.push(im);\n      dots.appendChild(document.createElement('i'));\n    }\n    this.dotEls = $$('i', dots);\n\n    this.bindView();\n    $$('[data-p]', ref(this, 'lvl')).forEach((t) => t.addEventListener('click', () => this.setLevel(t.dataset.p)));\n    ref(this, 'lvl').addEventListener('keydown', (e) => {\n      if (!['ArrowRight', 'ArrowLeft'].includes(e.key)) return;\n      const tabs = $$('[data-p]', ref(this, 'lvl'));\n      const i = tabs.findIndex((t) => t.getAttribute('aria-selected') === 'true');\n      const n = tabs[(i + (e.key === 'ArrowRight' ? 1 : -1) + tabs.length) % tabs.length];\n      n.focus(); n.click(); e.preventDefault();\n    });\n    ref(this, 'sw').addEventListener('click', (e) => {\n      const b = e.target.closest('button');\n      if (!b || b.disabled) return;\n      this.s.color = b.dataset.k;\n      this.refresh();\n    });\n    $$('button', ref(this, 'shape')).forEach((b) => b.addEventListener('click', () => {\n      if (b.disabled) return;\n      this.s.shape = b.dataset.s;\n      this.refresh();\n    }));\n    ref(this, 'sizes').addEventListener('click', (e) => {\n      const b = e.target.closest('button');\n      if (!b || b.disabled) return;\n      this.s.size = b.dataset.s;\n      this.refresh();\n    });\n    ref(this, 'add').addEventListener('click', () => this.add());\n    this.addEventListener('shopify:block:select', (e) => {\n      const lvl = e.target.closest('[data-p]'), col = e.target.closest('[data-k]');\n      if (lvl) this.setLevel(lvl.dataset.p, true);\n      if (col) { this.s.color = col.dataset.k; this.refresh(); }\n    });\n    this.setLevel(this.s.level, true);\n    WWBuilder.instance = this;\n  }\n\n  get L() { return this.D.levels[this.s.level]; }\n  get color() { const cs = this.cols || []; return cs.find((c) => c.k === this.s.color) || cs[0]; }\n\n  /* the product that sells the current line + shape, with its option positions */\n  product() {\n    const L = this.L, hound = this.s.shape === 'hound';\n    const P = hound ? L.hp || L.p : L.p;\n    if (!P) return null;\n    const names = P.o.map(lc);\n    const ci = names.findIndex((n) => /colou?r|pattern|design|print/.test(n));\n    const zi = names.findIndex((n, i) => i !== ci && /size/.test(n)); /* the color option may be named \"Choose a color to see available sizes\" */\n    const hi = names.findIndex((n, i) => i !== ci && i !== zi && /shape|foot|fit|edition|style|type|cut/.test(n));\n    let vs = P.v;\n    if (hi > -1) vs = vs.filter((v) => isHoundValue(v.o[hi]) === hound);\n    return { P, ci, zi, vs };\n  }\n\n  colorOffered(c, pr) {\n    if (pr && pr.ci > -1) return pr.vs.some((v) => lc(v.o[pr.ci]) === lc(c.m));\n    const list = this.L.colors;\n    if (pr) return list.length ? list.includes(c.k) : c === this.D.colors[0];\n    return !list.length || list.includes(c.k);\n  }\n\n  /* swatches: every Color value of the product with its variant image; a matching Color block renames it and adds 3D frames */\n  colorList(pr) {\n    if (pr && pr.ci > -1) {\n      const out = [];\n      pr.vs.forEach((v) => {\n        const m = v.o[pr.ci];\n        let c = out.find((x) => lc(x.m) === lc(m));\n        if (!c) {\n          const b = this.D.colors.find((x) => lc(x.m).split(/\\s*,\\s*/).includes(lc(m)));\n          c = { k: b ? b.k : `v:${lc(m)}`, m, n: b ? b.n : m, b, i: null, I: null };\n          out.push(c);\n        }\n        if (!c.i && v.i) { c.i = v.i; c.I = v.I; }\n      });\n      /* sold-out colors are hidden; if the whole line is sold out, keep them so it reads \"coming soon\" */\n      const left = out.filter((c) => pr.vs.some((v) => v.a && lc(v.o[pr.ci]) === lc(c.m)));\n      return left.length ? left : out;\n    }\n    return this.D.colors.filter((c) => this.colorOffered(c, pr)).map((c) => ({ ...c, b: c, i: null, I: null }));\n  }\n\n  sizeList(pr) {\n    if (pr && pr.zi > -1) {\n      const out = [];\n      const vs = pr.vs.filter((v) => pr.ci < 0 || lc(v.o[pr.ci]) === lc(this.color?.m));\n      /* sold-out sizes are hidden, unless every size is sold out */\n      (vs.some((v) => v.a) ? vs.filter((v) => v.a) : vs).forEach((v) => {\n        if (!out.includes(v.o[pr.zi])) out.push(v.o[pr.zi]);\n      });\n      return bySize(out);\n    }\n    return bySize(this.D.sizes[this.s.shape === 'hound' ? 'hound' : 'std']);\n  }\n\n  match(pr, size = this.s.size) {\n    if (!pr) return null;\n    return pr.vs.filter((v) =>\n      (pr.ci < 0 || lc(v.o[pr.ci]) === lc(this.color?.m)) &&\n      (pr.zi < 0 || size == null || lc(v.o[pr.zi]) === lc(size))\n    );\n  }\n\n  setLevel(k, quiet) {\n    if (!this.D.levels[k]) return;\n    if (k !== this.s.level) this.s.color = null; /* new line: start on its first available color */\n    this.s.level = k;\n    const L = this.L;\n    ref(this, 'name').textContent = L.n;\n    ref(this, 'sub').textContent = L.sub || '';\n    ref(this, 'zone').textContent = L.zone || '';\n    ref(this, 'pts').innerHTML = L.pts.map((p) => `<li><span class=\"paw\">${PAW}</span>${p.replace(/</g, '&lt;')}</li>`).join('');\n    $$('[data-p]', ref(this, 'lvl')).forEach((t) => t.setAttribute('aria-selected', String(t.dataset.p === k)));\n    if (!L.hound && this.s.shape === 'hound') this.s.shape = 'std';\n    this.refresh();\n    if (!quiet) toast(L.n);\n  }\n\n  refresh() {\n    const s = this.s, D = this.D, L = this.L, hound = s.shape === 'hound';\n\n    /* shape */\n    $$('button', ref(this, 'shape')).forEach((b) => {\n      b.disabled = b.dataset.s === 'hound' && !L.hound;\n      b.setAttribute('aria-pressed', String(b.dataset.s === s.shape));\n    });\n    ref(this, 'shapeLbl').textContent = hound ? D.t.hound : D.t.std;\n    ref(this, 'shapeNote').textContent = hound ? D.t.houndNote : L.hound ? D.t.stdNote : D.t.stdOnly;\n\n    /* colors */\n    const pr = this.product();\n    const cols = this.cols = this.colorList(pr);\n    if (!cols.some((c) => c.k === s.color) && cols.length) {\n      const inStock = pr && pr.ci > -1 && cols.find((c) => pr.vs.some((v) => v.a && lc(v.o[pr.ci]) === lc(c.m)));\n      s.color = (inStock || cols[0]).k;\n    }\n    ref(this, 'sw').innerHTML = cols.map((c) => {\n      const pic = c.i ? `<img src=\"${escAttr(c.i)}\" alt=\"\" loading=\"lazy\" decoding=\"async\">` : '';\n      const bg = !c.i && c.b?.sw ? ` style=\"background:${escAttr(c.b.sw)}\"` : '';\n      return `<button type=\"button\" data-k=\"${escAttr(c.k)}\" aria-pressed=\"${c.k === s.color}\"><span class=\"sw__img\"${bg}>${pic}</span><span class=\"sw__n\">${escAttr(c.n)}</span></button>`;\n    }).join('');\n    ref(this, 'col').textContent = this.color?.n || '';\n    ref(this, 'colorNote').textContent = cols.length === 1 ? `${L.n} comes in ${cols[0].n}.` : '';\n\n    /* sizes: keep the pick while it's in stock, otherwise take the first in-stock size */\n    const list = this.sizeList(pr);\n    const inStock = (z) => !pr || this.match(pr, z).some((v) => v.a);\n    if (!list.some((z) => lc(z) === lc(s.size) && inStock(z))) s.size = list.find(inStock) ?? null;\n    ref(this, 'sizes').innerHTML = list.map((z) => {\n      const esc = String(z).replace(/\"/g, '&quot;');\n      return `<button type=\"button\" data-s=\"${esc}\" aria-pressed=\"${lc(z) === lc(s.size)}\"${inStock(z) ? '' : ' disabled'}>${esc}</button>`;\n    }).join('');\n    ref(this, 'sizeLbl').textContent = s.size || 'Pick one';\n    ref(this, 'guideBtn').dataset.wwGuide = hound ? 'hound' : 'std';\n\n    /* price + button */\n    const add = ref(this, 'add');\n    const cands = this.match(pr) || [];\n    const v = s.size != null || (pr && pr.zi < 0) ? cands[0] : null;\n    ref(this, 'price').textContent = (v || cands[0])?.p || '';\n    /* no product or nothing in stock: coming soon; in stock but an option is missing: select options */\n    const state = !pr || !cands.some((x) => x.a) ? 'soon' : !v ? 'select' : v.a ? 'add' : 'soon';\n    add.disabled = state !== 'add';\n    add.textContent = state === 'add' ? D.t.add : state === 'select' ? D.t.select || 'Select options' : D.t.soon;\n    ref(this, 'msg').textContent = '';\n\n    this.paint();\n  }\n\n  /* 3D frames: the current line's own photos (custom Color block images win), otherwise the variant photo on white.\n     Never falls back to another line's set. */\n  frameSet() {\n    const c = this.color, sets = this.L.sets || {};\n    const own = this.s.shape === 'hound' ? sets.hound : c && (c.b?.o ? c.b : sets[c.k]);\n    if (own) return own;\n    if (c?.I) return { f: Array(6).fill(c.I), s: c.I, bg: '#FBFBFB', w: true, photo: true };\n    return null;\n  }\n\n  setFlip(on) {\n    this.s.flipped = on;\n    ref(this, 'view').classList.toggle('flip', on);\n    ref(this, 'flip').setAttribute('aria-pressed', String(on));\n    ref(this, 'flipTxt').textContent = on ? this.D.t.unflip : this.D.t.flip;\n  }\n\n  paint() {\n    const set = this.frameSet(), view = ref(this, 'view');\n    if (!set) return;\n    this.classList.toggle('is-photo', !!set.photo);\n    if (set.photo && this.s.flipped) this.setFlip(false);\n    this.imgs.forEach((im, i) => { im.src = set.f[i]; });\n    ref(this, 'sole').src = set.s;\n    view.style.background = set.bg;\n    view.classList.toggle('is-white', !!set.w);\n    this.imgs[0].alt = `Power Paws sock in ${this.s.shape === 'hound' ? 'the Greyhound shape' : this.color.n}`;\n    ref(this, 'tag').textContent = this.s.shape === 'hound' ? this.D.t.hound : this.color.n;\n    this.setAngle(this.s.angle);\n  }\n\n  setAngle(n) {\n    this.s.angle = ((n % 6) + 6) % 6;\n    this.imgs.forEach((im, i) => im.classList.toggle('on', i === this.s.angle));\n    this.dotEls.forEach((d, i) => d.classList.toggle('on', i === this.s.angle));\n  }\n\n  bindView() {\n    const view = ref(this, 'view');\n    let down = false, sx = 0, base = 0;\n    const step = () => Math.max(26, view.getBoundingClientRect().width / 9);\n    view.addEventListener('pointerdown', (e) => {\n      if (e.target.closest('button')) return;\n      down = true; sx = e.clientX; base = this.s.angle; view.setPointerCapture(e.pointerId);\n    });\n    view.addEventListener('pointermove', (e) => {\n      if (!down) return;\n      const d = Math.round((e.clientX - sx) / step());\n      if (d !== 0) view.classList.add('moved');\n      this.setAngle(base + d);\n    });\n    const up = () => { down = false; };\n    view.addEventListener('pointerup', up);\n    view.addEventListener('pointercancel', up);\n    view.addEventListener('keydown', (e) => {\n      if (e.key === 'ArrowRight') { this.setAngle(this.s.angle + 1); view.classList.add('moved'); e.preventDefault(); }\n      if (e.key === 'ArrowLeft') { this.setAngle(this.s.angle - 1); view.classList.add('moved'); e.preventDefault(); }\n    });\n    if (!reduced && !designMode) {\n      let spins = 0;\n      const auto = setInterval(() => {\n        if (!this.isConnected || view.classList.contains('moved') || this.s.flipped || spins >= 12) return clearInterval(auto);\n        const r = view.getBoundingClientRect();\n        if (r.top > innerHeight || r.bottom < 0) return;\n        spins++; this.setAngle(this.s.angle + 1);\n      }, 1400);\n    }\n    ref(this, 'flip').addEventListener('click', () => this.setFlip(!this.s.flipped));\n  }\n\n  async add() {\n    const D = this.D, pr = this.product(), msg = ref(this, 'msg'), btn = ref(this, 'add');\n    if (!pr) return;\n    if (pr.zi > -1 && this.s.size == null) {\n      toast(D.t.pick);\n      ref(this, 'sizes').scrollIntoView({ block: 'center', behavior: reduced ? 'auto' : 'smooth' });\n      return;\n    }\n    const v = (this.match(pr) || [])[0];\n    if (!v) { msg.textContent = D.t.unavailable; return; }\n    if (!v.a) { msg.textContent = D.t.sold; return; }\n    btn.disabled = true;\n    try {\n      await Promise.all([addToCart(v.id, 1, this), flyToBag(btn, this.frameSet()?.s || v.I)]);\n      const who = this.s.shape === 'hound' ? D.t.hound : this.color.n;\n      toast([this.L.n, who, this.s.size].filter(Boolean).join(' \u00B7 '));\n    } catch (err) {\n      msg.textContent = err.message;\n    } finally {\n      btn.disabled = false;\n    }\n  }\n}\n\n/* product cards and any [data-ww-level] link open the builder on their line */\ndocument.addEventListener('click', (e) => {\n  const a = e.target.closest('[data-ww-level]');\n  if (a && WWBuilder.instance?.isConnected) WWBuilder.instance.setLevel(a.dataset.wwLevel, true);\n});\n\n/* \u2500\u2500 product page \"3D view\": the builder's drag-to-rotate viewer in a dialog (images only) \u2500\u2500 */\nlet spin;\nfunction spinDialog() {\n  if (spin) return spin;\n  const d = document.createElement('dialog');\n  d.className = 'ww ww-spin';\n  d.setAttribute('aria-label', '3D view');\n  d.innerHTML = `<div class=\"viewwrap\">\n      <div class=\"view__bar\"><span class=\"view__tag\" data-r=\"tag\"></span><div class=\"view__dots\" data-r=\"dots\" aria-hidden=\"true\"></div><button class=\"view__flip\" type=\"button\" data-r=\"flip\" aria-pressed=\"false\">See the sole</button></div>\n      <div class=\"view\" data-r=\"view\" tabindex=\"0\" role=\"img\" aria-label=\"Sock, drag to rotate through six angles\">\n        <div class=\"view__f\" data-r=\"frames\"></div>\n        <div class=\"view__s\"><img data-r=\"sole\" alt=\"Sole grip pattern\" decoding=\"async\"></div>\n        <span class=\"view__hint\">&#8596; Drag to rotate</span>\n      </div>\n    </div>\n    <button class=\"ww-spin__x\" type=\"button\" data-r=\"close\" aria-label=\"Close\">&times;</button>`;\n  document.body.appendChild(d);\n  const view = ref(d, 'view'), flip = ref(d, 'flip');\n  const imgs = [], dots = [];\n  for (let i = 0; i < 6; i++) {\n    const im = document.createElement('img');\n    im.alt = ''; im.draggable = false; im.decoding = 'async';\n    ref(d, 'frames').appendChild(im); imgs.push(im);\n    dots.push(ref(d, 'dots').appendChild(document.createElement('i')));\n  }\n  let angle = 0, down = false, sx = 0, base = 0;\n  const setAngle = (n) => {\n    angle = ((n % 6) + 6) % 6;\n    imgs.forEach((im, i) => im.classList.toggle('on', i === angle));\n    dots.forEach((t, i) => t.classList.toggle('on', i === angle));\n  };\n  const setFlip = (on) => {\n    view.classList.toggle('flip', on);\n    flip.setAttribute('aria-pressed', String(on));\n    flip.textContent = on ? 'See the sock' : 'See the sole';\n  };\n  const step = () => Math.max(26, view.getBoundingClientRect().width / 9);\n  view.addEventListener('pointerdown', (e) => { down = true; sx = e.clientX; base = angle; view.setPointerCapture(e.pointerId); });\n  view.addEventListener('pointermove', (e) => {\n    if (!down) return;\n    const n = Math.round((e.clientX - sx) / step());\n    if (n !== 0) view.classList.add('moved');\n    setAngle(base + n);\n  });\n  view.addEventListener('pointerup', () => { down = false; });\n  view.addEventListener('pointercancel', () => { down = false; });\n  view.addEventListener('keydown', (e) => {\n    if (e.key === 'ArrowRight') { setAngle(angle + 1); view.classList.add('moved'); e.preventDefault(); }\n    if (e.key === 'ArrowLeft') { setAngle(angle - 1); view.classList.add('moved'); e.preventDefault(); }\n  });\n  flip.addEventListener('click', () => setFlip(!view.classList.contains('flip')));\n  ref(d, 'close').addEventListener('click', () => d.close());\n  d.addEventListener('click', (e) => { if (e.target === d) d.close(); });\n  d.addEventListener('close', () => document.body.classList.remove('is-locked'));\n  spin = {\n    open(set) {\n      imgs.forEach((im, i) => { im.src = set.f[i]; });\n      imgs[0].alt = `Power Paws sock in ${set.n}`;\n      ref(d, 'sole').src = set.s;\n      ref(d, 'tag').textContent = set.n;\n      view.style.background = set.bg;\n      view.classList.toggle('is-white', !!set.w);\n      view.classList.remove('moved');\n      setFlip(false); setAngle(0);\n      document.body.classList.add('is-locked');\n      d.showModal();\n      view.focus();\n    },\n  };\n  return spin;\n}\ndocument.addEventListener('click', (e) => {\n  const b = e.target.closest('[data-ww-spin]');\n  if (!b) return;\n  e.preventDefault();\n  spinDialog().open(JSON.parse(b.dataset.wwSpin));\n});\n\n/* \u2500\u2500 variant pickers: once a preceding option is chosen, a selected value that can't be bought\n   moves to the first value that can (unavailable values are hidden in ww-horizon.css) \u2500\u2500 */\nfunction pickAvailable(picker) {\n  for (const fs of $$('fieldset', picker)) {\n    const cur = $('input[data-current-checked=\"true\"]', fs) || $('input:checked', fs);\n    if (!cur || cur.dataset.optionAvailable !== 'false') continue;\n    const ok = $('input[data-option-available=\"true\"]', fs);\n    if (ok) ok.click();\n    return;\n  }\n}\nlet pickQueued = false;\nnew MutationObserver(() => {\n  if (pickQueued) return;\n  pickQueued = true;\n  requestAnimationFrame(() => { pickQueued = false; $$('variant-picker').forEach(pickAvailable); });\n}).observe(document.documentElement, { subtree: true, attributes: true, attributeFilter: ['data-option-available', 'data-current-checked'] });\ncustomElements.whenDefined('variant-picker').then(() => $$('variant-picker').forEach(pickAvailable));\n\n/* accessory cards: add the chosen variant */\ndocument.addEventListener('change', (e) => {\n  const sel = e.target.closest('.xc select[data-r=\"variant\"]');\n  if (!sel) return;\n  const price = ref(sel.closest('.xc'), 'price');\n  if (price) price.textContent = sel.selectedOptions[0]?.dataset.price || '';\n});\ndocument.addEventListener('click', async (e) => {\n  const b = e.target.closest('[data-ww-add]');\n  if (!b || b.disabled) return;\n  const id = ref(b.closest('.xc'), 'variant')?.value;\n  if (!id) return;\n  b.disabled = true;\n  try {\n    await addToCart(id, 1, b);\n    toast(`${b.dataset.name} added`);\n  } catch (err) {\n    toast(err.message);\n  } finally {\n    b.disabled = false;\n  }\n});\n\n/* \u2500\u2500 terrain: vertical scroll drives a horizontal strip \u2500\u2500 */\nclass WWTerrain extends HTMLElement {\n  connectedCallback() {\n    const v = ref(this, 'view'), track = ref(this, 'track');\n    let maxX = 0, on = false;\n    const measure = () => {\n      on = innerWidth >= 900 && !designMode;\n      if (!on) { this.style.height = ''; track.style.transform = ''; return; }\n      maxX = Math.max(0, track.scrollWidth - v.clientWidth);\n      this.style.height = innerHeight + maxX + 'px';\n    };\n    const update = () => {\n      if (!on) return;\n      const r = this.getBoundingClientRect();\n      const total = this.offsetHeight - innerHeight;\n      const p = clamp(-r.top / (total || 1), 0, 1);\n      track.style.transform = `translate3d(${-p * maxX}px,0,0)`;\n    };\n    new ResizeObserver(() => { measure(); update(); }).observe(track);\n    addEventListener('resize', () => { measure(); update(); }, { passive: true });\n    addEventListener('scroll', update, { passive: true });\n    measure(); update();\n    autoSlide(v, [...track.children]);\n  }\n}\n\n/* \u2500\u2500 fit finder \u2500\u2500 */\nclass WWFit extends HTMLElement {\n  connectedCallback() {\n    const rows = JSON.parse(ref(this, 'data').textContent);\n    const MIN = { std: +this.dataset.minStd || 5, hound: +this.dataset.minHound || 6 };\n    const MAX = { std: +this.dataset.maxStd || 240, hound: +this.dataset.maxHound || 120 };\n    const PDF = { std: this.dataset.pdfStd, hound: this.dataset.pdfHound };\n    const rng = ref(this, 'rng'), scale = ref(this, 'scale'), paws = $$('button', ref(this, 'paws'));\n    const pdf = ref(this, 'pdf'), guide = ref(this, 'guide');\n    let shape = 'std';\n    const table = () => {\n      const t = rows.filter((r) => r.shape === shape).sort((a, b) => a.b - b.b);\n      return t.map((r, i) => ({ ...r, a: i ? t[i - 1].b : MIN[shape] }));\n    };\n    const cap = () => {\n      rng.min = MIN[shape];\n      rng.max = MAX[shape];\n      rng.value = clamp(+rng.value, MIN[shape], MAX[shape]);\n      ref(this, 'min').textContent = MIN[shape] + ' lb';\n      ref(this, 'max').textContent = MAX[shape] + ' lb';\n      if (pdf) { pdf.hidden = !PDF[shape]; if (PDF[shape]) pdf.href = PDF[shape]; }\n    };\n    const showChart = (s) => {\n      $$('[data-s]', ref(this, 'guide-tabs')).forEach((b) => b.setAttribute('aria-pressed', String(b.dataset.s === s)));\n      $$('.ww-guide__img', guide).forEach((el) => { el.hidden = el.dataset.s !== s; });\n    };\n    $$('[data-s]', ref(this, 'guide-tabs')).forEach((b) => b.addEventListener('click', () => showChart(b.dataset.s)));\n    ref(this, 'guide-open')?.addEventListener('click', () => {\n      showChart(shape);\n      document.body.classList.add('is-locked');\n      guide.showModal();\n    });\n    ref(this, 'guide-close').addEventListener('click', () => guide.close());\n    guide.addEventListener('click', (e) => { if (e.target === guide) guide.close(); });\n    guide.addEventListener('close', () => document.body.classList.remove('is-locked'));\n    const draw = () => {\n      scale.innerHTML = table().map((r) => `<div class=\"scale__s\" style=\"flex-grow:${Math.max(1, r.b - r.a)}\"><span>${r.s}</span></div>`).join('');\n    };\n    const apply = () => {\n      const w = +rng.value, t = table();\n      ref(this, 'wt').textContent = w;\n      if (!t.length) return;\n      let i = t.findIndex((r) => w < r.b);\n      if (i < 0) i = t.length - 1;\n      const r = t[i];\n      ref(this, 'code').textContent = r.s;\n      ref(this, 'range').textContent = r.t;\n      ref(this, 'breeds').textContent = r.d;\n      ref(this, 'shape').textContent = $(`[data-s=\"${shape}\"] b`, this)?.textContent || '';\n      $$('.scale__s', scale).forEach((el, k) => el.classList.toggle('on', k === i));\n    };\n    rng.addEventListener('input', apply);\n    paws.forEach((b) => b.addEventListener('click', () => {\n      shape = b.dataset.s;\n      paws.forEach((x) => x.setAttribute('aria-pressed', String(x === b)));\n      cap(); draw(); apply();\n    }));\n    cap(); draw(); apply();\n  }\n}\n\n/* \u2500\u2500 paw trail (home page) \u2500\u2500 */\nfunction pawTrail() {\n  const layer = $('[data-ww-trail]');\n  if (!layer || innerWidth < 760 || layer.childElementCount) return;\n  const N = clamp(Math.round(layer.offsetHeight / 150), 60, 220);\n  const frag = document.createDocumentFragment();\n  [{ phase: 0, side: 50 }, { phase: Math.PI, side: 50 }].forEach((tr) => {\n    for (let i = 0; i < N; i++) {\n      const t = i / (N - 1);\n      const gait = (i % 2 ? 1 : -1) * 3.4;\n      const wave = Math.sin(t * Math.PI * 9 + tr.phase);\n      const x = tr.side + wave * 40 + gait;\n      const y = 0.5 + t * 99;\n      const r = wave * 34 + (i % 2 ? 11 : -11) + (i % 3) * 4;\n      const size = Math.round(80 + Math.sin(t * Math.PI * 14 + tr.phase) * 24);\n      const el = document.createElement('i');\n      el.style.cssText = `left:${x}%;top:${y}%;width:${size}px;height:${size}px;--r:${r}deg`;\n      el.innerHTML = PAW;\n      frag.appendChild(el);\n    }\n  });\n  layer.appendChild(frag);\n  const ob = new IntersectionObserver((es) => es.forEach((e) => {\n    if (e.isIntersecting) { e.target.classList.add('on'); ob.unobserve(e.target); }\n  }), { rootMargin: '0px 0px -8% 0px', threshold: 0 });\n  [...layer.children].forEach((el) => ob.observe(el));\n}\nif (document.readyState === 'complete') pawTrail(); else addEventListener('load', pawTrail);\n\n/* \u2500\u2500 FAQ deep links open the answer they point at \u2500\u2500 */\nfunction openTarget(id) {\n  const t = id && document.getElementById(id);\n  if (!t) return false;\n  const d = t.matches('details') ? t : t.closest('details');\n  if (!d) return false;\n  d.open = true;\n  t.scrollIntoView({ behavior: reduced ? 'auto' : 'smooth', block: 'start' });\n  return true;\n}\ndocument.addEventListener('click', (e) => {\n  const a = e.target.closest('a[href*=\"#\"]');\n  if (!a || a.origin !== location.origin || a.pathname !== location.pathname) return;\n  const id = decodeURIComponent(a.hash.slice(1));\n  if (openTarget(id)) { e.preventDefault(); history.replaceState(null, '', '#' + id); }\n});\nif (location.hash) addEventListener('load', () => openTarget(decodeURIComponent(location.hash.slice(1))));\n\n/* \u2500\u2500 product page size guide (snippets/ww-size-guide): delegated, the variant picker is re-rendered on every change \u2500\u2500 */\nconst guideShow = (d, s) => {\n  $$('.ww-guide__tabs [data-s]', d).forEach((b) => b.setAttribute('aria-pressed', String(b.dataset.s === s)));\n  $$('.ww-guide__img', d).forEach((el) => { el.hidden = el.dataset.s !== s; });\n};\ndocument.addEventListener('click', (e) => {\n  const open = e.target.closest('[data-ww-guide]');\n  if (open) {\n    const d = open.parentElement.querySelector('dialog');\n    guideShow(d, open.dataset.wwGuide);\n    document.body.classList.add('is-locked');\n    d.showModal();\n    return;\n  }\n  const d = e.target.closest('dialog.ww-sg__dlg');\n  if (!d) return;\n  const tab = e.target.closest('.ww-guide__tabs [data-s]');\n  if (tab) guideShow(d, tab.dataset.s);\n  else if (e.target === d || e.target.closest('[data-ww-guide-close]')) d.close();\n});\ndocument.addEventListener('close', (e) => { if (e.target.matches?.('dialog.ww-sg__dlg')) document.body.classList.remove('is-locked'); }, true);\n\n/* \u2500\u2500 photo zoom (sections/ww-friends): a cropped circle opens the whole photo; falls back to the circle's image \u2500\u2500 */\nlet zoomDlg;\ndocument.addEventListener('click', (e) => {\n  const b = e.target.closest('[data-ww-zoom]');\n  if (!b) return;\n  if (!zoomDlg) {\n    zoomDlg = document.createElement('dialog');\n    zoomDlg.className = 'ww ww-spin ww-zoom';\n    zoomDlg.innerHTML = '<img alt=\"\" decoding=\"async\"><button class=\"ww-spin__x\" type=\"button\" aria-label=\"Close\">&times;</button>';\n    zoomDlg.addEventListener('click', (ev) => { if (ev.target === zoomDlg || ev.target.closest('.ww-spin__x')) zoomDlg.close(); });\n    zoomDlg.addEventListener('close', () => document.body.classList.remove('is-locked'));\n    document.body.appendChild(zoomDlg);\n  }\n  const im = $('img', zoomDlg), thumb = $('img', b);\n  im.onerror = () => { im.onerror = null; im.src = thumb?.currentSrc || thumb?.src || ''; };\n  im.src = b.dataset.wwZoom;\n  im.alt = b.dataset.wwZoomAlt || '';\n  document.body.classList.add('is-locked');\n  zoomDlg.showModal();\n});\n\n/* \u2500\u2500 video grids (sections/ww-page): the YouTube/Vimeo player loads only once a card is clicked \u2500\u2500 */\ndocument.addEventListener('click', (e) => {\n  const b = e.target.closest('[data-ww-embed]');\n  if (!b) return;\n  const f = document.createElement('iframe');\n  f.src = b.dataset.wwEmbed;\n  f.title = b.getAttribute('aria-label').replace(/^Play video: /, '');\n  f.allow = 'autoplay; encrypted-media; picture-in-picture; fullscreen';\n  f.allowFullscreen = true;\n  b.replaceWith(f);\n});\n\nconst define = (n, c) => { if (!customElements.get(n)) customElements.define(n, c); };\ndefine('ww-header', WWHeader);\ndefine('ww-sec', WWSec);\ndefine('ww-slider', WWSlider);\ndefine('ww-marquee', WWMarquee);\ndefine('ww-builder', WWBuilder);\ndefine('ww-terrain', WWTerrain);\ndefine('ww-fit', WWFit);\n"],
  "mappings": "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",
  "names": ["inStock", "v", "r", "d"]
}
