{
  "version": 3,
  "sources": ["/cdn/shop/t/44/assets/arma-tu-pared.js?x=1790864090689"],
  "sourcesContent": ["/* Tree House Deco \u00B7 Arm\u00E1 tu pared (simulador de composiciones)\n   Se carga desde sections/arma-tu-pared.liquid. Todo el simulador vive dentro de un\n   \"shadow DOM\" para que los estilos del tema y los del simulador no se mezclen. */\n(function(){\n'use strict';\nconst host=document.getElementById('atp-host');\nif(!host||host.shadowRoot)return;\nconst CFG=JSON.parse(document.getElementById('atp-config').textContent);\nconst root=host.attachShadow({mode:'open'});\nroot.appendChild(document.getElementById('atp-template').content.cloneNode(true));\nconst $=id=>root.getElementById(id);\n\n/* ---------- cat\u00E1logo ---------- */\nconst CAT=[], BYID={};\nconst TABS={};                         // t\u00EDtulo de pesta\u00F1a -> [handles] (se cargan al abrirla)\nconst FRAMES={NAT:{n:'Natural',c:'#C9A274',hi:'#DDBB8E'},NEG:{n:'Negro',c:'#1F1E1C',hi:'#3A3835'},NOG:{n:'Nogal',c:'#5B3B24',hi:'#7A5236'},SM:{n:'Sin marco',c:'#E3D3B5',hi:'#E3D3B5'}};\nconst WALLS=[['#EFEBE4','Blanco tiza'],['#CDD3C4','Salvia'],['#C7CED4','Gris azulado'],['#E6D2C2','Rosa arcilla'],['#4A5446','Verde bosque']];\nconst fmt=n=>'$'+Math.round(n).toLocaleString('es-UY');\nconst cm=s=>s.split('X').map(Number);\nconst ROOT=(window.Shopify&&Shopify.routes&&Shopify.routes.root)||'/';\nlet BEST=[];\n\nasync function fetchJSON(url){const r=await fetch(url,{credentials:'same-origin'});if(!r.ok)throw new Error(url+' '+r.status);return r.json();}\n// trae todas las p\u00E1ginas de una colecci\u00F3n con la plantilla alternativa (\"view\")\nasync function loadCollection(handle,view){\n  const u=p=>`${ROOT}collections/${handle}?view=${view}&page=${p}`;\n  const first=await fetchJSON(u(1)); let out=first.p.slice();\n  const rest=[]; for(let p=2;p<=(first.pages||1);p++)rest.push(fetchJSON(u(p)));\n  (await Promise.all(rest)).forEach(j=>out=out.concat(j.p));\n  return out;\n}\nfunction parseProduct(p){\n  const sku=(p.k||'').toUpperCase();\n  const m=sku.match(/^(?:MDF-)?S(\\d)-/); const n=m?Math.max(1,+m[1]):1;\n  const v={}; let mdf=sku.startsWith('MDF-');\n  const sizes=[];\n  p.v.forEach(([id,title,cents])=>{\n    const parts=String(title).toUpperCase().split(' / ').map(x=>x.trim());\n    const size=parts.find(x=>/^\\d+X\\d+$/.test(x)); if(!size)return;\n    const gl=parts.find(x=>/VIDRIO/.test(x)); const fr=parts.find(x=>/NATURAL|NEGRO|NOGAL/.test(x));\n    if(!gl&&!fr)mdf=true;\n    const key=(gl||fr)?`${size}|${/SIN/.test(gl||'')||!gl?'SV':'VC'}|${/NEGRO/.test(fr||'')?'NEG':/NOGAL/.test(fr||'')?'NOG':'NAT'}`:size;\n    if(!v[key])v[key]=[id,cents/100];\n    if(!sizes.includes(size))sizes.push(size);\n  });\n  sizes.sort((a,b)=>cm(a)[0]*cm(a)[1]-cm(b)[0]*cm(b)[1]);\n  const tags=p.g||[];\n  const ordT=tags.find(t=>/^simu-orden-[abc]{2,3}$/.test(t));\n  const rot=tags.includes('simu-rot-izq')?-90:tags.includes('simu-rot-der')?90:0;\n  const sets=tags.filter(t=>/^set\\d/.test(t));\n  const t=p.t.replace(/^(Set x\\d )?Cuadros? Decorativos? /i,'').replace(/^Abstractos?, /,'').replace(/^Modernos, /,'');\n  return {id:p.h,h:p.h,t,n,mdf,v,sizes,rot,ord:ordT?ordT.slice(11):'',hz:rot!==0,sets,p:[],col:''};\n}\nfunction imgBase(it,k){return `${CFG.files}SIMU-${it.h}${it.n>1?'-'+(it.ord||'abc')[k]:''}.${it.ext||'jpg'}`;}\n\n/* im\u00E1genes: las que est\u00E1n guardadas giradas se enderezan en el navegador */\nconst _rot={};\nfunction rotated(url,deg){\n  if(_rot[url])return _rot[url];\n  return _rot[url]=new Promise(res=>{const im=new Image();im.crossOrigin='anonymous';\n    im.onload=()=>{try{const c=document.createElement('canvas');c.width=im.height;c.height=im.width;const x=c.getContext('2d');\n      x.translate(c.width/2,c.height/2);x.rotate(deg*Math.PI/180);x.drawImage(im,-im.width/2,-im.height/2);\n      c.toBlob(b=>res(b?URL.createObjectURL(b):url),'image/jpeg',.85);}catch(e){res(url);}};\n    im.onerror=()=>res(url); im.src=url;});\n}\nconst _ready={};\nfunction imgURL(it,k,w){\n  const u=imgBase(it,k)+'?width='+w;\n  if(!it.rot)return u;\n  const key=u; if(_ready[key])return _ready[key];\n  rotated(u,it.rot).then(b=>{_ready[key]=b;scheduleRender();});\n  return '';\n}\n// si el archivo ya es horizontal (m\u00E1s ancho que alto) lo detectamos solo\nconst _probed={};\nfunction probe(it){\n  if(_probed[it.id])return; _probed[it.id]=1;\n  const im=new Image();\n  im.onload=()=>{if(!it.rot&&im.naturalWidth>im.naturalHeight*1.05){it.hz=true;flow();}};\n  // algunos originales se guardaron como .png: si el .jpg no existe, usa el .png\n  im.onerror=()=>{if((it.ext||'jpg')==='jpg'){it.ext='png';_probed[it.id]=0;probe(it);scheduleRender();}};\n  im.src=imgBase(it,0)+'?width=80';\n}\nlet _rq=0; function scheduleRender(){if(_rq)return;_rq=requestAnimationFrame(()=>{_rq=0;render();hydrate(root);});}\nfunction thumbs(it,w){\n  w=w||360;\n  return Array.from({length:it.n},(_,k)=>{\n    const u=imgBase(it,k)+'?width='+w;\n    return it.rot?`<img alt=\"\" decoding=\"async\" data-rot=\"${it.rot}\" data-u=\"${u}\">`:`<img alt=\"\" loading=\"lazy\" decoding=\"async\" src=\"${u}\">`;\n  }).join('');\n}\nfunction oneThumb(it,k,w){const u=imgBase(it,k)+'?width='+w;return it.rot?`<img alt=\"\" data-rot=\"${it.rot}\" data-u=\"${u}\">`:`<img alt=\"\" src=\"${u}\">`;}\n// miniaturas: si el .jpg no existe, prueba con el .png\nroot.addEventListener('error',e=>{const im=e.target;if(im&&im.tagName==='IMG'&&/\\/SIMU-[^?]*\\.jpg\\?/.test(im.src)){im.src=im.src.replace(/\\.jpg\\?/,'.png?');}},true);\nfunction hydrate(el){el.querySelectorAll('img[data-rot]:not([src])').forEach(im=>{rotated(im.dataset.u,+im.dataset.rot).then(b=>{im.src=b;});});}\n\n/* ---------- composici\u00F3n ---------- */\nconst ARR={line:'En l\u00EDnea',grid:'En grilla',gal:'Galer\u00EDa'};\nfunction arrOptions(n){const o=['line'];if(n>=4)o.push('grid');if(n===5)o.push('gal');return o;}\nfunction defaultArr(n){return n<=3?'line':n===5?'gal':'grid';}\nfunction arrIcon(k,n){\n  let r=[];\n  if(k==='line'){const w=Math.min(12,48/n-2);const tot=n*w+(n-1)*2;let x=(56-tot)/2;for(let i=0;i<n;i++){r.push([x,8,w,16]);x+=w+2;}}\n  else if(k==='grid'){const c=Math.ceil(n/2),w=Math.min(11,44/c-2);const tot=c*w+(c-1)*2;for(let i=0;i<n;i++){const ci=i%c,ri=Math.floor(i/c);r.push([(56-tot)/2+ci*(w+2),2+ri*15,w,13]);}}\n  else r=[[4,3,11,12],[4,17,11,12],[19,1,18,30],[41,3,11,12],[41,17,11,12]];\n  return `<svg viewBox=\"0 0 56 32\" aria-hidden=\"true\">${r.map(q=>`<rect x=\"${q[0]}\" y=\"${q[1]}\" width=\"${q[2]}\" height=\"${q[3]}\" rx=\"1\"/>`).join('')}</svg>`;\n}\nconst GAP=6;\nconst st={wall:1,wallW:320,furn:'sofa',arr:'line',slots:[],active:0,nextGroup:1,gx:0,gy:0,\n  entry:'direct',viewed:[],photo:null,pins:[.1,.9],pinY:.8,calibCm:0,pinsMoved:false,calibrating:false};\n\nfunction mkSlot(size){return{item:null,piece:0,group:null,size,glass:'SV',frame:'NAT',margin:false,dx:0,dy:0};}\nconst MAXN=8;\nfunction cleanSets(){const g={};st.slots.forEach(s=>{if(s.group)g[s.group]=(g[s.group]||0)+1;});\n  st.slots.forEach(s=>{if(s.group&&g[s.group]<BYID[s.item].n){s.item=null;s.group=null;s.piece=0;}});}\nfunction setCount(n){\n  n=Math.max(1,Math.min(MAXN,n));\n  while(st.slots.length<n){const last=st.slots[st.slots.length-1];st.slots.push(mkSlot(last&&!(last.item&&BYID[last.item].mdf)?last.size:(n>=4?'30X40':'40X50')));}\n  while(st.slots.length>n)st.slots.pop();\n  cleanSets();\n  if(!arrOptions(n).includes(st.arr))st.arr=defaultArr(n);\n  st.active=Math.min(st.active,n-1); st.gx=0; st.gy=0; renderStatic(); flow();\n}\nfunction initSlots(n,size){st.slots=Array.from({length:n},()=>mkSlot(size));st.arr=defaultArr(n);}\nfunction orientOf(s){const it=s.item&&BYID[s.item];return it&&it.hz?'h':'v';}\nfunction sizeLabel(s){const [a,b2]=cm(s.size);return orientOf(s)==='h'?`${b2}x${a}`:`${a}x${b2}`;}\nfunction dimsOf(s){const [w,h]=cm(s.size);return orientOf(s)==='h'?{w:h,h:w}:{w,h};}\nfunction flow(){\n  const S=st.slots; if(!S.length)return; if(st.arr==='custom'&&!(st.custom&&st.custom.length===S.length))st.arr=defaultArr(S.length); if(st.arr!=='custom'&&!arrOptions(S.length).includes(st.arr))st.arr=defaultArr(S.length);\n  const L={kind:st.arr,cols:Math.ceil(S.length/2)}; S.forEach(s=>{s.dx=0;s.dy=0;});\n  const pos=[];\n  if(L.kind==='line'){\n    const tw=S.reduce((a,s)=>a+dimsOf(s).w,0)+GAP*(S.length-1); let x=-tw/2;\n    S.forEach(s=>{const d=dimsOf(s);pos.push([x+d.w/2,0]);x+=d.w+GAP;});\n  }else if(L.kind==='grid'){\n    const c=L.cols, rows=Math.ceil(S.length/c), cw=[], rh=[];\n    S.forEach((s,i)=>{const d=dimsOf(s);cw[i%c]=Math.max(cw[i%c]||0,d.w);rh[Math.floor(i/c)]=Math.max(rh[Math.floor(i/c)]||0,d.h);});\n    const tw=cw.reduce((a,b)=>a+b,0)+GAP*(c-1), th=rh.reduce((a,b)=>a+b,0)+GAP*(rows-1);\n    S.forEach((s,i)=>{const ci=i%c,ri=Math.floor(i/c);let x=-tw/2,y=-th/2;for(let k=0;k<ci;k++)x+=cw[k]+GAP;for(let k=0;k<ri;k++)y+=rh[k]+GAP;pos.push([x+cw[ci]/2,y+rh[ri]/2]);});\n  }else if(L.kind==='custom'){\n    st.custom.forEach(q=>pos.push([q.x,q.y]));\n  }else{\n    const c=dimsOf(S[2]),l=[S[0],S[1]].map(dimsOf),r=[S[3],S[4]].map(dimsOf);\n    const lw=Math.max(l[0].w,l[1].w),rw=Math.max(r[0].w,r[1].w),lh=l[0].h+l[1].h+GAP,rh=r[0].h+r[1].h+GAP;\n    const lx=-c.w/2-GAP-lw/2,rx=c.w/2+GAP+rw/2;\n    pos[0]=[lx,-lh/2+l[0].h/2];pos[1]=[lx,lh/2-l[1].h/2];pos[2]=[0,0];pos[3]=[rx,-rh/2+r[0].h/2];pos[4]=[rx,rh/2-r[1].h/2];\n  }\n  S.forEach((s,i)=>{s.cx=pos[i][0];s.cy=pos[i][1];});\n  render();\n}\n\n/* ---------- escena ---------- */\nconst stage=$('stage'), slotsEl=$('slots'), pinsEl=$('pins');\nconst FURN={sofa:{w:200,h:82},aparador:{w:160,h:78},cama:{w:160,h:105},none:{w:0,h:0}};\nconst WALL_H=260, FLOOR_CM=18;\nlet scale=1, cxPx=0, cyPx=0;\nfunction furnSVG(k,w,h){\n  const c='#6F6A60',c2='#827C71',leg='#3B362F';\n  if(k==='sofa')return `<svg viewBox=\"0 0 200 82\" width=\"${w}\" height=\"${h}\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><rect x=\"8\" y=\"10\" width=\"184\" height=\"42\" rx=\"10\" fill=\"${c2}\"/><rect x=\"0\" y=\"34\" width=\"22\" height=\"40\" rx=\"8\" fill=\"${c}\"/><rect x=\"178\" y=\"34\" width=\"22\" height=\"40\" rx=\"8\" fill=\"${c}\"/><rect x=\"18\" y=\"46\" width=\"164\" height=\"26\" rx=\"6\" fill=\"${c}\"/><rect x=\"22\" y=\"44\" width=\"78\" height=\"10\" rx=\"5\" fill=\"${c2}\"/><rect x=\"100\" y=\"44\" width=\"78\" height=\"10\" rx=\"5\" fill=\"${c2}\"/><rect x=\"14\" y=\"74\" width=\"5\" height=\"8\" fill=\"${leg}\"/><rect x=\"181\" y=\"74\" width=\"5\" height=\"8\" fill=\"${leg}\"/></svg>`;\n  if(k==='aparador')return `<svg viewBox=\"0 0 160 78\" width=\"${w}\" height=\"${h}\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><rect x=\"0\" y=\"0\" width=\"160\" height=\"62\" rx=\"3\" fill=\"#8A6A4C\"/><rect x=\"4\" y=\"6\" width=\"74\" height=\"50\" rx=\"2\" fill=\"#977657\"/><rect x=\"82\" y=\"6\" width=\"74\" height=\"50\" rx=\"2\" fill=\"#977657\"/><rect x=\"10\" y=\"62\" width=\"4\" height=\"16\" fill=\"${leg}\"/><rect x=\"146\" y=\"62\" width=\"4\" height=\"16\" fill=\"${leg}\"/></svg>`;\n  if(k==='cama')return `<svg viewBox=\"0 0 160 105\" width=\"${w}\" height=\"${h}\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><rect x=\"0\" y=\"0\" width=\"160\" height=\"105\" rx=\"6\" fill=\"#9C8C78\"/><rect x=\"0\" y=\"55\" width=\"160\" height=\"50\" rx=\"4\" fill=\"#E9E4DA\"/><rect x=\"0\" y=\"80\" width=\"160\" height=\"25\" fill=\"#D6CEC0\"/><rect x=\"14\" y=\"42\" width=\"58\" height=\"22\" rx=\"8\" fill=\"#F4F1EA\"/><rect x=\"88\" y=\"42\" width=\"58\" height=\"22\" rx=\"8\" fill=\"#F4F1EA\"/></svg>`;\n  return '';\n}\nconst narrow=()=>window.matchMedia('(max-width:900px)').matches;\nfunction availW(){const p=stage.parentElement,cs=getComputedStyle(p);return p.clientWidth-parseFloat(cs.paddingLeft)-parseFloat(cs.paddingRight);}\nfunction render(){\n  if(!st.slots.length)return;\n  const ext=bounds(), N=narrow(), maxH=Math.max(260,window.innerHeight*(N?0.44:0.68));\n  let pxW=availW();\n  stage.classList.toggle('photo',!!st.photo);\n  const wi=$('wallimg'); wi.hidden=!st.photo;\n  if(st.photo){\n    let h=pxW*st.photo.h/st.photo.w;\n    if(h>maxH){h=maxH;pxW=h*st.photo.w/st.photo.h;}\n    stage.style.width=pxW+'px'; stage.style.marginInline='auto'; stage.style.height=h+'px';\n    wi.style.backgroundImage=`url(${st.photo.src})`;\n    const d=Math.abs(st.pins[1]-st.pins[0])*pxW;\n    scale=st.calibCm>0?d/st.calibCm:pxW/300;\n    cxPx=pxW/2+st.gx*scale; cyPx=h*0.4+st.gy*scale;\n  }else{\n    stage.style.width=''; stage.style.marginInline='';\n    const F0=FURN[st.furn];\n    let cf=st.furn==='none'?150:Math.max(F0.h+22+ext.h/2,145);\n    cf=Math.min(cf,WALL_H-ext.h/2-8);\n    const viewTop=N?Math.min(WALL_H,cf+ext.h/2+28):WALL_H, crop=N?48:0;\n    let W=Math.max(150,Math.min(600,+st.wallW||320)); if(N)W=Math.min(W,Math.max(ext.w+40,160));\n    const totalH=viewTop+FLOOR_CM-crop;\n    scale=Math.min(pxW/W,maxH/totalH); stage.style.height=(totalH*scale)+'px';\n    $('wall').style.background=WALLS[st.wall][0];\n    const flo=$('floor'); flo.style.height=(FLOOR_CM*scale)+'px'; flo.style.bottom=(-crop*scale)+'px';\n    const F=FURN[st.furn], fe=$('furnEl');\n    fe.innerHTML=furnSVG(st.furn,F.w*scale,F.h*scale);\n    fe.style.left=(pxW/2-F.w*scale/2)+'px'; fe.style.bottom=((FLOOR_CM-crop)*scale-2)+'px';\n    cxPx=pxW/2+st.gx*scale; cyPx=(viewTop-cf)*scale+st.gy*scale;\n  }\n  const dark=!st.photo&&st.wall===4;\n  slotsEl.innerHTML='';\n  slotsEl.style.display=st.calibrating?'none':'';\n  st.slots.forEach((s,i)=>{\n    const d=dimsOf(s), it=s.item&&BYID[s.item];\n    const el=document.createElement('div'); el.className='slot'+(it?'':' empty')+(i===st.active?' active':'');\n    const w=d.w*scale,h=d.h*scale;\n    el.style.width=w+'px';el.style.height=h+'px';\n    el.style.left=(cxPx+(s.cx+s.dx)*scale-w/2)+'px'; el.style.top=(cyPx+(s.cy+s.dy)*scale-h/2)+'px';\n    el.dataset.i=i; el.tabIndex=0; el.setAttribute('role','button');\n    el.setAttribute('aria-label',it?`${it.t}, ${sizeLabel(s)} cm`:`Lugar ${i+1} vac\u00EDo, elegir cuadro`);\n    if(!it){el.textContent=w>50?'+ Elegir cuadro':'+';if(dark||st.photo){el.style.color='#fff';el.style.borderColor='rgba(255,255,255,.8)';el.style.background='rgba(0,0,0,.18)';}}\n    else{\n      probe(it);\n      const fr=it.mdf?'SM':s.frame, F2=FRAMES[fr], b=it.mdf?0:Math.max(2,2.2*scale);\n      if(it.mdf)el.style.boxShadow=`${scale*.9}px ${scale*.9}px 0 ${F2.c}, 0 ${scale*1.5}px ${scale*3.5}px rgba(0,0,0,.28)`;\n      else{el.style.background=`linear-gradient(135deg,${F2.hi},${F2.c})`;el.style.boxShadow=`0 ${scale*.8}px ${scale*3.2}px rgba(0,0,0,.28)`;}\n      const art=document.createElement('div');art.className='art';\n      const u=imgURL(it,s.piece,Math.min(1200,Math.ceil(Math.max(w,h)*(window.devicePixelRatio||1)/100)*100));\n      art.style.inset=b+'px'; if(u)art.style.backgroundImage=`url(\"${u}\")`;\n      if(!it.mdf)art.style.boxShadow='inset 0 0 3px rgba(0,0,0,.35)';\n      if(s.margin){const m=Math.max(2,Math.min(d.w,d.h)*0.08*scale);art.style.inset=(b+m)+'px';const mat=document.createElement('div');mat.className='mat';mat.style.inset=b+'px';el.appendChild(mat);}\n      el.appendChild(art);\n      if(!it.mdf&&s.glass==='VC'){const g=document.createElement('div');g.className='glass';g.style.inset=b+'px';el.appendChild(g);}\n    }\n    const tg=document.createElement('div');tg.className='tag';tg.textContent=sizeLabel(s);if(dark||st.photo){tg.style.color='rgba(255,255,255,.95)';tg.style.textShadow='0 1px 3px rgba(0,0,0,.7)';}el.appendChild(tg);\n    slotsEl.appendChild(el);\n  });\n  // medidas: si las etiquetas de cuadros vecinos se pisan, se muestra una sola debajo del set\n  const tags=[...slotsEl.querySelectorAll('.tag')];\n  let clash=false;\n  for(let i=0;i<tags.length&&!clash;i++){const a=tags[i].getBoundingClientRect();for(let j=i+1;j<tags.length;j++){const b=tags[j].getBoundingClientRect();if(a.left<b.right+4&&b.left<a.right+4&&a.top<b.bottom&&b.top<a.bottom){clash=true;break;}}}\n  if(clash){\n    tags.forEach(t=>t.hidden=true);\n    const cnt={};st.slots.forEach(s=>{const l=sizeLabel(s);cnt[l]=(cnt[l]||0)+1;});\n    let bot=0,lft=1e9,rgt=-1e9;[...slotsEl.children].forEach(e=>{const t=parseFloat(e.style.top),l=parseFloat(e.style.left);bot=Math.max(bot,t+parseFloat(e.style.height));lft=Math.min(lft,l);rgt=Math.max(rgt,l+parseFloat(e.style.width));});\n    const g=document.createElement('div');g.className='tag';g.style.left=((lft+rgt)/2)+'px';g.style.top=(bot+6)+'px';g.style.bottom='auto';\n    g.textContent=Object.entries(cnt).map(([l,n])=>n>1?`${n} de ${l}`:l).join(' \u00B7 ')+' cm';\n    if(dark||st.photo){g.style.color='rgba(255,255,255,.95)';g.style.textShadow='0 1px 3px rgba(0,0,0,.7)';}\n    slotsEl.appendChild(g);\n  }\n  renderPins(pxW);\n  $('dims').textContent=`${Math.round(ext.w)} \u00D7 ${Math.round(ext.h)} cm`;\n  renderPanel(); renderSummary();\n}\nfunction bounds(){\n  let x0=1e9,x1=-1e9,y0=1e9,y1=-1e9;\n  st.slots.forEach(s=>{const d=dimsOf(s);x0=Math.min(x0,(s.cx||0)+s.dx-d.w/2);x1=Math.max(x1,(s.cx||0)+s.dx+d.w/2);y0=Math.min(y0,(s.cy||0)+s.dy-d.h/2);y1=Math.max(y1,(s.cy||0)+s.dy+d.h/2);});\n  return{w:x1-x0,h:y1-y0};\n}\n\n/* ---------- medir la foto ---------- */\nfunction renderPins(pxW){\n  pinsEl.innerHTML='';\n  if(!st.photo||!st.calibrating)return;\n  const h=stage.clientHeight, y=st.pinY*h, a=st.pins[0]*pxW, b=st.pins[1]*pxW;\n  const line=document.createElement('div');line.className='pinline';line.style.left=Math.min(a,b)+'px';line.style.width=Math.abs(b-a)+'px';line.style.top=y+'px';pinsEl.appendChild(line);\n  const lab=document.createElement('div');lab.className='pinlabel';lab.style.left=((a+b)/2)+'px';lab.style.top=y+'px';\n  lab.textContent=st.calibCm>0?`${st.calibCm} cm`:'\u00BFcu\u00E1ntos cm?';pinsEl.appendChild(lab);\n  [a,b].forEach((x,k)=>{const p=document.createElement('div');p.className='pin';p.style.left=x+'px';p.style.top=y+'px';p.dataset.k=k;p.setAttribute('aria-label',k?'Punto derecho':'Punto izquierdo');pinsEl.appendChild(p);});\n}\nlet pinDrag=null;\npinsEl.addEventListener('pointerdown',e=>{const p=e.target.closest('.pin');if(!p)return;e.stopPropagation();pinDrag={k:+p.dataset.k};p.setPointerCapture(e.pointerId);});\npinsEl.addEventListener('pointermove',e=>{if(!pinDrag)return;const r=stage.getBoundingClientRect();\n  st.pins[pinDrag.k]=Math.max(0,Math.min(1,(e.clientX-r.left)/r.width)); st.pinsMoved=true; st.pinY=Math.max(.05,Math.min(.95,(e.clientY-r.top)/r.height)); renderPins(r.width);});\npinsEl.addEventListener('pointerup',()=>{pinDrag=null;});\nfunction startCalib(){st.calibrating=true;$('calib').hidden=false;$('calibCm').value=st.calibCm||'';render();$('calibCm').focus();}\n$('calibCm').oninput=e=>{st.calibCm=+e.target.value||0;renderPins(stage.clientWidth);};\n$('calibOk').onclick=()=>{\n  const inp=$('calibCm'), v=+inp.value;\n  if(!st.pinsMoved){inp.setCustomValidity('Primero arrastr\u00E1 los dos puntos naranjas hasta los bordes de lo que mediste (por ejemplo, los dos costados de la pared).');inp.reportValidity();setTimeout(()=>inp.setCustomValidity(''),3000);return;}\n  if(!v||v<20){inp.focus();inp.setCustomValidity('Escrib\u00ED la medida en cent\u00EDmetros');inp.reportValidity();return;}\n  inp.setCustomValidity('');\n  st.calibCm=v; st.calibrating=false; $('calib').hidden=true; st.pinsMoved=true; st.gx=0; st.gy=0; render();\n};\n\n/* ---------- foto de la pared ---------- */\nconst photoSheet=$('photoSheet');\n$('photoOpen').onclick=()=>{photoSheet.hidden=false;$('photoClose').focus();};\n$('photoClose').onclick=()=>photoSheet.hidden=true;\nphotoSheet.addEventListener('click',e=>{if(e.target===photoSheet)photoSheet.hidden=true;});\n$('photoFile').onchange=e=>{\n  const f=e.target.files&&e.target.files[0]; if(!f)return;\n  const url=URL.createObjectURL(f), im=new Image();\n  im.onload=()=>{\n    const k=Math.min(1,1800/Math.max(im.width,im.height)), c=document.createElement('canvas');\n    c.width=Math.round(im.width*k); c.height=Math.round(im.height*k); c.getContext('2d').drawImage(im,0,0,c.width,c.height);\n    st.photo={src:c.toDataURL('image/jpeg',.85),w:c.width,h:c.height}; URL.revokeObjectURL(url);\n    st.pins=[.1,.9]; st.pinY=.8; st.calibCm=0; st.pinsMoved=false; photoSheet.hidden=true; syncWallUI(); startCalib();\n  };\n  im.src=url; e.target.value='';\n};\n$('recalib').onclick=startCalib;\n$('photoOff').onclick=()=>{st.photo=null;st.calibrating=false;$('calib').hidden=true;st.gx=0;st.gy=0;syncWallUI();render();};\nfunction syncWallUI(){\n  $('sampleWall').hidden=!!st.photo; $('photoWall').hidden=!st.photo;\n  $('photoState').textContent=st.photo?'Est\u00E1s viendo tu pared. Pod\u00E9s cambiar la foto cuando quieras.':'Est\u00E1s viendo una pared de ejemplo. Sub\u00ED una foto de la tuya para verlo en tu casa.';\n  $('photoOpen').textContent=st.photo?'Cambiar foto':'Usar mi pared';\n}\n\n/* ---------- arrastre: un cuadro o toda la composici\u00F3n ---------- */\nlet drag=null, moveMode=false;\nconst coarse=()=>window.matchMedia('(pointer:coarse)').matches;\nconst moveBtn=$('moveBtn');\nfunction setMove(on){moveMode=on;stage.classList.toggle('movemode',on);moveBtn.setAttribute('aria-pressed',on);moveBtn.textContent=on?'\u2713 Listo, fijar':'\u2725 Mover cuadros';}\nmoveBtn.addEventListener('pointerdown',e=>e.stopPropagation());\nmoveBtn.onclick=()=>setMove(!moveMode);\nstage.addEventListener('pointerdown',e=>{\n  if(st.calibrating||e.target.closest('.pin')||e.target.closest('#moveBtn'))return;\n  const canDrag=!(e.pointerType==='touch'||coarse())||moveMode;\n  const el=e.target.closest('.slot');\n  if(el){const i=+el.dataset.i;drag={mode:'one',i,x:e.clientX,y:e.clientY,dx:st.slots[i].dx,dy:st.slots[i].dy,moved:false,el,canDrag};}\n  else drag={mode:'all',x:e.clientX,y:e.clientY,gx:st.gx,gy:st.gy,moved:false,canDrag};\n  if(canDrag)stage.setPointerCapture(e.pointerId);\n});\nstage.addEventListener('pointermove',e=>{\n  if(!drag)return; const mx=e.clientX-drag.x,my=e.clientY-drag.y;\n  if(!drag.moved&&Math.hypot(mx,my)<6)return; drag.moved=true;\n  if(!drag.canDrag)return;\n  if(drag.mode==='one'){drag.el.classList.add('dragging');const s=st.slots[drag.i];s.dx=drag.dx+mx/scale;s.dy=drag.dy+my/scale;drag.el.style.transform=`translate(${mx}px,${my}px)`;}\n  else{stage.classList.add('groupdrag');slotsEl.style.transform=`translate(${mx}px,${my}px)`;st.gx=drag.gx+mx/scale;st.gy=drag.gy+my/scale;}\n});\nstage.addEventListener('pointercancel',()=>{if(drag&&drag.canDrag&&drag.moved)render();drag=null;stage.classList.remove('groupdrag');slotsEl.style.transform='';});\nstage.addEventListener('pointerup',()=>{\n  if(!drag)return; const d=drag; drag=null; stage.classList.remove('groupdrag'); slotsEl.style.transform='';\n  if(d.moved){if(d.canDrag)render();return;}\n  if(d.mode==='one'){st.active=d.i; setTab('cuadro'); hideTapHint(); if(!st.slots[d.i].item)openPicker(); else {render(); if(narrow())scrollToPanel();}}\n});\nfunction hideTapHint(){$('tapHint').hidden=true;}\nfunction scrollToPanel(){const p=root.querySelector('.panel');const sc=root.querySelector('.stagecol');const y=p.getBoundingClientRect().top+window.scrollY-sc.offsetHeight-8;window.scrollTo({top:Math.max(0,y),behavior:'smooth'});}\nslotsEl.addEventListener('keydown',e=>{\n  const el=e.target.closest('.slot'); if(!el)return;\n  if(e.key==='Enter'||e.key===' '){e.preventDefault();st.active=+el.dataset.i;if(!st.slots[st.active].item)openPicker();else render();}\n});\n$('reflow').onclick=()=>{st.gx=0;st.gy=0;flow();};\n\n/* ---------- sugerencias (Comb\u00EDnalos) ---------- */\nfunction combos(){\n  const cur=st.slots[st.active]&&st.slots[st.active].item;\n  const others=st.slots.map(s=>s.item).filter(Boolean);\n  const order=[cur,...others.filter(x=>x!==cur)].filter(Boolean);\n  const out=[];\n  order.forEach(id=>(BYID[id].p||[]).forEach(p=>{if(!out.includes(p)&&!others.includes(p)&&BYID[p])out.push(p);}));\n  return out;\n}\n\n/* ---------- panel ---------- */\nfunction renderStatic(){\n  const w=$('walls');\n  w.innerHTML=WALLS.map((c,i)=>`<button type=\"button\" class=\"wallsw\" style=\"background:${c[0]}\" aria-label=\"${c[1]}\" title=\"${c[1]}\" aria-pressed=\"${i===st.wall}\" data-w=\"${i}\"></button>`).join('');\n  w.onclick=e=>{const b=e.target.closest('[data-w]');if(!b)return;st.wall=+b.dataset.w;renderStatic();render();};\n  const l=$('layouts'), n=st.slots.length;\n  l.innerHTML=`<div class=\"stepper\"><button type=\"button\" class=\"stepbtn\" data-d=\"-1\" aria-label=\"Quitar un cuadro\" ${n<=1?'disabled':''}>\u2212</button>\n    <div class=\"stepval\"><b>${n}</b><span>${n===1?'cuadro':'cuadros'}</span></div>\n    <button type=\"button\" class=\"stepbtn\" data-d=\"1\" aria-label=\"Agregar un cuadro\" ${n>=MAXN?'disabled':''}>+</button></div>\n    ${arrOptions(n).length>1?`<div class=\"field\">C\u00F3mo acomodarlos<div class=\"arrs\">${arrOptions(n).map(k=>`<button type=\"button\" class=\"lay\" data-a=\"${k}\" aria-pressed=\"${k===st.arr}\">${arrIcon(k,n)}${ARR[k]}</button>`).join('')}</div></div>`:''}\n    <p class=\"hint\">Se quitan desde el \u00FAltimo. Si eleg\u00EDs un set, suma los cuadros que necesite.</p>`;\n  l.onclick=e=>{const d=e.target.closest('[data-d]');if(d){setCount(st.slots.length+(+d.dataset.d));return;}\n    const a=e.target.closest('[data-a]');if(a){st.arr=a.dataset.a;st.gx=0;st.gy=0;renderStatic();flow();}};\n}\nconst panel=root.querySelector('.panel');\nfunction setTab(t){panel.dataset.tab=t;panel.querySelectorAll('[data-tab]').forEach(b=>{if(b.tagName==='BUTTON')b.setAttribute('aria-selected',b.dataset.tab===t);});}\npanel.querySelector('.tabbar').onclick=e=>{const b=e.target.closest('button[data-tab]');if(b)setTab(b.dataset.tab);};\nsetTab('cuadro');\nfunction groupSlots(s){return s.group?st.slots.filter(x=>x.group===s.group):[s];}\nfunction renderPanel(){\n  const s=st.slots[st.active], body=$('slotbody');\n  if(!s){body.innerHTML='';return;}\n  const it=s.item&&BYID[s.item];\n  const sug=combos().slice(0,12);\n  const sugHTML=sug.length?`<div class=\"sec\" style=\"gap:6px\"><div class=\"suggHead\"><span class=\"selmeta\"><b style=\"color:var(--ink)\">${it?'Combinan con este':'Combinan con tu pared'}</b>${it?' \u00B7 toc\u00E1 uno para sumarlo':''}</span><button class=\"linkbtn\" type=\"button\" data-more>Ver todos</button></div>\n    <div class=\"sugg\" id=\"sugg\">${sug.map(id=>`<button type=\"button\" data-id=\"${id}\" title=\"${BYID[id].t}\" aria-label=\"Sumar ${BYID[id].t} a la pared\">${thumbs(BYID[id],200).replace(' loading=\"lazy\"','')}</button>`).join('')}</div></div>`:'';\n  if(!it){\n    body.innerHTML=`<p class=\"hint\">El lugar ${st.active+1} est\u00E1 vac\u00EDo.</p>${sugHTML}<div class=\"row\"><button class=\"chip\" type=\"button\" id=\"pick\">Elegir dise\u00F1o</button></div>`;\n    $('pick').onclick=openPicker; bindSugg(body); hydrate(body); return;\n  }\n  const sizes=it.sizes;\n  const setTxt=it.n>1?`Pieza ${'ABC'[s.piece]} de un set x${it.n}`:'';\n  const bestTxt=it.best?`Top ${it.best} en ventas`:'';\n  body.innerHTML=`\n   <div class=\"sel\"><div class=\"selthumb\">${oneThumb(it,s.piece,200)}</div>\n    <div><div class=\"selname\">${it.t}</div><div class=\"selmeta\">${[setTxt,bestTxt].filter(Boolean).join(' \u00B7 ')}</div>\n    <div class=\"row\" style=\"margin-top:6px\"><button class=\"linkbtn\" type=\"button\" id=\"chg\">Cambiar</button><a class=\"linkbtn\" href=\"${ROOT}products/${it.h}\" target=\"_blank\" rel=\"noopener\">Ver en la tienda \u2197</a><button class=\"linkbtn\" type=\"button\" id=\"rm\">Quitar</button></div></div></div>\n   ${sugHTML}\n   <div class=\"field\">Medida (cm)<div class=\"row\" id=\"szs\">${sizes.map(z=>`<button type=\"button\" class=\"chip\" data-s=\"${z}\" aria-pressed=\"${z===s.size}\">${z.toLowerCase()}</button>`).join('')}</div><button class=\"allbtn\" type=\"button\" id=\"allSize\">\u21B3 Usar esta medida en todos los cuadros</button></div>\n   ${it.mdf?`<p class=\"hint\">Mural sin marco: placa de MDF impresa a sangre.</p>`:`\n   <div class=\"field\">Marco<div class=\"row\" id=\"frs\">${['NAT','NEG','NOG'].map(f=>`<button type=\"button\" class=\"chip\" data-f=\"${f}\" aria-pressed=\"${f===s.frame}\"><span class=\"dot\" style=\"background:${FRAMES[f].c}\"></span>${FRAMES[f].n}</button>`).join('')}</div><button class=\"allbtn\" type=\"button\" id=\"allFrame\">\u21B3 Usar este marco en todos los cuadros</button></div>\n   <div class=\"field\">Vidrio<div class=\"row\" id=\"gls\"><button type=\"button\" class=\"chip\" data-g=\"SV\" aria-pressed=\"${s.glass==='SV'}\">Sin vidrio</button><button type=\"button\" class=\"chip\" data-g=\"VC\" aria-pressed=\"${s.glass==='VC'}\">Con vidrio</button></div></div>`}\n   <div class=\"field\">Margen blanco<div class=\"row\" id=\"mgs\"><button type=\"button\" class=\"chip\" data-m=\"0\" aria-pressed=\"${!s.margin}\">Sin margen</button><button type=\"button\" class=\"chip\" data-m=\"1\" aria-pressed=\"${!!s.margin}\">Con margen blanco</button></div></div>\n   ${it.n>1?`<p class=\"hint\">Es un set: la medida y el marco cambian en las ${it.n} piezas juntas.</p>`:''}\n   ${variantOf(s)?'':'<p class=\"note\">Esta combinaci\u00F3n no est\u00E1 disponible. Prob\u00E1 otra medida o marco.</p>'}\n   ${receipt()}\n   `;\n  const apply=fn=>{groupSlots(s).forEach(fn);flow();};\n  body.querySelector('#szs').onclick=e=>{const b=e.target.closest('[data-s]');if(b)apply(x=>x.size=b.dataset.s);};\n  const frs=body.querySelector('#frs'); if(frs)frs.onclick=e=>{const b=e.target.closest('[data-f]');if(b)apply(x=>x.frame=b.dataset.f);};\n  body.querySelector('#mgs').onclick=e=>{const b=e.target.closest('[data-m]');if(b)apply(x=>x.margin=b.dataset.m==='1');};\n  const gls=body.querySelector('#gls'); if(gls)gls.onclick=e=>{const b=e.target.closest('[data-g]');if(b)apply(x=>x.glass=b.dataset.g);};\n  body.querySelector('#chg').onclick=openPicker;\n  body.querySelector('#rm').onclick=()=>{groupSlots(s).forEach(x=>{x.item=null;x.group=null;x.piece=0;});render();};\n  body.querySelector('#allSize').onclick=()=>{st.slots.forEach(x=>{if(!x.item)return;if(BYID[x.item].sizes.includes(s.size))x.size=s.size;});flow();};\n  const af=body.querySelector('#allFrame'); if(af)af.onclick=()=>{st.slots.forEach(x=>{if(!x.item||BYID[x.item].mdf)return;x.frame=s.frame;x.glass=s.glass;});flow();};\n  bindSugg(body); hydrate(body);\n  const rc=body.querySelector('.receipt ul'); if(rc)rc.onclick=e=>{const li=e.target.closest('[data-i]');if(!li)return;st.active=+li.dataset.i;if(!st.slots[st.active].item)openPicker();render();};\n}\nfunction bindSugg(body){\n  const sg=body.querySelector('#sugg'); if(sg)sg.onclick=e=>{const b=e.target.closest('[data-id]');if(b)sumarCombo(b.dataset.id);};\n  const m=body.querySelector('[data-more]'); if(m)m.onclick=()=>openPicker();\n}\n// \"Combinan con este\": suma un cuadro NUEVO a la pared en vez de reemplazar el que est\u00E1 elegido\nfunction sumarCombo(id){\n  const it=BYID[id], cur=st.slots[st.active]; if(!it)return;\n  if(!cur||!cur.item){choose(id);return;}\n  const n=it.n||1;\n  if(st.slots.length+n>MAXN){alertMsg(`Pod\u00E9s tener hasta ${MAXN} cuadros en la pared. Sac\u00E1 uno para sumar otro.`);return;}\n  const nuevo=mkSlot(cur.size); nuevo.frame=cur.frame; nuevo.glass=cur.glass; nuevo.margin=cur.margin;\n  st.slots.push(nuevo);\n  if(!arrOptions(st.slots.length).includes(st.arr))st.arr=defaultArr(st.slots.length);\n  st.active=st.slots.length-1; st.gx=0; st.gy=0;\n  choose(id); renderStatic(); flow();\n}\nfunction variantOf(s){const it=BYID[s.item];const key=it.mdf?s.size:`${s.size}|${s.glass}|${s.frame}`;return it.v[key];}\n\n/* ---------- resumen y carrito ---------- */\nfunction cartLines(){\n  const lines=[],seen={};\n  st.slots.forEach(s=>{if(!s.item)return; if(s.group){if(seen[s.group])return;seen[s.group]=1;}\n    const it=BYID[s.item],v=variantOf(s); if(!v)return;\n    lines.push({id:v[0],price:v[1],name:it.t,size:sizeLabel(s),n:it.n,margin:!!s.margin,horiz:orientOf(s)==='h'});});\n  return lines;\n}\nfunction receipt(){\n  const rows=[],seen={}; let k=0;\n  st.slots.forEach((s,i)=>{\n    if(s.group){if(seen[s.group])return;seen[s.group]=1;}\n    const n=s.item?BYID[s.item].n:1, from=k+1; k+=n;\n    const num=n>1?`Cuadros ${from} a ${k}`:`Cuadro ${from}`;\n    const sel=st.slots[st.active]&&(i===st.active||(s.group&&st.slots[st.active].group===s.group));\n    if(!s.item){rows.push(`<li class=\"rc empty${sel?' sel':''}\" data-i=\"${i}\"><span><b>${num}</b><small>Lugar vac\u00EDo \u00B7 toc\u00E1 para elegir</small></span><span>\u2014</span></li>`);return;}\n    const it=BYID[s.item], v=variantOf(s);\n    const det=(it.mdf?`${sizeLabel(s)} \u00B7 sin marco`:`${sizeLabel(s)} \u00B7 marco ${FRAMES[s.frame].n.toLowerCase()}${s.glass==='VC'?' \u00B7 con vidrio':''}`)+(s.margin?' \u00B7 margen blanco':'');\n    rows.push(`<li class=\"rc${sel?' sel':''}\" data-i=\"${i}\"><span><b>${num}${n>1?` (set x${n})`:''}</b><small>${it.t}</small><small>${det}</small></span><span>${v?fmt(v[1]):'\u2014'}</span></li>`);\n  });\n  const T=totals();\n  return `<div class=\"receipt\"><div class=\"rchead\">Tu set: ${T.pieces} ${T.pieces===1?'cuadro':'cuadros'}</div>\n    <ul>${rows.join('')}</ul>\n    ${T.disc>0?`<div class=\"rcline\"><span>${CFG.discountLabel}</span><span>\u2212${fmt(T.disc)}</span></div>`:''}\n    <div class=\"rctotal\"><span>Total${T.disc>0?' estimado':''}</span><b>${fmt(T.total)}</b></div></div>`;\n}\nfunction totals(){const L=cartLines(),list=L.reduce((a,l)=>a+l.price,0),pct=(+CFG.discountPct||0)/100,\n  disc=L.map(l=>l.price).sort((a,b)=>b-a).slice(1).reduce((a,p)=>a+p*pct,0);\n  return{list,disc,total:list-disc,pieces:st.slots.filter(s=>s.item).length};}\nfunction renderSummary(){\n  const L=cartLines(), T=totals();\n  $('bTotal').textContent=fmt(T.total);\n  const pieces=T.pieces, empty=st.slots.length-pieces;\n  $('bCount').textContent=`${pieces} ${pieces===1?'cuadro':'cuadros'}`+(empty?` \u00B7 ${empty} ${empty===1?'lugar vac\u00EDo':'lugares vac\u00EDos'}`:'');\n  const buy=$('buy'); buy.disabled=!L.length||buying;\n}\nlet buying=false;\n$('buy').onclick=async()=>{\n  const L=cartLines(); if(!L.length||buying)return;\n  buying=true; const btn=$('buy'), txt=btn.textContent; btn.textContent='Agregando\u2026'; btn.disabled=true;\n  try{\n    // cada cuadro va como l\u00EDnea del carrito; el margen blanco y la orientaci\u00F3n quedan anotados en el pedido\n    const items=L.map(l=>{const pr={'_Armado en':'Simulador de paredes'};\n      if(l.margin)pr['Margen blanco']='S\u00ED';\n      if(l.horiz)pr['Orientaci\u00F3n']='Horizontal';\n      return{id:l.id,quantity:1,properties:pr};});\n    const r=await fetch(ROOT+'cart/add.js',{method:'POST',headers:{'Content-Type':'application/json','Accept':'application/json'},body:JSON.stringify({items})});\n    if(!r.ok){const j=await r.json().catch(()=>({}));throw new Error(j.description||'No se pudo agregar');}\n    const mg=L.filter(l=>l.margin), hz=L.filter(l=>l.horiz);\n    const add='Armado en el simulador de paredes.'+(mg.length?' IMPRIMIR CON MARGEN BLANCO: '+mg.map(l=>`${l.name} (${l.size})`).join('; ')+'.':'')+(hz.length?' HORIZONTAL: '+hz.map(l=>l.name).join('; ')+'.':'');\n    const cart=await fetchJSON(ROOT+'cart.js');\n    const note=cart.note&&cart.note.includes(add)?cart.note:[cart.note,add].filter(Boolean).join('\\n');\n    await fetch(ROOT+'cart/update.js',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({note})});\n    window.location.href=ROOT+'cart';\n  }catch(e){\n    btn.textContent=txt; buying=false; btn.disabled=false;\n    alertMsg('No pudimos agregar el set al carrito ('+e.message+'). Prob\u00E1 de nuevo o escribinos por WhatsApp.');\n  }\n};\nfunction alertMsg(t){const n=$('toast');n.textContent=t;n.hidden=false;clearTimeout(alertMsg._t);alertMsg._t=setTimeout(()=>n.hidden=true,6000);}\n\n/* ---------- selector de dise\u00F1os ---------- */\nconst sheet=$('sheet'); let filt=null, limit=48, query='';\nfunction tabs(){\n  const t=[];\n  if(st.viewed.length)t.push('Estabas viendo');\n  if(combos().length)t.push('Combinan');\n  if(BEST.length)t.push('M\u00E1s vendidos');\n  CFG.tabs.forEach(x=>t.push(x.title));\n  if(CAT.some(c=>c.n>1))t.push('Sets');\n  if(CAT.some(c=>c.mdf))t.push('Sin marco');\n  t.push('Todos');\n  return t;\n}\nfunction openPicker(){filt=tabs()[0];query='';$('search').value='';limit=48;sheet.hidden=false;renderGrid();$('closeSheet').focus();}\nfunction closePicker(){sheet.hidden=true;}\n$('closeSheet').onclick=closePicker;\nsheet.addEventListener('click',e=>{if(e.target===sheet)closePicker();});\ndocument.addEventListener('keydown',e=>{if(e.key==='Escape'){closePicker();photoSheet.hidden=true;}});\n$('search').oninput=e=>{query=e.target.value.trim().toLowerCase();limit=48;renderGrid();};\nfunction fromPrice(it){const p=Object.values(it.v).map(v=>v[1]);return p.length?Math.min(...p):0;}\nconst norm=s=>s.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g,'');\nfunction itemsFor(f){\n  if(f==='Estabas viendo')return st.viewed.map(id=>BYID[id]);\n  if(f==='Combinan')return combos().map(id=>BYID[id]);\n  if(f==='M\u00E1s vendidos')return BEST;\n  if(f==='Sets')return CAT.filter(c=>c.n>1);\n  if(f==='Sin marco')return CAT.filter(c=>c.mdf);\n  if(f==='Todos')return CAT;\n  const tab=CFG.tabs.find(x=>x.title===f); if(!tab)return CAT;\n  if(!TABS[f]){TABS[f]='loading';loadCollection(tab.handle,'simu-lista').then(list=>{TABS[f]=list.map(p=>p.h).filter(h=>BYID[h]);if(filt===f&&!sheet.hidden)renderGrid();}).catch(()=>{TABS[f]=[];});}\n  return Array.isArray(TABS[f])?TABS[f].map(h=>BYID[h]):null;\n}\nfunction renderGrid(){\n  const T=tabs(); if(!T.includes(filt))filt=T[0];\n  const fl=$('filters');\n  fl.innerHTML=T.map(c=>`<button type=\"button\" class=\"chip\" data-c=\"${c}\" aria-pressed=\"${c===filt&&!query}\">${c}</button>`).join('');\n  fl.onclick=e=>{const b=e.target.closest('[data-c]');if(b){filt=b.dataset.c;query='';$('search').value='';limit=48;renderGrid();}};\n  let items=query?CAT.filter(c=>norm(c.t).includes(norm(query))):itemsFor(filt);\n  const cur=st.slots[st.active]&&st.slots[st.active].item;\n  $('sheetTitle').textContent=!query&&filt==='Combinan'&&cur?`Combinan con ${BYID[cur].t}`:'Eleg\u00ED un dise\u00F1o';\n  const g=$('grid');\n  if(items===null){g.innerHTML='<p class=\"hint\">Cargando dise\u00F1os\u2026</p>';return;}\n  if(!items.length){g.innerHTML=`<p class=\"hint\">${query?'No encontramos dise\u00F1os con ese nombre.':'Todav\u00EDa no hay dise\u00F1os en esta pesta\u00F1a.'}</p>`;return;}\n  const shown=items.slice(0,limit);\n  g.innerHTML=shown.map(it=>`<button type=\"button\" class=\"card\" data-id=\"${it.id}\">\n    <div class=\"pic\">${thumbs(it,360)}</div>\n    ${it.n>1?`<span class=\"badge\">Set x${it.n}${it.mdf?' \u00B7 sin marco':''}</span>`:it.mdf?'<span class=\"badge\">Sin marco</span>':it.best&&filt!=='M\u00E1s vendidos'?'<span class=\"badge\">M\u00E1s vendido</span>':''}\n    <b>${it.t}</b><span>desde ${fmt(fromPrice(it))}</span></button>`).join('')\n    +(items.length>limit?`<div class=\"more\"><button type=\"button\" class=\"chip\" id=\"moreBtn\">Ver m\u00E1s dise\u00F1os (${items.length-limit})</button></div>`:'');\n  hydrate(g);\n  g.onclick=e=>{if(e.target.closest('#moreBtn')){limit+=48;const y=g.scrollTop;renderGrid();g.scrollTop=y;return;}\n    const b=e.target.closest('[data-id]');if(b){choose(b.dataset.id);closePicker();}};\n  if(limit===48)g.scrollTop=0;\n}\nfunction fitSize(it,size,fallback){return it.sizes.includes(size)?size:(it.sizes.includes(fallback)?fallback:it.sizes[0]);}\nfunction choose(id){\n  const it=BYID[id]; const s=st.slots[st.active];\n  if(s.group)groupSlots(s).forEach(x=>{x.item=null;x.group=null;x.piece=0;});\n  if(it.n===1){\n    s.item=id;s.piece=0;s.group=null;\n    s.size=fitSize(it,s.size,'30X40');\n    if(it.mdf)s.glass='SV';\n  }else{\n    const g='g'+(st.nextGroup++), i=st.active;\n    const base=fitSize(it,s.size,it.mdf?'30X40':'40X50');\n    for(let k=0;k<it.n;k++){\n      let t=st.slots[i+k]; if(!t){t=mkSlot(base);st.slots.push(t);}\n      if(t.group&&t.group!==g)groupSlots(t).forEach(x=>{x.item=null;x.group=null;x.piece=0;});\n      Object.assign(t,{item:id,piece:k,group:g,size:base,frame:s.frame||'NAT',glass:it.mdf?'SV':s.glass,margin:s.margin});\n    }\n    renderStatic();\n  }\n  flow();\n}\n\n\n/* ---------- sugerencias: sumar cuadros que combinan (solo si lleg\u00F3 desde un cuadro individual) ---------- */\nlet SUG=null,SUG_P=null;\n(function(){try{const s=document.querySelector('script[src*=\"/assets/arma-tu-pared\"]');if(!s)return;const u=s.src.split('?')[0].replace(/arma-tu-pared(\\.min)?\\.js$/,'combinalos-sug.json')+'?v='+((s.src.split('v=')[1]||'').split('&')[0]||Date.now());SUG_P=fetch(u).then(r=>r.ok?r.json():null).then(j=>{if(!j)return;const m={};j.s.forEach((a,i)=>{m[j.h[i]]=a.map(k=>j.h[k]);});SUG=m;try{renderSugg();}catch(e){}}).catch(()=>{});}catch(e){}})();\nfunction suggestions(){\n  const f=BYID[st.from]; if(!f)return [];\n  // primero los que combinan por color y estilo (calculados de las im\u00E1genes)\n  if(SUG&&SUG[f.id]){const u2=new Set(st.slots.map(s=>s.item).filter(Boolean));const l=SUG[f.id].map(h=>BYID[h]).filter(c=>c&&c.n===1&&!u2.has(c.id));if(l.length>=1)return l.slice(0,10);}\n  const used=new Set(st.slots.map(s=>s.item).filter(Boolean));\n  let pool=f.p.map(h=>BYID[h]).filter(c=>c&&c.n===1&&c.mdf===f.mdf);\n  if(pool.length<6)pool=pool.concat(BEST.filter(c=>c.n===1&&c.mdf===f.mdf));\n  return [...new Set(pool)].filter(c=>!used.has(c.id)).slice(0,10);\n}\nfunction renderSugg(){\n  let box=root.getElementById('sumaWrap');\n  const bar=root.querySelector('.stagebar');\n  if(!bar)return;\n  if(!box){\n    const css=document.createElement('style');\n    css.textContent=`.suma{margin-top:12px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--panel)}\n.suma b{display:block;font-size:14px;margin-bottom:2px}.suma p{margin:0 0 10px;font-size:12px;color:var(--muted)}\n.sumarow{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}\n.sumabtn{flex:0 0 auto;width:84px;border:1px solid var(--line);border-radius:10px;background:var(--ground);padding:6px;cursor:pointer;position:relative;font:inherit;color:var(--ink)}\n.sumabtn img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;background:var(--soft)}\n.sumabtn span{position:absolute;right:4px;top:4px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:600 16px/24px var(--atp-body);text-align:center}\n.sumabtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}`;\n    root.appendChild(css);\n    box=document.createElement('div');box.className='suma';box.id='sumaWrap';\n    bar.insertAdjacentElement('afterend',box);\n  }\n  const list=st.entry==='product1'&&st.slots.length<MAXN?suggestions():[];\n  if(!list.length){box.hidden=true;return;}\n  box.hidden=false;\n  box.innerHTML=`<b>Sum\u00E1 cuadros que combinan</b><p>Toc\u00E1 uno para agregarlo a tu pared. Desde el 2\u00BA cuadro ten\u00E9s descuento.</p>\n  <div class=\"sumarow\">${list.map(c=>`<button type=\"button\" class=\"sumabtn\" data-id=\"${c.id}\" aria-label=\"Sumar ${c.t}\">${oneThumb(c,0,200)}<span aria-hidden=\"true\">+</span></button>`).join('')}</div>`;\n  hydrate(box);\n  box.querySelectorAll('.sumabtn').forEach(b=>b.onclick=()=>{\n    const n=st.slots.length; setCount(n+1); st.active=n; choose(b.dataset.id); renderSugg();\n  });\n}\n\n/* ---------- inicio ---------- */\n// C\u00F3mo lleg\u00F3: desde un SET de Comb\u00EDnalos, desde una ficha, desde un anuncio de Meta o directo\nfunction entryMode(){\n  const q=new URLSearchParams(location.search);\n  if(q.get('set'))return 'set';\n  if(q.get('desde'))return 'product';\n  if(q.get('fbclid')||/^(fb|facebook|ig|instagram|meta)/i.test(q.get('utm_source')||''))return 'meta';\n  return 'auto';\n}\nfunction readViewed(mode){\n  const q=new URLSearchParams(location.search), out=[];\n  (q.get('desde')||'').split(',').forEach(h=>h&&out.push(h));\n  // si viene de un anuncio de Meta arranca con los m\u00E1s vendidos, no con lo que vio antes\n  if(mode!=='meta')try{JSON.parse(localStorage.getItem('thd_vistos')||'[]').forEach(h=>out.push(h));}catch(e){}\n  return [...new Set(out)].filter(h=>BYID[h]).slice(0,8);\n}\n// Pone una lista de productos en la pared, cada set con todas sus piezas\nfunction placeItems(list){\n  const items=[];let total=0;\n  list.forEach(c=>{if(c&&total+c.n<=8){items.push(c);total+=c.n;}});\n  if(!items.length)return false;\n  const size=total<=3?'40X50':'30X40';\n  initSlots(total,size);\n  let i=0;\n  items.forEach(it=>{\n    const base=fitSize(it,size,'30X40'), g=it.n>1?'g'+(st.nextGroup++):null;\n    for(let k=0;k<it.n;k++){Object.assign(st.slots[i],{item:it.id,piece:k,group:g,size:base,glass:'SV'});i++;}\n  });\n  st.viewed=items.map(c=>c.id); st.active=0; renderStatic(); flow();\n  return true;\n}\n// Distribuciones especiales para algunos SET (medidas en cm; x,y = centro de cada cuadro)\nconst INICIO='set-x2-cuadros-decorativos-sol-y-luna-ii';\nconst SET_LAYOUTS={\n  // anuncio \"De lo guard\u00E9 en Pinterest a tenerlo en tu pared\"\n  set2618:[\n    {h:'cuadro-decorativo-trendy-mujer-rayas-rojo-rosa-marco-natural',size:'40X50',x:-41,y:-4},\n    {h:'cuadro-decorativo-trendy-more-amor-por-favor-crema-marco-natural',size:'30X40',x:0,y:-23},\n    {h:'cuadro-decorativo-trendy-dalmata-collar-perlas-crema-marco-natural',size:'30X40',x:0,y:23},\n    {h:'cuadro-decorativo-trendy-aloe-maceta-roja-crema-marco-natural',size:'40X50',x:41,y:-2}\n  ]\n};\n// Arranca con todos los cuadros de un SET de Comb\u00EDnalos ya puestos en la pared\nfunction startSet(code){\n  const lay=SET_LAYOUTS[code];\n  if(lay&&lay.every(q=>BYID[q.h])){\n    initSlots(lay.length,'40X50');\n    lay.forEach((q,i)=>Object.assign(st.slots[i],{item:q.h,piece:0,group:null,size:fitSize(BYID[q.h],q.size,'40X50'),glass:'SV'}));\n    st.custom=lay.map(q=>({x:q.x,y:q.y})); st.arr='custom';\n    st.viewed=lay.map(q=>q.h); st.active=0; renderStatic(); flow();\n    return true;\n  }\n  return placeItems(CAT.filter(c=>c.sets.includes(code)).sort((a,b)=>a.n-b.n));\n}\n// Si viene de una ficha con una variante elegida (?v=id), usa esa medida, marco y vidrio\nfunction aplicarVariante(){\n  const q=new URLSearchParams(location.search), vid=q.get('v'), h=(q.get('desde')||'').split(',')[0];\n  const it=BYID[h]; if(!vid||!it)return;\n  const e=Object.entries(it.v).find(([k,x])=>String(x[0])===String(vid)); if(!e)return;\n  const [size,gl,fr]=e[0].split('|');\n  st.slots.filter(s=>s.item===h).forEach(s=>{s.size=size;if(gl)s.glass=gl;if(fr)s.frame=fr;});\n  renderStatic(); flow();\n}\n// despu\u00E9s de cada renderStatic actualiza las sugerencias\nconst _renderStatic0=renderStatic; renderStatic=function(){_renderStatic0();if(st.from)try{renderSugg();}catch(e){}};\nfunction start(){ _start(); try{aplicarVariante();}catch(e){console.warn(e);} try{renderSugg();}catch(e){console.warn(e);} }\nfunction _start(){\n  const mode=entryMode();\n  st.gx=0; st.gy=0;\n  if(mode==='set'&&startSet(new URLSearchParams(location.search).get('set').toLowerCase())){st.entry='set';return;}\n  st.viewed=readViewed(mode); st.entry=st.viewed.length?'product':(mode==='meta'?'meta':'direct');\n  // viene de una ficha: pone solo ese cuadro (o el set x2 / x3 completo)\n  const first=mode==='product'?BYID[(new URLSearchParams(location.search).get('desde')||'').split(',')[0]]:null;\n  if(first&&placeItems([first])){st.entry=first.n>1?'productset':'product1';st.from=first.id;st.viewed=readViewed(mode);return;}\n  // por ahora, si no viene de un producto ni de un SET, arranca con Sol y Luna II\n  if(mode!=='product'&&BYID[INICIO]&&placeItems([BYID[INICIO]])){st.slots.forEach(s=>s.size=fitSize(BYID[INICIO],'50X70',s.size));st.entry='inicio';renderStatic();flow();return;}\n  initSlots(3,'40X50');\n  // viene de un producto: arranca con lo que estaba viendo y completa con lo que combina; si no, con los m\u00E1s vendidos\n  let pool=st.entry==='product'?st.viewed.map(h=>BYID[h]):[];\n  if(pool.length<3){const extra=[];pool.forEach(c=>c.p.forEach(o=>{if(!extra.includes(o))extra.push(o);}));\n    const mdf=pool[0]?pool[0].mdf:false;\n    pool=pool.concat(extra.map(h=>BYID[h]).filter(c=>c.mdf===mdf),BEST.filter(c=>c.mdf===mdf));}\n  pool=[...new Set(pool)];\n  let k=0; pool.filter(c=>c.n===1).forEach(c=>{if(k<3){st.slots[k].item=c.id;st.slots[k].size=fitSize(c,'40X50','30X40');if(c.mdf)st.slots[k].glass='SV';k++;}});\n  if(!k)CAT.filter(c=>c.n===1&&!c.mdf).slice(0,3).forEach((c,i)=>{st.slots[i].item=c.id;st.slots[i].size=fitSize(c,'40X50','30X40');});\n  st.active=Math.min(1,st.slots.length-1); renderStatic(); flow();\n}\n// agrega productos al cat\u00E1logo (sin repetir) y recalcula qu\u00E9 combina con qu\u00E9\nfunction addProducts(list){\n  let n=0;\n  list.forEach(p=>{if(!p||!p.s||BYID[p.h])return;const it=parseProduct(p);if(!Object.keys(it.v).length)return;CAT.push(it);BYID[it.id]=it;n++;});\n  if(n){\n    // Comb\u00EDnalos: los productos que comparten una etiqueta SET combinan entre s\u00ED\n    const bySet={}; CAT.forEach(c=>c.sets.forEach(t=>(bySet[t]=bySet[t]||[]).push(c.id)));\n    CAT.forEach(c=>{const q=[];c.sets.forEach(t=>bySet[t].forEach(o=>{if(o!==c.id&&!q.includes(o))q.push(o);}));c.p=q;});\n  }\n  return n;\n}\n// un producto suelto, r\u00E1pido (lo que la persona estaba viendo)\nasync function fetchProd(h){\n  try{\n    const r=await fetch(`${ROOT}products/${encodeURIComponent(h)}.js`,{credentials:'same-origin'}); if(!r.ok)return null;\n    const p=await r.json(), tags=(p.tags||[]).map(t=>String(t).toLowerCase());\n    return {h:p.handle,t:p.title,s:tags.includes('simulador')?1:0,k:(p.variants[0]||{}).sku||'',\n      g:tags.filter(t=>t.startsWith('set')||t.startsWith('simu-')),v:p.variants.map(v=>[v.id,v.title,v.price])};\n  }catch(e){return null;}\n}\nasync function firstPage(handle,view){try{return (await fetchJSON(`${ROOT}collections/${handle}?view=${view}&page=1`)).p;}catch(e){return [];}}\nlet FULL=false;\nasync function boot(){\n  try{\n    // 1) lo m\u00EDnimo para arrancar: m\u00E1s vendidos, lo que estaba viendo y el SET si viene de uno\n    const q=new URLSearchParams(location.search), mode=entryMode();\n    let seen=[];if(mode!=='meta')try{seen=JSON.parse(localStorage.getItem('thd_vistos')||'[]');}catch(e){}\n    const handles=[...new Set([...(q.get('set')||q.get('desde')?[]:[INICIO]),...((q.get('set')&&SET_LAYOUTS[q.get('set').toLowerCase()])||[]).map(x=>x.h),...(q.get('desde')||'').split(','),...seen,...(CFG.start||[])].filter(Boolean))].slice(0,12);\n    const [top,setList,...singles]=await Promise.all([\n      CFG.best?firstPage(CFG.best,'simu-top'):Promise.resolve([]),\n      q.get('set')?firstPage(q.get('set').toLowerCase(),'simu'):Promise.resolve([]),\n      ...handles.map(fetchProd)\n    ]);\n    addProducts(top); addProducts(setList); addProducts(singles);\n    BEST=top.map(p=>BYID[p.h]).filter(Boolean).slice(0,CFG.bestCount||32);\n    BEST.forEach((c,i)=>c.best=i+1);\n    if(!CAT.length){await loadAll();}\n    if(!CAT.length)throw new Error('sin productos');\n    $('loading').hidden=true;\n    start();\n    let tour=false; try{tour=localStorage.getItem('thd_tour')==='1';}catch(e){}\n    if(!tour)setTimeout(()=>showStep(0),700);\n    // 2) el resto del cat\u00E1logo, de fondo, mientras la persona ya usa el simulador\n    // 1b) Comb\u00EDnalos r\u00E1pido: trae ya los cuadros que combinan con el que estaba viendo (sin esperar todo el cat\u00E1logo)\n    if(!FULL&&q.get('desde'))fastCombos(q.get('desde').split(',')).then(n=>{if(n)scheduleRender();});\n    if(!FULL)loadAll().then(()=>{renderStatic();scheduleRender();if(!sheet.hidden)renderGrid();}).catch(e=>console.warn('[Arm\u00E1 tu pared]',e));\n  }catch(e){\n    console.error('[Arm\u00E1 tu pared]',e);\n    $('loading').textContent='No pudimos cargar los dise\u00F1os. Recarg\u00E1 la p\u00E1gina para intentar de nuevo.';\n  }\n}\nasync function fastCombos(hs){\n  try{\n    try{if(SUG_P)await SUG_P;}catch(e){}\n    if(SUG){const fs=[];hs.forEach(h=>(SUG[h]||[]).forEach(o=>{if(o!==h&&!fs.includes(o)&&!BYID[o])fs.push(o);}));\n      if(fs.length)return addProducts(await Promise.all(fs.slice(0,12).map(fetchProd)));}\n    if(!window.CMB_SETS_URL)return 0;\n    const j=await fetchJSON(window.CMB_SETS_URL), out=[];\n    hs.forEach(h=>{const i=j.h.indexOf(h);if(i<0)return;\n      j.s.forEach(s=>{if(s.indexOf(i,1)>0)s.slice(1).forEach(k=>{const o=j.h[k];if(o!==h&&!out.includes(o)&&!BYID[o])out.push(o);});});});\n    if(!out.length)return 0;\n    return addProducts(await Promise.all(out.slice(0,16).map(fetchProd)));\n  }catch(e){return 0;}\n}\nasync function loadAll(){const all=await loadCollection(CFG.catalog,'simu');addProducts(all);FULL=true;}\n\n$('wallW').oninput=e=>{st.wallW=+e.target.value||320;render();};\n$('furn').onchange=e=>{st.furn=e.target.value;render();};\nlet rt;window.addEventListener('resize',()=>{clearTimeout(rt);rt=setTimeout(render,80);});\n\n/* ---------- tutorial paso a paso ---------- */\nconst coach=$('coach'), hole=$('coachHole'), tip=$('coachTip'), arrow=$('coachArrow');\nconst STEPS=[\n  {t:'Toc\u00E1 un cuadro de la pared',x:'As\u00ED lo seleccion\u00E1s para cambiarle el dise\u00F1o, la medida o el marco.',el:()=>root.querySelector('.slot.active')||root.querySelector('.slot'),tab:'cuadro'},\n  {t:'Eleg\u00ED dise\u00F1o, medida y marco',x:'Ac\u00E1 ves los dise\u00F1os que combinan con tu pared, las medidas, el color del marco y si lo quer\u00E9s con margen blanco.',el:()=>$('slotsec'),tab:'cuadro',panel:true},\n  {t:'Sum\u00E1 o sac\u00E1 cuadros',x:'Con \u2212 y + arm\u00E1s un set de 1 a 8 cuadros y eleg\u00EDs c\u00F3mo acomodarlos.',el:()=>narrow()?root.querySelector('.tabbar [data-tab=\"dispo\"]'):root.querySelector('[data-sec=\"dispo\"]'),tab:null,panel:true},\n  {t:'Probalo en tu casa',x:'Sub\u00ED una foto de tu pared y te mostramos c\u00F3mo queda, a escala real.',el:()=>$('photoOpen'),tab:'pared',panel:true},\n  {t:'Compr\u00E1 tu set',x:'Cuando te guste, toc\u00E1 \"Comprar el set\": pag\u00E1s y te llega a tu casa, listo para colgar.',el:()=>$('buy'),tab:'cuadro'}\n];\nlet step=-1;\nfunction showStep(i){\n  step=i; const S=STEPS[i]; if(!S){endTour();return;}\n  if(S.tab)setTab(S.tab);\n  coach.hidden=false;\n  $('coachStep').textContent=`Paso ${i+1} de ${STEPS.length}`;\n  $('coachTitle').textContent=S.t;\n  $('coachText').textContent=S.x;\n  $('coachNext').textContent=i===STEPS.length-1?'\u00A1Empezar!':'Siguiente \u2192';\n  const el=S.el();\n  if(el&&S.panel){const sc=narrow()?root.querySelector('.stagecol').offsetHeight:0;const y=el.getBoundingClientRect().top+window.scrollY-sc-24;window.scrollTo({top:Math.max(0,y),behavior:'auto'});}\n  else if(i===0)window.scrollTo({top:host.getBoundingClientRect().top+window.scrollY-10,behavior:'auto'});\n  requestAnimationFrame(placeCoach);\n}\nfunction placeCoach(){\n  if(coach.hidden||step<0)return; const el=STEPS[step].el(); if(!el)return;\n  const r=el.getBoundingClientRect(), pad=6, vw=window.innerWidth, vh=window.innerHeight;\n  hole.style.left=(r.left-pad)+'px'; hole.style.top=(r.top-pad)+'px'; hole.style.width=(r.width+pad*2)+'px'; hole.style.height=Math.min(r.height+pad*2,vh)+'px';\n  const tw=Math.min(320,vw-32); tip.style.width=tw+'px';\n  const th=tip.offsetHeight; let left=Math.min(Math.max(16,r.left+r.width/2-tw/2),vw-tw-16);\n  const below=r.bottom+pad+14+th<vh-8, top=below?r.bottom+pad+14:Math.max(8,r.top-pad-14-th);\n  tip.style.left=left+'px'; tip.style.top=top+'px';\n  arrow.className='coachArrow '+(below?'up':'down');\n  arrow.style.left=Math.min(Math.max(14,r.left+r.width/2-left-9),tw-32)+'px';\n}\nfunction endTour(){coach.hidden=true;step=-1;try{localStorage.setItem('thd_tour','1');}catch(e){}}\n$('coachNext').onclick=()=>showStep(step+1);\n$('coachSkip').onclick=endTour;\n$('howBtn').onclick=()=>showStep(0);\nwindow.addEventListener('scroll',()=>requestAnimationFrame(placeCoach),{passive:true});\nwindow.addEventListener('resize',()=>setTimeout(placeCoach,120));\n\nboot();\n})();\n"],
  "mappings": "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",
  "names": ["t"]
}
