{
  "version": 3,
  "sources": ["/cdn/shop/t/12/assets/aime-preview.js?x=1792998183285"],
  "sourcesContent": ["/**\n * AIM\u00C9 Live-Vorschau\n * Liest die Personalisierungsfelder (Globo Product Options) und den gew\u00E4hlten Goldton\n * und zeichnet eine illustrierte Vorschau als SVG. Ver\u00E4ndert keine Formularwerte.\n */\n(function () {\n  'use strict';\n\n  var SVGNS = 'http://www.w3.org/2000/svg';\n\n  var GOLD = {\n    yellow: ['#fbefc4', '#e2c27a', '#b98f45', '#8a6a2f'],\n    rose:   ['#fbe0d4', '#e3a991', '#bd7c66', '#8f5848'],\n    white:  ['#ffffff', '#dcdcdc', '#a9abad', '#7c7f82']\n  };\n\n  var GEMS = {\n    januar: '#8e1b2c', februar: '#8a5bb5', 'm\u00E4rz': '#8fd3e8', april: '#f4f7fb',\n    mai: '#1f8a5b', juni: '#3d8f6f', juli: '#c0143c', august: '#9bc53d',\n    september: '#2347a8', oktober: '#f2b8c6', november: '#f0b429', dezember: '#5aa9e6'\n  };\n\n  var ZODIAC = {\n    wassermann: '\u2652', fische: '\u2653', widder: '\u2648', stier: '\u2649',\n    zwillinge: '\u264A', krebs: '\u264B', 'l\u00F6we': '\u264C', jungfrau: '\u264D',\n    waage: '\u264E', skorpion: '\u264F', 'sch\u00FCtze': '\u2650', steinbock: '\u2651'\n  };\n\n  var SHAPES = {\n    heartFilled: 'M0 11 C-2 9-14 2-14-6 C-14-12-9-15-5-15 C-2.5-15-.8-13.6 0-11.8 C.8-13.6 2.5-15 5-15 C9-15 14-12 14-6 C14 2 2 9 0 11Z',\n    heartOutline: 'M0 11 C-2 9-14 2-14-6 C-14-12-9-15-5-15 C-2.5-15-.8-13.6 0-11.8 C.8-13.6 2.5-15 5-15 C9-15 14-12 14-6 C14 2 2 9 0 11Z M0 6.5 C3 4 10-1 10-6 C10-9.5 7.5-11 5-11 C2.5-11 .8-9 0-7 C-.8-9-2.5-11-5-11 C-7.5-11-10-9.5-10-6 C-10-1-3 4 0 6.5Z',\n    moon: 'M4-14 A14 14 0 1 0 4 14 A11 11 0 1 1 4-14Z',\n    star: 'M0-15 L4.1-5.2 14.3-4.6 6.6 2 9-8.2 0 7.6-8.9 11.9-6.6 2-14.3-4.6-4.1-5.2Z',\n    infinity: 'M-6-7 C-11-7-15-4-15 0 C-15 4-11 7-6 7 C-2 7 1 3 0 0 C-1-3 2-7 6-7 C11-7 15-4 15 0 C15 4 11 7 6 7 C2 7-1 3 0 0 C1-3-2-7-6-7Z M-6-4.2 C-9-4.2-11.6-2.4-11.6 0 C-11.6 2.4-9 4.2-6 4.2 C-3.6 4.2-2 2-2.6 0 C-2-2-3.6-4.2-6-4.2Z M6-4.2 C3.6-4.2 2-2 2.6 0 C2 2 3.6 4.2 6 4.2 C9 4.2 11.6 2.4 11.6 0 C11.6-2.4 9-4.2 6-4.2Z',\n    cross: 'M-2.4-15 H2.4 V-5.5 H9 V-1 H2.4 V15 H-2.4 V-1 H-9 V-5.5 H-2.4Z'\n  };\n\n  function el(name, attrs, parent) {\n    var n = document.createElementNS(SVGNS, name);\n    for (var k in attrs) n.setAttribute(k, attrs[k]);\n    if (parent) parent.appendChild(n);\n    return n;\n  }\n\n  function goldTone(form) {\n    var text = '';\n    var variantSelect = form.querySelector('select[name=\"id\"]');\n    if (variantSelect && variantSelect.selectedIndex > -1) text += variantSelect.options[variantSelect.selectedIndex].text;\n    form.querySelectorAll('[name^=\"properties[\"]').forEach(function (f) {\n      if (/goldton|farbe|gold/i.test(f.name)) text += ' ' + (f.value || '');\n    });\n    form.querySelectorAll('.SelectButton, .ProductForm__SelectedValue').forEach(function (b) { text += ' ' + b.textContent; });\n    if (/ros[e\u00E9]/i.test(text)) return 'rose';\n    if (/wei[s\u00DF]|white|silber/i.test(text)) return 'white';\n    return 'yellow';\n  }\n\n  /** Liefert pro Feldname den sichtbaren Wert (Globo kann Felder doppelt rendern). */\n  function readFields(form) {\n    var out = {};\n    form.querySelectorAll('[name^=\"properties[\"]').forEach(function (f) {\n      var key = f.name.slice(11, -1);\n      var visible = f.offsetParent !== null;\n      if (out[key] && out[key].visible && !visible) return;\n      out[key] = { value: (f.value || '').trim(), visible: visible };\n    });\n    return out;\n  }\n\n  function charmsFromFields(fields) {\n    return Object.keys(fields)\n      .filter(function (k) { return /position|element|buchstabe|zeichen/i.test(k) && !/kombination|anzahl/i.test(k); })\n      .sort(function (a, b) { return (parseInt(a.replace(/\\D/g, ''), 10) || 0) - (parseInt(b.replace(/\\D/g, ''), 10) || 0); })\n      .map(function (k) { return fields[k].value.replace(/\\s*\\(\\+.*\\)$/, ''); })\n      .filter(function (v) { return v && v !== '-'; });\n  }\n\n  function comboFromFields(fields) {\n    var key = Object.keys(fields).filter(function (k) { return /kombination|initialen|gravur|text|name/i.test(k); })[0];\n    return key ? fields[key].value : '';\n  }\n\n  function defs(svg, tone, id) {\n    var c = GOLD[tone];\n    var d = el('defs', {}, svg);\n    var g = el('linearGradient', { id: id + '-g', x1: '0', y1: '0', x2: '0.35', y2: '1' }, d);\n    el('stop', { offset: '0', 'stop-color': c[0] }, g);\n    el('stop', { offset: '0.45', 'stop-color': c[1] }, g);\n    el('stop', { offset: '1', 'stop-color': c[2] }, g);\n    var f = el('filter', { id: id + '-s', x: '-30%', y: '-30%', width: '160%', height: '160%' }, d);\n    el('feDropShadow', { dx: '0', dy: '1.5', stdDeviation: '1.4', 'flood-color': '#3a2a10', 'flood-opacity': '0.22' }, f);\n    return { fill: 'url(#' + id + '-g)', edge: c[3], shadow: 'url(#' + id + '-s)' };\n  }\n\n  function drawCharm(group, value, paint) {\n    var v = value.toLowerCase();\n    var common = { fill: paint.fill, stroke: paint.edge, 'stroke-width': '0.6', filter: paint.shadow };\n\n    if (/geburtsstein/.test(v)) {\n      var month = Object.keys(GEMS).filter(function (m) { return v.indexOf(m) > -1; })[0];\n      el('circle', { r: '10', cx: 0, cy: 0, fill: paint.fill, stroke: paint.edge, 'stroke-width': '0.6', filter: paint.shadow }, group);\n      el('circle', { r: '7', cx: 0, cy: 0, fill: GEMS[month] || '#eef3f8' }, group);\n      el('circle', { r: '2.2', cx: -2.4, cy: -2.6, fill: '#fff', opacity: '0.75' }, group);\n      return;\n    }\n    var zodiac = Object.keys(ZODIAC).filter(function (z) { return v.indexOf(z) > -1; })[0];\n    if (zodiac) {\n      var zt = el('text', { x: 0, y: 11, 'text-anchor': 'middle', 'font-size': '32', 'font-family': 'Georgia, \"Times New Roman\", serif' }, group);\n      for (var k in common) zt.setAttribute(k, common[k]);\n      zt.textContent = ZODIAC[zodiac] + '\uFE0E';\n      return;\n    }\n    var shape = null;\n    if (/herz/.test(v)) shape = /umrand|outline/.test(v) ? 'heartOutline' : 'heartFilled';\n    else if (/mond/.test(v)) shape = 'moon';\n    else if (/stern/.test(v)) shape = 'star';\n    else if (/infinity|unendlich/.test(v)) shape = 'infinity';\n    else if (/kreuz/.test(v)) shape = 'cross';\n    if (shape) {\n      var p = el('path', { d: SHAPES[shape], 'fill-rule': 'evenodd' }, group);\n      for (var c in common) p.setAttribute(c, common[c]);\n      return;\n    }\n    var t = el('text', { x: 0, y: 12, 'text-anchor': 'middle', 'font-size': '34', 'font-weight': '500', 'font-family': getComputedStyle(document.documentElement).getPropertyValue('--heading-font-family') || 'Montserrat, sans-serif' }, group);\n    for (var cc in common) t.setAttribute(cc, common[cc]);\n    t.textContent = value.charAt(0).toUpperCase();\n  }\n\n  /* ---------- Kette ---------- */\n  function renderNecklace(svg, charms, paint) {\n    svg.setAttribute('viewBox', '0 0 600 300');\n    var P0 = [20, 0], P1 = [300, 330], P2 = [580, 0];\n    function pt(t) {\n      var a = (1 - t) * (1 - t), b = 2 * (1 - t) * t, c = t * t;\n      return [a * P0[0] + b * P1[0] + c * P2[0], a * P0[1] + b * P1[1] + c * P2[1]];\n    }\n    function angle(t) {\n      var dx = 2 * (1 - t) * (P1[0] - P0[0]) + 2 * t * (P2[0] - P1[0]);\n      var dy = 2 * (1 - t) * (P1[1] - P0[1]) + 2 * t * (P2[1] - P1[1]);\n      return Math.atan2(dy, dx) * 180 / Math.PI;\n    }\n    var d = 'M' + P0 + ' Q' + P1 + ' ' + P2;\n    el('path', { d: d, fill: 'none', stroke: paint.edge, 'stroke-width': '2.2', 'stroke-linecap': 'round', 'stroke-dasharray': '3.2 1.6', opacity: '0.85' }, svg);\n    el('path', { d: d, fill: 'none', stroke: paint.fill, 'stroke-width': '1.2', 'stroke-dasharray': '2 2.8' }, svg);\n\n    var n = charms.length;\n    var spacing = n > 4 ? 0.088 : 0.1;\n    charms.forEach(function (value, i) {\n      var t = 0.5 + (i - (n - 1) / 2) * spacing;\n      var p = pt(t);\n      var pos = el('g', { transform: 'translate(' + p[0].toFixed(1) + ' ' + (p[1] + 25).toFixed(1) + ') rotate(' + angle(t).toFixed(1) + ') scale(1.45)' }, svg);\n      var g = el('g', {}, pos);\n      el('circle', { cx: 0, cy: -17, r: '2.4', fill: 'none', stroke: paint.edge, 'stroke-width': '1' }, g);\n      g.classList.add('aime-preview__charm');\n      drawCharm(g, value, paint);\n    });\n  }\n\n  /* ---------- Buchstaben-Collier: 5 feste Pl\u00E4tze, Elemente in die Kette eingearbeitet ----------\n     opt.follow = \u201Eim Kettenverlauf\u201C: Pl\u00E4tze \u00FCber die Kette verteilt (1 links oben \u2026 3 Mitte \u2026 5 rechts oben), Buchstaben l\u00E4ngs in der Kette (Achse folgt der Kette).\n     sonst \u201Ehorizontal\u201C: alle 5 Pl\u00E4tze dicht unten im waagerechten Teil, Elemente folgen der Rundung der Kette.\n     opt.pave = Diamant-Buchstaben \u00B7 opt.active = markierter Platz */\n  var SLOT_FOLLOW = [0.2, 0.335, 0.5, 0.665, 0.8], SLOT_HORIZONTAL = [0.36, 0.43, 0.5, 0.57, 0.64];\n  var SLOT_BRACELET = [0.3, 0.4, 0.5, 0.6, 0.7];\n  function renderSlots(svg, slots, paint, opt, id) {\n    opt = opt || {};\n    svg.setAttribute('viewBox', '0 -20 600 290');\n    // Tiefes U wie die echte Kette: steile Seiten, flacher Bogen unten\n    var P0 = [70, -40], C1 = [70, 300], C2 = [530, 300], P3 = [530, -40];\n    // Armband: flacher Bogen, Elemente nebeneinander in der Mitte, mit der Kette gedreht\n    if (opt.bracelet) { P0 = [20, 60]; C1 = [170, 210]; C2 = [430, 210]; P3 = [580, 60]; opt.follow = false; }\n    function pt(t) { var u = 1 - t, a = u * u * u, b = 3 * u * u * t, c = 3 * u * t * t, e = t * t * t; return [a * P0[0] + b * C1[0] + c * C2[0] + e * P3[0], a * P0[1] + b * C1[1] + c * C2[1] + e * P3[1]]; }\n    function angle(t) { var u = 1 - t, dx = 3 * u * u * (C1[0] - P0[0]) + 6 * u * t * (C2[0] - C1[0]) + 3 * t * t * (P3[0] - C2[0]), dy = 3 * u * u * (C1[1] - P0[1]) + 6 * u * t * (C2[1] - C1[1]) + 3 * t * t * (P3[1] - C2[1]); return Math.atan2(dy, dx) * 180 / Math.PI; }\n    var d = 'M' + P0 + ' C' + C1 + ' ' + C2 + ' ' + P3;\n    el('path', { d: d, fill: 'none', stroke: paint.edge, 'stroke-width': '2', 'stroke-linecap': 'round', 'stroke-dasharray': '3 1.6', opacity: '0.85' }, svg);\n    el('path', { d: d, fill: 'none', stroke: paint.fill, 'stroke-width': '1.1', 'stroke-dasharray': '2 2.6' }, svg);\n    var fill = paint.fill;\n    if (opt.pave) {\n      // Pav\u00E9: Gold mit fein gesetzten Steinen\n      var defsEl = svg.querySelector('defs') || el('defs', {}, svg);\n      var pat = el('pattern', { id: id + '-pave', width: '4.2', height: '4.2', patternUnits: 'userSpaceOnUse' }, defsEl);\n      el('rect', { width: '4.2', height: '4.2', fill: paint.edge }, pat);\n      el('circle', { cx: '2.1', cy: '2.1', r: '1.55', fill: '#f4f7fb' }, pat);\n      el('circle', { cx: '1.6', cy: '1.6', r: '.5', fill: '#fff' }, pat);\n      fill = 'url(#' + id + '-pave)';\n    }\n    (opt.bracelet ? SLOT_BRACELET : opt.follow ? SLOT_FOLLOW : SLOT_HORIZONTAL).forEach(function (t, i) {\n      var p = pt(t), v = (slots[i] || '').trim(), rot = angle(t);\n      if (Math.abs(rot) > 90) rot += rot > 0 ? -180 : 180;\n      // Kettenverlauf wie am echten Collier: Kette l\u00E4uft oben in das Element hinein und unten heraus \u2013\n      // die senkrechte Achse des Buchstabens folgt der Kette (links kippt die Spitze nach links, rechts nach rechts)\n      if (opt.follow) {\n        var a0 = angle(t);\n        // Infinity ist breit: lange Seite entlang der Kette; alle anderen: senkrechte Achse entlang der Kette (Mitte = liegend)\n        if (/infinity|unendlich/i.test(v)) rot = Math.abs(a0) > 90 ? a0 + (a0 > 0 ? -180 : 180) : a0;\n        else rot = t <= 0.5 ? a0 - 90 : a0 + 90;\n      }\n      if (!v || v === '-') {\n        if (opt.showEmpty) {\n          var e = el('g', { transform: 'translate(' + p[0].toFixed(1) + ' ' + p[1].toFixed(1) + ')' }, svg);\n          el('circle', { r: '11', fill: 'none', stroke: opt.active === i ? '#2b2420' : paint.edge, 'stroke-width': opt.active === i ? '1.4' : '.8', 'stroke-dasharray': '2 2', opacity: opt.active === i ? '1' : '.55' }, e);\n          var n = el('text', { y: '3.5', 'text-anchor': 'middle', 'font-size': '10', fill: paint.edge, opacity: '.7', 'font-family': 'sans-serif' }, e); n.textContent = i + 1;\n        }\n        return;\n      }\n      // Kette unter dem Element ausblenden, damit es eingearbeitet wirkt\n      // Position au\u00DFen, Einblend-Animation innen \u2013 Safari \u00FCberschreibt sonst die Position mit der Animation\n      var pos = el('g', { transform: 'translate(' + p[0].toFixed(1) + ' ' + p[1].toFixed(1) + ') rotate(' + rot.toFixed(1) + ') scale(' + (opt.scale || 1.05) + ')' }, svg);\n      var g = el('g', {}, pos);\n      g.classList.add('aime-preview__charm');\n      drawCharm(g, v, { fill: fill, edge: paint.edge, shadow: paint.shadow });\n      if (opt.active === i) el('circle', { cx: p[0].toFixed(1), cy: p[1].toFixed(1), r: '22', fill: 'none', stroke: '#2b2420', 'stroke-width': '.8', 'stroke-dasharray': '2 2.4', opacity: '.6' }, svg);\n    });\n  }\n\n  /* ---------- Ring (stehend, in Perspektive \u2013 wie das Produkt-Rendering) ---------- */\n  // opt.cells = A COEUR \u201EFELD 1\u20138\u201C: ein Zeichen pro Feld (sonst die Kombination in jedem Feld) \u00B7 opt.pave = Diamantreihen an den R\u00E4ndern\n  function renderRing(svg, combo, paint, tone, id, opt) {\n    opt = opt || {};\n    svg.setAttribute('viewBox', '0 0 600 320');\n    var C = GOLD[tone];\n    var d = svg.querySelector('defs');\n\n    // Verl\u00E4ufe f\u00FCr Bandau\u00DFenseite, Innenseite, matte Felder, polierte Buchstaben\n    var gOut = el('linearGradient', { id: id + '-out', x1: '0', y1: '0', x2: '0', y2: '1' }, d);\n    [['0', C[1]], ['0.18', C[0]], ['0.42', C[1]], ['0.78', C[2]], ['1', C[3]]].forEach(function (s) { el('stop', { offset: s[0], 'stop-color': s[1] }, gOut); });\n    var gIn = el('linearGradient', { id: id + '-in', x1: '0', y1: '0', x2: '1', y2: '0.3' }, d);\n    [['0', C[3]], ['0.35', C[2]], ['0.7', C[0]], ['1', C[1]]].forEach(function (s) { el('stop', { offset: s[0], 'stop-color': s[1] }, gIn); });\n    var gTile = el('linearGradient', { id: id + '-tile', x1: '0', y1: '0', x2: '0', y2: '1' }, d);\n    [['0', C[3]], ['0.5', C[2]], ['1', C[3]]].forEach(function (s) { el('stop', { offset: s[0], 'stop-color': s[1], 'stop-opacity': '0.8' }, gTile); });\n    var gLet = el('linearGradient', { id: id + '-let', x1: '0', y1: '0', x2: '0.4', y2: '1' }, d);\n    [['0', '#fff'], ['0.25', C[0]], ['0.7', C[1]], ['1', C[2]]].forEach(function (s) { el('stop', { offset: s[0], 'stop-color': s[1] }, gLet); });\n    var floor = el('filter', { id: id + '-floor', x: '-50%', y: '-200%', width: '200%', height: '500%' }, d);\n    el('feGaussianBlur', { stdDeviation: '9' }, floor);\n\n    var cy = 150, ry = 128, rx = 74, xl = 262, w = 62, xr = xl + w;\n    var holeRx = rx - 9, holeRy = ry - 11;\n\n    // Bodenschatten\n    el('ellipse', { cx: xl + 40, cy: cy + ry + 14, rx: 130, ry: 9, fill: '#3b3128', opacity: '0.28', filter: 'url(#' + id + '-floor)' }, svg);\n\n    // Ring\u00F6ffnung: Innenseite sichtbar\n    el('ellipse', { cx: xr, cy: cy, rx: rx, ry: ry, fill: 'url(#' + id + '-out)', stroke: C[3], 'stroke-width': '0.8' }, svg);\n    el('ellipse', { cx: xr, cy: cy, rx: holeRx, ry: holeRy, fill: 'url(#' + id + '-in)' }, svg);\n    var clip = el('clipPath', { id: id + '-hole' }, d);\n    el('ellipse', { cx: xr, cy: cy, rx: holeRx, ry: holeRy }, clip);\n    el('ellipse', { cx: xl, cy: cy, rx: holeRx, ry: holeRy, fill: '#f4f1ec', 'clip-path': 'url(#' + id + '-hole)' }, svg);\n\n    // Au\u00DFenfl\u00E4che des Bandes\n    var top = cy - ry, bot = cy + ry;\n    el('path', { d: 'M' + xl + ' ' + top + ' A' + rx + ' ' + ry + ' 0 0 0 ' + xl + ' ' + bot + ' L' + xr + ' ' + bot + ' A' + rx + ' ' + ry + ' 0 0 1 ' + xr + ' ' + top + 'Z', fill: 'url(#' + id + '-out)', stroke: C[3], 'stroke-width': '0.8' }, svg);\n\n    function P(phi, dx) { return [xl - rx * Math.cos(phi) + dx, cy + ry * Math.sin(phi)]; }\n\n    var text = (combo || '').toUpperCase().replace(/[^A-Z0-9\u00C4\u00D6\u00DC&+ ]/g, '').replace(/\\s+/g, '').slice(0, 3);\n    var step = Math.PI / 6.2;            // Feldgr\u00F6\u00DFe auf dem Umfang\n    // Pav\u00E9: Diamanten entlang beider R\u00E4nder des Bandes\n    if (opt.pave) {\n      for (var ph = -1.42; ph <= 1.42; ph += 0.085) {\n        var fz = Math.cos(ph);\n        [4.2, w - 4.2].forEach(function (dx) {\n          var q = P(ph, dx);\n          el('circle', { cx: q[0].toFixed(1), cy: q[1].toFixed(1), r: (2.6 * (0.55 + 0.45 * fz)).toFixed(2), fill: '#f5f7fa', stroke: C[3], 'stroke-width': '0.45' }, svg);\n          el('circle', { cx: (q[0] - 0.7).toFixed(1), cy: (q[1] - 0.8).toFixed(1), r: '0.7', fill: '#fff' }, svg);\n        });\n      }\n    }\n    var CELL = { 'Herz': '\u2665', 'Herz (gef\u00FCllt)': '\u2665', 'Herz (Umrandung)': '\u2661', 'Mond': '\u263E', 'Stern': '\u2605', 'Infinity Sign': '\u221E', 'Kreuz': '\u271D' };\n    var vis = 0;\n    for (var k = -3; k <= 3; k++) {\n      var a = k * step - step * 0.43, b = k * step + step * 0.43;\n      if (a < -1.45 || b > 1.45) continue;\n      var m = (a + b) / 2, fore = Math.cos(m);\n      var p1 = P(a, 9), p2 = P(a, w - 9), p3 = P(b, w - 9), p4 = P(b, 9);\n      el('path', { d: 'M' + p1 + ' L' + p2 + ' L' + p3 + ' L' + p4 + 'Z', fill: 'url(#' + id + '-tile)', stroke: C[3], 'stroke-width': '0.6', 'stroke-opacity': '0.7' }, svg);\n      var label = text;\n      if (opt.cells) {\n        // Feld f\u00FCr Feld von oben: FELD 1 oben, dann nach unten; leere Felder bleiben glatt\n        var cv = (opt.cells[vis++] || '').trim();\n        label = !cv || cv === '-' ? '' : CELL[cv] ? CELL[cv] + '\uFE0E' : cv.length === 1 ? cv.toUpperCase() : '\u2726';\n      }\n      if (!label) continue;\n      var c = P(m, w / 2);\n      var size = label.length > 2 ? 20 : 27;\n      var g = el('g', {}, el('g', { transform: 'translate(' + c[0].toFixed(1) + ' ' + c[1].toFixed(1) + ') scale(1 ' + fore.toFixed(3) + ')' }, svg));\n      g.classList.add('aime-preview__charm');\n      var shadow = el('text', { x: 0.8, y: size * 0.36 + 1.2, 'text-anchor': 'middle', 'font-size': size, 'font-weight': '600', 'font-family': 'Montserrat, Arial, sans-serif', fill: C[3], opacity: '0.55' }, g);\n      shadow.textContent = label;\n      var t = el('text', { x: 0, y: size * 0.36, 'text-anchor': 'middle', 'font-size': size, 'font-weight': '600', 'font-family': 'Montserrat, Arial, sans-serif', fill: 'url(#' + id + '-let)', stroke: C[3], 'stroke-width': '0.35' }, g);\n      t.textContent = label;\n    }\n\n    // Glanzlicht\n    el('path', { d: 'M' + (xl - rx * 0.92) + ' ' + (cy - ry * 0.35) + ' A' + rx + ' ' + ry + ' 0 0 0 ' + (xl - rx * 0.92) + ' ' + (cy + ry * 0.3), fill: 'none', stroke: '#fff', 'stroke-width': '2', 'stroke-linecap': 'round', opacity: '0.5' }, svg);\n  }\n\n  /* ---------- 3D-Ring (WebGL), wird nur bei Ringen nachgeladen ---------- */\n  var ring3dLoading = false;\n  function use3D(root, combo, tone) {\n    var src = root.getAttribute('data-ring3d');\n    if (!src) return false;\n    if (!root._ring3d) {\n      if (!window.AimeRing3D) {\n        if (!ring3dLoading) {\n          ring3dLoading = true;\n          var s = document.createElement('script');\n          s.src = src; s.async = true;\n          s.onload = function () { document.dispatchEvent(new Event('change')); };\n          document.head.appendChild(s);\n        }\n        return false;\n      }\n      var stage = root.querySelector('.aime-preview__stage');\n      var canvas = document.createElement('canvas');\n      canvas.className = 'aime-preview__canvas';\n      canvas.setAttribute('aria-label', 'Ring in 3D \u2013 zum Drehen ziehen');\n      stage.appendChild(canvas);\n      try { var pv = root.getAttribute('data-pave'); root._ring3d = window.AimeRing3D(canvas, { pave: pv === 'bars' ? 'bars' : pv === '1' }); } catch (e) { root._ring3d = null; }\n      if (!root._ring3d) { canvas.remove(); root.removeAttribute('data-ring3d'); return false; }\n      root.classList.add('is-3d');\n    }\n    root._ring3d.setTone(tone);\n    root._ring3d.setText(combo);\n    return true;\n  }\n\n  /* A COEUR: echtes Produktfoto oben, darunter der Ring \u201Eabgerollt\u201C \u2013 8 Felder, Zeichen live, Pav\u00E9 an R\u00E4ndern und zwischen den Feldern */\n  function renderBand(svg, cells, paint, tone, id, opt) {\n    opt = opt || {};\n    var C = GOLD[tone], n = 8, x0 = 14, x1 = 586, y0 = 16, y1 = 96, rim = opt.pave ? 11 : 7, gap = opt.pave ? 10 : 6;\n    svg.setAttribute('viewBox', '0 0 600 112');\n    var d = svg.querySelector('defs');\n    var gTile = el('linearGradient', { id: id + '-bt', x1: '0', y1: '0', x2: '0', y2: '1' }, d);\n    [['0', C[3]], ['0.5', C[2]], ['1', C[3]]].forEach(function (q) { el('stop', { offset: q[0], 'stop-color': q[1], 'stop-opacity': '0.85' }, gTile); });\n    var gLet = el('linearGradient', { id: id + '-bl', x1: '0', y1: '0', x2: '0.4', y2: '1' }, d);\n    [['0', '#fff'], ['0.25', C[0]], ['0.7', C[1]], ['1', C[2]]].forEach(function (q) { el('stop', { offset: q[0], 'stop-color': q[1] }, gLet); });\n    el('rect', { x: x0, y: y0, width: x1 - x0, height: y1 - y0, rx: '10', fill: paint.fill, stroke: paint.edge, 'stroke-width': '0.8', filter: paint.shadow }, svg);\n    function stones(xa, xb, y) { for (var x = xa; x <= xb; x += 7.2) { el('circle', { cx: x.toFixed(1), cy: y, r: '2.7', fill: '#f5f7fa', stroke: C[3], 'stroke-width': '0.45' }, svg); el('circle', { cx: (x - 0.8).toFixed(1), cy: y - 0.9, r: '0.7', fill: '#fff' }, svg); } }\n    if (opt.pave) { stones(x0 + 8, x1 - 8, y0 + 5.5); stones(x0 + 8, x1 - 8, y1 - 5.5); }\n    var fw = (x1 - x0 - gap * (n + 1)) / n;\n    var SYM = { 'Herz': '\u2665', 'Herz (gef\u00FCllt)': '\u2665', 'Herz (Umrandung)': '\u2661', 'Mond': '\u263E', 'Stern': '\u2605', 'Infinity Sign': '\u221E', 'Kreuz': '\u271D' };\n    for (var i = 0; i < n; i++) {\n      var fx = x0 + gap + i * (fw + gap), fy = y0 + rim, fh = y1 - y0 - rim * 2;\n      if (opt.pave && i > 0) for (var yy = fy + 4; yy <= fy + fh - 3; yy += 7) { el('circle', { cx: (fx - gap / 2).toFixed(1), cy: yy.toFixed(1), r: '2.4', fill: '#f5f7fa', stroke: C[3], 'stroke-width': '0.4' }, svg); }\n      el('rect', { x: fx.toFixed(1), y: fy, width: fw.toFixed(1), height: fh, rx: '2', fill: 'url(#' + id + '-bt)', stroke: C[3], 'stroke-width': '0.6' }, svg);\n      if (opt.active === i) el('rect', { x: (fx - 3).toFixed(1), y: fy - 3, width: (fw + 6).toFixed(1), height: fh + 6, rx: '4', fill: 'none', stroke: '#2b2420', 'stroke-width': '1', 'stroke-dasharray': '3 2.5' }, svg);\n      var v = (cells[i] || '').trim(), label = !v || v === '-' ? '' : SYM[v] ? SYM[v] + '\uFE0E' : v.length === 1 ? v.toUpperCase() : '\u2726';\n      if (!label) { var no = el('text', { x: (fx + fw / 2).toFixed(1), y: fy + fh / 2 + 4, 'text-anchor': 'middle', 'font-size': '11', fill: C[3], opacity: '.55', 'font-family': 'sans-serif' }, svg); no.textContent = i + 1; continue; }\n      var g = el('g', { transform: 'translate(' + (fx + fw / 2).toFixed(1) + ' ' + (fy + fh / 2).toFixed(1) + ')' }, svg), gi = el('g', {}, g);\n      gi.classList.add('aime-preview__charm');\n      var sz = Math.min(fh * 0.72, 34);\n      var sh = el('text', { x: 0.8, y: sz * 0.36 + 1.2, 'text-anchor': 'middle', 'font-size': sz, 'font-weight': '600', 'font-family': 'Montserrat, Arial, sans-serif', fill: C[3], opacity: '0.55' }, gi); sh.textContent = label;\n      var t = el('text', { x: 0, y: sz * 0.36, 'text-anchor': 'middle', 'font-size': sz, 'font-weight': '600', 'font-family': 'Montserrat, Arial, sans-serif', fill: 'url(#' + id + '-bl)', stroke: C[3], 'stroke-width': '0.35' }, gi); t.textContent = label;\n    }\n  }\n  function photoInStage(root) {\n    var src = root.getAttribute('data-photo'); if (!src) return;\n    var stage = root.querySelector('.aime-preview__stage');\n    if (!stage.querySelector('.aime-preview__photo')) {\n      var img = document.createElement('img');\n      img.className = 'aime-preview__photo'; img.src = src; img.alt = root.getAttribute('data-photo-alt') || ''; img.loading = 'lazy';\n      stage.insertBefore(img, stage.firstChild);\n      root.classList.add('has-photo');\n    }\n  }\n\n  function render(root) {\n    var form = root.closest('form') || document.querySelector('form[action*=\"/cart/add\"]');\n    if (!form) return;\n    var fields = readFields(form);\n    var mode = root.getAttribute('data-mode');\n    var charms = charmsFromFields(fields);\n    var combo = comboFromFields(fields);\n    // AIM\u00C9 Buchstaben-Collier: Anh\u00E4nger direkt aus der AIM\u00C9-Auswahl (unabh\u00E4ngig davon, wie Globo sie speichert)\n    var ext = form.querySelector('[data-aime-charms]'), slotData = null;\n    if (ext) {\n      if (ext.value && ext.value.charAt(0) === '{') { try { slotData = JSON.parse(ext.value); } catch (e) {} }\n      charms = slotData ? slotData.slots.filter(function (v) { return v && v !== '-'; }) : (ext.value ? ext.value.split('|') : []);\n      if (mode === 'auto') mode = 'necklace';\n    }\n    if (mode === 'auto') mode = charms.length || Object.keys(fields).some(function (k) { return /position/i.test(k); }) ? 'necklace' : (combo !== '' || Object.keys(fields).some(function (k) { return /kombination|initialen|gravur/i.test(k); }) ? 'ring' : 'none');\n    if (mode === 'none') { root.hidden = true; return; }\n    root.hidden = false;\n\n    var tone = goldTone(form);\n    var svg = root.querySelector('svg');\n    while (svg.firstChild) svg.removeChild(svg.firstChild);\n    var paint = defs(svg, tone, 'aimepv' + root.getAttribute('data-id'));\n\n    if (mode === 'ring' && use3D(root, combo, tone)) {\n      svg.style.display = 'none';\n    } else if (mode === 'ring') {\n      svg.style.display = '';\n      renderRing(svg, combo, paint, tone, 'aimepv' + root.getAttribute('data-id'));\n    } else if (slotData && slotData.ring) {\n      // A COEUR: echtes Foto + Ring \u201Eabgerollt\u201C mit den Feldern (Foto ist n\u00E4her am Design als jede Illustration)\n      svg.style.display = '';\n      photoInStage(root);\n      renderBand(svg, slotData.slots, paint, tone, 'aimepv' + root.getAttribute('data-id'), { pave: slotData.pave, active: slotData.active });\n    } else if (slotData) {\n      svg.style.display = '';\n      renderSlots(svg, slotData.slots, paint, { follow: slotData.follow, pave: slotData.pave, bracelet: slotData.bracelet, showEmpty: true, active: slotData.active }, 'aimepv' + root.getAttribute('data-id'));\n    } else {\n      renderNecklace(svg, charms, paint);\n    }\n\n    var empty = mode === 'ring' ? !combo : charms.length === 0;\n    root.classList.toggle('is-empty', empty);\n    var label = root.querySelector('[data-aime-preview-summary]');\n    if (label) {\n      var toneLabel = { yellow: 'Gelbgold', rose: 'Ros\u00E9gold', white: 'Wei\u00DFgold' }[tone];\n      label.textContent = empty ? root.getAttribute('data-empty') : toneLabel + ' \u00B7 ' + (mode === 'ring' ? combo.toUpperCase() : charms.map(function (c) { var m = c.match(/geburtsstein\\s+\\S+\\s+(.+?)\\s*\\(/i); return m ? m[1] : c.replace(/\\s*\\(gef\u00FCllt\\)/i, ''); }).join(' \u00B7 '));\n    }\n  }\n\n  // Initialen aus ?initials=AM (Geschenk-Modus) ins Globo-Feld vorausf\u00FCllen \u2013 nur wenn leer, nichts absenden\n  function prefillInitials() {\n    var v = new URLSearchParams(window.location.search).get('initials');\n    v = v ? v.toUpperCase().replace(/[^A-Z\u00C4\u00D6\u00DC0-9]/g, '').slice(0, 8) : '';\n    if (!v) return true;\n    // Felder-Auswahl (z. B. A COEUR \u201EFELD 1\u20138\u201C): ein Zeichen pro Feld\n    var cells = Array.prototype.filter.call(document.querySelectorAll('form[action*=\"/cart/add\"] select[name^=\"properties[\"]'), function (e) { return /\\[\\s*feld\\s*\\d+\\s*\\]/i.test(e.name); })\n      .sort(function (a, b) { return (parseInt(a.name.replace(/\\D/g, ''), 10) || 0) - (parseInt(b.name.replace(/\\D/g, ''), 10) || 0); });\n    if (cells.length) {\n      v.split('').forEach(function (c, i) {\n        var sel = cells[i]; if (!sel || (sel.value && sel.value !== '-')) return;\n        var o = Array.prototype.filter.call(sel.options, function (x) { return x.value.trim() === c || x.text.trim() === c; })[0];\n        if (o) { sel.value = o.value; sel.dispatchEvent(new Event('input', { bubbles: true })); sel.dispatchEvent(new Event('change', { bubbles: true })); }\n      });\n      return true;\n    }\n    var f = Array.prototype.filter.call(document.querySelectorAll('form[action*=\"/cart/add\"] input[name^=\"properties[\"]'), function (e) {\n      return /kombination|initialen/i.test(e.name) && e.type === 'text';\n    });\n    if (!f.length) return false;\n    f.forEach(function (e) { if (!e.value) { e.value = v; e.dispatchEvent(new Event('input', { bubbles: true })); e.dispatchEvent(new Event('change', { bubbles: true })); } });\n    return true;\n  }\n\n  // F\u00FCr andere AIM\u00C9-Bausteine (z. B. Ring | Collier im Atelier): Kette mit Anh\u00E4ngern zeichnen\n  window.AIMEPreview = {\n    necklace: function (svg, charms, tone, id) {\n      while (svg.firstChild) svg.removeChild(svg.firstChild);\n      renderNecklace(svg, charms, defs(svg, tone || 'yellow', id || 'aimenl'));\n    },\n    slots: function (svg, slots, tone, id, opt) {\n      while (svg.firstChild) svg.removeChild(svg.firstChild);\n      id = id || 'aimesl';\n      renderSlots(svg, slots, defs(svg, tone || 'yellow', id), opt, id);\n    },\n    // Ring an der Kette (z. B. A COEUR): Ring mit Initialen als Anh\u00E4nger, die Kette l\u00E4uft durch den Ring\n    ringCollier: function (svg, text, tone, id, opt) {\n      while (svg.firstChild) svg.removeChild(svg.firstChild);\n      id = id || 'aimerc'; tone = tone || 'yellow';\n      svg.setAttribute('viewBox', '0 0 600 320');\n      var paint = defs(svg, tone, id);\n      [['M30 -20 Q170 110 286 128'], ['M570 -20 Q430 110 314 128']].forEach(function (c) {\n        el('path', { d: c[0], fill: 'none', stroke: paint.edge, 'stroke-width': '2', 'stroke-linecap': 'round', 'stroke-dasharray': '3 1.6', opacity: '0.85' }, svg);\n        el('path', { d: c[0], fill: 'none', stroke: paint.fill, 'stroke-width': '1.1', 'stroke-dasharray': '2 2.6' }, svg);\n      });\n      // Ring als eigene Zeichnung (verschachteltes SVG), damit Buchstaben und Verl\u00E4ufe am Ring bleiben\n      var inner = el('svg', { x: '150', y: '112', width: '300', height: '160', overflow: 'visible' }, svg);\n      renderRing(inner, text, defs(inner, tone, id + 'r'), tone, id + 'r', opt);\n    }\n  };\n\n  function init() {\n    var roots = document.querySelectorAll('[data-aime-preview]');\n    if (!roots.length) return;\n    var queued = false;\n    function update() {\n      if (queued) return;\n      queued = true;\n      requestAnimationFrame(function () { queued = false; roots.forEach(render); });\n    }\n    document.addEventListener('change', update, true);\n    document.addEventListener('input', update, true);\n    document.addEventListener('variant:changed', update);\n    // Globo l\u00E4dt seine Felder asynchron nach\n    var tries = 0;\n    var prefilled = false;\n    var timer = setInterval(function () { if (!prefilled) prefilled = prefillInitials(); update(); if (++tries > 12) clearInterval(timer); }, 500);\n    update();\n  }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n"],
  "mappings": "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",
  "names": []
}
