{
  "version": 3,
  "sources": ["/cdn/shop/t/27/assets/epic-3d-canvas.js?epicv=backweave1"],
  "sourcesContent": ["(function () {\n  // epic-3d-canvas v=backweave1 2026-11-14 (woven unprimed-canvas back; based on roundedge2)\n  // 360 yaw, no ease-back, CSS 3D stretcher-bar back, mobile rotate via touch.\n  if (window.__epic3dBackWeave1) return;\n  window.__epic3dBackWeave1 = true;\n\n  var DEFAULT_YAW = -32;\n  var DEFAULT_PITCH = -14;\n  var PITCH_MIN = -20;\n  var PITCH_MAX = 20;\n  var SENSITIVITY = 0.5;\n  var BAR_FRAC = 0.11;\n  var BEVEL_FRAC = 0.1;\n  var SLOP_PX = 8;\n  // World light (CSS space: +y is down). Key light from upper left, slightly in front.\n  var LIGHT = { x: -0.42, y: -0.72, z: 0.55 };\n\n  var yaw = DEFAULT_YAW;\n  var pitch = DEFAULT_PITCH;\n  var drag = null;\n  var layoutRaf = 0;\n  var refreshTimer = 0;\n  var woodUrl = '';\n  var fabricUrl = '';\n  var weaveUrl = '';\n\n  function clamp(n, a, b) {\n    return Math.max(a, Math.min(b, n));\n  }\n\n  function parseSize(title, sku) {\n    var s = String(title || '');\n    var m = s.replace(/[\"'\\u2033]/g, '').replace(/\\s+/g, '').match(/(\\d+(?:\\.\\d+)?)\\s*[xX\\u00d7]\\s*(\\d+(?:\\.\\d+)?)/);\n    if (m) return { w: parseFloat(m[1]), h: parseFloat(m[2]) };\n    var k = String(sku || '');\n    var km = k.match(/(\\d{2})(\\d{2})$/);\n    if (km) return { w: parseInt(km[1], 10), h: parseInt(km[2], 10) };\n    return null;\n  }\n\n  function parseVariants(stage) {\n    var list = [];\n    try {\n      var el = stage && stage.querySelector('[data-epic-3d-variants]');\n      list = JSON.parse((el && el.textContent) || '[]');\n    } catch (e) {\n      list = [];\n    }\n    return list.map(function (item) {\n      var parsed = parseSize(item.title, item.sku);\n      return Object.assign({}, item, parsed || {});\n    });\n  }\n\n  function liveStages(root) {\n    var scope = root || document;\n    var list = [];\n    var nodes = scope.querySelectorAll('[data-epic-3d-stage]');\n    for (var i = 0; i < nodes.length; i++) {\n      if (!nodes[i].closest('template')) list.push(nodes[i]);\n    }\n    return list;\n  }\n\n  function getTemplateStage(gallery) {\n    var template = gallery && gallery.querySelector('template[data-epic-3d-template]');\n    return template && template.content && template.content.querySelector('[data-epic-3d-stage]');\n  }\n\n  function hostsIn(gallery) {\n    if (!gallery) return [];\n    return gallery.querySelectorAll('.epic-3d-grid-item, .epic-3d-slide, [data-epic-3d-slide]');\n  }\n\n  function remount(gallery) {\n    if (!gallery) return;\n    var source = getTemplateStage(gallery);\n    if (!source) return;\n    var hosts = hostsIn(gallery);\n    for (var i = 0; i < hosts.length; i++) {\n      if (!hosts[i].querySelector('[data-epic-3d-stage]')) {\n        hosts[i].appendChild(source.cloneNode(true));\n      }\n    }\n  }\n\n  function remountAll() {\n    document.querySelectorAll('media-gallery.epic-has-3d').forEach(remount);\n  }\n\n  function readSelectedId(gallery, stage) {\n    var root = (gallery && gallery.closest('.shopify-section')) || document;\n    var input = root.querySelector('product-form-component input[name=\"id\"], form[action*=\"/cart/add\"] input[name=\"id\"], input[name=\"id\"][value]');\n    if (input && input.value) return String(input.value);\n    if (stage && stage.getAttribute('data-selected-variant')) return String(stage.getAttribute('data-selected-variant'));\n    return '';\n  }\n\n  function currentSize(stage, gallery) {\n    var variants = parseVariants(stage);\n    var selectedId = readSelectedId(gallery, stage);\n    var artW = parseFloat(stage.getAttribute('data-art-width')) || 1;\n    var artH = parseFloat(stage.getAttribute('data-art-height')) || 1;\n    var v = variants.find(function (item) {\n      return String(item.id) === String(selectedId);\n    });\n    if (v && v.w && v.h) return v;\n    for (var i = 0; i < variants.length; i++) {\n      if (variants[i].available !== false && variants[i].w) return variants[i];\n    }\n    return { w: 12, h: 12 * (artH / artW) };\n  }\n\n  function projectedBounds(faceW, faceH, depth, yawDeg, pitchDeg) {\n    var y = (yawDeg * Math.PI) / 180;\n    var x = (pitchDeg * Math.PI) / 180;\n    var cy = Math.cos(y);\n    var sy = Math.sin(y);\n    var cx = Math.cos(x);\n    var sx = Math.sin(x);\n    var hx = faceW / 2;\n    var hy = faceH / 2;\n    var hz = depth / 2;\n    var minX = Infinity, maxX = -Infinity, minY = Infinity, maxY = -Infinity;\n    var ix, iy, iz, px, py, pz, px1, py1, pz1, py2;\n    for (ix = -1; ix <= 1; ix += 2) {\n      for (iy = -1; iy <= 1; iy += 2) {\n        for (iz = -1; iz <= 1; iz += 2) {\n          px = ix * hx;\n          py = iy * hy;\n          pz = iz * hz;\n          px1 = px * cy + pz * sy;\n          pz1 = -px * sy + pz * cy;\n          py1 = py;\n          py2 = py1 * cx - pz1 * sx;\n          if (px1 < minX) minX = px1;\n          if (px1 > maxX) maxX = px1;\n          if (py2 < minY) minY = py2;\n          if (py2 > maxY) maxY = py2;\n        }\n      }\n    }\n    return { w: maxX - minX, h: maxY - minY };\n  }\n\n  function fitScale(faceW, faceH, depth, availW, availH) {\n    var samples = [[DEFAULT_YAW, DEFAULT_PITCH], [0, 0], [180, DEFAULT_PITCH], [180, 0], [155, 16], [205, 16]];\n    var y;\n    for (y = 0; y < 360; y += 15) {\n      samples.push([y, PITCH_MIN], [y, PITCH_MAX], [y, 0]);\n    }\n    var maxW = 0, maxH = 0;\n    for (var i = 0; i < samples.length; i++) {\n      var b = projectedBounds(faceW, faceH, depth, samples[i][0], samples[i][1]);\n      if (b.w > maxW) maxW = b.w;\n      if (b.h > maxH) maxH = b.h;\n    }\n    if (maxW < 1 || maxH < 1) return 1;\n    return Math.min(availW / maxW, availH / maxH, 1);\n  }\n\n  /* ---------- cheap wood / fabric textures (generated once) ---------- */\n\n  function hash2(x, y, seed) {\n    var s = Math.sin((x * 127.1 + y * 311.7 + seed * 13.3) * 0.01745329251 * 12.9898);\n    return s * 43758.5453 - Math.floor(s * 43758.5453);\n  }\n\n  function valueNoise(x, y, seed) {\n    var xi = Math.floor(x), yi = Math.floor(y);\n    var xf = x - xi, yf = y - yi;\n    var u = xf * xf * (3 - 2 * xf);\n    var v = yf * yf * (3 - 2 * yf);\n    var n00 = hash2(xi, yi, seed);\n    var n10 = hash2(xi + 1, yi, seed);\n    var n01 = hash2(xi, yi + 1, seed);\n    var n11 = hash2(xi + 1, yi + 1, seed);\n    return (n00 * (1 - u) + n10 * u) * (1 - v) + (n01 * (1 - u) + n11 * u) * v;\n  }\n\n  function fbm(x, y, octaves, seed) {\n    var total = 0, amp = 1, freq = 1, norm = 0, i;\n    for (i = 0; i < octaves; i++) {\n      total += amp * valueNoise(x * freq, y * freq, seed + i * 19);\n      norm += amp;\n      amp *= 0.5;\n      freq *= 2.05;\n    }\n    return total / norm;\n  }\n\n  function makeWoodTexture() {\n    var W = 512, H = 256;\n    var c = document.createElement('canvas');\n    c.width = W;\n    c.height = H;\n    var ctx = c.getContext('2d');\n    var img = ctx.createImageData(W, H);\n    var d = img.data;\n    var i, x, y, n, ring, r, g, b;\n    for (y = 0; y < H; y++) {\n      for (x = 0; x < W; x++) {\n        n = fbm(x * 0.032, y * 0.01, 5, 11);\n        ring = fbm(x * 0.007 + n * 1.6, y * 0.08, 3, 29);\n        var t = 0.22 + 0.48 * n + 0.30 * ring;\n        r = 232 + t * 20;\n        g = 206 + t * 26;\n        b = 152 + t * 34;\n        i = (y * W + x) * 4;\n        d[i] = r;\n        d[i + 1] = g;\n        d[i + 2] = b;\n        d[i + 3] = 255;\n      }\n    }\n    ctx.putImageData(img, 0, 0);\n    return c.toDataURL('image/jpeg', 0.88);\n  }\n\n  /* Plain-weave unprimed canvas (cotton/poly duck). Tileable; drawn at 2x and shown at half size.\n     mode 'fabric' = opaque ecru cloth; mode 'overlay' = transparent light/shade only (for printed wrap). */\n  function makeWeaveTexture(mode) {\n    var N = 40, P = 5, S = N * P; // 40 threads per tile, 5px pitch at 2x (2.5 CSS px)\n    var c = document.createElement('canvas');\n    c.width = S;\n    c.height = S;\n    var ctx = c.getContext('2d');\n    var img = ctx.createImageData(S, S);\n    var d = img.data;\n    var TAU = Math.PI * 2, x, y;\n    function h1(i, seed) {\n      var s = Math.sin((i * 91.7 + seed * 47.3) * 12.9898);\n      return s * 43758.5453 - Math.floor(s * 43758.5453);\n    }\n    // Per-thread tone, thickness and periodic slub (thick/thin) phase so the tile wraps cleanly.\n    var warpTone = [], weftTone = [], warpW = [], weftW = [], warpPh = [], weftPh = [];\n    for (var k = 0; k < N; k++) {\n      warpTone.push((h1(k, 3) - 0.5) * 0.035);\n      weftTone.push((h1(k, 7) - 0.5) * 0.035);\n      warpW.push(0.94 + h1(k, 11) * 0.12);\n      weftW.push(0.92 + h1(k, 13) * 0.14);\n      warpPh.push(h1(k, 17) * TAU);\n      weftPh.push(h1(k, 19) * TAU);\n    }\n    function slub(t, ph) {\n      return 0.5 * Math.sin(t * TAU * 2 + ph) + 0.3 * Math.sin(t * TAU * 5 + ph * 1.7) + 0.2 * Math.sin(t * TAU * 9 + ph * 2.3);\n    }\n    var mott = new Float32Array(S * S);\n    for (y = 0; y < S; y++) for (x = 0; x < S; x++) {\n      mott[y * S + x] = 0.004 * Math.sin((x / S) * TAU + 1.3) * Math.cos((y / S) * TAU * 2 + 0.4);\n    }\n    var x, y, i, j, u, v, over, across, along, w, tone, h, edge, n, p, r, g, b, a;\n    for (y = 0; y < S; y++) {\n      j = Math.floor(y / P);\n      v = (y % P + 0.5) / P;\n      for (x = 0; x < S; x++) {\n        i = Math.floor(x / P);\n        u = (x % P + 0.5) / P;\n        over = ((i + j) & 1) === 0; // warp (vertical thread) on top at even crossings\n        if (over) {\n          w = warpW[i] * (1 + 0.05 * slub(y / S, warpPh[i]));\n          across = Math.abs(u - 0.5) * 2 / w;\n          along = Math.sin(Math.PI * v); // thread rises over the crossing\n          tone = warpTone[i] + 0.01 * slub(y / S, warpPh[i] + 1);\n        } else {\n          w = weftW[j] * (1 + 0.05 * slub(x / S, weftPh[j]));\n          across = Math.abs(v - 0.5) * 2 / w;\n          along = Math.sin(Math.PI * u);\n          tone = weftTone[j] + 0.01 * slub(x / S, weftPh[j] + 1);\n        }\n        if (across >= 1) {\n          h = -0.18; // tight weave: barely-there gap\n          edge = 1;\n        } else {\n          h = Math.pow(1 - across * across, 0.35) * (0.62 + 0.38 * along);\n          edge = across;\n        }\n        n = (h1(x * 31 + y * 7919, 23) - 0.5) * 0.05; // fibre fuzz\n        // shade: rounded thread top lit from upper-left\n        p = 0.84 + 0.13 * h + tone + n + mott[(y % S) * S + x] - 0.03 * edge * edge;\n        if (mode === 'overlay') {\n          a = p - 0.92;\n          i4 = (y * S + x) * 4;\n          if (a < 0) { d[i4] = 40; d[i4 + 1] = 32; d[i4 + 2] = 22; d[i4 + 3] = Math.min(255, -a * 1100); }\n          else { d[i4] = 255; d[i4 + 1] = 250; d[i4 + 2] = 240; d[i4 + 3] = Math.min(255, a * 900); }\n          continue;\n        }\n        r = 250 * p + 8;\n        g = 243 * p + 6;\n        b = 226 * p + 2;\n        var i4 = (y * S + x) * 4;\n        d[i4] = r;\n        d[i4 + 1] = g;\n        d[i4 + 2] = b;\n        d[i4 + 3] = 255;\n      }\n    }\n    ctx.putImageData(img, 0, 0);\n    return mode === 'overlay' ? c.toDataURL('image/png') : c.toDataURL('image/jpeg', 0.9);\n  }\n\n  function ensureTextures(stage) {\n    if (!woodUrl) {\n      try { woodUrl = makeWoodTexture(); } catch (e) { woodUrl = ''; }\n    }\n    if (!fabricUrl) {\n      try { fabricUrl = makeWeaveTexture('fabric'); } catch (e) { fabricUrl = ''; }\n    }\n    if (!weaveUrl) {\n      try { weaveUrl = makeWeaveTexture('overlay'); } catch (e) { weaveUrl = ''; }\n    }\n    if (woodUrl) stage.style.setProperty('--epic-wood', 'url(\"' + woodUrl + '\")');\n    if (fabricUrl) stage.style.setProperty('--epic-fabric', 'url(\"' + fabricUrl + '\")');\n    if (weaveUrl) stage.style.setProperty('--epic-weave', 'url(\"' + weaveUrl + '\")');\n  }\n\n  /* ---------- lighting ---------- */\n\n  function rotNormal(nx, ny, nz, yawDeg, pitchDeg) {\n    var y = (yawDeg * Math.PI) / 180;\n    var x = (pitchDeg * Math.PI) / 180;\n    var cy = Math.cos(y), sy = Math.sin(y);\n    var cx = Math.cos(x), sx = Math.sin(x);\n    // CSS: rotateX(pitch) rotateY(yaw) \u2014 yaw first, then pitch. Y is down.\n    var x1 = nx * cy + nz * sy;\n    var z1 = -nx * sy + nz * cy;\n    var y1 = ny;\n    var y2 = y1 * cx - z1 * sx;\n    var z2 = y1 * sx + z1 * cx;\n    return { x: x1, y: y2, z: z2 };\n  }\n\n  function litFor(nx, ny, nz) {\n    var n = rotNormal(nx, ny, nz, yaw, pitch);\n    var len = Math.sqrt(n.x * n.x + n.y * n.y + n.z * n.z) || 1;\n    var d = (n.x / len) * LIGHT.x + (n.y / len) * LIGHT.y + (n.z / len) * LIGHT.z;\n    return clamp(0.72 + 0.42 * d, 0.66, 1.16);\n  }\n\n  function applyLighting(cube) {\n    if (!cube) return;\n    var nodes = cube.querySelectorAll('[data-nx]');\n    for (var i = 0; i < nodes.length; i++) {\n      var el = nodes[i];\n      var nx = parseFloat(el.getAttribute('data-nx')) || 0;\n      var ny = parseFloat(el.getAttribute('data-ny')) || 0;\n      var nz = parseFloat(el.getAttribute('data-nz')) || 0;\n      el.style.setProperty('--lit', litFor(nx, ny, nz).toFixed(3));\n    }\n  }\n\n  function applyTransform(cube) {\n    if (!cube) return;\n    cube.style.transform = 'rotateX(' + pitch + 'deg) rotateY(' + yaw + 'deg)';\n    applyLighting(cube);\n    var back = cube.querySelector('[data-epic-3d-back]');\n    if (back) {\n      // Cast-shadow offset tracks the light a little as the piece turns.\n      var shx = (6 * Math.cos((yaw * Math.PI) / 180)).toFixed(1) + 'px';\n      var shy = (5 + 4 * Math.sin((pitch * Math.PI) / 180)).toFixed(1) + 'px';\n      back.style.setProperty('--shx', shx);\n      back.style.setProperty('--shy', shy);\n    }\n  }\n\n  function applyAllTransforms() {\n    var stages = liveStages();\n    for (var i = 0; i < stages.length; i++) {\n      applyTransform(stages[i].querySelector('.epic-3d-canvas'));\n    }\n  }\n\n  function hash01(i, seed) {\n    var s = Math.sin((i * 127.1 + seed * 311.7) * 12.9898);\n    return s * 43758.5453 - Math.floor(s * 43758.5453);\n  }\n\n  /* Slightly irregular inner hem so the cut canvas edge isn't machine-straight. */\n  function wrapClip(side, lengthPx, wrapPx) {\n    var n = Math.max(10, Math.round(lengthPx / 22));\n    var amp = 0.95;\n    var i, t, w, wave, a, b, pts = [];\n    function edge(t) {\n      w = Math.sin(t * Math.PI);\n      w = w * w;\n      wave = 0.75 * Math.sin(t * Math.PI * 3.2 + 0.5) + 0.25 * Math.sin(t * Math.PI * 7.1 + 1.1);\n      wave += (hash01(Math.round(t * n), side === 'top' ? 3 : side === 'bottom' ? 8 : side === 'left' ? 13 : 21) - 0.5) * 0.35;\n      return wave * amp * w;\n    }\n    if (side === 'top') {\n      pts.push('0 0', '100% 0');\n      for (i = n; i >= 0; i--) {\n        t = i / n;\n        pts.push((t * 100).toFixed(2) + '% ' + (wrapPx + edge(t)).toFixed(2) + 'px');\n      }\n    } else if (side === 'bottom') {\n      for (i = 0; i <= n; i++) {\n        t = i / n;\n        pts.push((t * 100).toFixed(2) + '% ' + (2 - edge(t)).toFixed(2) + 'px');\n      }\n      pts.push('100% 100%', '0 100%');\n    } else if (side === 'left') {\n      /* 45\u00B0 hospital tuck at both ends, wavy inner (right) edge. */\n      pts.push('0 0');\n      pts.push(wrapPx.toFixed(2) + 'px ' + wrapPx.toFixed(2) + 'px');\n      for (i = 1; i <= n; i++) {\n        t = i / n;\n        a = wrapPx + (lengthPx - 2 * wrapPx) * t;\n        pts.push((wrapPx + edge(t)).toFixed(2) + 'px ' + a.toFixed(2) + 'px');\n      }\n      pts.push(wrapPx.toFixed(2) + 'px ' + (lengthPx - wrapPx).toFixed(2) + 'px');\n      pts.push('0 100%');\n    } else {\n      pts.push('100% 0');\n      pts.push('100% 100%');\n      pts.push((2).toFixed(2) + 'px ' + (lengthPx - wrapPx).toFixed(2) + 'px');\n      for (i = n; i >= 1; i--) {\n        t = i / n;\n        a = wrapPx + (lengthPx - 2 * wrapPx) * t;\n        pts.push((2 - edge(t)).toFixed(2) + 'px ' + a.toFixed(2) + 'px');\n      }\n      pts.push((2).toFixed(2) + 'px ' + wrapPx.toFixed(2) + 'px');\n    }\n    return 'polygon(' + pts.join(', ') + ')';\n  }\n\n  function stapleStops(length, endPad, spacing) {\n    var avail = length - 2 * endPad;\n    var n, start, step, i, out = [];\n    if (avail < 8) return out;\n    n = Math.max(1, Math.round(avail / spacing));\n    if (n === 1) return [length / 2];\n    step = avail / n;\n    /* Keep even gaps; first and last sit a half-step in from the pads. */\n    start = endPad + step / 2;\n    for (i = 0; i < n; i++) out.push(start + i * step);\n    return out;\n  }\n\n  function layoutStaples(back, bar, wrap, faceW, faceH) {\n    var ppi = bar / 1.75;\n    var spacing = Math.max(14, Math.round(ppi * 2));\n    var len = Math.max(6, Math.round(ppi * (11 / 25.4)));\n    var thick = Math.max(2, Math.round(ppi * (1.6 / 25.4)));\n    var inset = Math.max(3, Math.round(wrap * 0.26));\n    var endPad = Math.max(wrap + Math.round(ppi * 0.35), Math.round(ppi * 1.05));\n    var sides = [\n      { name: 'top', along: faceW, horiz: true },\n      { name: 'bottom', along: faceW, horiz: true },\n      { name: 'left', along: faceH, horiz: false },\n      { name: 'right', along: faceH, horiz: false }\n    ];\n    var s, host, stops, j, el, x, y, jit, kids;\n    for (s = 0; s < sides.length; s++) {\n      host = back.querySelector('.epic-3d-bar--' + sides[s].name + ' .epic-3d-bar__staples');\n      if (!host) continue;\n      stops = stapleStops(sides[s].along, endPad, spacing);\n      kids = host.children;\n      if (kids.length !== stops.length) {\n        host.textContent = '';\n        for (j = 0; j < stops.length; j++) {\n          el = document.createElement('span');\n          el.className = 'epic-3d-staple';\n          host.appendChild(el);\n        }\n        kids = host.children;\n      }\n      for (j = 0; j < stops.length; j++) {\n        el = kids[j];\n        jit = (hash01(j + 1, s + 17) - 0.5) * 1.1;\n        if (sides[s].horiz) {\n          x = stops[j] - len / 2 + jit;\n          if (sides[s].name === 'top') y = wrap - inset - thick;\n          else y = bar - wrap + inset;\n          el.style.left = x.toFixed(1) + 'px';\n          el.style.top = y.toFixed(1) + 'px';\n          el.style.width = len + 'px';\n          el.style.height = thick + 'px';\n          el.style.setProperty('--staple-dir', '180deg');\n        } else {\n          y = stops[j] - len / 2 + jit;\n          if (sides[s].name === 'left') x = wrap - inset - thick;\n          else x = bar - wrap + inset;\n          el.style.left = x.toFixed(1) + 'px';\n          el.style.top = y.toFixed(1) + 'px';\n          el.style.width = thick + 'px';\n          el.style.height = len + 'px';\n          el.style.setProperty('--staple-dir', '90deg');\n        }\n      }\n    }\n  }\n\n  function layoutBack(back, size, faceW, faceH, depth) {\n    if (!back) return;\n    var shortPx = Math.min(faceW, faceH);\n    var bar = Math.max(18, Math.round(shortPx * BAR_FRAC));\n    if (bar * 2 > shortPx * 0.48) bar = Math.round(shortPx * 0.22);\n    var wrap = Math.max(9, Math.round(bar * 0.5));\n    var bevel = Math.max(3, Math.round(bar * BEVEL_FRAC));\n    back.style.setProperty('--bar', bar + 'px');\n    back.style.setProperty('--wrap', wrap + 'px');\n    back.style.setProperty('--bevel', bevel + 'px');\n    var topFold = back.querySelector('.epic-3d-bar--top .epic-3d-bar__fold');\n    var botFold = back.querySelector('.epic-3d-bar--bottom .epic-3d-bar__fold');\n    var leftFold = back.querySelector('.epic-3d-bar--left .epic-3d-bar__fold');\n    var rightFold = back.querySelector('.epic-3d-bar--right .epic-3d-bar__fold');\n    if (topFold) topFold.style.clipPath = wrapClip('top', faceW, wrap);\n    if (botFold) botFold.style.clipPath = wrapClip('bottom', faceW, wrap);\n    if (leftFold) leftFold.style.clipPath = wrapClip('left', faceH, wrap);\n    if (rightFold) rightFold.style.clipPath = wrapClip('right', faceH, wrap);\n    layoutWrapPrint(back, faceW, faceH, depth, wrap);\n    layoutStaples(back, bar, wrap, faceW, faceH);\n  }\n\n  /* Continue the side-face gallery wrap onto the back mid-bar flap.\n     Same mirrored edge mapping as the side faces, then kept going\n     around the back edge so the print is continuous at the fold. */\n  function layoutWrapPrint(back, faceW, faceH, depth, wrap) {\n    var W = wrap + 2;\n    function setPrint(sel, posX, posY) {\n      var el = back.querySelector(sel);\n      if (!el) return;\n      el.style.backgroundSize = Math.round(faceW) + 'px ' + Math.round(faceH) + 'px';\n      el.style.backgroundPosition = posX.toFixed(1) + 'px ' + posY.toFixed(1) + 'px';\n      el.style.transform = 'scaleX(-1)';\n    }\n    /* bar--left is CSS left of the rotateY(180) back = physical RIGHT. */\n    setPrint('.epic-3d-bar--left .epic-3d-bar__fold-print', -(faceW - depth - W), 0);\n    /* bar--right is physical LEFT. */\n    setPrint('.epic-3d-bar--right .epic-3d-bar__fold-print', -depth, 0);\n    setPrint('.epic-3d-bar--top .epic-3d-bar__fold-print', 0, -depth);\n    setPrint('.epic-3d-bar--bottom .epic-3d-bar__fold-print', 0, -(faceH - depth - W));\n  }\n\n  /* ---------- layout / spin ---------- */\n\n  function layoutStage(stage) {\n    if (!stage || !stage.isConnected || stage.closest('template')) return;\n    var cube = stage.querySelector('.epic-3d-canvas');\n    if (!cube) return;\n    var gallery = stage.closest('media-gallery');\n    var rect = stage.getBoundingClientRect();\n    if (rect.width < 8 || rect.height < 8) return;\n    var narrow = window.matchMedia('(max-width: 749px)').matches;\n    var pad = narrow ? 0.2 : 0.12;\n    var padPx = narrow ? 20 : 16;\n    var vw = Math.max(80, rect.width);\n    var vh = Math.max(80, rect.height);\n    var availW = Math.max(40, vw * (1 - pad) - padPx);\n    var availH = Math.max(40, vh * (1 - pad) - padPx);\n    var artW = parseFloat(stage.getAttribute('data-art-width')) || 1;\n    var artH = parseFloat(stage.getAttribute('data-art-height')) || 1;\n    var size = currentSize(stage, gallery);\n    var longIn = Math.max(size.w, size.h) || 12;\n    var depthRatio = 1.5 / longIn;\n    var faceAspect = (size.w && size.h) ? (size.w / size.h) : (artW / artH);\n    var faceW = availW;\n    var faceH = faceW / faceAspect;\n    if (faceH > availH) {\n      faceH = availH;\n      faceW = faceH * faceAspect;\n    }\n    var depth = Math.max(8, longIn === size.w ? faceW * depthRatio : faceH * depthRatio);\n    var scale = fitScale(faceW, faceH, depth, availW, availH);\n    faceW *= scale;\n    faceH *= scale;\n    depth *= scale;\n    cube.style.width = faceW + 'px';\n    cube.style.height = faceH + 'px';\n    cube.style.setProperty('--d', depth + 'px');\n    // Soft fabric-over-bar rounding: ~0.45% of the long side, clamped 1.5-2.5px.\n    var edgeR = Math.max(1.5, Math.min(2.5, Math.max(faceW, faceH) * 0.0045));\n    cube.style.setProperty('--epic-r', edgeR.toFixed(2) + 'px');\n    // Sides overlap the front/back planes by half of this so no background seam shows at the folds.\n    var ov = 1;\n    var front = cube.querySelector('.epic-3d-face--front');\n    var right = cube.querySelector('.epic-3d-face--right');\n    var left = cube.querySelector('.epic-3d-face--left');\n    var top = cube.querySelector('.epic-3d-face--top');\n    var bottom = cube.querySelector('.epic-3d-face--bottom');\n    var back = cube.querySelector('.epic-3d-face--back');\n    if (front) {\n      front.style.width = faceW + 'px';\n      front.style.height = faceH + 'px';\n      front.style.transform = 'translateZ(' + depth / 2 + 'px)';\n    }\n    if (back) {\n      back.style.width = faceW + 'px';\n      back.style.height = faceH + 'px';\n      back.style.transform = 'rotateY(180deg) translateZ(' + depth / 2 + 'px)';\n      layoutBack(back, size, faceW, faceH, depth);\n    }\n    if (right) {\n      right.style.width = depth + ov + 'px';\n      right.style.height = faceH + 'px';\n      right.style.transform = 'rotateY(90deg) translateZ(' + faceW / 2 + 'px)';\n      right.style.left = faceW / 2 - (depth + ov) / 2 + 'px';\n    }\n    if (left) {\n      left.style.width = depth + ov + 'px';\n      left.style.height = faceH + 'px';\n      left.style.transform = 'rotateY(-90deg) translateZ(' + faceW / 2 + 'px)';\n      left.style.left = faceW / 2 - (depth + ov) / 2 + 'px';\n    }\n    if (top) {\n      top.style.width = faceW + 'px';\n      top.style.height = depth + ov + 'px';\n      top.style.transform = 'rotateX(90deg) translateZ(' + faceH / 2 + 'px)';\n      top.style.top = faceH / 2 - (depth + ov) / 2 + 'px';\n    }\n    if (bottom) {\n      bottom.style.width = faceW + 'px';\n      bottom.style.height = depth + ov + 'px';\n      bottom.style.transform = 'rotateX(-90deg) translateZ(' + faceH / 2 + 'px)';\n      bottom.style.top = faceH / 2 - (depth + ov) / 2 + 'px';\n    }\n    ensureTextures(stage);\n    applyTransform(cube);\n  }\n\n  function layoutAll() {\n    remountAll();\n    var stages = liveStages();\n    for (var i = 0; i < stages.length; i++) layoutStage(stages[i]);\n  }\n\n  function scheduleLayout() {\n    if (layoutRaf) return;\n    layoutRaf = window.requestAnimationFrame(function () {\n      layoutRaf = 0;\n      layoutAll();\n    });\n  }\n\n  function stopZoom(ev) {\n    ev.preventDefault();\n    ev.stopPropagation();\n    if (typeof ev.stopImmediatePropagation === 'function') ev.stopImmediatePropagation();\n  }\n\n  function eventPoint(ev) {\n    if (ev.type && ev.type.indexOf('touch') === 0) {\n      var list = ev.touches && ev.touches.length ? ev.touches : ev.changedTouches;\n      var t = list && list[0];\n      if (!t) return null;\n      return { x: t.clientX, y: t.clientY, pointerId: 't' + t.identifier, touchId: t.identifier, isTouch: true };\n    }\n    return {\n      x: ev.clientX,\n      y: ev.clientY,\n      pointerId: ev.pointerId,\n      isTouch: ev.pointerType === 'touch'\n    };\n  }\n\n  function stageFromEvent(ev) {\n    var t = ev.target;\n    if (t && t.nodeType === 3) t = t.parentElement;\n    if (!t || !t.closest) return null;\n    // Gallery arrows / slideshow controls never start a spin.\n    if (t.closest('slideshow-arrows, .slideshow-control, slideshow-controls, [data-epic-no-spin]')) return null;\n    return t.closest('[data-epic-3d-stage]');\n  }\n\n  function matchesDrag(ev, pt) {\n    if (!drag || !pt) return false;\n    if (drag.pointerId != null && pt.pointerId === drag.pointerId) return true;\n    if (drag.touchId != null && pt.touchId != null && pt.touchId === drag.touchId) return true;\n    if (drag.isTouch && ev.type && ev.type.indexOf('touch') === 0) return true;\n    if (drag.isTouch && ev.pointerType === 'touch') return true;\n    return false;\n  }\n\n  function hitProjectedCanvas(stage, evOrPt) {\n    var pt = evOrPt && evOrPt.x != null ? evOrPt : eventPoint(evOrPt);\n    if (!pt) return false;\n    var pad = 8;\n    var cube = stage.querySelector('.epic-3d-canvas');\n    if (cube) {\n      var r = cube.getBoundingClientRect();\n      if (r.width >= 8 && r.height >= 8) {\n        return pt.x >= r.left - pad && pt.x <= r.right + pad && pt.y >= r.top - pad && pt.y <= r.bottom + pad;\n      }\n    }\n    var inner = stage.querySelector('.epic-3d-stage__inner') || stage;\n    var s = inner.getBoundingClientRect();\n    return pt.x >= s.left + 4 && pt.x <= s.right - 4 && pt.y >= s.top + 4 && pt.y <= s.bottom + 4;\n  }\n\n  function beginDrag(ev, pt, stage) {\n    if (drag) {\n      if (pt.touchId != null) drag.touchId = pt.touchId;\n      if (typeof ev.pointerId === 'number') drag.pointerId = ev.pointerId;\n      if (pt.isTouch) drag.isTouch = true;\n      return;\n    }\n    drag = {\n      pointerId: typeof ev.pointerId === 'number' ? ev.pointerId : pt.pointerId,\n      touchId: pt.touchId,\n      startX: pt.x,\n      startY: pt.y,\n      lastX: pt.x,\n      lastY: pt.y,\n      stage: stage,\n      captured: false,\n      isTouch: !!pt.isTouch\n    };\n  }\n\n  function onPointerDown(ev) {\n    var stage = stageFromEvent(ev);\n    if (!stage || stage.closest('template')) return;\n    if (typeof ev.button === 'number' && ev.button !== 0) return;\n    var pt = eventPoint(ev);\n    if (!hitProjectedCanvas(stage, pt)) return;\n    beginDrag(ev, pt, stage);\n  }\n\n  function onTouchStart(ev) {\n    var stage = stageFromEvent(ev);\n    if (!stage || stage.closest('template')) return;\n    var pt = eventPoint(ev);\n    if (!pt) return;\n    if (drag) {\n      beginDrag(ev, pt, stage);\n      return;\n    }\n    if (!hitProjectedCanvas(stage, pt)) return;\n    beginDrag(ev, pt, stage);\n  }\n\n  function onDragMove(ev) {\n    var pt = eventPoint(ev);\n    if (!matchesDrag(ev, pt)) return;\n    if (ev.type === 'pointermove' && typeof ev.buttons === 'number' && ev.buttons === 0 && ev.pointerType !== 'touch') {\n      endDrag(ev);\n      return;\n    }\n    var dx = pt.x - drag.lastX;\n    var dy = pt.y - drag.lastY;\n    if (dx === 0 && dy === 0) {\n      if (drag.captured) ev.preventDefault();\n      return;\n    }\n    if (!drag.captured) {\n      var dist = Math.hypot(pt.x - drag.startX, pt.y - drag.startY);\n      if (dist < SLOP_PX) return;\n      var adx = Math.abs(pt.x - drag.startX);\n      var ady = Math.abs(pt.y - drag.startY);\n      if (ady > adx) {\n        var stage = drag.stage;\n        drag = null;\n        if (stage) stage.classList.remove('is-dragging');\n        return;\n      }\n      drag.captured = true;\n      stopZoom(ev);\n      if (typeof ev.pointerId === 'number' && drag.stage.setPointerCapture) {\n        try {\n          drag.stage.setPointerCapture(ev.pointerId);\n          drag.pointerId = ev.pointerId;\n        } catch (e) {}\n      }\n      drag.stage.classList.add('is-dragging');\n    }\n    ev.preventDefault();\n    ev.stopPropagation();\n    drag.lastX = pt.x;\n    drag.lastY = pt.y;\n    yaw = yaw + dx * SENSITIVITY;\n    pitch = clamp(pitch - dy * SENSITIVITY, PITCH_MIN, PITCH_MAX);\n    applyAllTransforms();\n  }\n\n  function endDrag(ev) {\n    if (!drag) return;\n    if (ev) {\n      var pt = eventPoint(ev);\n      if (ev.pointerId != null && drag.pointerId != null && ev.pointerId !== drag.pointerId) {\n        if (!(pt && drag.touchId != null && pt.touchId === drag.touchId)) return false;\n      }\n    }\n    var stage = drag.stage;\n    var captured = drag.captured;\n    var pointerId = drag.pointerId;\n    if (captured && ev) {\n      ev.preventDefault();\n      ev.stopPropagation();\n    }\n    try {\n      if (captured && stage && stage.releasePointerCapture && typeof pointerId === 'number') {\n        if (stage.hasPointerCapture && stage.hasPointerCapture(pointerId)) {\n          stage.releasePointerCapture(pointerId);\n        }\n      }\n    } catch (e) {}\n    if (stage) stage.classList.remove('is-dragging');\n    drag = null;\n    return captured;\n  }\n\n  function onPointerUp(ev) {\n    endDrag(ev);\n  }\n\n  function onPointerCancel(ev) {\n    if (!drag) return;\n    if (ev.pointerId != null && drag.pointerId != null && ev.pointerId !== drag.pointerId) return;\n    if (drag.captured && drag.touchId != null) {\n      drag.pointerId = null;\n      return;\n    }\n    endDrag(ev);\n  }\n\n  function onClick(ev) {\n    var stage = stageFromEvent(ev);\n    if (!stage) {\n      if (ev.target && ev.target.closest && ev.target.closest('.epic-3d-grid-item')) stopZoom(ev);\n      return;\n    }\n    if (hitProjectedCanvas(stage, ev)) stopZoom(ev);\n  }\n\n  var LISTEN = { capture: true, passive: false };\n  document.addEventListener('pointerdown', onPointerDown, LISTEN);\n  document.addEventListener('pointermove', onDragMove, LISTEN);\n  document.addEventListener('pointerup', onPointerUp, LISTEN);\n  document.addEventListener('pointercancel', onPointerCancel, LISTEN);\n  document.addEventListener('touchstart', onTouchStart, LISTEN);\n  document.addEventListener('touchmove', onDragMove, LISTEN);\n  document.addEventListener('touchend', onPointerUp, LISTEN);\n  document.addEventListener('touchcancel', onPointerUp, LISTEN);\n  document.addEventListener('click', onClick, LISTEN);\n  document.addEventListener('dblclick', onClick, LISTEN);\n\n  window.addEventListener('resize', scheduleLayout);\n  window.addEventListener('orientationchange', scheduleLayout);\n  window.addEventListener('load', scheduleLayout);\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', scheduleLayout);\n  } else {\n    scheduleLayout();\n  }\n\n  function onVariant() {\n    setTimeout(scheduleLayout, 50);\n    setTimeout(scheduleLayout, 300);\n    setTimeout(scheduleLayout, 800);\n  }\n\n  document.addEventListener('product:select', onVariant, true);\n  document.addEventListener('variant:change', onVariant, true);\n  document.addEventListener('change', function (ev) {\n    var t = ev.target;\n    if (!t) return;\n    var name = t.getAttribute && t.getAttribute('name');\n    if (name === 'id' || (t.closest && t.closest('variant-picker, variant-selects, product-form, product-form-component'))) {\n      onVariant();\n    }\n  });\n  document.addEventListener('shopify:section:load', scheduleLayout);\n\n  if (window.MutationObserver) {\n    var mo = new MutationObserver(function () {\n      window.clearTimeout(refreshTimer);\n      refreshTimer = window.setTimeout(function () {\n        scheduleLayout();\n      }, 80);\n    });\n    mo.observe(document.documentElement, { childList: true, subtree: true });\n  }\n\n  if ('IntersectionObserver' in window) {\n    var io = new IntersectionObserver(function (entries) {\n      for (var i = 0; i < entries.length; i++) {\n        if (entries[i].isIntersecting) layoutStage(entries[i].target);\n      }\n    }, { threshold: 0.01 });\n    function watchStages() {\n      var stages = liveStages();\n      for (var i = 0; i < stages.length; i++) io.observe(stages[i]);\n    }\n    watchStages();\n    if (window.MutationObserver) {\n      var ioMo = new MutationObserver(function () { watchStages(); });\n      ioMo.observe(document.documentElement, { childList: true, subtree: true });\n    }\n  }\n\n  // Used by local screenshot / QA pages.\n  window.__epic3dSetView = function (y, p) {\n    yaw = y;\n    pitch = clamp(p, PITCH_MIN, PITCH_MAX);\n    applyAllTransforms();\n  };\n  window.__epic3dGetView = function () {\n    return { yaw: yaw, pitch: pitch };\n  };\n})();\n"],
  "mappings": "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",
  "names": ["i", "t", "watchStages"]
}
