{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/nb-scripts.js?pb=0"],
  "sourcesContent": ["/* NEBULA \u2014 JS propio. Todo vanilla, sin librer\u00EDas. */\n(function () {\n  'use strict';\n\n  var reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  /* ---------- Reveals al hacer scroll ---------- */\n  function initReveals() {\n    var els = document.querySelectorAll('.nb-reveal');\n    if (!els.length) return;\n    if (reduceMotion || !('IntersectionObserver' in window)) {\n      els.forEach(function (el) { el.classList.add('nb-visible'); });\n      return;\n    }\n    var obs = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (entry.isIntersecting) {\n          entry.target.classList.add('nb-visible');\n          obs.unobserve(entry.target);\n        }\n      });\n    }, { threshold: 0.08, rootMargin: '0px 0px -6% 0px' });\n    els.forEach(function (el) { obs.observe(el); });\n\n    // Seguridad: revela de inmediato lo que ya est\u00E9 en pantalla al cargar.\n    requestAnimationFrame(function () {\n      var vh = window.innerHeight || document.documentElement.clientHeight;\n      els.forEach(function (el) {\n        var r = el.getBoundingClientRect();\n        if (r.top < vh && r.bottom > 0) { el.classList.add('nb-visible'); obs.unobserve(el); }\n      });\n    });\n\n    // \u00DAltimo recurso: nada se queda invisible pasados 1,8 s.\n    setTimeout(function () {\n      document.querySelectorAll('.nb-reveal:not(.nb-visible)').forEach(function (el) {\n        var r = el.getBoundingClientRect();\n        if (r.top < (window.innerHeight * 1.3)) el.classList.add('nb-visible');\n      });\n    }, 1800);\n  }\n\n  /* ---------- Parallax suave del hero ---------- */\n  function initHeroParallax() {\n    var bg = document.querySelector('.nb-hero__bg');\n    if (!bg || reduceMotion) return;\n    var ticking = false;\n    function update() {\n      var rect = bg.parentElement.getBoundingClientRect();\n      var offset = Math.max(-1, Math.min(1, rect.top / window.innerHeight));\n      bg.style.transform = 'translateY(' + (offset * 40) + 'px)';\n      ticking = false;\n    }\n    window.addEventListener('scroll', function () {\n      if (!ticking) { window.requestAnimationFrame(update); ticking = true; }\n    }, { passive: true });\n    update();\n  }\n\n  /* ---------- Contadores animados ---------- */\n  function initCounters() {\n    var els = document.querySelectorAll('[data-nb-count]');\n    if (!els.length || !('IntersectionObserver' in window)) {\n      els.forEach(function (el) { el.textContent = el.getAttribute('data-nb-count'); });\n      return;\n    }\n    var obs = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (!entry.isIntersecting) return;\n        var el = entry.target;\n        var target = parseFloat(el.getAttribute('data-nb-count'));\n        var suffix = el.getAttribute('data-nb-suffix') || '';\n        var dur = 1400, start = null;\n        if (reduceMotion) { el.textContent = target.toLocaleString('es-ES') + suffix; obs.unobserve(el); return; }\n        function step(ts) {\n          if (!start) start = ts;\n          var p = Math.min((ts - start) / dur, 1);\n          var eased = 1 - Math.pow(1 - p, 3);\n          el.textContent = Math.round(target * eased).toLocaleString('es-ES') + suffix;\n          if (p < 1) window.requestAnimationFrame(step);\n        }\n        window.requestAnimationFrame(step);\n        obs.unobserve(el);\n      });\n    }, { threshold: 0.5 });\n    els.forEach(function (el) { obs.observe(el); });\n  }\n\n  /* ---------- Galer\u00EDa de la p\u00E1gina de producto ---------- */\n  function initPdpGallery() {\n    var main = document.querySelector('.nb-pdp__main-img img');\n    var thumbs = document.querySelectorAll('.nb-pdp__thumb');\n    if (!main || !thumbs.length) return;\n    thumbs.forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        var full = btn.getAttribute('data-full');\n        if (full) main.src = full;\n        var alt = btn.querySelector('img');\n        if (alt) main.alt = alt.alt;\n        thumbs.forEach(function (t) { t.setAttribute('aria-current', 'false'); });\n        btn.setAttribute('aria-current', 'true');\n      });\n    });\n  }\n\n  /* ---------- Selector de variantes (si las hubiera) ---------- */\n  function initVariants() {\n    var root = document.querySelector('[data-nb-variants]');\n    if (!root) return;\n    var data;\n    try { data = JSON.parse(document.getElementById('nb-variant-data').textContent); }\n    catch (e) { return; }\n    var selects = root.querySelectorAll('select[data-nb-option]');\n    var idInput = root.querySelector('input[name=\"id\"]');\n    var priceNow = document.querySelector('[data-nb-price-now]');\n    var priceWas = document.querySelector('[data-nb-price-was]');\n    var atc = root.querySelector('[data-nb-atc]');\n    if (!selects.length) return;\n\n    function currentOptions() {\n      return Array.prototype.map.call(selects, function (s) { return s.value; });\n    }\n    function money(cents) {\n      return (cents / 100).toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n    }\n    function update() {\n      var opts = currentOptions();\n      var match = data.find(function (v) {\n        return v.options.every(function (o, i) { return o === opts[i]; });\n      });\n      if (!match) return;\n      if (idInput) idInput.value = match.id;\n      if (priceNow) priceNow.textContent = money(match.price);\n      if (priceWas) {\n        if (match.compare_at_price && match.compare_at_price > match.price) {\n          priceWas.textContent = money(match.compare_at_price);\n          priceWas.style.display = '';\n        } else { priceWas.style.display = 'none'; }\n      }\n      if (atc) {\n        if (match.available) { atc.disabled = false; atc.textContent = atc.getAttribute('data-label-add'); }\n        else { atc.disabled = true; atc.textContent = atc.getAttribute('data-label-sold'); }\n      }\n    }\n    selects.forEach(function (s) { s.addEventListener('change', update); });\n    update();\n  }\n\n  function boot() {\n    initReveals();\n    initHeroParallax();\n    initCounters();\n    initPdpGallery();\n    initVariants();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', boot);\n  } else { boot(); }\n})();\n"],
  "mappings": "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",
  "names": []
}
