{
  "version": 3,
  "sources": ["/cdn/shop/t/15/assets/lavi-catalog-portal.js?cb=1782252037"],
  "sourcesContent": ["/*\n * Lexa Catalog Portal \u2014 interactive renderer\n * Vanilla-JS 1:1 port of the Claude Design \"Catalog Portal\" mock.\n * Data is read from a JSON island (#data-el) populated by\n * sections/lavi-catalog-portal.liquid from the product/material/enhancement\n * metaobjects. When a list is empty the baked-in FALLBACK (the mock's exact\n * data) is used so the page is pixel-perfect out of the box.\n */\n(function () {\n  'use strict';\n\n  /* ---------------- DOM helper ---------------- */\n  function h(tag, attrs) {\n    var el = document.createElement(tag);\n    var children = Array.prototype.slice.call(arguments, 2);\n    if (attrs) {\n      for (var k in attrs) {\n        if (!Object.prototype.hasOwnProperty.call(attrs, k)) continue;\n        var v = attrs[k];\n        if (v == null || v === false) continue;\n        if (k === 'style' && typeof v === 'object') { Object.assign(el.style, v); }\n        else if (k === 'class') { el.className = v; }\n        else if (k === 'html') { el.innerHTML = v; }\n        else if (k.slice(0, 2) === 'on' && typeof v === 'function') { el.addEventListener(k.slice(2).toLowerCase(), v); }\n        else if (k === 'value') { el.value = v; }\n        else { el.setAttribute(k, v); }\n      }\n    }\n    append(el, children);\n    return el;\n  }\n  function append(el, children) {\n    children.forEach(function (c) {\n      if (c == null || c === false) return;\n      if (Array.isArray(c)) { append(el, c); return; }\n      el.appendChild(typeof c === 'object' ? c : document.createTextNode(String(c)));\n    });\n  }\n  function clear(el) { while (el.firstChild) el.removeChild(el.firstChild); }\n  function uniq(a) { return a.filter(function (v, i) { return a.indexOf(v) === i; }); }\n\n  /* Image helpers \u2014 entries carry `image` (primary) and `gallery` (list of\n   * URLs). Both are emitted by the section from the metaobject file_reference\n   * fields, and are null/[] when nothing is linked, so every caller must cope\n   * with their absence. imageList() returns primary-first, de-duplicated. */\n  function firstImage(o) {\n    if (!o) return null;\n    if (o.image) return o.image;\n    if (o.gallery && o.gallery.length) return o.gallery[0];\n    return null;\n  }\n  function imageList(o) {\n    if (!o) return [];\n    var out = [];\n    if (o.image) out.push(o.image);\n    (o.gallery || []).forEach(function (g) { if (g && out.indexOf(g) < 0) out.push(g); });\n    return out;\n  }\n\n  /* ---------------- constants ---------------- */\n  var SIZES = ['YM', 'YL', 'AS', 'AM', 'AL', 'AXL'];\n  var SIZE_CHART = [\n    { size: 'YM', chest: '34\"', length: '25\"' }, { size: 'YL', chest: '36\"', length: '26\"' },\n    { size: 'AS', chest: '38\"', length: '28\"' }, { size: 'AM', chest: '40\"', length: '29\"' },\n    { size: 'AL', chest: '44\"', length: '30\"' }, { size: 'AXL', chest: '48\"', length: '31\"' }\n  ];\n\n  /* ---------------- fallback data (mock) ---------------- */\n  var FALLBACK = {\n    products: [\n      { id: 'p1', name: 'Diamond Pro Jersey', sku: 'LX-BJ-203', typeLabel: 'Jersey', activities: ['Baseball'], fabricNames: ['Pulse Knit'], sleeve: 'Short Sleeve', neck: 'Crew Neck', seam: 'Flatlock', hem: 'Straight Hem', fit: 'Pro Fit', sizes: ['YM', 'YL', 'AS', 'AM', 'AL', 'AXL'], moq: 25, lead: '3\u20134 wks', price: '$28', status: 'design', tier: 'Tier 2', featured: true, desc: 'A tournament-ready baseball jersey in our cool-running Pulse Knit, built for full-sublimation team identities.' },\n      { id: 'p2', name: 'Two-Button Henley', sku: 'LX-BJ-118', typeLabel: 'Jersey', activities: ['Baseball'], fabricNames: ['Elite Knit'], sleeve: 'Short Sleeve', neck: 'Henley', seam: 'Flatlock', hem: 'Straight Hem', fit: 'Pro Fit', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 25, lead: '3\u20134 wks', price: '$28', status: 'design', tier: 'Tier 2', desc: 'A modern two-button henley placket with a structured Elite Knit hand and clean front panel for crests.' },\n      { id: 'p3', name: 'Heritage Full-Button', sku: 'LX-BJ-090', typeLabel: 'Jersey', activities: ['Baseball'], fabricNames: ['Lite Jersey'], sleeve: 'Short Sleeve', neck: 'Crew Neck', seam: 'Standard', hem: 'Straight Hem', fit: 'Classic Fit', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 50, lead: '2\u20133 wks', price: '$28', status: 'order', tier: 'Tier 1', desc: 'A classic full-button baseball jersey available blank for fast turnaround on heritage programs.' },\n      { id: 'p4', name: 'Strike Soccer Jersey', sku: 'LX-SC-311', typeLabel: 'Jersey', activities: ['Soccer'], fabricNames: ['Pulse Knit'], sleeve: 'Short Sleeve', neck: 'V Neck', seam: 'Flatlock', hem: 'Straight Hem', fit: 'Match Fit', sizes: ['YM', 'YL', 'AS', 'AM', 'AL', 'AXL'], moq: 20, lead: '3\u20134 wks', price: '$28', status: 'design', tier: 'Tier 2', featured: true, desc: 'A lightweight, fully designable match jersey with a clean V-neck and flatlock seams for all-day comfort.' },\n      { id: 'p5', name: 'Keeper LS Jersey', sku: 'LX-SC-204', typeLabel: 'Jersey', activities: ['Soccer'], fabricNames: ['Performance Mesh'], sleeve: 'Full Sleeve', neck: 'Crew Neck', seam: 'Reinforced', hem: 'Straight Hem', fit: 'Match Fit', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 30, lead: '4\u20135 wks', price: '$28', status: 'order', tier: 'Tier 3', desc: 'A long-sleeve goalkeeper jersey with reinforced elbows, available blank for sideline-ready stock.' },\n      { id: 'p6', name: 'Reversible Hoops', sku: 'LX-BK-150', typeLabel: 'Jersey', activities: ['Basketball'], fabricNames: ['Performance Mesh'], sleeve: 'Sleeveless', neck: 'V Neck', seam: 'Flatlock', hem: 'Straight Hem', fit: 'Game Fit', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 24, lead: '3 wks', price: '$28', status: 'design', tier: 'Tier 2', desc: 'A double-knit reversible basketball jersey in breathable mesh \u2014 two looks, one designable garment.' },\n      { id: 'p7', name: 'Court Volley Jersey', sku: 'LX-VB-077', typeLabel: 'Jersey', activities: ['Volleyball'], fabricNames: ['Elite Knit'], sleeve: 'Short Sleeve', neck: 'V Neck', seam: 'Flatlock', hem: 'Straight Hem', fit: 'Athletic Fit', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 25, lead: '3\u20134 wks', price: '$28', status: 'design', tier: 'Tier 2', desc: 'A snug athletic-fit volleyball jersey with a structured Elite Knit and full design capability.' },\n      { id: 'p8', name: 'Train Daily Tee', sku: 'LX-TR-012', typeLabel: 'Jersey', activities: ['Training'], fabricNames: ['Lite Jersey'], sleeve: 'Short Sleeve', neck: 'Crew Neck', seam: 'Standard', hem: 'Straight Hem', fit: 'Relaxed Fit', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 40, lead: '2 wks', price: '$28', status: 'order', tier: 'Tier 1', desc: 'A soft everyday training tee in value-priced Lite Jersey, stocked blank for quick team add-ons.' },\n      { id: 'p9', name: 'Tempo Shorts', sku: 'LX-TR-330', typeLabel: 'Shorts', activities: ['Training'], fabricNames: ['Performance Mesh'], sleeve: '\u2014', neck: '\u2014', seam: 'Flatlock', hem: 'Banded Hem', fit: 'Athletic Fit', inseam: '7\"', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 30, lead: '2\u20133 wks', price: '$22', status: 'design', tier: 'Tier 1', desc: 'Lightweight training shorts with an elastic waistband and breathable mesh panels, fully designable.' },\n      { id: 'p10', name: 'Clay Baseball Pants', sku: 'LX-BP-061', typeLabel: 'Pants', activities: ['Baseball'], fabricNames: ['Power Stretch'], sleeve: '\u2014', neck: '\u2014', seam: 'Reinforced', hem: 'Open Bottom', fit: 'Game Fit', inseam: 'Open Bottom', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 30, lead: '4 wks', price: '$26', status: 'order', tier: 'Tier 2', desc: 'Game-fit baseball pants in abrasion-resistant Power Stretch, available blank in core colors.' },\n      { id: 'p11', name: 'Sideline Hoodie', sku: 'LX-TV-440', typeLabel: 'Hoodie', activities: ['Sideline/Travel'], fabricNames: ['Elite Knit'], sleeve: 'Full Sleeve', neck: 'Hooded', seam: 'Flatlock', hem: 'Ribbed Hem', fit: 'Standard Fit', sizes: ['AS', 'AM', 'AL', 'AXL'], moq: 50, lead: 'Coming Soon', price: '$42', status: 'soon', tier: 'Tier 3', desc: 'A premium travel hoodie launching next season \u2014 register interest to be first in line.' },\n      { id: 'p12', name: 'Pro Snapback', sku: 'LX-HT-501', typeLabel: 'Hat', activities: ['Hats'], fabricNames: ['Specialty'], sleeve: '\u2014', neck: '\u2014', seam: 'Standard', hem: '\u2014', fit: 'Adjustable', sizes: ['S/M', 'L/XL'], moq: 48, lead: 'By Request', price: '$16', status: 'request', tier: 'Tier 1', desc: 'A structured six-panel snapback with custom embroidery \u2014 built to order on request.' }\n    ],\n    materials: [\n      { id: 'f1', name: 'Pulse Knit', gsm: '180 GSM', weave: 'knit', bg: '#E1DED6', comp: '88% Poly / 12% Spandex', stretch: '4-Way Stretch', breath: 5, breathLabel: 'High', durability: 'High', opacity: 'Opaque', weight: 'Light', finish: 'Matte', category: 'Performance Knit', features: ['Moisture Wicking', 'Lightweight', 'Fast Drying'], sports: ['Baseball', 'Soccer', 'Basketball'], colors: [['White', '#F4F1EA'], ['Black', '#17140F'], ['Royal', '#20418C'], ['Scarlet', '#B2362B'], ['Forest', '#1F5C46'], ['Gold', '#C79321']], desc: 'Textured performance knit engineered for elite teams that move fast and need to stay cool under pressure.' },\n      { id: 'f2', name: 'Elite Knit', gsm: '210 GSM', weave: 'knit', bg: '#DAD6CC', comp: '90% Poly / 10% Spandex', stretch: '4-Way Stretch', breath: 4, breathLabel: 'Medium-High', durability: 'High', opacity: 'Opaque', weight: 'Mid', finish: 'Textured', category: 'Performance Knit', features: ['Structured Hand', 'Color-Lock', 'Durable'], sports: ['Baseball', 'Volleyball'], colors: [['White', '#F4F1EA'], ['Black', '#17140F'], ['Navy', '#1E2A44'], ['Scarlet', '#B2362B'], ['Graphite', '#4A4640']], desc: 'A heavier structured knit with premium hand-feel and excellent color retention for elevated programs.' },\n      { id: 'f3', name: 'Lite Jersey', gsm: '150 GSM', weave: 'jersey', bg: '#E7E3DA', comp: '100% Polyester', stretch: '2-Way Stretch', breath: 4, breathLabel: 'Medium-High', durability: 'Medium', opacity: 'Semi-Opaque', weight: 'Light', finish: 'Smooth', category: 'Jersey', features: ['Breathable', 'Soft Hand', 'Value'], sports: ['Training', 'Baseball'], colors: [['White', '#F4F1EA'], ['Black', '#17140F'], ['Royal', '#20418C'], ['Red', '#B2362B'], ['Gold', '#C79321']], desc: 'A soft, breathable everyday jersey at a value price point \u2014 ideal for practice gear and quick stock.' },\n      { id: 'f4', name: 'Performance Mesh', gsm: '145 GSM', weave: 'mesh', bg: '#E3E1DA', comp: '100% Polyester', stretch: '2-Way Stretch', breath: 5, breathLabel: 'High', durability: 'Medium', opacity: 'Open', weight: 'Light', finish: 'Open Mesh', category: 'Mesh', features: ['Max Airflow', 'Quick Dry', 'Lightweight'], sports: ['Basketball', 'Soccer', 'Training'], colors: [['White', '#F4F1EA'], ['Black', '#17140F'], ['Royal', '#20418C'], ['Forest', '#1F5C46'], ['Orange', '#C46A21']], desc: 'An open-construction mesh delivering maximum airflow for high-output sports and warm-weather play.' },\n      { id: 'f5', name: 'Sublime Poly', gsm: '200 GSM', weave: 'jersey', bg: '#E6E1D6', comp: '100% Polyester', stretch: '2-Way Stretch', breath: 4, breathLabel: 'Medium-High', durability: 'High', opacity: 'Opaque', weight: 'Mid', finish: 'Smooth', category: 'Jersey', features: ['Print-Ready', 'Vivid Color', 'Durable'], sports: ['Soccer', 'Volleyball'], colors: [['White', '#F4F1EA'], ['Black', '#17140F'], ['Royal', '#20418C'], ['Scarlet', '#B2362B'], ['Teal', '#1C6E73']], desc: 'A smooth, print-optimized poly that holds vivid full-sublimation color edge-to-edge with no bleed.' },\n      { id: 'f6', name: 'Power Stretch', gsm: '240 GSM', weave: 'compression', bg: '#D8D5CD', comp: '80% Nylon / 20% Spandex', stretch: '4-Way Stretch', breath: 3, breathLabel: 'Medium', durability: 'Very High', opacity: 'Opaque', weight: 'Heavy', finish: 'Matte', category: 'Compression', features: ['Compression', 'Shape Retention', 'Abrasion Resistant'], sports: ['Baseball', 'Training'], colors: [['White', '#F4F1EA'], ['Black', '#17140F'], ['Graphite', '#4A4640'], ['Navy', '#1E2A44']], desc: 'A dense, hard-wearing compression fabric with strong shape retention for game pants and base layers.' }\n    ],\n    enhancements: [\n      { id: 'e1', name: 'Twill Patches', pat: 'patch', desc: 'Stitched twill and chenille patches for crests, captaincy marks, and championship years.', lead: '+1 wk' },\n      { id: 'e2', name: 'Embroidery', pat: 'thread', desc: 'Premium thread embroidery for logos, names, and numbers with a textured, lasting finish.', lead: '+1 wk' },\n      { id: 'e3', name: 'Full Sublimation', pat: 'sub', desc: 'Edge-to-edge dye sublimation \u2014 unlimited colors and gradients printed into the fabric.', lead: 'Included' },\n      { id: 'e4', name: 'Heat Transfer', pat: 'heat', desc: 'Crisp heat-applied numbers and lettering with fast turnaround for roster changes.', lead: '+3 days' },\n      { id: 'e5', name: 'Silicone Print', pat: 'sil', desc: 'Raised silicone graphics for a tactile, high-end look on crests and sponsor marks.', lead: '+1 wk' }\n    ]\n  };\n\n  /* ---------------- per-instance app ---------------- */\n  function CatalogPortal(root) {\n    var dataEl = root.querySelector('[data-cp-data]');\n    var payload = {};\n    try { payload = JSON.parse(dataEl.textContent || '{}'); } catch (e) { payload = {}; }\n    var S = payload.settings || {};\n\n    var products = (payload.products && payload.products.length) ? payload.products : FALLBACK.products;\n    var materials = (payload.materials && payload.materials.length) ? payload.materials : FALLBACK.materials;\n    var enhancements = (payload.enhancements && payload.enhancements.length) ? payload.enhancements : FALLBACK.enhancements;\n\n    // Coerce list/object fields so live metaobject data (which may emit null for\n    // empty fields) never breaks rendering.\n    products = products.map(function (p) {\n      p.activities = p.activities || (p.activity ? [p.activity] : []);\n      p.fabricNames = p.fabricNames || (p.fabric ? [p.fabric] : []);\n      p.sizes = p.sizes || [];\n      return p;\n    });\n    materials = materials.map(function (f) {\n      f.features = f.features || []; f.sports = f.sports || []; f.colors = f.colors || [];\n      return f;\n    });\n\n    // Full-bleed always; hide theme chrome only in full-screen mode.\n    document.body.classList.add('cp-active');\n    if (S.fullScreen !== false) document.body.classList.add('cp-fullscreen');\n    function fitHeight() {\n      if (S.fullScreen !== false) { root.style.removeProperty('--cp-app-h'); return; }\n      var top = Math.max(0, Math.round(root.getBoundingClientRect().top));\n      root.style.setProperty('--cp-app-h', 'calc(100vh - ' + top + 'px)');\n    }\n    window.addEventListener('resize', fitHeight);\n\n    var defaults = {\n      showStats: S.showStats !== false, showSearch: S.showSearch !== false, showSaved: S.showSaved !== false,\n      showRequest: S.showRequest !== false, showSort: S.showSort !== false, showFilters: S.showFilters !== false,\n      showCompare: S.showCompare !== false, showMaterials: S.showMaterials !== false, showEnhancements: S.showEnhancements !== false,\n      density: S.density || 'Comfortable', statsMode: S.statsMode || 'auto', customStats: S.customStats || [],\n      requestSuccess: S.requestSuccess || 'Our sourcing team will reach out within one business day with availability, lead times, and a quote.',\n      labels: {\n        design: (S.labels && S.labels.design) || 'Design Now',\n        order: (S.labels && S.labels.order) || 'Order Blank',\n        request: (S.labels && S.labels.request) || 'Request Product',\n        soon: (S.labels && S.labels.soon) || 'Notify Me',\n        quickView: (S.labels && S.labels.quickView) || 'Quick View'\n      }\n    };\n    var L = defaults.labels;\n\n    var initialPage = (S.defaultTab === 'materials' && defaults.showMaterials) ? 'materials'\n      : (S.defaultTab === 'enhancements' && defaults.showEnhancements) ? 'enhancements' : 'products';\n\n    var state = {\n      page: initialPage, sort: 'featured', search: '',\n      filters: {}, collapsed: [], saved: [], compare: [], hovered: null,\n      productOpen: null, fabricOpen: null, compareOpen: false,\n      requestOpen: false, requestSubmitted: false, requestSubtitle: \"Can't find what you need? Tell us and we'll source it.\",\n      form: { name: '', email: '', org: '', qty: '', req: '' }\n    };\n\n    /* ---- derived helpers ---- */\n    function artShape(p) {\n      var t = (p.typeLabel || '').toLowerCase();\n      if (t.indexOf('short') === 0) return 'shorts';\n      if (t.indexOf('pant') === 0) return 'pants';\n      if (t.indexOf('hat') === 0 || t.indexOf('cap') === 0 || t.indexOf('headwear') === 0) return 'hat';\n      return 'jersey';\n    }\n    function primaryFabric(p) { return (p.fabricNames && p.fabricNames[0]) || ''; }\n    function fabricAlts(p) {\n      if (p.fabricNames && p.fabricNames.length > 1) return p.fabricNames.slice(0, 4);\n      return uniq([primaryFabric(p), 'Elite Knit', 'Lite Jersey', 'Performance Mesh']).filter(Boolean).slice(0, 3);\n    }\n    function sizeChartFor(p) {\n      if (p.sizeChart && p.sizeChart.length) return p.sizeChart;\n      var rows = SIZE_CHART.filter(function (r) { return p.sizes.indexOf(r.size) >= 0; });\n      return rows.length ? rows : (['S/M', 'L/XL'].indexOf(p.sizes[0]) >= 0 ? [] : SIZE_CHART);\n    }\n    function STATUS(s) {\n      var m = {\n        design: { bg: '#E6F0E8', fg: '#2E7350', dot: '#3C9A66', label: 'Design Ready' },\n        order: { bg: '#F6ECD4', fg: '#9A6B12', dot: '#C79321', label: 'Order Only' },\n        request: { bg: '#F3E2DC', fg: '#A23B2C', dot: '#C0492F', label: 'Request Product' },\n        soon: { bg: '#E9E6E0', fg: '#6E665A', dot: '#A39A8B', label: 'Coming Soon' }\n      };\n      return m[s] || m.soon;\n    }\n    function availabilityOf(s) { return { design: 'Available for Design', order: 'Available for Order', request: 'Custom Request', soon: 'Coming Soon' }[s]; }\n\n    /* ---- SVG / swatch / icon builders ---- */\n    function art(shape, opts) {\n      var o = opts || {}; var stroke = '#9C9384'; var sw = 2.3;\n      function P(d) { return '<path d=\"' + d + '\" fill=\"none\" stroke=\"' + stroke + '\" stroke-width=\"' + sw + '\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>'; }\n      var paths = [];\n      if (shape === 'shorts') { paths = [P('M44,46 L116,46 L112,114 L86,114 L80,74 L74,114 L48,114 Z'), P('M44,59 L116,59')]; }\n      else if (shape === 'pants') { paths = [P('M50,42 L110,42 L106,150 L86,150 L80,76 L74,150 L54,150 Z'), P('M50,55 L110,55')]; }\n      else if (shape === 'hat') { paths = [P('M46,96 C46,52 114,52 114,96'), P('M40,96 Q80,86 120,96 Q123,105 114,107 L46,107 Q37,105 40,96 Z'), P('M80,56 L80,96'), P('M64,60 Q80,55 96,60')]; }\n      else {\n        paths = [P('M58,42 L34,54 L45,90 L60,84 L57,150 L103,150 L100,84 L115,90 L126,54 L102,42')];\n        if (o.view === 'back') { paths.push(P('M58,42 C68,50 92,50 102,42')); paths.push(P('M59,62 Q80,69 101,62')); }\n        else { paths.push(P('M58,42 C66,58 94,58 102,42')); }\n        if (o.placket && o.view !== 'back') {\n          paths.push(P('M80,53 L80,150'));\n          paths.push('<circle cx=\"80\" cy=\"72\" r=\"1.7\" fill=\"' + stroke + '\"/><circle cx=\"80\" cy=\"94\" r=\"1.7\" fill=\"' + stroke + '\"/><circle cx=\"80\" cy=\"116\" r=\"1.7\" fill=\"' + stroke + '\"/>');\n        }\n      }\n      return '<svg viewBox=\"0 0 160 170\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"xMidYMid meet\" style=\"display:block\">' + paths.join('') + '</svg>';\n    }\n    function swatchStyle(f) {\n      var ink = '35,30,22'; var img, size;\n      if (f.weave === 'mesh') { img = 'radial-gradient(circle, rgba(' + ink + ',0.20) 1.3px, transparent 1.7px)'; size = '10px 10px'; }\n      else if (f.weave === 'knit') { img = 'repeating-linear-gradient(45deg, rgba(' + ink + ',0.10) 0 2px, transparent 2px 5px), repeating-linear-gradient(-45deg, rgba(' + ink + ',0.06) 0 2px, transparent 2px 5px)'; size = 'auto'; }\n      else if (f.weave === 'compression') { img = 'repeating-linear-gradient(62deg, rgba(' + ink + ',0.13) 0 2px, transparent 2px 6px)'; size = 'auto'; }\n      else { img = 'repeating-linear-gradient(0deg, rgba(' + ink + ',0.07) 0 1px, transparent 1px 4px)'; size = 'auto'; }\n      var sheen = 'linear-gradient(135deg, rgba(255,255,255,0.55), rgba(255,255,255,0) 55%)';\n      return { width: '100%', height: '100%', backgroundColor: f.bg || '#E3E1DA', backgroundImage: sheen + ', ' + img, backgroundSize: 'auto, ' + size };\n    }\n    function swatchEl(f) { return h('div', { style: swatchStyle(f) }); }\n    function enhIcon(pat) {\n      var st = '#6E665A';\n      function P(d) { return '<path d=\"' + d + '\" fill=\"none\" stroke=\"' + st + '\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>'; }\n      var inner;\n      if (pat === 'patch') inner = P('M7,5 H17 V19 L12,16 L7,19 Z');\n      else if (pat === 'thread') inner = P('M5,12 Q9,5 12,12 T19,12') + '<circle cx=\"5\" cy=\"12\" r=\"1.4\" fill=\"' + st + '\"/>';\n      else if (pat === 'sub') inner = '<rect x=\"5\" y=\"5\" width=\"14\" height=\"14\" rx=\"2\" fill=\"none\" stroke=\"' + st + '\" stroke-width=\"1.7\"/>' + P('M5,14 L9,10 L13,14 L17,10');\n      else if (pat === 'heat') inner = P('M6,16 H18') + P('M12,5 V12') + P('M9,9 L12,12 L15,9');\n      else inner = '<circle cx=\"12\" cy=\"12\" r=\"6\" fill=\"none\" stroke=\"' + st + '\" stroke-width=\"1.7\"/><circle cx=\"12\" cy=\"12\" r=\"2\" fill=\"' + st + '\"/>';\n      return '<svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">' + inner + '</svg>';\n    }\n\n    /* ---- small elements ---- */\n    var MONO = \"var(--cp-font-mono)\";\n    function cmpIcon(on) {\n      var fill = on ? 'var(--cp-accent)' : 'transparent';\n      var stroke = on ? 'var(--cp-accent)' : '#9C9384';\n      var arrows = on ? '<path d=\"M5,6.2 H11 M9.2,4.6 L11,6.2 L9.2,7.8 M11,9.8 H5 M6.8,8.2 L5,9.8 L6.8,11.4\" fill=\"none\" stroke=\"#F4F1EA\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>' : '';\n      return '<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" style=\"display:block\">' +\n        '<rect x=\"1.4\" y=\"1.4\" width=\"13.2\" height=\"13.2\" rx=\"3.6\" fill=\"' + fill + '\" stroke=\"' + stroke + '\" stroke-width=\"1.5\"/>' + arrows + '</svg>';\n    }\n    function starIcon(on) {\n      var fill = on ? '#C79321' : 'none';\n      var stroke = on ? '#C79321' : '#9C9384';\n      return '<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" style=\"display:block\">' +\n        '<path d=\"M12 3.4 l2.55 5.45 6.0 .6 -4.55 4.0 1.35 5.9 -5.35 -3.05 -5.35 3.05 1.35 -5.9 -4.55 -4.0 6.0 -.6 Z\" fill=\"' + fill + '\" stroke=\"' + stroke + '\" stroke-width=\"1.7\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/></svg>';\n    }\n    function badgeEl(status) {\n      var s = STATUS(status);\n      return h('div', { style: { display: 'inline-flex', alignItems: 'center', gap: '6px', background: s.bg, color: s.fg, padding: '4px 9px 4px 8px', borderRadius: '7px', fontSize: '10.5px', fontWeight: '700', letterSpacing: '0.02em' } },\n        h('span', { style: { width: '6px', height: '6px', borderRadius: '50%', background: s.dot } }), s.label);\n    }\n    function chip(text, active) {\n      return h('div', { style: { display: 'inline-flex', alignItems: 'center', gap: '6px', padding: '7px 12px', borderRadius: '8px', fontSize: '12.5px', fontWeight: active ? '700' : '500', border: '1px solid ' + (active ? 'var(--cp-ink)' : '#E0DACE'), background: active ? 'var(--cp-ink)' : 'var(--cp-surface)', color: active ? '#F4F1EA' : 'var(--cp-ink)' } }, text);\n    }\n    function featChip(text) {\n      return h('div', { style: { display: 'inline-flex', alignItems: 'center', gap: '5px', padding: '4px 9px', borderRadius: '6px', fontSize: '11px', fontWeight: '600', background: '#F1ECE3', color: 'var(--cp-sub)' } },\n        h('span', { style: { color: '#3C9A66' } }, '\u2713'), text);\n    }\n    function colorEl(c) {\n      var name = Array.isArray(c) ? c[0] : c.name; var hex = Array.isArray(c) ? c[1] : c.hex;\n      return h('div', { style: { display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '6px', width: '52px' } },\n        h('div', { style: { width: '34px', height: '34px', borderRadius: '50%', background: hex, boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.14)' } }),\n        h('div', { style: { fontSize: '10px', color: 'var(--cp-muted)', textAlign: 'center' } }, name));\n    }\n\n    /* ---- matching / filters ---- */\n    function prodMatch(p) {\n      var f = state.filters; var q = state.search.trim().toLowerCase();\n      if (q) { var hay = (p.name + ' ' + p.sku + ' ' + (p.activities || []).join(' ') + ' ' + (p.fabricNames || []).join(' ')).toLowerCase(); if (hay.indexOf(q) < 0) return false; }\n      var defs = { 'Activity': p.activities || [], 'Product Type': [p.typeLabel], 'Fabric': [primaryFabric(p)], 'Sleeve Type': [p.sleeve], 'Neck Type': [p.neck], 'Seam Type': [p.seam], 'Availability': [availabilityOf(p.status)], 'Sizes': p.sizes };\n      for (var g in defs) { var act = f[g] || []; if (act.length && !act.some(function (v) { return defs[g].indexOf(v) >= 0; })) return false; }\n      return true;\n    }\n    function fabMatch(f) {\n      var flt = state.filters; var q = state.search.trim().toLowerCase();\n      if (q) { var hay = (f.name + ' ' + f.category + ' ' + f.comp).toLowerCase(); if (hay.indexOf(q) < 0) return false; }\n      var defs = { 'Weight': [f.weight], 'Stretch': [f.stretch], 'Breathability': [f.breathLabel], 'Finish': [f.finish], 'Category': [f.category] };\n      for (var g in defs) { var act = flt[g] || []; if (act.length && !act.some(function (v) { return defs[g].indexOf(v) >= 0; })) return false; }\n      return true;\n    }\n    function isActive(g, v) { return (state.filters[g] || []).indexOf(v) >= 0; }\n    function toggleFilter(g, v) { var a = (state.filters[g] || []).slice(); var i = a.indexOf(v); if (i < 0) a.push(v); else a.splice(i, 1); state.filters[g] = a; refresh(); }\n    function toggleGroup(name) { var i = state.collapsed.indexOf(name); if (i < 0) state.collapsed.push(name); else state.collapsed.splice(i, 1); refresh(); }\n    function clearFilters() { state.filters = {}; state.search = ''; if (searchInput) searchInput.value = ''; refresh(); }\n    function toggleSave(id) { var i = state.saved.indexOf(id); if (i < 0) state.saved.push(id); else state.saved.splice(i, 1); refresh(); }\n    function toggleCompare(id) { var i = state.compare.indexOf(id); if (i < 0) { if (state.compare.length >= 4) return; state.compare.push(id); } else state.compare.splice(i, 1); refresh(); }\n\n    function buildGroups() {\n      var isP = state.page === 'products';\n      var defs = isP\n        ? [['Activity', function (p) { return p.activities || []; }, true], ['Product Type', function (p) { return p.typeLabel; }], ['Fabric', function (p) { return primaryFabric(p); }], ['Sleeve Type', function (p) { return p.sleeve; }], ['Neck Type', function (p) { return p.neck; }], ['Seam Type', function (p) { return p.seam; }], ['Availability', function (p) { return availabilityOf(p.status); }], ['Sizes', null]]\n        : [['Weight', function (f) { return f.weight; }], ['Stretch', function (f) { return f.stretch; }], ['Breathability', function (f) { return f.breathLabel; }], ['Finish', function (f) { return f.finish; }], ['Category', function (f) { return f.category; }]];\n      var data = isP ? products : materials;\n      return defs.map(function (def) {\n        var name = def[0], acc = def[1], multi = def[2];\n        var counts = {}, order = [];\n        if (name === 'Sizes') {\n          var allSizes = [];\n          products.forEach(function (p) { (p.sizes || []).forEach(function (s) { if (allSizes.indexOf(s) < 0) allSizes.push(s); }); });\n          allSizes.forEach(function (s) { var c = products.filter(function (p) { return (p.sizes || []).indexOf(s) >= 0; }).length; if (c) { counts[s] = c; order.push(s); } });\n        } else {\n          data.forEach(function (d) {\n            var vals = multi ? acc(d) : [acc(d)];\n            vals.forEach(function (v) { if (!v || v === '\u2014') return; if (!(v in counts)) { counts[v] = 0; order.push(v); } counts[v]++; });\n          });\n        }\n        var open = state.collapsed.indexOf(name) < 0;\n        return { name: name, open: open, options: order.map(function (v) { return { label: v, count: counts[v] }; }) };\n      });\n    }\n\n    /* ---------------- references ---------------- */\n    var sidebarEl, statsEl, toolbarEl, contentEl, comparebarEl, overlayEl, searchInput, savedCountEl, tabRefs = {};\n\n    /* ---------------- top bar (built once) ---------------- */\n    function buildTopbar() {\n      var nav = h('nav', { style: { display: 'flex', alignItems: 'center', gap: '10px', height: '38px', flex: 'none' } });\n      [['products', 'Products', true], ['materials', 'Materials', defaults.showMaterials], ['enhancements', 'Enhancements', defaults.showEnhancements]].forEach(function (t) {\n        if (!t[2]) return;\n        var key = t[0];\n        var label = h('span', { style: { fontSize: '13.5px', fontWeight: '500', color: 'var(--cp-muted)', letterSpacing: '0.01em' } }, t[1]);\n        var underline = h('span', { style: { position: 'absolute', left: '4px', right: '4px', bottom: '-1px', height: '2.5px', background: 'var(--cp-accent)', borderRadius: '2px', display: 'none' } });\n        var btn = h('button', { class: 'cp-tab', style: { position: 'relative', height: '100%', padding: '0 4px', background: 'none', border: 'none', cursor: 'pointer', display: 'flex', alignItems: 'center' }, onClick: function () { setPage(key); } }, label, underline);\n        tabRefs[key] = { label: label, underline: underline };\n        nav.appendChild(btn);\n      });\n\n      var children = [nav];\n\n      if (defaults.showSearch) {\n        searchInput = h('input', { value: state.search, placeholder: 'Search products, SKUs, fabrics\u2026', style: { width: '100%', height: '38px', border: '1px solid var(--cp-line)', background: 'var(--cp-surface)', borderRadius: '9px', padding: '0 14px 0 32px', fontSize: '13.5px', color: 'var(--cp-ink)', outline: 'none' }, onInput: function (e) { state.search = e.target.value; refresh(); } });\n        children.push(h('div', { style: { flex: '1 1 240px', minWidth: '190px', maxWidth: '520px', position: 'relative' } },\n          h('span', { style: { position: 'absolute', left: '13px', top: '50%', transform: 'translateY(-50%)', color: 'var(--cp-faint)', fontSize: '13px' } }, '\u2315'),\n          searchInput));\n      } else { children.push(h('div', { style: { flex: '1' } })); }\n\n      if (defaults.showSaved) {\n        savedCountEl = h('span', { style: { fontWeight: '600' } }, String(state.saved.length));\n        children.push(h('button', { style: { flex: 'none', whiteSpace: 'nowrap', display: 'flex', alignItems: 'center', gap: '7px', height: '38px', padding: '0 13px', background: 'var(--cp-surface)', border: '1px solid var(--cp-line)', borderRadius: '9px', cursor: 'pointer', fontSize: '13px', color: 'var(--cp-ink)' }, onClick: function () { setPage('products'); } },\n          h('span', { style: { color: '#C79321' } }, '\u2605'), savedCountEl, h('span', { style: { color: 'var(--cp-muted)' } }, 'Saved')));\n      }\n      if (defaults.showRequest) {\n        children.push(h('button', { style: { flex: 'none', whiteSpace: 'nowrap', height: '38px', padding: '0 16px', background: 'var(--cp-ink)', color: '#F4F1EA', border: 'none', borderRadius: '9px', cursor: 'pointer', fontSize: '13px', fontWeight: '600', letterSpacing: '0.01em' }, onClick: function () { openRequest(''); } }, 'Request Product'));\n      }\n\n      var filterToggle = defaults.showFilters ? h('button', { class: 'cp-filter-toggle', style: { flex: 'none', height: '38px', padding: '0 13px', alignItems: 'center', gap: '7px', background: 'var(--cp-surface)', border: '1px solid var(--cp-line)', borderRadius: '9px', cursor: 'pointer', fontSize: '13px', color: 'var(--cp-ink)' }, onClick: function () { root.classList.toggle('cp-filters-open'); } }, '\u26C3 Filters') : null;\n      if (filterToggle) children.splice(1, 0, filterToggle);\n\n      return h('div', { class: 'cp-topbar', style: { position: 'sticky', top: '0', zIndex: '15', display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '12px 14px', padding: '15px 28px', background: 'var(--cp-bg)', borderBottom: '1px solid #E9E4DA' } }, children);\n    }\n\n    function setPage(p) { state.page = p; state.productOpen = null; state.fabricOpen = null; root.classList.remove('cp-filters-open'); refresh(); }\n\n    /* ---------------- sidebar ---------------- */\n    function renderSidebar() {\n      clear(sidebarEl);\n      var groups = buildGroups();\n      sidebarEl.appendChild(h('div', { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '0 8px 12px' } },\n        h('div', { style: { fontFamily: MONO, fontSize: '10px', letterSpacing: '0.2em', color: 'var(--cp-muted)' } }, 'FILTERS'),\n        h('button', { style: { background: 'none', border: 'none', cursor: 'pointer', fontSize: '11px', color: '#A23B2C', fontWeight: '600' }, onClick: clearFilters }, 'Clear')));\n      groups.forEach(function (g) {\n        var optionsWrap = h('div', { style: { padding: '2px 0 8px' } });\n        if (g.open) {\n          g.options.forEach(function (opt) {\n            var active = isActive(g.name, opt.label);\n            optionsWrap.appendChild(h('button', { class: 'cp-opt', style: { width: '100%', display: 'flex', alignItems: 'center', gap: '10px', padding: '6px 8px', background: active ? '#F4F1EA' : 'transparent', border: 'none', borderRadius: '7px', cursor: 'pointer', textAlign: 'left' }, onClick: function () { toggleFilter(g.name, opt.label); } },\n              h('span', { style: { width: '15px', height: '15px', flex: 'none', borderRadius: '4px', border: '1.5px solid ' + (active ? 'var(--cp-accent)' : '#C9C2B4'), background: active ? 'var(--cp-accent)' : 'transparent', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: '10px', color: '#F4F1EA', fontWeight: '700' } }, active ? '\u2713' : ''),\n              h('span', { style: { flex: '1', fontSize: '12.5px', color: active ? 'var(--cp-ink)' : 'var(--cp-sub)', fontWeight: active ? '600' : '400' } }, opt.label),\n              h('span', { style: { fontFamily: MONO, fontSize: '10px', color: '#B8B0A2' } }, String(opt.count))));\n          });\n        }\n        sidebarEl.appendChild(h('div', { style: { borderTop: '1px solid #F0ECE3', padding: '4px 0' } },\n          h('button', { style: { width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between', background: 'none', border: 'none', cursor: 'pointer', padding: '9px 8px', textAlign: 'left' }, onClick: function () { toggleGroup(g.name); } },\n            h('span', { style: { fontSize: '12.5px', fontWeight: '700', letterSpacing: '0.02em', color: 'var(--cp-ink)' } }, g.name),\n            h('span', { style: { fontSize: '14px', color: 'var(--cp-faint)', lineHeight: '1', fontWeight: '600' } }, g.open ? '\u2013' : '+')),\n          g.open ? optionsWrap : null));\n      });\n    }\n\n    /* ---------------- stats ---------------- */\n    function renderStats() {\n      clear(statsEl);\n      if (!defaults.showStats) { statsEl.style.display = 'none'; return; }\n      statsEl.style.display = 'flex';\n      var stats;\n      if (defaults.statsMode === 'custom' && defaults.customStats.length) {\n        stats = defaults.customStats.map(function (s) { return { num: s.num, label: s.label }; });\n      } else {\n        var ready = products.filter(function (p) { return p.status === 'design'; }).length;\n        stats = [{ num: String(products.length), label: 'Products' }, { num: String(materials.length), label: 'Fabrics' }, { num: String(enhancements.length), label: 'Enhancements' }, { num: String(ready), label: 'Ready to Design' }];\n      }\n      stats.forEach(function (s) {\n        statsEl.appendChild(h('div', { style: { display: 'flex', alignItems: 'center', gap: '11px', padding: '0 26px 0 0', marginRight: '26px', borderRight: '1px solid #E2DDD2' } },\n          h('div', { style: { fontWeight: '800', fontSize: '20px', letterSpacing: '-0.03em', fontVariantNumeric: 'tabular-nums' } }, s.num),\n          h('div', { style: { fontFamily: MONO, fontSize: '9.5px', letterSpacing: '0.13em', lineHeight: '1.35', color: 'var(--cp-muted)', textTransform: 'uppercase' } }, s.label)));\n      });\n    }\n\n    /* ---------------- toolbar ---------------- */\n    function renderToolbar(counts) {\n      clear(toolbarEl);\n      var isP = state.page === 'products', isM = state.page === 'materials';\n      var title = isP ? 'Product Catalog' : isM ? 'Fabric Library' : 'Enhancements';\n      var countTxt = isP ? (counts.prods + ' products') : isM ? (counts.fabs + ' fabrics') : (enhancements.length + ' options');\n      var children = [h('div', { style: { display: 'flex', alignItems: 'baseline', gap: '9px' } },\n        h('div', { style: { fontWeight: '800', fontSize: '17px', letterSpacing: '-0.02em' } }, title),\n        h('div', { style: { fontFamily: MONO, fontSize: '11px', color: 'var(--cp-muted)' } }, countTxt)),\n        h('div', { style: { flex: '1' } })];\n      if (defaults.showSort && (isP || isM)) {\n        var sel = h('select', { value: state.sort, style: { height: '34px', border: '1px solid var(--cp-line)', background: 'var(--cp-surface)', borderRadius: '8px', padding: '0 10px', fontSize: '12.5px', color: 'var(--cp-ink)', outline: 'none', cursor: 'pointer' }, onChange: function (e) { state.sort = e.target.value; refresh(); } },\n          h('option', { value: 'featured' }, 'Featured'), h('option', { value: 'moq' }, 'MOQ: Low to High'), h('option', { value: 'name' }, 'Name: A\u2013Z'));\n        sel.value = state.sort;\n        children.push(h('div', { style: { display: 'flex', alignItems: 'center', gap: '8px' } }, h('span', { style: { fontSize: '11px', color: 'var(--cp-muted)' } }, 'Sort'), sel));\n      }\n      toolbarEl.appendChild(h('div', { style: { display: 'flex', alignItems: 'center', gap: '16px', padding: '18px 28px 0' } }, children));\n    }\n\n    /* ---------------- Storefront API (full catalogue) ----------------\n     * Liquid tops out at 250 metaobjects and cannot paginate them, so the rest\n     * of the catalogue is pulled over the Storefront API with real cursor\n     * pagination and appended as the shopper scrolls. Entirely optional: with\n     * no token configured none of this runs and the Liquid list stands. */\n    var SF = {\n      token: S.storefrontToken || '',\n      version: S.storefrontVersion || '2025-10',\n      domain: S.shopDomain || (window.Shopify && window.Shopify.shop) || location.host,\n      cursor: null, done: false, loading: false, failed: false, started: false\n    };\n    SF.enabled = !!SF.token;\n\n    var SF_QUERY = 'query($after:String,$type:String!){metaobjects(type:$type,first:250,after:$after){edges{node{handle fields{key value reference{__typename ... on MediaImage{image{url}} ... on GenericFile{url}} references(first:12){nodes{__typename ... on MediaImage{image{url}} ... on GenericFile{url} ... on Metaobject{field(key:\"name\"){value}}}}}}}pageInfo{hasNextPage endCursor}}}';\n\n    function sfParseList(v) { if (!v) return []; try { var a = JSON.parse(v); return Array.isArray(a) ? a : []; } catch (e) { return []; } }\n\n    /* Map a Storefront metaobject node onto the same shape the Liquid island\n     * produces, so every renderer downstream is source-agnostic. */\n    function sfMapProduct(node) {\n      var f = {};\n      (node.fields || []).forEach(function (x) { f[x.key] = x; });\n      function val(k) { return f[k] ? f[k].value : null; }\n      function refImg(k) { var r = f[k] && f[k].reference; return (r && r.image && r.image.url) || null; }\n      function refImgs(k) {\n        var ns = (f[k] && f[k].references && f[k].references.nodes) || [];\n        return ns.map(function (n) { return n && n.image && n.image.url; }).filter(Boolean);\n      }\n      function refNames(k) {\n        var ns = (f[k] && f[k].references && f[k].references.nodes) || [];\n        return ns.map(function (n) { return n && n.field && n.field.value; }).filter(Boolean);\n      }\n      function files(k, label) {\n        var ns = (f[k] && f[k].references && f[k].references.nodes) || [];\n        return ns.map(function (n) { return n && n.url ? { label: label, url: n.url } : null; }).filter(Boolean);\n      }\n      var sizeChart = []; try { sizeChart = JSON.parse(val('size_chart') || '[]'); } catch (e) { sizeChart = []; }\n      return {\n        id: node.handle,\n        name: val('name'), sku: val('sku'), typeLabel: val('product_type'),\n        activities: sfParseList(val('activities')), status: val('status'),\n        tier: sfParseList(val('tier')), featured: val('featured') === 'true',\n        desc: val('description'),\n        fit: val('fit'), fitOptions: sfParseList(val('fit_options')),\n        sleeve: val('sleeve'), sleeveOptions: sfParseList(val('sleeve_options')),\n        neck: val('neck'), neckOptions: sfParseList(val('neck_options')),\n        seam: val('seam'), seamOptions: sfParseList(val('seam_options')),\n        hem: val('hem'), hemOptions: sfParseList(val('hem_options')),\n        inseam: val('inseam'), inseamOptions: sfParseList(val('inseam_options')),\n        closureOptions: sfParseList(val('closure_options')),\n        additionalOptions: val('additional_options'),\n        fabricNames: refNames('fabrics'),\n        sizes: sfParseList(val('sizes')), sizeChart: sizeChart,\n        moq: parseInt(val('moq'), 10) || 0, lead: val('lead_time'), price: val('price'),\n        image: refImg('image'), gallery: refImgs('gallery'),\n        downloads: files('spec_sheets', 'Spec Sheet').concat(files('design_templates', 'Design Template'), files('measurement_guides', 'Measurement Guide'))\n      };\n    }\n\n    function sfFetchPage() {\n      var url = 'https://' + SF.domain + '/api/' + SF.version + '/graphql.json';\n      return fetch(url, {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json', 'X-Shopify-Storefront-Access-Token': SF.token },\n        body: JSON.stringify({ query: SF_QUERY, variables: { after: SF.cursor, type: (S.productsType || 'product_directory') } })\n      }).then(function (r) { return r.json(); }).then(function (j) {\n        if (!j || !j.data || !j.data.metaobjects) throw new Error('storefront: unexpected response');\n        return j.data.metaobjects;\n      });\n    }\n\n    /* Pull one more page and merge. Products already present (the Liquid list\n     * overlaps the API's first pages, and in a different order) are skipped by\n     * handle, so the union converges on the full catalogue exactly once. */\n    function loadMoreProducts() {\n      if (!SF.enabled || SF.loading || SF.done || SF.failed) return;\n      SF.loading = true; SF.started = true; refresh();\n      sfFetchPage().then(function (mo) {\n        var have = Object.create(null);\n        products.forEach(function (p) { have[p.id] = 1; });\n        (mo.edges || []).forEach(function (e) {\n          var p = sfMapProduct(e.node);\n          if (p.id && !have[p.id]) { have[p.id] = 1; products.push(p); }\n        });\n        SF.cursor = mo.pageInfo && mo.pageInfo.endCursor;\n        SF.done = !(mo.pageInfo && mo.pageInfo.hasNextPage);\n        SF.loading = false;\n        refresh();\n      }).catch(function (err) {\n        SF.loading = false; SF.failed = true;\n        if (window.console && console.warn) console.warn('[catalog-portal] Storefront API unavailable, showing first 250 only.', err);\n        refresh();\n      });\n    }\n\n    /* ---------------- content ---------------- */\n    function dense() { return defaults.density === 'Compact'; }\n\n    function productCard(p) {\n      var st = STATUS(p.status); var saved = state.saved.indexOf(p.id) >= 0; var sel = state.compare.indexOf(p.id) >= 0;\n      var shape = artShape(p);\n      var flat = ['shorts', 'pants', 'hat'].indexOf(shape) >= 0;\n      var specLine = (flat ? [p.fit] : [p.sleeve, p.neck]).filter(function (x) { return x && x !== '\u2014'; }).join('  \u00B7  ');\n      var pLabel, pAct, pBg, pFg;\n      if (p.status === 'design') { pLabel = L.design; pAct = function () { openProduct(p.id); }; pBg = 'var(--cp-ink)'; pFg = '#F4F1EA'; }\n      else if (p.status === 'order') { pLabel = L.order; pAct = function () { openProduct(p.id); }; pBg = '#F6ECD4'; pFg = '#9A6B12'; }\n      else if (p.status === 'request') { pLabel = L.request; pAct = function () { openRequest(p.name); }; pBg = '#F3E2DC'; pFg = '#A23B2C'; }\n      else { pLabel = L.soon; pAct = function () { openRequest(p.name); }; pBg = '#ECE8E0'; pFg = '#6E665A'; }\n\n      /* Real photography when the entry has an `image`; otherwise fall back to\n       * the generated technical drawing so cards never render empty. */\n      var pImg = firstImage(p);\n      var artWrap;\n      if (pImg) {\n        artWrap = h('img', {\n          src: pImg, alt: p.name || '', loading: 'lazy', decoding: 'async',\n          style: { width: '100%', height: '100%', objectFit: 'contain', display: 'block' }\n        });\n        artWrap.addEventListener('error', function () {\n          artWrap.replaceWith(h('div', { style: { width: '78%', height: '78%', opacity: '0.92' }, html: art(shape, { placket: (p.activities || []).indexOf('Baseball') >= 0, view: 'front' }) }));\n        });\n      } else {\n        artWrap = h('div', { style: { width: '78%', height: '78%', opacity: '0.92' }, html: art(shape, { placket: (p.activities || []).indexOf('Baseball') >= 0, view: 'front' }) });\n      }\n      var viewTag = h('div', { style: { position: 'absolute', bottom: '9px', left: '11px', fontFamily: MONO, fontSize: '8.5px', letterSpacing: '0.1em', color: '#A39A8B' } }, pImg ? '' : (shape === 'jersey' ? 'FRONT VIEW' : 'TECH DRAW'));\n\n      var artBox = h('div', { style: { position: 'relative', aspectRatio: '1 / 1', background: 'linear-gradient(160deg,#EFEBE3,#E6E1D7)', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '26px', cursor: 'pointer' }, onClick: pAct === null ? null : function () { openProduct(p.id); },\n        onMouseEnter: function () { if (!pImg && shape === 'jersey') { artWrap.innerHTML = art(shape, { placket: (p.activities || []).indexOf('Baseball') >= 0, view: 'back' }); viewTag.textContent = 'BACK VIEW'; } },\n        onMouseLeave: function () { if (!pImg && shape === 'jersey') { artWrap.innerHTML = art(shape, { placket: (p.activities || []).indexOf('Baseball') >= 0, view: 'front' }); viewTag.textContent = 'FRONT VIEW'; } }\n      },\n        h('div', { style: { position: 'absolute', top: '11px', left: '11px' } }, badgeEl(p.status)),\n        h('div', { style: { position: 'absolute', top: '8px', right: '7px', display: 'flex', alignItems: 'center', gap: '5px' } },\n          h('button', { class: 'cp-iconbtn', style: { background: 'transparent', border: 'none', padding: '2px', cursor: 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'center', lineHeight: '0' }, onClick: function (e) { e.stopPropagation(); toggleSave(p.id); } }, h('span', { style: { display: 'flex' }, html: starIcon(saved) })),\n          h('button', { class: 'cp-iconbtn', style: { background: 'transparent', border: 'none', padding: '2px', cursor: 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'center', lineHeight: '0' }, onClick: function (e) { e.stopPropagation(); toggleCompare(p.id); } }, h('span', { style: { display: 'flex' }, html: cmpIcon(sel) }))),\n        artWrap, viewTag);\n\n      var bottomRow = h('div', { style: { display: 'flex', alignItems: 'center', gap: '14px', padding: '8px 0 4px', borderTop: '1px solid #F0ECE3', marginTop: 'auto' } },\n        statCol('MOQ', String(p.moq)), statCol('LEAD', p.lead),\n        h('div', { style: { display: 'flex', flexDirection: 'column', alignItems: 'flex-end', marginLeft: 'auto' } }, h('span', { style: monoMini() }, 'PRICE'), h('span', { style: { fontSize: '12.5px', fontWeight: '700' } }, p.price)));\n\n      return h('div', { class: 'cp-card', style: { background: 'var(--cp-surface)', border: '1px solid #ECE8E0', borderRadius: '13px', overflow: 'hidden', display: 'flex', flexDirection: 'column' } },\n        artBox,\n        h('div', { style: { padding: '14px 15px 15px', display: 'flex', flexDirection: 'column', gap: '9px', flex: '1' } },\n          h('div', { style: { fontFamily: MONO, fontSize: '10px', letterSpacing: '0.08em', color: '#A39A8B' } }, p.sku),\n          h('div', { style: { fontWeight: '700', fontSize: '15.5px', letterSpacing: '-0.01em', lineHeight: '1.15' } }, p.name),\n          h('div', { style: { fontSize: '12px', color: 'var(--cp-sub)', lineHeight: '1.4' } }, specLine),\n          h('div', { style: { display: 'flex', alignItems: 'center', gap: '7px', marginTop: '1px' } }, h('span', { style: { fontFamily: MONO, fontSize: '9px', letterSpacing: '0.12em', color: '#A39A8B' } }, 'SIZES'), h('span', { style: { fontSize: '11.5px', color: 'var(--cp-ink)', fontWeight: '500' } }, p.sizes.join(' \u00B7 '))),\n          bottomRow,\n          h('div', { class: 'cp-cta-row' },\n            h('button', { class: 'cp-cta cp-cta-primary', style: { background: pBg, color: pFg }, onClick: pAct }, h('span', {}, pLabel)),\n            h('button', { class: 'cp-cta cp-cta-secondary', onClick: function () { openProduct(p.id); } }, h('span', {}, L.quickView)))));\n    }\n    /* Fabric hero: prefer the real swatch photo (material entries carry one in\n     * `swatch_image`), else keep the generated CSS swatch. */\n    function fabricHero(fd) {\n      var src = firstImage(fd);\n      if (!src) return swatchEl(fd);\n      var el = h('img', { src: src, alt: fd.name || '', decoding: 'async', style: { width: '100%', height: '100%', objectFit: 'cover', display: 'block' } });\n      el.addEventListener('error', function () { el.replaceWith(swatchEl(fd)); });\n      return el;\n    }\n\n    /* Detail-view gallery: large image with a thumbnail strip beneath. Falls\n     * back to the generated technical drawing when no images are linked, so\n     * the panel looks identical to before for image-less entries. */\n    function galleryBlock(o, shape) {\n      var imgs = imageList(o);\n      var stage = h('div', { style: { height: '228px', borderRadius: '14px', background: 'linear-gradient(160deg,#EFEBE3,#E4DFD4)', display: 'flex', alignItems: 'center', justifyContent: 'center', position: 'relative', marginBottom: imgs.length > 1 ? '10px' : '20px', overflow: 'hidden' } },\n        h('div', { style: { position: 'absolute', top: '13px', left: '13px', zIndex: '2' } }, badgeEl(o.status)));\n\n      var main;\n      function showImage(src) {\n        if (main) main.remove();\n        main = h('img', { src: src, alt: o.name || '', decoding: 'async', style: { width: '100%', height: '100%', objectFit: 'contain', display: 'block' } });\n        main.addEventListener('error', function () {\n          main.replaceWith(h('div', { style: { width: '60%', height: '84%' }, html: art(shape, { placket: (o.activities || []).indexOf('Baseball') >= 0, view: 'front' }) }));\n        });\n        stage.appendChild(main);\n      }\n\n      if (!imgs.length) {\n        stage.appendChild(h('div', { style: { width: '60%', height: '84%' }, html: art(shape, { placket: (o.activities || []).indexOf('Baseball') >= 0, view: 'front' }) }));\n        return stage;\n      }\n      showImage(imgs[0]);\n      if (imgs.length < 2) return stage;\n\n      var thumbs = imgs.map(function (src, i) {\n        var t = h('button', {\n          type: 'button', 'aria-label': 'View image ' + (i + 1),\n          style: { flex: 'none', width: '54px', height: '54px', padding: '0', borderRadius: '9px', overflow: 'hidden', cursor: 'pointer', background: '#EFEBE3', border: i === 0 ? '2px solid var(--cp-ink)' : '1px solid #E5E0D6' },\n          onClick: function () {\n            showImage(src);\n            thumbs.forEach(function (o2, j) { o2.style.border = j === i ? '2px solid var(--cp-ink)' : '1px solid #E5E0D6'; });\n          }\n        }, h('img', { src: src, alt: '', loading: 'lazy', decoding: 'async', style: { width: '100%', height: '100%', objectFit: 'cover', display: 'block' } }));\n        return t;\n      });\n      return h('div', { style: { marginBottom: '20px' } }, stage,\n        h('div', { style: { display: 'flex', gap: '8px', overflowX: 'auto', paddingBottom: '2px' } }, thumbs));\n    }\n\n    function monoMini() { return { fontFamily: MONO, fontSize: '8.5px', letterSpacing: '0.1em', color: '#A39A8B' }; }\n    function statCol(label, val) { return h('div', { style: { display: 'flex', flexDirection: 'column' } }, h('span', { style: monoMini() }, label), h('span', { style: { fontSize: '12.5px', fontWeight: '600' } }, val)); }\n\n    function fabricCard(f) {\n      return h('div', { class: 'cp-fabric-card', style: { background: 'var(--cp-surface)', border: '1px solid #ECE8E0', borderRadius: '14px', overflow: 'hidden', cursor: 'pointer', display: 'flex', flexDirection: 'column' }, onClick: function () { openFabric(f.id); } },\n        h('div', { style: { position: 'relative', height: '230px', overflow: 'hidden' } }, fabricHero(f),\n          h('div', { style: { position: 'absolute', top: '13px', right: '13px', fontFamily: MONO, fontSize: '10px', fontWeight: '600', letterSpacing: '0.06em', color: 'var(--cp-ink)', background: 'rgba(255,255,255,0.86)', padding: '4px 9px', borderRadius: '7px', backdropFilter: 'blur(3px)' } }, f.gsm)),\n        h('div', { style: { padding: '17px 18px 19px', display: 'flex', flexDirection: 'column', gap: '11px' } },\n          h('div', {},\n            h('div', { style: { display: 'flex', alignItems: 'center', gap: '9px' } },\n              h('div', { style: { fontWeight: '700', fontSize: '17px', letterSpacing: '-0.01em' } }, f.name),\n              h('div', { style: { fontFamily: MONO, fontSize: '9.5px', letterSpacing: '0.08em', color: '#A39A8B', background: '#F4F1EA', padding: '3px 7px', borderRadius: '5px' } }, f.category)),\n            h('div', { style: { fontSize: '12.5px', color: 'var(--cp-sub)', lineHeight: '1.5', marginTop: '6px' } }, f.desc)),\n          h('div', { style: { display: 'flex', alignItems: 'center', gap: '9px' } }, h('span', { style: { fontFamily: MONO, fontSize: '9px', letterSpacing: '0.12em', color: '#A39A8B' } }, 'BREATHABILITY'), h('span', { style: { fontSize: '13px', letterSpacing: '2px', color: 'var(--cp-ink)' } }, repeat('\u25CF', f.breath) + repeat('\u25CB', 5 - f.breath))),\n          h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '6px' } }, (f.features || []).map(featChip)),\n          h('div', { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', paddingTop: '11px', borderTop: '1px solid #F0ECE3' } },\n            h('span', { style: { fontSize: '12px', color: 'var(--cp-sub)' } }, (f.sports || []).join('  \u00B7  ')),\n            h('span', { style: { fontSize: '12.5px', fontWeight: '600', color: 'var(--cp-ink)' } }, 'View Details \u2192'))));\n    }\n    function repeat(ch, n) { return new Array(Math.max(0, n) + 1).join(ch); }\n\n    function enhancementCard(e) {\n      return h('div', { style: { background: 'var(--cp-surface)', border: '1px solid #ECE8E0', borderRadius: '13px', padding: '20px', display: 'flex', gap: '16px', alignItems: 'flex-start' } },\n        h('div', { style: { flex: 'none', width: '54px', height: '54px', borderRadius: '11px', background: '#F4F1EA', display: 'flex', alignItems: 'center', justifyContent: 'center' }, html: enhIcon(e.pat) }),\n        h('div', { style: { flex: '1' } },\n          h('div', { style: { fontWeight: '700', fontSize: '15.5px', marginBottom: '4px' } }, e.name),\n          h('div', { style: { fontSize: '12.5px', color: 'var(--cp-sub)', lineHeight: '1.5', marginBottom: '11px' } }, e.desc),\n          h('div', { style: { display: 'flex', alignItems: 'center', gap: '13px' } },\n            h('span', { style: { fontFamily: MONO, fontSize: '10px', color: 'var(--cp-muted)' } }, e.lead),\n            h('button', { class: 'cp-linkbtn', style: { background: 'none', border: 'none', color: 'var(--cp-ink)', fontWeight: '600', fontSize: '12.5px', cursor: 'pointer', padding: '0' }, onClick: function () { openRequest(e.name); } }, 'Add to inquiry \u2192'))));\n    }\n\n    /* Sentinel + status line under the product grid. Observing it drives the\n     * infinite scroll; it also doubles as the manual fallback if\n     * IntersectionObserver is unavailable or an observation is missed. */\n    var sfObserver = null;\n    function infiniteFooter() {\n      if (!SF.enabled) return h('div');\n      var box = h('div', { style: { padding: '26px 0 4px', textAlign: 'center', minHeight: '28px' } });\n      if (SF.failed) {\n        box.appendChild(h('div', { style: { fontSize: '12.5px', color: 'var(--cp-muted)' } }, 'Showing the first 250 products \u2014 the rest could not be loaded.'));\n        return box;\n      }\n      if (SF.done) {\n        box.appendChild(h('div', { style: { fontFamily: MONO, fontSize: '10px', letterSpacing: '0.12em', color: 'var(--cp-muted)' } }, products.length + ' PRODUCTS'));\n        return box;\n      }\n      box.appendChild(h('div', { style: { fontSize: '12.5px', color: 'var(--cp-muted)' } }, SF.loading ? 'Loading more products\u2026' : 'Scroll for more'));\n      if (!SF.loading) {\n        box.appendChild(h('button', {\n          style: { marginTop: '10px', height: '34px', padding: '0 16px', background: 'transparent', color: 'var(--cp-ink)', border: '1px solid #E5E0D6', borderRadius: '9px', cursor: 'pointer', fontSize: '12.5px', fontWeight: '600' },\n          onClick: loadMoreProducts\n        }, 'Load more'));\n      }\n      if (sfObserver) { sfObserver.disconnect(); sfObserver = null; }\n      if (window.IntersectionObserver) {\n        sfObserver = new IntersectionObserver(function (entries) {\n          if (entries.some(function (e) { return e.isIntersecting; })) loadMoreProducts();\n        }, { rootMargin: '600px' });\n        sfObserver.observe(box);\n      }\n      return box;\n    }\n\n    function renderContent(counts) {\n      clear(contentEl);\n      var isP = state.page === 'products', isM = state.page === 'materials';\n      if (isP) {\n        var grid = h('div', { style: { display: 'grid', gap: dense() ? '14px' : '18px', gridTemplateColumns: 'repeat(auto-fill,minmax(' + (dense() ? '220px' : '250px') + ',1fr))' } });\n        counts.prodList.forEach(function (p) { grid.appendChild(productCard(p)); });\n        var wrap = h('div', { class: 'cp-pad', style: { padding: '22px 28px 80px' } }, grid);\n        wrap.appendChild(infiniteFooter());\n        if (counts.prodList.length === 0) {\n          wrap.appendChild(h('div', { style: { textAlign: 'center', padding: '70px 0', color: 'var(--cp-muted)' } },\n            h('div', { style: { fontSize: '15px', fontWeight: '600', color: 'var(--cp-ink)', marginBottom: '6px' } }, 'No products match these filters'),\n            h('div', { style: { fontSize: '13px', marginBottom: '16px' } }, 'Try clearing a filter or request a custom product.'),\n            h('button', { style: { height: '38px', padding: '0 18px', background: 'var(--cp-ink)', color: '#F4F1EA', border: 'none', borderRadius: '9px', cursor: 'pointer', fontSize: '13px', fontWeight: '600' }, onClick: function () { openRequest(''); } }, 'Request Custom Product')));\n        }\n        contentEl.appendChild(wrap);\n      } else if (isM) {\n        var fgrid = h('div', { style: { display: 'grid', gap: '24px', gridTemplateColumns: 'repeat(auto-fill,minmax(330px,1fr))' } });\n        counts.fabList.forEach(function (f) { fgrid.appendChild(fabricCard(f)); });\n        contentEl.appendChild(h('div', { class: 'cp-pad', style: { padding: '22px 28px 80px' } }, fgrid));\n      } else {\n        var egrid = h('div', { style: { display: 'grid', gap: '18px', gridTemplateColumns: 'repeat(auto-fill,minmax(300px,1fr))' } });\n        enhancements.forEach(function (e) { egrid.appendChild(enhancementCard(e)); });\n        contentEl.appendChild(h('div', { class: 'cp-pad', style: { padding: '22px 28px 80px' } }, egrid));\n      }\n    }\n\n    /* ---------------- compare bar ---------------- */\n    function renderCompareBar() {\n      clear(comparebarEl);\n      if (!defaults.showCompare || state.compare.length === 0) return;\n      comparebarEl.appendChild(h('div', { class: 'cp-anim-bar', style: { position: 'fixed', bottom: '22px', left: '50%', transform: 'translateX(-50%)', zIndex: '40', display: 'flex', alignItems: 'center', gap: '18px', background: 'var(--cp-ink)', color: '#F4F1EA', borderRadius: '13px', padding: '11px 13px 11px 20px', boxShadow: '0 14px 40px rgba(23,20,15,0.32)' } },\n        h('div', { style: { display: 'flex', alignItems: 'center', gap: '11px' } },\n          h('span', { style: { fontSize: '13px', fontWeight: '600' } }, 'Compare'),\n          h('span', { style: { fontFamily: MONO, fontSize: '11px', background: 'rgba(244,241,234,0.16)', padding: '3px 8px', borderRadius: '6px' } }, state.compare.length + ' selected')),\n        h('div', { style: { display: 'flex', gap: '7px' } },\n          h('button', { class: 'cp-ghost', style: { height: '36px', padding: '0 14px', background: 'transparent', border: '1px solid rgba(244,241,234,0.25)', color: '#F4F1EA', borderRadius: '8px', cursor: 'pointer', fontSize: '12.5px' }, onClick: function () { state.compare = []; refresh(); } }, 'Clear'),\n          h('button', { style: { height: '36px', padding: '0 18px', background: '#F4F1EA', color: 'var(--cp-ink)', border: 'none', borderRadius: '8px', cursor: 'pointer', fontSize: '12.5px', fontWeight: '700' }, onClick: function () { state.compareOpen = true; refresh(); } }, 'Compare \u2192'))));\n    }\n\n    /* ---------------- overlays (drawers + modals) ---------------- */\n    function openProduct(id) { state.productOpen = id; refresh(); }\n    function openFabric(id) { state.fabricOpen = id; refresh(); }\n    function openRequest(name) { state.requestOpen = true; state.requestSubmitted = false; state.requestSubtitle = name ? ('Requesting: ' + name) : \"Can't find what you need? Tell us and we'll source it.\"; refresh(); }\n\n    function closeBtn(onClick) {\n      return h('button', { style: { width: '32px', height: '32px', borderRadius: '8px', border: '1px solid var(--cp-line)', background: '#FAF8F3', cursor: 'pointer', fontSize: '15px', color: 'var(--cp-sub)' }, onClick: onClick }, '\u2715');\n    }\n    function sectionLabel(txt) { return h('div', { style: { fontFamily: MONO, fontSize: '10px', letterSpacing: '0.16em', color: 'var(--cp-muted)', marginBottom: '11px' } }, txt); }\n    function stop(e) { e.stopPropagation(); }\n\n    function renderOverlays() {\n      clear(overlayEl);\n      var pd = products.filter(function (x) { return x.id === state.productOpen; })[0];\n      if (pd) overlayEl.appendChild(productDrawer(pd));\n      var fd = materials.filter(function (x) { return x.id === state.fabricOpen; })[0];\n      if (fd) overlayEl.appendChild(fabricDrawer(fd));\n      if (state.compareOpen) overlayEl.appendChild(compareModal());\n      if (state.requestOpen) overlayEl.appendChild(requestModal());\n    }\n\n    function productDrawer(pd) {\n      var shape = artShape(pd);\n      var specs = [['Activity', (pd.activities || []).join(', ')], ['Construction', pd.fit], ['Sleeve', pd.sleeve], ['Neck', pd.neck], ['Seam', pd.seam], ['Hem', pd.hem], ['Inseam', pd.inseam]].filter(function (r) { return r[1] && r[1] !== '\u2014'; });\n      var alts = fabricAlts(pd);\n      var pLabel, pAct, pBg, pFg;\n      if (pd.status === 'design') { pLabel = L.design; pAct = function () { openProduct(pd.id); }; pBg = 'var(--cp-ink)'; pFg = '#F4F1EA'; }\n      else if (pd.status === 'order') { pLabel = L.order; pAct = function () { openProduct(pd.id); }; pBg = '#F6ECD4'; pFg = '#9A6B12'; }\n      else { pLabel = L.request; pAct = function () { openRequest(pd.name); }; pBg = '#F3E2DC'; pFg = '#A23B2C'; }\n\n      var specGrid = h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1px', background: '#E9E4DA', border: '1px solid #E9E4DA', borderRadius: '11px', overflow: 'hidden', marginBottom: '24px' } });\n      specs.forEach(function (r) { specGrid.appendChild(h('div', { style: { background: 'var(--cp-surface)', padding: '12px 14px' } }, h('div', { style: { fontSize: '10.5px', color: '#A39A8B', marginBottom: '3px' } }, r[0]), h('div', { style: { fontSize: '13.5px', fontWeight: '600', color: 'var(--cp-ink)' } }, r[1]))); });\n\n      // variant options (extra info beyond the mock \u2014 surfaced when present)\n      var variantBlocks = [];\n      [['Sleeve', pd.sleeveOptions], ['Neck', pd.neckOptions], ['Seam', pd.seamOptions], ['Hem', pd.hemOptions], ['Fit', pd.fitOptions], ['Inseam', pd.inseamOptions], ['Closure', pd.closureOptions]].forEach(function (v) {\n        if (v[1] && v[1].length > 1) variantBlocks.push([v[0], v[1]]);\n      });\n      if (pd.additionalOptions) { for (var dim in pd.additionalOptions) { if (pd.additionalOptions[dim] && pd.additionalOptions[dim].length) variantBlocks.push([dim, pd.additionalOptions[dim]]); } }\n\n      var sizeRows = sizeChartFor(pd);\n      var cols = sizeRows.length ? Object.keys(sizeRows[0]) : ['size', 'chest', 'length'];\n      var sizeHead = h('div', { style: { display: 'grid', gridTemplateColumns: cols.map(function () { return '1fr'; }).join(' '), background: '#F1ECE3', fontFamily: MONO, fontSize: '9.5px', letterSpacing: '0.1em', color: 'var(--cp-muted)' } });\n      cols.forEach(function (c) { sizeHead.appendChild(h('div', { style: { padding: '9px 14px' } }, c.toUpperCase())); });\n      var sizeTable = h('div', { style: { border: '1px solid #E9E4DA', borderRadius: '11px', overflow: 'hidden', marginBottom: '24px' } }, sizeHead);\n      sizeRows.forEach(function (r) {\n        var row = h('div', { style: { display: 'grid', gridTemplateColumns: cols.map(function () { return '1fr'; }).join(' '), borderTop: '1px solid #F0ECE3', fontSize: '12.5px' } });\n        cols.forEach(function (c, i) { row.appendChild(h('div', { style: { padding: '9px 14px', fontWeight: i === 0 ? '600' : '400', color: i === 0 ? 'var(--cp-ink)' : 'var(--cp-sub)' } }, r[c] || '\u2014')); });\n        sizeTable.appendChild(row);\n      });\n\n      var downloads = (pd.downloads && pd.downloads.length) ? pd.downloads : ['PDF Spec Sheet', 'Design Template', 'Measurement Guide'];\n      var dlWrap = h('div', { style: { display: 'flex', flexDirection: 'column', gap: '8px', marginBottom: '26px' } });\n      downloads.forEach(function (d) {\n        var label = typeof d === 'string' ? d : d.label; var url = typeof d === 'string' ? null : d.url;\n        dlWrap.appendChild(h(url ? 'a' : 'button', Object.assign({ style: { display: 'flex', alignItems: 'center', gap: '11px', height: '44px', padding: '0 15px', background: 'var(--cp-surface)', border: '1px solid #E9E4DA', borderRadius: '10px', cursor: 'pointer', textAlign: 'left', textDecoration: 'none' } }, url ? { href: url, target: '_blank' } : {}),\n          h('span', { style: { color: '#A23B2C', fontSize: '15px' } }, '\u2B07'),\n          h('span', { style: { flex: '1', fontSize: '13px', fontWeight: '500', color: 'var(--cp-ink)' } }, label),\n          h('span', { style: { fontFamily: MONO, fontSize: '9.5px', color: '#A39A8B' } }, 'PDF')));\n      });\n\n      var body = h('div', { style: { flex: '1', overflowY: 'auto', padding: '24px 22px 40px' } },\n        galleryBlock(pd, shape),\n        h('div', { style: { fontFamily: MONO, fontSize: '10.5px', letterSpacing: '0.08em', color: '#A39A8B', marginBottom: '6px' } }, pd.sku),\n        h('div', { style: { fontWeight: '800', fontSize: '25px', letterSpacing: '-0.025em', lineHeight: '1.08', marginBottom: '10px' } }, pd.name),\n        h('div', { style: { fontSize: '13.5px', color: 'var(--cp-sub)', lineHeight: '1.6', marginBottom: '22px' } }, pd.desc),\n        sectionLabel('CONSTRUCTION'), specGrid,\n        sectionLabel('FABRIC OPTIONS'), h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '8px', marginBottom: '24px' } }, alts.map(function (a, i) { return chip(a, i === 0); })),\n        variantBlocks.length ? variantSection(variantBlocks) : null,\n        sectionLabel('SIZE CHART'), sizeTable,\n        sectionLabel('DOWNLOADS'), dlWrap);\n\n      var panel = h('div', { class: 'cp-anim-drawer', style: { position: 'absolute', top: '0', right: '0', height: '100%', width: '480px', maxWidth: '94vw', background: '#F7F4EE', boxShadow: '-18px 0 50px rgba(23,20,15,0.2)', display: 'flex', flexDirection: 'column' }, onClick: stop },\n        h('div', { style: { flex: 'none', display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '18px 22px', background: 'var(--cp-surface)', borderBottom: '1px solid #E9E4DA' } },\n          h('div', { style: { fontFamily: MONO, fontSize: '10px', letterSpacing: '0.16em', color: 'var(--cp-muted)' } }, 'PRODUCT DETAIL'), closeBtn(function () { state.productOpen = null; refresh(); })),\n        body,\n        h('div', { style: { flex: 'none', display: 'flex', gap: '9px', padding: '15px 22px', background: 'var(--cp-surface)', borderTop: '1px solid #E9E4DA' } },\n          h('button', { style: { flex: '1', height: '46px', border: 'none', borderRadius: '10px', background: pBg, color: pFg, fontSize: '14px', fontWeight: '700', cursor: 'pointer' }, onClick: pAct }, pLabel),\n          h('button', { style: { height: '46px', padding: '0 18px', border: '1px solid #E0DACE', borderRadius: '10px', background: 'var(--cp-surface)', color: 'var(--cp-ink)', fontSize: '13.5px', fontWeight: '600', cursor: 'pointer' }, onClick: function () { openRequest(pd.name); } }, 'Request Quote')));\n\n      return h('div', { class: 'cp-anim-fade', style: { position: 'fixed', inset: '0', zIndex: '50', background: 'rgba(23,20,15,0.34)' }, onClick: function () { state.productOpen = null; refresh(); } }, panel);\n    }\n\n    function variantSection(blocks) {\n      var wrap = h('div', { style: { marginBottom: '24px' } }, sectionLabel('AVAILABLE VARIANTS'));\n      blocks.forEach(function (b) {\n        wrap.appendChild(h('div', { style: { marginBottom: '10px' } },\n          h('div', { style: { fontSize: '11px', color: '#A39A8B', marginBottom: '6px' } }, b[0]),\n          h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '6px' } }, b[1].map(function (o, i) { return chip(o, i === 0); }))));\n      });\n      return wrap;\n    }\n\n    function fabricDrawer(fd) {\n      var specs = [['Weight', fd.gsm + ' \u00B7 ' + fd.weight], ['Composition', fd.comp], ['Stretch', fd.stretch], ['Breathability', fd.breathLabel], ['Durability', fd.durability], ['Opacity', fd.opacity]];\n      if (fd.care) specs.push(['Care', fd.care]);\n      var specGrid = h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1px', background: '#E9E4DA', border: '1px solid #E9E4DA', borderRadius: '11px', overflow: 'hidden', marginBottom: '24px' } });\n      specs.forEach(function (r) { specGrid.appendChild(h('div', { style: { background: 'var(--cp-surface)', padding: '12px 14px' } }, h('div', { style: { fontSize: '10.5px', color: '#A39A8B', marginBottom: '3px' } }, r[0]), h('div', { style: { fontSize: '13.5px', fontWeight: '600', color: 'var(--cp-ink)' } }, r[1]))); });\n\n      var usedIn = products.filter(function (p) { return (p.fabricNames || []).indexOf(fd.name) >= 0; }).slice(0, 6);\n      var usedWrap = h('div', { style: { display: 'flex', flexDirection: 'column', gap: '8px' } });\n      usedIn.forEach(function (p) {\n        usedWrap.appendChild(h('button', { style: { display: 'flex', alignItems: 'center', gap: '13px', padding: '10px 13px', background: 'var(--cp-surface)', border: '1px solid #E9E4DA', borderRadius: '10px', cursor: 'pointer', textAlign: 'left' }, onClick: function () { state.fabricOpen = null; openProduct(p.id); } },\n          h('div', { style: { flex: 'none', width: '38px', height: '38px', borderRadius: '8px', background: '#EFEBE3', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '5px' }, html: art(artShape(p), { placket: (p.activities || []).indexOf('Baseball') >= 0, view: 'front' }) }),\n          h('div', { style: { flex: '1' } }, h('div', { style: { fontSize: '13px', fontWeight: '600' } }, p.name), h('div', { style: { fontFamily: MONO, fontSize: '9.5px', color: '#A39A8B' } }, p.sku)),\n          h('span', { style: { color: '#A39A8B' } }, '\u2192')));\n      });\n\n      var fdGallery = imageList(fd);\n      var body = h('div', { style: { flex: '1', overflowY: 'auto', padding: '24px 22px 40px' } },\n        h('div', { style: { fontSize: '13.5px', color: 'var(--cp-sub)', lineHeight: '1.6', marginBottom: '22px' } }, fd.desc),\n        fdGallery.length > 1 ? sectionLabel('GALLERY') : null,\n        fdGallery.length > 1 ? h('div', { style: { display: 'flex', gap: '8px', overflowX: 'auto', marginBottom: '24px', paddingBottom: '2px' } },\n          fdGallery.map(function (src) {\n            return h('a', { href: src, target: '_blank', rel: 'noopener', style: { flex: 'none', width: '76px', height: '76px', borderRadius: '9px', overflow: 'hidden', border: '1px solid #E5E0D6', display: 'block' } },\n              h('img', { src: src, alt: '', loading: 'lazy', decoding: 'async', style: { width: '100%', height: '100%', objectFit: 'cover', display: 'block' } }));\n          })) : null,\n        sectionLabel('TECHNICAL'), specGrid,\n        sectionLabel('AVAILABLE COLORS'), h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '10px', marginBottom: '24px' } }, (fd.colors || []).map(colorEl)),\n        usedIn.length ? sectionLabel('USED IN') : null, usedIn.length ? usedWrap : null);\n\n      var panel = h('div', { class: 'cp-anim-drawer', style: { position: 'absolute', top: '0', right: '0', height: '100%', width: '500px', maxWidth: '94vw', background: '#F7F4EE', boxShadow: '-18px 0 50px rgba(23,20,15,0.2)', display: 'flex', flexDirection: 'column' }, onClick: stop },\n        h('div', { style: { flex: 'none', height: '280px', position: 'relative', overflow: 'hidden' } }, fabricHero(fd),\n          h('button', { style: { position: 'absolute', top: '16px', right: '16px', width: '34px', height: '34px', borderRadius: '9px', border: 'none', background: 'rgba(255,255,255,0.9)', cursor: 'pointer', fontSize: '15px', color: 'var(--cp-ink)', backdropFilter: 'blur(3px)' }, onClick: function () { state.fabricOpen = null; refresh(); } }, '\u2715'),\n          h('div', { style: { position: 'absolute', left: '20px', bottom: '18px' } },\n            h('div', { style: { fontFamily: MONO, fontSize: '10px', letterSpacing: '0.14em', color: 'var(--cp-ink)', background: 'rgba(255,255,255,0.84)', display: 'inline-block', padding: '4px 9px', borderRadius: '6px', marginBottom: '9px' } }, fd.category),\n            h('div', { style: { fontWeight: '800', fontSize: '30px', letterSpacing: '-0.03em', color: 'var(--cp-ink)', textShadow: '0 1px 14px rgba(247,244,238,0.7)' } }, fd.name))),\n        body);\n\n      return h('div', { class: 'cp-anim-fade', style: { position: 'fixed', inset: '0', zIndex: '50', background: 'rgba(23,20,15,0.34)' }, onClick: function () { state.fabricOpen = null; refresh(); } }, panel);\n    }\n\n    function compareModal() {\n      var cmp = state.compare.map(function (id) { return products.filter(function (x) { return x.id === id; })[0]; }).filter(Boolean);\n      var rowDefs = [['Fabric', function (p) { return primaryFabric(p); }], ['Sleeve', function (p) { return p.sleeve; }], ['Neck', function (p) { return p.neck; }], ['Seam', function (p) { return p.seam; }], ['Hem', function (p) { return p.hem; }], ['Sizes', function (p) { return p.sizes.length + ' sizes'; }], ['MOQ', function (p) { return String(p.moq); }], ['Lead Time', function (p) { return p.lead; }], ['Designable', function (p) { return p.status === 'design' ? 'Yes' : 'No'; }], ['Price Tier', function (p) { return p.tier; }]];\n\n      var headRow = h('tr', {}, h('th', { style: { position: 'sticky', left: '0', background: '#F1ECE3', textAlign: 'left', padding: '14px 18px', fontFamily: MONO, fontSize: '9.5px', letterSpacing: '0.12em', color: 'var(--cp-muted)', fontWeight: '600', minWidth: '130px' } }, 'FEATURE'));\n      cmp.forEach(function (p) {\n        headRow.appendChild(h('th', { style: { textAlign: 'left', padding: '14px 18px', borderLeft: '1px solid #ECE8E0', minWidth: '150px', verticalAlign: 'bottom' } },\n          h('div', { style: { width: '46px', height: '46px', borderRadius: '9px', background: '#EFEBE3', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '6px', marginBottom: '9px' }, html: art(artShape(p), { placket: (p.activities || []).indexOf('Baseball') >= 0, view: 'front' }) }),\n          h('div', { style: { fontWeight: '700', fontSize: '13.5px', lineHeight: '1.2' } }, p.name),\n          h('div', { style: { fontFamily: MONO, fontSize: '9px', color: '#A39A8B', marginTop: '3px' } }, p.sku)));\n      });\n      var tbody = h('tbody', {});\n      rowDefs.forEach(function (rd) {\n        var tr = h('tr', {}, h('td', { style: { position: 'sticky', left: '0', background: '#F7F4EE', padding: '13px 18px', fontWeight: '600', color: 'var(--cp-sub)', borderTop: '1px solid #ECE8E0' } }, rd[0]));\n        cmp.forEach(function (p) {\n          var v = rd[1](p);\n          var cell;\n          if (rd[0] === 'Designable') cell = h('span', { style: { fontWeight: '700', color: v === 'Yes' ? '#2E7350' : '#A23B2C' } }, v);\n          else cell = (v && v !== '\u2014') ? v : '\u2014';\n          tr.appendChild(h('td', { style: { padding: '13px 18px', borderLeft: '1px solid #ECE8E0', borderTop: '1px solid #ECE8E0' } }, cell));\n        });\n        tbody.appendChild(tr);\n      });\n\n      var modal = h('div', { class: 'cp-anim-pop', style: { background: '#F7F4EE', borderRadius: '16px', width: '100%', maxWidth: '880px', maxHeight: '88vh', overflow: 'hidden', display: 'flex', flexDirection: 'column', boxShadow: '0 30px 80px rgba(23,20,15,0.32)' }, onClick: stop },\n        h('div', { style: { flex: 'none', display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '19px 24px', background: 'var(--cp-surface)', borderBottom: '1px solid #E9E4DA' } },\n          h('div', { style: { fontWeight: '800', fontSize: '18px', letterSpacing: '-0.02em' } }, 'Compare Products'), closeBtn(function () { state.compareOpen = false; refresh(); })),\n        h('div', { style: { flex: '1', overflow: 'auto' } }, h('table', { style: { width: '100%', borderCollapse: 'collapse', fontSize: '13px' } }, h('thead', {}, headRow), tbody)));\n\n      return h('div', { class: 'cp-anim-fade', style: { position: 'fixed', inset: '0', zIndex: '60', background: 'rgba(23,20,15,0.4)', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '34px' }, onClick: function () { state.compareOpen = false; refresh(); } }, modal);\n    }\n\n    function field(label, key, placeholder) {\n      return h('label', { style: { display: 'flex', flexDirection: 'column', gap: '6px' } },\n        h('span', { style: { fontSize: '11px', fontWeight: '600', color: 'var(--cp-sub)', letterSpacing: '0.02em' } }, label),\n        h('input', { value: state.form[key], placeholder: placeholder || '', style: { height: '42px', border: '1px solid #E0DACE', borderRadius: '9px', padding: '0 13px', fontSize: '13.5px', background: 'var(--cp-surface)', outline: 'none' }, onInput: function (e) { state.form[key] = e.target.value; } }));\n    }\n\n    function requestModal() {\n      var inner;\n      if (state.requestSubmitted) {\n        inner = h('div', { style: { padding: '48px 36px', textAlign: 'center' } },\n          h('div', { style: { width: '60px', height: '60px', borderRadius: '50%', background: '#E6F0E8', display: 'flex', alignItems: 'center', justifyContent: 'center', margin: '0 auto 20px', fontSize: '26px', color: '#2E7350' } }, '\u2713'),\n          h('div', { style: { fontWeight: '800', fontSize: '22px', letterSpacing: '-0.02em', marginBottom: '9px' } }, 'Request received'),\n          h('div', { style: { fontSize: '13.5px', color: 'var(--cp-sub)', lineHeight: '1.6', marginBottom: '26px' } }, defaults.requestSuccess),\n          h('button', { style: { height: '44px', padding: '0 26px', background: 'var(--cp-ink)', color: '#F4F1EA', border: 'none', borderRadius: '10px', cursor: 'pointer', fontSize: '13.5px', fontWeight: '600' }, onClick: function () { state.requestOpen = false; refresh(); } }, 'Done'));\n      } else {\n        var textarea = h('textarea', { placeholder: 'Tell us about the product, fabric, colors, sizing, and timeline\u2026', style: { height: '88px', border: '1px solid #E0DACE', borderRadius: '9px', padding: '11px 13px', fontSize: '13.5px', background: 'var(--cp-surface)', outline: 'none', resize: 'none', fontFamily: 'var(--cp-font-h)', lineHeight: '1.5' }, onInput: function (e) { state.form.req = e.target.value; } });\n        textarea.value = state.form.req;\n        inner = h('div', {},\n          h('div', { style: { display: 'flex', alignItems: 'flex-start', justifyContent: 'space-between', padding: '22px 24px 0' } },\n            h('div', {}, h('div', { style: { fontWeight: '800', fontSize: '20px', letterSpacing: '-0.02em' } }, 'Request a Product'), h('div', { style: { fontSize: '12.5px', color: 'var(--cp-muted)', marginTop: '4px' } }, state.requestSubtitle)),\n            closeBtn(function () { state.requestOpen = false; refresh(); })),\n          h('div', { style: { padding: '20px 24px 26px', display: 'flex', flexDirection: 'column', gap: '14px' } },\n            h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '12px' } }, field('Name', 'name'), field('Email', 'email')),\n            h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '12px' } }, field('Organization', 'org'), field('Quantity', 'qty', 'e.g. 50')),\n            h('label', { style: { display: 'flex', flexDirection: 'column', gap: '6px' } }, h('span', { style: { fontSize: '11px', fontWeight: '600', color: 'var(--cp-sub)', letterSpacing: '0.02em' } }, 'Requirements'), textarea),\n            h('button', { style: { height: '46px', background: 'var(--cp-ink)', color: '#F4F1EA', border: 'none', borderRadius: '10px', cursor: 'pointer', fontSize: '14px', fontWeight: '700', marginTop: '2px' }, onClick: function () { state.requestSubmitted = true; refresh(); } }, 'Submit Request'),\n            h('div', { style: { fontSize: '11px', color: '#A39A8B', textAlign: 'center' } }, 'Creates a sourcing lead \u00B7 we reply within 1 business day')));\n      }\n      var modal = h('div', { class: 'cp-anim-pop', style: { background: '#F7F4EE', borderRadius: '16px', width: '100%', maxWidth: '520px', overflow: 'hidden', boxShadow: '0 30px 80px rgba(23,20,15,0.32)' }, onClick: stop }, inner);\n      return h('div', { class: 'cp-anim-fade', style: { position: 'fixed', inset: '0', zIndex: '60', background: 'rgba(23,20,15,0.4)', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '34px' }, onClick: function () { state.requestOpen = false; refresh(); } }, modal);\n    }\n\n    /* ---------------- refresh ---------------- */\n    function refresh() {\n      // products list (filter + sort)\n      var prods = products.filter(prodMatch);\n      if (state.sort === 'moq') prods = prods.slice().sort(function (a, b) { return a.moq - b.moq; });\n      else if (state.sort === 'name') prods = prods.slice().sort(function (a, b) { return a.name.localeCompare(b.name); });\n      else prods = prods.slice().sort(function (a, b) { return (b.featured ? 1 : 0) - (a.featured ? 1 : 0); });\n      var fabs = materials.filter(fabMatch);\n      var counts = { prods: prods.length, fabs: fabs.length, prodList: prods, fabList: fabs };\n\n      // tab active states\n      Object.keys(tabRefs).forEach(function (k) {\n        var active = state.page === k; var r = tabRefs[k];\n        r.label.style.fontWeight = active ? '700' : '500';\n        r.label.style.color = active ? 'var(--cp-ink)' : 'var(--cp-muted)';\n        r.underline.style.display = active ? 'block' : 'none';\n      });\n      if (savedCountEl) savedCountEl.textContent = String(state.saved.length);\n\n      // sidebar visibility\n      var showSidebar = defaults.showFilters && (state.page === 'products' || state.page === 'materials');\n      sidebarEl.style.display = showSidebar ? 'block' : 'none';\n      if (showSidebar) renderSidebar(); else clear(sidebarEl);\n\n      renderStats();\n      renderToolbar(counts);\n      renderContent(counts);\n      renderCompareBar();\n      renderOverlays();\n    }\n\n    /* ---------------- mount ---------------- */\n    function mount() {\n      clear(root);\n      var app = h('div', { class: 'cp-app' });\n      var bodyRow = h('div', { style: { flex: '1', display: 'flex', minHeight: '0' } });\n      sidebarEl = h('aside', { class: 'cp-sidebar', style: { flex: 'none', width: '256px', background: 'var(--cp-surface)', borderRight: '1px solid var(--cp-line)', overflowY: 'auto', padding: '18px 14px 40px' } });\n      var scrim = h('div', { class: 'cp-sidebar-scrim', onClick: function () { root.classList.remove('cp-filters-open'); } });\n      var main = h('main', { style: { flex: '1', minWidth: '0', overflowY: 'auto', background: 'var(--cp-bg)' } });\n      statsEl = h('div', { style: { display: 'flex', alignItems: 'stretch', flexWrap: 'wrap', padding: '18px 28px 2px' } });\n      toolbarEl = h('div', {});\n      contentEl = h('div', {});\n      main.appendChild(buildTopbar());\n      main.appendChild(statsEl);\n      main.appendChild(toolbarEl);\n      main.appendChild(contentEl);\n      bodyRow.appendChild(sidebarEl);\n      bodyRow.appendChild(scrim);\n      bodyRow.appendChild(main);\n      app.appendChild(bodyRow);\n      comparebarEl = h('div', {});\n      overlayEl = h('div', {});\n      root.appendChild(app);\n      root.appendChild(comparebarEl);\n      root.appendChild(overlayEl);\n      refresh();\n      fitHeight();\n    }\n\n    mount();\n  }\n\n  /* ---------------- bootstrap ---------------- */\n  /* Deduplicate defensively: shop.metaobjects[type].values is capped by Liquid\n   * (50 raw, 250 inside {% paginate %}), and Shopify does NOT honour ?page= for\n   * metaobject pagination \u2014 every page renders page 1. Any attempt to fetch\n   * further pages therefore returns the same rows again, so the payload is\n   * deduped by id before render to guarantee no product is ever listed twice. */\n  function dedupeProducts(root) {\n    var dataEl = root.querySelector('[data-cp-data]');\n    if (!dataEl) return;\n    var payload;\n    try { payload = JSON.parse(dataEl.textContent || '{}'); } catch (e) { return; }\n    var list = payload.products;\n    if (!list || !list.length) return;\n    var seen = Object.create(null), out = [];\n    for (var i = 0; i < list.length; i++) {\n      var id = list[i] && list[i].id;\n      if (id && seen[id]) continue;\n      if (id) seen[id] = 1;\n      out.push(list[i]);\n    }\n    if (out.length !== list.length) {\n      payload.products = out;\n      dataEl.textContent = JSON.stringify(payload);\n    }\n  }\n\n  function init() {\n    var roots = document.querySelectorAll('[data-cp-root]');\n    roots.forEach(function (r) {\n      if (r.getAttribute('data-cp-bound')) return;\n      r.setAttribute('data-cp-bound', '1');\n      dedupeProducts(r);\n      new CatalogPortal(r);\n    });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n  document.addEventListener('shopify:section:load', init);\n})();\n"],
  "mappings": "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",
  "names": []
}
