{"product_id":"grim-reaper-halloween-vinyl-decal","title":"Grim Reaper Halloween Vinyl Decal","description":"\u003cp\u003eThe Grim Reaper reaches forward with a skeletal hand while holding a sweeping scythe. Bold shapes and ragged robes give this one a mean Halloween look.\u003c\/p\u003e\u003csection id=\"bvc-halloween-preview\"\u003e\u003ch2\u003eChoose your three colors\u003c\/h2\u003e\n\u003cp\u003eChange each color and see your decal update. Choose three different colors.\u003c\/p\u003e\n\u003cdiv class=\"bvc-hal-controls\"\u003e\n\u003clabel\u003eDetails color\u003cselect aria-label=\"Details color\" data-color=\"0\"\u003e\u003coption value=\"0\" selected\u003eBlack · Gloss · 070\u003c\/option\u003e\n\u003coption value=\"1\"\u003eWhite · Gloss · 010\u003c\/option\u003e\n\u003coption value=\"2\"\u003eMatte White · 010M\u003c\/option\u003e\n\u003coption value=\"3\"\u003eBrilliant Blue · 086\u003c\/option\u003e\n\u003coption value=\"4\"\u003eGolden Yellow · 020\u003c\/option\u003e\n\u003coption value=\"5\"\u003eRed · 031\u003c\/option\u003e\n\u003coption value=\"6\"\u003eForest Green · 613\u003c\/option\u003e\n\u003coption value=\"7\"\u003ePink · 041\u003c\/option\u003e\n\u003coption value=\"8\"\u003eGold · Metallic gloss · 091\u003c\/option\u003e\n\u003coption value=\"9\"\u003eSilver Gray Metallic Matte · 090M\u003c\/option\u003e\n\u003coption value=\"10\"\u003eSilver Grey Metallic Gloss · 090\u003c\/option\u003e\n\u003coption value=\"11\"\u003eLime-Tree Green · Gloss · 063\u003c\/option\u003e\n\u003coption value=\"12\"\u003eOrange · 751 premium cast · +$0.25\u003c\/option\u003e\n\u003coption value=\"13\"\u003eTurquoise Blue · Gloss · 066\u003c\/option\u003e\n\u003coption value=\"14\"\u003eViolet · Gloss · 040\u003c\/option\u003e\u003c\/select\u003e\u003c\/label\u003e\u003clabel\u003eMain color\u003cselect aria-label=\"Main color\" data-color=\"1\"\u003e\u003coption value=\"0\"\u003eBlack · Gloss · 070\u003c\/option\u003e\n\u003coption value=\"1\"\u003eWhite · Gloss · 010\u003c\/option\u003e\n\u003coption value=\"2\"\u003eMatte White · 010M\u003c\/option\u003e\n\u003coption value=\"3\"\u003eBrilliant Blue · 086\u003c\/option\u003e\n\u003coption value=\"4\"\u003eGolden Yellow · 020\u003c\/option\u003e\n\u003coption value=\"5\"\u003eRed · 031\u003c\/option\u003e\n\u003coption value=\"6\"\u003eForest Green · 613\u003c\/option\u003e\n\u003coption value=\"7\"\u003ePink · 041\u003c\/option\u003e\n\u003coption value=\"8\"\u003eGold · Metallic gloss · 091\u003c\/option\u003e\n\u003coption value=\"9\"\u003eSilver Gray Metallic Matte · 090M\u003c\/option\u003e\n\u003coption value=\"10\"\u003eSilver Grey Metallic Gloss · 090\u003c\/option\u003e\n\u003coption value=\"11\"\u003eLime-Tree Green · Gloss · 063\u003c\/option\u003e\n\u003coption value=\"12\"\u003eOrange · 751 premium cast · +$0.25\u003c\/option\u003e\n\u003coption value=\"13\"\u003eTurquoise Blue · Gloss · 066\u003c\/option\u003e\n\u003coption value=\"14\" selected\u003eViolet · Gloss · 040\u003c\/option\u003e\u003c\/select\u003e\u003c\/label\u003e\u003clabel\u003eAccent color\u003cselect aria-label=\"Accent color\" data-color=\"2\"\u003e\u003coption value=\"0\"\u003eBlack · Gloss · 070\u003c\/option\u003e\n\u003coption value=\"1\"\u003eWhite · Gloss · 010\u003c\/option\u003e\n\u003coption value=\"2\"\u003eMatte White · 010M\u003c\/option\u003e\n\u003coption value=\"3\"\u003eBrilliant Blue · 086\u003c\/option\u003e\n\u003coption value=\"4\"\u003eGolden Yellow · 020\u003c\/option\u003e\n\u003coption value=\"5\"\u003eRed · 031\u003c\/option\u003e\n\u003coption value=\"6\"\u003eForest Green · 613\u003c\/option\u003e\n\u003coption value=\"7\"\u003ePink · 041\u003c\/option\u003e\n\u003coption value=\"8\"\u003eGold · Metallic gloss · 091\u003c\/option\u003e\n\u003coption value=\"9\"\u003eSilver Gray Metallic Matte · 090M\u003c\/option\u003e\n\u003coption value=\"10\"\u003eSilver Grey Metallic Gloss · 090\u003c\/option\u003e\n\u003coption value=\"11\" selected\u003eLime-Tree Green · Gloss · 063\u003c\/option\u003e\n\u003coption value=\"12\"\u003eOrange · 751 premium cast · +$0.25\u003c\/option\u003e\n\u003coption value=\"13\"\u003eTurquoise Blue · Gloss · 066\u003c\/option\u003e\n\u003coption value=\"14\"\u003eViolet · Gloss · 040\u003c\/option\u003e\u003c\/select\u003e\u003c\/label\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"button\" data-reset\u003eReset Halloween colors\u003c\/button\u003e\u003clabel\u003ePreview surface\u003cselect aria-label=\"Preview surface\" data-surface\u003e\u003coption value=\"auto\"\u003eAuto contrast\u003c\/option\u003e\n\u003coption value=\"#ffffff\"\u003eWhite surface\u003c\/option\u003e\n\u003coption value=\"#171717\"\u003eBlack surface\u003c\/option\u003e\n\u003coption value=\"#888888\"\u003eGray surface\u003c\/option\u003e\u003c\/select\u003e\u003c\/label\u003e\u003cfigure id=\"bvc-halloween-art\"\u003e\u003cp class=\"bvc-hal-art-title\"\u003eYour live color preview\u003c\/p\u003e\n\u003ccanvas hidden role=\"img\" aria-label=\"Grim Reaper Halloween Vinyl Decal live three-color preview\"\u003e\u003c\/canvas\u003e\u003cimg onload='(function halloweenPreview(config){\n function init(){\n  const root=document.getElementById(\"bvc-halloween-preview\");\n  if(!root||root.dataset.initialized)return;\n  root.dataset.initialized=\"true\";\n  const colors=[...root.querySelectorAll(\"select[data-color]\")],size=root.querySelector(\"[data-size]\"),qty=root.querySelector(\"[data-quantity]\"),surface=root.querySelector(\"[data-surface]\"),buy=root.querySelector(\"[data-buy]\"),price=root.querySelector(\"[data-price]\"),status=root.querySelector(\"[data-status]\"),figure=root.querySelector(\"#bvc-halloween-art\"),canvas=figure.querySelector(\"canvas\"),fallback=figure.querySelector(\"img\"),ctx=canvas.getContext(\"2d\");\n  let shape=null,alpha=null,ready=false,busy=false;\n  const rgb=hex=\u0026gt;hex.match(\/[a-f\\d]{2}\/gi).map(v=\u0026gt;parseInt(v,16));\n  function selected(){return colors.map(s=\u0026gt;config.palette[Number(s.value)]);}\n  function variant(){\n   const c=selected(),metallic=c.filter(x=\u0026gt;x.metallic).length,orange=c.filter(x=\u0026gt;x.orange).length;\n   return config.variants.find(v=\u0026gt;v.size===Number(size.value)\u0026amp;\u0026amp;v.metallic===metallic\u0026amp;\u0026amp;v.orange===orange);\n  }\n  function render(){\n   if(!shape)return;\n   const cs=selected().map(x=\u0026gt;rgb(x.hex)),out=ctx.createImageData(canvas.width,canvas.height);\n   for(let p=0;p\u0026lt;shape.length;p++){\n    const group=shape[p];if(group===255)continue;\n    const k=p*4,c=cs[group];out.data[k]=c[0];out.data[k+1]=c[1];out.data[k+2]=c[2];out.data[k+3]=alpha[p];\n   }\n   ctx.putImageData(out,0,0);\n   const bg=surface.value===\"auto\"?(selected().some(c=\u0026gt;c.hex===\"#e6e9ee\")?\"#34383d\":\"#ffffff\"):surface.value;\n   canvas.style.backgroundColor=bg;\n   ctx.save();ctx.translate(canvas.width\/2,canvas.height\/2);ctx.rotate(-Math.PI\/7);ctx.globalAlpha=.2;ctx.textAlign=\"center\";ctx.textBaseline=\"middle\";ctx.font=\"bold \"+Math.round(canvas.width\/25)+\"px sans-serif\";ctx.lineWidth=2;ctx.strokeStyle=\"#323232\";ctx.fillStyle=\"#ffffff\";\n   for(let y=-canvas.height\/3;y\u0026lt;=canvas.height\/3;y+=canvas.height\/3){ctx.strokeText(\"BULLARDVINYLCO.COM\",0,y);ctx.fillText(\"BULLARDVINYLCO.COM\",0,y);}\n   ctx.restore();\n   root.dataset.previewColors=selected().map(c=\u0026gt;c.label).join(\" | \");\n  }\n  function update(){\n   const v=variant(),n=Number(qty.value),distinct=new Set(selected().map(c=\u0026gt;c.hex)).size===3;\n   buy.disabled=!ready||busy||!v||!Number.isInteger(n)||n\u0026lt;1||n\u0026gt;100||!distinct;\n   price.textContent=v?new Intl.NumberFormat(\"en-US\",{style:\"currency\",currency:\"USD\"}).format(v.price*(Number.isInteger(n)\u0026amp;\u0026amp;n\u0026gt;0?n:1)):\"Unavailable\";\n   root.dataset.selectedVariant=v?v.id:\"\";\n   if(!busy\u0026amp;\u0026amp;ready)status.textContent=distinct?\"Your three color choices will be saved with your order.\":\"Choose three different colors so every layer stays visible.\";\n   render();\n  }\n  colors.forEach(s=\u0026gt;s.addEventListener(\"change\",update));size.addEventListener(\"change\",update);qty.addEventListener(\"input\",update);surface.addEventListener(\"change\",update);\n  root.querySelector(\"[data-reset]\").addEventListener(\"click\",()=\u0026gt;{colors.forEach((s,i)=\u0026gt;s.value=String(config.defaults[i]));surface.value=\"auto\";update();});\n  buy.addEventListener(\"click\",async()=\u0026gt;{\n   if(buy.disabled)return;\n   const v=variant(),c=selected(),properties={\"Details color\":c[0].label,\"Main color\":c[1].label,\"Accent color\":c[2].label,\"Width\":size.value+\" inches\",\"Metallic layers\":String(v.metallic),\"Premium orange layers\":String(v.orange)};\n   busy=true;update();status.textContent=\"Adding your decal…\";\n   try{\n    const route=window.Shopify?.routes?.root||\"\/\";\n    const response=await fetch(route+\"cart\/add.js\",{method:\"POST\",headers:{\"Content-Type\":\"application\/json\",\"Accept\":\"application\/json\"},body:JSON.stringify({items:[{id:v.id,quantity:Number(qty.value),properties}]})});\n    if(!response.ok){const e=await response.json();throw new Error(e.description||\"Could not add your decal. Please try again.\");}\n    window.location.href=route+\"cart\";\n   }catch(error){busy=false;update();status.textContent=error.message;}\n  });\n  const image=new Image();image.crossOrigin=\"anonymous\";\n  image.onload=()=\u0026gt;{\n   try{\n    const scale=Math.min(1,1024\/image.naturalWidth);canvas.width=Math.round(image.naturalWidth*scale);canvas.height=Math.round(image.naturalHeight*scale);\n    ctx.drawImage(image,0,0,canvas.width,canvas.height);\n    const pixels=ctx.getImageData(0,0,canvas.width,canvas.height).data;\n    shape=new Uint8Array(canvas.width*canvas.height);shape.fill(255);alpha=new Uint8Array(shape.length);\n    for(let p=0;p\u0026lt;shape.length;p++){\n     const k=p*4,r=pixels[k],g=pixels[k+1],b=pixels[k+2],a=pixels[k+3],min=Math.min(r,g,b),max=Math.max(r,g,b);\n     if(a\u0026lt;20||(config.whiteBackground\u0026amp;\u0026amp;min\u0026gt;190\u0026amp;\u0026amp;max-min\u0026lt;45))continue;\n     let group=0;\n     if(g\u0026gt;r*1.08\u0026amp;\u0026amp;g\u0026gt;b*1.08\u0026amp;\u0026amp;max-min\u0026gt;25)group=2;\n     else if((b\u0026gt;g*1.15||r\u0026gt;g*1.15)\u0026amp;\u0026amp;b\u0026gt;r*.5\u0026amp;\u0026amp;max-min\u0026gt;25)group=1;\n     shape[p]=group;alpha[p]=a;\n    }\n    ready=true;canvas.hidden=false;fallback.hidden=true;root.classList.add(\"bvc-hal-ready\");\n    const panel=document.querySelector(\"#MainContent .product-information__media\"),gallery=panel?.querySelector(\"media-gallery\");\n    if(panel\u0026amp;\u0026amp;gallery){gallery.style.display=\"none\";panel.appendChild(figure);figure.classList.add(\"bvc-hal-in-gallery\");}\n    const picker=document.querySelector(\"#MainContent variant-picker\");if(picker)picker.parentElement.insertBefore(root,picker);\n    update();\n   }catch(e){status.textContent=\"The live color preview could not load. Please refresh this page or contact us for a color proof.\";root.dataset.previewError=e.message;}\n  };\n  image.onerror=()=\u0026gt;{status.textContent=\"The live color preview could not load. Please refresh this page or contact us for a color proof.\";root.dataset.previewError=\"Image did not load\";};\n  image.src=config.source;\n  update();\n }\n if(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",init,{once:true});else init();\n})({\"source\":\"https:\/\/cdn.shopify.com\/s\/files\/1\/1024\/4754\/6685\/files\/bvc-halloween-color-source-grim-reaper.jpg?v=1792806754\",\"whiteBackground\":true,\"palette\":[{\"hex\":\"#0d0e11\",\"label\":\"Black · Gloss · 070\",\"metallic\":false,\"orange\":false},{\"hex\":\"#e6e9ee\",\"label\":\"White · Gloss · 010\",\"metallic\":false,\"orange\":false},{\"hex\":\"#e6e9ee\",\"label\":\"Matte White · 010M\",\"metallic\":false,\"orange\":false},{\"hex\":\"#1930ab\",\"label\":\"Brilliant Blue · 086\",\"metallic\":false,\"orange\":false},{\"hex\":\"#fbaa00\",\"label\":\"Golden Yellow · 020\",\"metallic\":false,\"orange\":false},{\"hex\":\"#b0000d\",\"label\":\"Red · 031\",\"metallic\":false,\"orange\":false},{\"hex\":\"#005236\",\"label\":\"Forest Green · 613\",\"metallic\":false,\"orange\":false},{\"hex\":\"#c22b6b\",\"label\":\"Pink · 041\",\"metallic\":false,\"orange\":false},{\"hex\":\"#756232\",\"label\":\"Gold · Metallic gloss · 091\",\"metallic\":true,\"orange\":false},{\"hex\":\"#b8bdc5\",\"label\":\"Silver Gray Metallic Matte · 090M\",\"metallic\":true,\"orange\":false},{\"hex\":\"#b8bdc5\",\"label\":\"Silver Grey Metallic Gloss · 090\",\"metallic\":true,\"orange\":false},{\"hex\":\"#6aa72d\",\"label\":\"Lime-Tree Green · Gloss · 063\",\"metallic\":false,\"orange\":false},{\"hex\":\"#f47726\",\"label\":\"Orange · 751 premium cast · +$0.25\",\"metallic\":false,\"orange\":true},{\"hex\":\"#01818c\",\"label\":\"Turquoise Blue · Gloss · 066\",\"metallic\":false,\"orange\":false},{\"hex\":\"#5c267a\",\"label\":\"Violet · Gloss · 040\",\"metallic\":false,\"orange\":false}],\"defaults\":[0,14,11],\"variants\":[{\"id\":\"67787377508669\",\"size\":12,\"metallic\":0,\"orange\":0,\"price\":12},{\"id\":\"67787377541437\",\"size\":18,\"metallic\":0,\"orange\":0,\"price\":14},{\"id\":\"67787377574205\",\"size\":24,\"metallic\":0,\"orange\":0,\"price\":16},{\"id\":\"67787520573757\",\"size\":12,\"metallic\":0,\"orange\":1,\"price\":12.25},{\"id\":\"67787520606525\",\"size\":12,\"metallic\":0,\"orange\":2,\"price\":12.5},{\"id\":\"67787520639293\",\"size\":12,\"metallic\":0,\"orange\":3,\"price\":12.75},{\"id\":\"67787520672061\",\"size\":12,\"metallic\":1,\"orange\":0,\"price\":14},{\"id\":\"67787520704829\",\"size\":12,\"metallic\":1,\"orange\":1,\"price\":14.25},{\"id\":\"67787520737597\",\"size\":12,\"metallic\":1,\"orange\":2,\"price\":14.5},{\"id\":\"67787520770365\",\"size\":12,\"metallic\":2,\"orange\":0,\"price\":16},{\"id\":\"67787520803133\",\"size\":12,\"metallic\":2,\"orange\":1,\"price\":16.25},{\"id\":\"67787520835901\",\"size\":12,\"metallic\":3,\"orange\":0,\"price\":18},{\"id\":\"67787520868669\",\"size\":18,\"metallic\":0,\"orange\":1,\"price\":14.25},{\"id\":\"67787520901437\",\"size\":18,\"metallic\":0,\"orange\":2,\"price\":14.5},{\"id\":\"67787520934205\",\"size\":18,\"metallic\":0,\"orange\":3,\"price\":14.75},{\"id\":\"67787520966973\",\"size\":18,\"metallic\":1,\"orange\":0,\"price\":16},{\"id\":\"67787520999741\",\"size\":18,\"metallic\":1,\"orange\":1,\"price\":16.25},{\"id\":\"67787521032509\",\"size\":18,\"metallic\":1,\"orange\":2,\"price\":16.5},{\"id\":\"67787521065277\",\"size\":18,\"metallic\":2,\"orange\":0,\"price\":18},{\"id\":\"67787521098045\",\"size\":18,\"metallic\":2,\"orange\":1,\"price\":18.25},{\"id\":\"67787521130813\",\"size\":18,\"metallic\":3,\"orange\":0,\"price\":20},{\"id\":\"67787521163581\",\"size\":24,\"metallic\":0,\"orange\":1,\"price\":16.25},{\"id\":\"67787521196349\",\"size\":24,\"metallic\":0,\"orange\":2,\"price\":16.5},{\"id\":\"67787521229117\",\"size\":24,\"metallic\":0,\"orange\":3,\"price\":16.75},{\"id\":\"67787521261885\",\"size\":24,\"metallic\":1,\"orange\":0,\"price\":18},{\"id\":\"67787521294653\",\"size\":24,\"metallic\":1,\"orange\":1,\"price\":18.25},{\"id\":\"67787521327421\",\"size\":24,\"metallic\":1,\"orange\":2,\"price\":18.5},{\"id\":\"67787521360189\",\"size\":24,\"metallic\":2,\"orange\":0,\"price\":20},{\"id\":\"67787521392957\",\"size\":24,\"metallic\":2,\"orange\":1,\"price\":20.25},{\"id\":\"67787521425725\",\"size\":24,\"metallic\":3,\"orange\":0,\"price\":22}]});' src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1024\/4754\/6685\/files\/bullard-halloween-grim-reaper-watermarked.png?v=1792805856\" alt=\"Grim reaper with reaching skeleton hand and scythe in black, violet and lime green\" loading=\"eager\"\u003e\u003cfigcaption\u003eScreen colors are approximate. Open areas show the preview surface. The watermark is not part of your decal.\u003c\/figcaption\u003e\u003c\/figure\u003e\u003cdiv class=\"bvc-hal-row\"\u003e\n\u003clabel\u003eWidth\u003cselect aria-label=\"Decal width\" data-size\u003e\u003coption value=\"12\"\u003e12 inches wide\u003c\/option\u003e\n\u003coption value=\"18\"\u003e18 inches wide\u003c\/option\u003e\n\u003coption value=\"24\"\u003e24 inches wide\u003c\/option\u003e\u003c\/select\u003e\u003c\/label\u003e\u003clabel\u003eQuantity\u003cinput type=\"number\" aria-label=\"Decal quantity\" data-quantity value=\"1\" min=\"1\" max=\"100\" step=\"1\"\u003e\u003c\/label\u003e\n\u003c\/div\u003e\n\u003cp\u003eMetallic vinyl adds $2 per metallic layer. Orange (751) adds $0.25 per orange layer. Your total includes these charges.\u003c\/p\u003e\n\u003cstrong data-price aria-live=\"polite\"\u003e$12.00\u003c\/strong\u003e\u003cbutton type=\"button\" data-buy disabled\u003eAdd your colors to cart\u003c\/button\u003e\u003cp data-status role=\"status\"\u003eLoading your color preview…\u003c\/p\u003e\u003c\/section\u003e\n\u003cp\u003eMade to order by Bullard Vinyl Co. in Columbus, Indiana using three solid colors of layered cut vinyl. Choose a separate color for each layer. The original Halloween color combination is black, violet and lime green. Supplied assembled with transfer tape. One decal per order.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e12 inches wide: $12\u003c\/li\u003e\n\u003cli\u003e18 inches wide: $14\u003c\/li\u003e\n\u003cli\u003e24 inches wide: $16\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWidth measures the full design. Height scales proportionally. These detailed designs are offered in larger sizes to give the fine lines room.\u003c\/p\u003e\n\u003cp\u003eOpen areas show your installation surface. The preview background and watermark are not part of the finished decal. Artwork previews include shading; the finished cut-vinyl design uses solid vinyl colors.\u003c\/p\u003e\n\u003cp\u003eApply to a clean, smooth, dry surface. Ships within 3–5 business days, excluding weekends and holidays; delivery time is additional. Shipping is calculated separately at checkout. Need a different size? \u003ca href=\"\/pages\/contact\"\u003eAsk us about custom work.\u003c\/a\u003e\u003c\/p\u003e\u003cstyle\u003e#bvc-halloween-preview{width:100%;max-width:none;margin:16px 0 24px;color:inherit}#bvc-halloween-preview h2{font-size:24px;line-height:1.2;margin:0 0 10px}#bvc-halloween-preview .bvc-hal-controls{display:grid;grid-template-columns:1fr;gap:12px;margin:18px 0}#bvc-halloween-preview label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px}#bvc-halloween-preview select,#bvc-halloween-preview input{width:100%;max-width:100%;padding:11px;background:#fff;color:#111;border:1px solid #aaa;border-radius:6px;min-height:44px;font:inherit;box-sizing:border-box}#bvc-halloween-preview .bvc-hal-row{display:grid;grid-template-columns:1fr 100px;gap:12px;margin:14px 0}#bvc-halloween-preview button{min-height:46px;border-radius:6px;padding:10px 18px;font:inherit;font-weight:700;cursor:pointer}#bvc-halloween-preview [data-buy]{display:block;width:100%;background:#ff7b0d;color:#111;border:0;margin:12px 0}#bvc-halloween-preview [data-buy]:disabled{opacity:.45;cursor:not-allowed}#bvc-halloween-preview [data-reset]{background:transparent;border:1px solid currentColor;color:inherit;margin:0 0 14px}#bvc-halloween-preview [data-price]{font-size:25px;display:block;margin:12px 0}#bvc-halloween-preview [data-status]{font-size:14px;min-height:38px;line-height:1.5}#bvc-halloween-art{display:block;width:100%;max-width:100%;margin:18px 0;box-sizing:border-box}#bvc-halloween-art canvas,#bvc-halloween-art img{display:block;width:100%;height:auto;max-width:100%;border:1px solid #493954;border-radius:8px;box-sizing:border-box}#bvc-halloween-art [hidden]{display:none!important}#bvc-halloween-art figcaption{font-size:13px;line-height:1.5;margin:8px 0;color:inherit}#bvc-halloween-art .bvc-hal-art-title{font-size:16px;font-weight:700;margin:0 0 8px}#bvc-halloween-art.bvc-hal-in-gallery{position:sticky;top:20px;margin:0}#MainContent:has(#bvc-halloween-preview.bvc-hal-ready) variant-picker,#MainContent:has(#bvc-halloween-preview.bvc-hal-ready) product-form-component,#MainContent:has(#bvc-halloween-preview.bvc-hal-ready) sticky-add-to-cart,#MainContent:has(#bvc-halloween-preview.bvc-hal-ready) product-price{display:none!important}\u003c\/style\u003e\u003cscript\u003e(function halloweenPreview(config){\n function init(){\n  const root=document.getElementById(\"bvc-halloween-preview\");\n  if(!root||root.dataset.initialized)return;\n  root.dataset.initialized=\"true\";\n  const colors=[...root.querySelectorAll(\"select[data-color]\")],size=root.querySelector(\"[data-size]\"),qty=root.querySelector(\"[data-quantity]\"),surface=root.querySelector(\"[data-surface]\"),buy=root.querySelector(\"[data-buy]\"),price=root.querySelector(\"[data-price]\"),status=root.querySelector(\"[data-status]\"),figure=root.querySelector(\"#bvc-halloween-art\"),canvas=figure.querySelector(\"canvas\"),fallback=figure.querySelector(\"img\"),ctx=canvas.getContext(\"2d\");\n  let shape=null,alpha=null,ready=false,busy=false;\n  const rgb=hex=\u003ehex.match(\/[a-f\\d]{2}\/gi).map(v=\u003eparseInt(v,16));\n  function selected(){return colors.map(s=\u003econfig.palette[Number(s.value)]);}\n  function variant(){\n   const c=selected(),metallic=c.filter(x=\u003ex.metallic).length,orange=c.filter(x=\u003ex.orange).length;\n   return config.variants.find(v=\u003ev.size===Number(size.value)\u0026\u0026v.metallic===metallic\u0026\u0026v.orange===orange);\n  }\n  function render(){\n   if(!shape)return;\n   const cs=selected().map(x=\u003ergb(x.hex)),out=ctx.createImageData(canvas.width,canvas.height);\n   for(let p=0;p\u003cshape.length;p++){\n    const group=shape[p];if(group===255)continue;\n    const k=p*4,c=cs[group];out.data[k]=c[0];out.data[k+1]=c[1];out.data[k+2]=c[2];out.data[k+3]=alpha[p];\n   }\n   ctx.putImageData(out,0,0);\n   const bg=surface.value===\"auto\"?(selected().some(c=\u003ec.hex===\"#e6e9ee\")?\"#34383d\":\"#ffffff\"):surface.value;\n   canvas.style.backgroundColor=bg;\n   ctx.save();ctx.translate(canvas.width\/2,canvas.height\/2);ctx.rotate(-Math.PI\/7);ctx.globalAlpha=.2;ctx.textAlign=\"center\";ctx.textBaseline=\"middle\";ctx.font=\"bold \"+Math.round(canvas.width\/25)+\"px sans-serif\";ctx.lineWidth=2;ctx.strokeStyle=\"#323232\";ctx.fillStyle=\"#ffffff\";\n   for(let y=-canvas.height\/3;y\u003c=canvas.height\/3;y+=canvas.height\/3){ctx.strokeText(\"BULLARDVINYLCO.COM\",0,y);ctx.fillText(\"BULLARDVINYLCO.COM\",0,y);}\n   ctx.restore();\n   root.dataset.previewColors=selected().map(c=\u003ec.label).join(\" | \");\n  }\n  function update(){\n   const v=variant(),n=Number(qty.value),distinct=new Set(selected().map(c=\u003ec.hex)).size===3;\n   buy.disabled=!ready||busy||!v||!Number.isInteger(n)||n\u003c1||n\u003e100||!distinct;\n   price.textContent=v?new Intl.NumberFormat(\"en-US\",{style:\"currency\",currency:\"USD\"}).format(v.price*(Number.isInteger(n)\u0026\u0026n\u003e0?n:1)):\"Unavailable\";\n   root.dataset.selectedVariant=v?v.id:\"\";\n   if(!busy\u0026\u0026ready)status.textContent=distinct?\"Your three color choices will be saved with your order.\":\"Choose three different colors so every layer stays visible.\";\n   render();\n  }\n  colors.forEach(s=\u003es.addEventListener(\"change\",update));size.addEventListener(\"change\",update);qty.addEventListener(\"input\",update);surface.addEventListener(\"change\",update);\n  root.querySelector(\"[data-reset]\").addEventListener(\"click\",()=\u003e{colors.forEach((s,i)=\u003es.value=String(config.defaults[i]));surface.value=\"auto\";update();});\n  buy.addEventListener(\"click\",async()=\u003e{\n   if(buy.disabled)return;\n   const v=variant(),c=selected(),properties={\"Details color\":c[0].label,\"Main color\":c[1].label,\"Accent color\":c[2].label,\"Width\":size.value+\" inches\",\"Metallic layers\":String(v.metallic),\"Premium orange layers\":String(v.orange)};\n   busy=true;update();status.textContent=\"Adding your decal…\";\n   try{\n    const route=window.Shopify?.routes?.root||\"\/\";\n    const response=await fetch(route+\"cart\/add.js\",{method:\"POST\",headers:{\"Content-Type\":\"application\/json\",\"Accept\":\"application\/json\"},body:JSON.stringify({items:[{id:v.id,quantity:Number(qty.value),properties}]})});\n    if(!response.ok){const e=await response.json();throw new Error(e.description||\"Could not add your decal. Please try again.\");}\n    window.location.href=route+\"cart\";\n   }catch(error){busy=false;update();status.textContent=error.message;}\n  });\n  const image=new Image();image.crossOrigin=\"anonymous\";\n  image.onload=()=\u003e{\n   try{\n    const scale=Math.min(1,1024\/image.naturalWidth);canvas.width=Math.round(image.naturalWidth*scale);canvas.height=Math.round(image.naturalHeight*scale);\n    ctx.drawImage(image,0,0,canvas.width,canvas.height);\n    const pixels=ctx.getImageData(0,0,canvas.width,canvas.height).data;\n    shape=new Uint8Array(canvas.width*canvas.height);shape.fill(255);alpha=new Uint8Array(shape.length);\n    for(let p=0;p\u003cshape.length;p++){\n     const k=p*4,r=pixels[k],g=pixels[k+1],b=pixels[k+2],a=pixels[k+3],min=Math.min(r,g,b),max=Math.max(r,g,b);\n     if(a\u003c20||(config.whiteBackground\u0026\u0026min\u003e190\u0026\u0026max-min\u003c45))continue;\n     let group=0;\n     if(g\u003er*1.08\u0026\u0026g\u003eb*1.08\u0026\u0026max-min\u003e25)group=2;\n     else if((b\u003eg*1.15||r\u003eg*1.15)\u0026\u0026b\u003er*.5\u0026\u0026max-min\u003e25)group=1;\n     shape[p]=group;alpha[p]=a;\n    }\n    ready=true;canvas.hidden=false;fallback.hidden=true;root.classList.add(\"bvc-hal-ready\");\n    const panel=document.querySelector(\"#MainContent .product-information__media\"),gallery=panel?.querySelector(\"media-gallery\");\n    if(panel\u0026\u0026gallery){gallery.style.display=\"none\";panel.appendChild(figure);figure.classList.add(\"bvc-hal-in-gallery\");}\n    const picker=document.querySelector(\"#MainContent variant-picker\");if(picker)picker.parentElement.insertBefore(root,picker);\n    update();\n   }catch(e){status.textContent=\"The live color preview could not load. Please refresh this page or contact us for a color proof.\";root.dataset.previewError=e.message;}\n  };\n  image.onerror=()=\u003e{status.textContent=\"The live color preview could not load. Please refresh this page or contact us for a color proof.\";root.dataset.previewError=\"Image did not load\";};\n  image.src=config.source;\n  update();\n }\n if(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",init,{once:true});else init();\n})({\"source\":\"https:\/\/cdn.shopify.com\/s\/files\/1\/1024\/4754\/6685\/files\/bvc-halloween-color-source-grim-reaper.jpg?v=1792806754\",\"whiteBackground\":true,\"palette\":[{\"hex\":\"#0d0e11\",\"label\":\"Black · Gloss · 070\",\"metallic\":false,\"orange\":false},{\"hex\":\"#e6e9ee\",\"label\":\"White · Gloss · 010\",\"metallic\":false,\"orange\":false},{\"hex\":\"#e6e9ee\",\"label\":\"Matte White · 010M\",\"metallic\":false,\"orange\":false},{\"hex\":\"#1930ab\",\"label\":\"Brilliant Blue · 086\",\"metallic\":false,\"orange\":false},{\"hex\":\"#fbaa00\",\"label\":\"Golden Yellow · 020\",\"metallic\":false,\"orange\":false},{\"hex\":\"#b0000d\",\"label\":\"Red · 031\",\"metallic\":false,\"orange\":false},{\"hex\":\"#005236\",\"label\":\"Forest Green · 613\",\"metallic\":false,\"orange\":false},{\"hex\":\"#c22b6b\",\"label\":\"Pink · 041\",\"metallic\":false,\"orange\":false},{\"hex\":\"#756232\",\"label\":\"Gold · Metallic gloss · 091\",\"metallic\":true,\"orange\":false},{\"hex\":\"#b8bdc5\",\"label\":\"Silver Gray Metallic Matte · 090M\",\"metallic\":true,\"orange\":false},{\"hex\":\"#b8bdc5\",\"label\":\"Silver Grey Metallic Gloss · 090\",\"metallic\":true,\"orange\":false},{\"hex\":\"#6aa72d\",\"label\":\"Lime-Tree Green · Gloss · 063\",\"metallic\":false,\"orange\":false},{\"hex\":\"#f47726\",\"label\":\"Orange · 751 premium cast · +$0.25\",\"metallic\":false,\"orange\":true},{\"hex\":\"#01818c\",\"label\":\"Turquoise Blue · Gloss · 066\",\"metallic\":false,\"orange\":false},{\"hex\":\"#5c267a\",\"label\":\"Violet · Gloss · 040\",\"metallic\":false,\"orange\":false}],\"defaults\":[0,14,11],\"variants\":[{\"id\":\"67787377508669\",\"size\":12,\"metallic\":0,\"orange\":0,\"price\":12},{\"id\":\"67787377541437\",\"size\":18,\"metallic\":0,\"orange\":0,\"price\":14},{\"id\":\"67787377574205\",\"size\":24,\"metallic\":0,\"orange\":0,\"price\":16},{\"id\":\"67787520573757\",\"size\":12,\"metallic\":0,\"orange\":1,\"price\":12.25},{\"id\":\"67787520606525\",\"size\":12,\"metallic\":0,\"orange\":2,\"price\":12.5},{\"id\":\"67787520639293\",\"size\":12,\"metallic\":0,\"orange\":3,\"price\":12.75},{\"id\":\"67787520672061\",\"size\":12,\"metallic\":1,\"orange\":0,\"price\":14},{\"id\":\"67787520704829\",\"size\":12,\"metallic\":1,\"orange\":1,\"price\":14.25},{\"id\":\"67787520737597\",\"size\":12,\"metallic\":1,\"orange\":2,\"price\":14.5},{\"id\":\"67787520770365\",\"size\":12,\"metallic\":2,\"orange\":0,\"price\":16},{\"id\":\"67787520803133\",\"size\":12,\"metallic\":2,\"orange\":1,\"price\":16.25},{\"id\":\"67787520835901\",\"size\":12,\"metallic\":3,\"orange\":0,\"price\":18},{\"id\":\"67787520868669\",\"size\":18,\"metallic\":0,\"orange\":1,\"price\":14.25},{\"id\":\"67787520901437\",\"size\":18,\"metallic\":0,\"orange\":2,\"price\":14.5},{\"id\":\"67787520934205\",\"size\":18,\"metallic\":0,\"orange\":3,\"price\":14.75},{\"id\":\"67787520966973\",\"size\":18,\"metallic\":1,\"orange\":0,\"price\":16},{\"id\":\"67787520999741\",\"size\":18,\"metallic\":1,\"orange\":1,\"price\":16.25},{\"id\":\"67787521032509\",\"size\":18,\"metallic\":1,\"orange\":2,\"price\":16.5},{\"id\":\"67787521065277\",\"size\":18,\"metallic\":2,\"orange\":0,\"price\":18},{\"id\":\"67787521098045\",\"size\":18,\"metallic\":2,\"orange\":1,\"price\":18.25},{\"id\":\"67787521130813\",\"size\":18,\"metallic\":3,\"orange\":0,\"price\":20},{\"id\":\"67787521163581\",\"size\":24,\"metallic\":0,\"orange\":1,\"price\":16.25},{\"id\":\"67787521196349\",\"size\":24,\"metallic\":0,\"orange\":2,\"price\":16.5},{\"id\":\"67787521229117\",\"size\":24,\"metallic\":0,\"orange\":3,\"price\":16.75},{\"id\":\"67787521261885\",\"size\":24,\"metallic\":1,\"orange\":0,\"price\":18},{\"id\":\"67787521294653\",\"size\":24,\"metallic\":1,\"orange\":1,\"price\":18.25},{\"id\":\"67787521327421\",\"size\":24,\"metallic\":1,\"orange\":2,\"price\":18.5},{\"id\":\"67787521360189\",\"size\":24,\"metallic\":2,\"orange\":0,\"price\":20},{\"id\":\"67787521392957\",\"size\":24,\"metallic\":2,\"orange\":1,\"price\":20.25},{\"id\":\"67787521425725\",\"size\":24,\"metallic\":3,\"orange\":0,\"price\":22}]});\u003c\/script\u003e","brand":"Bullard Vinyl Co.","offers":[{"title":"12 inches wide \/ Standard colors (no metallic) \/ No orange","offer_id":67787377508669,"sku":"BVC-HAL-05-12","price":12.0,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ Standard colors (no metallic) \/ No orange","offer_id":67787377541437,"sku":"BVC-HAL-05-18","price":14.0,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ Standard colors (no metallic) \/ No orange","offer_id":67787377574205,"sku":"BVC-HAL-05-24","price":16.0,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ Standard colors (no metallic) \/ 1 orange layer","offer_id":67787520573757,"sku":"BVC-HAL-05-12-M0-O1","price":12.25,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ Standard colors (no metallic) \/ 2 orange layers","offer_id":67787520606525,"sku":"BVC-HAL-05-12-M0-O2","price":12.5,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ Standard colors (no metallic) \/ 3 orange layers","offer_id":67787520639293,"sku":"BVC-HAL-05-12-M0-O3","price":12.75,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ 1 metallic layer \/ No orange","offer_id":67787520672061,"sku":"BVC-HAL-05-12-M1-O0","price":14.0,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ 1 metallic layer \/ 1 orange layer","offer_id":67787520704829,"sku":"BVC-HAL-05-12-M1-O1","price":14.25,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ 1 metallic layer \/ 2 orange layers","offer_id":67787520737597,"sku":"BVC-HAL-05-12-M1-O2","price":14.5,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ 2 metallic layers \/ No orange","offer_id":67787520770365,"sku":"BVC-HAL-05-12-M2-O0","price":16.0,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ 2 metallic layers \/ 1 orange layer","offer_id":67787520803133,"sku":"BVC-HAL-05-12-M2-O1","price":16.25,"currency_code":"USD","in_stock":true},{"title":"12 inches wide \/ 3 metallic layers \/ No orange","offer_id":67787520835901,"sku":"BVC-HAL-05-12-M3-O0","price":18.0,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ Standard colors (no metallic) \/ 1 orange layer","offer_id":67787520868669,"sku":"BVC-HAL-05-18-M0-O1","price":14.25,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ Standard colors (no metallic) \/ 2 orange layers","offer_id":67787520901437,"sku":"BVC-HAL-05-18-M0-O2","price":14.5,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ Standard colors (no metallic) \/ 3 orange layers","offer_id":67787520934205,"sku":"BVC-HAL-05-18-M0-O3","price":14.75,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ 1 metallic layer \/ No orange","offer_id":67787520966973,"sku":"BVC-HAL-05-18-M1-O0","price":16.0,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ 1 metallic layer \/ 1 orange layer","offer_id":67787520999741,"sku":"BVC-HAL-05-18-M1-O1","price":16.25,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ 1 metallic layer \/ 2 orange layers","offer_id":67787521032509,"sku":"BVC-HAL-05-18-M1-O2","price":16.5,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ 2 metallic layers \/ No orange","offer_id":67787521065277,"sku":"BVC-HAL-05-18-M2-O0","price":18.0,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ 2 metallic layers \/ 1 orange layer","offer_id":67787521098045,"sku":"BVC-HAL-05-18-M2-O1","price":18.25,"currency_code":"USD","in_stock":true},{"title":"18 inches wide \/ 3 metallic layers \/ No orange","offer_id":67787521130813,"sku":"BVC-HAL-05-18-M3-O0","price":20.0,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ Standard colors (no metallic) \/ 1 orange layer","offer_id":67787521163581,"sku":"BVC-HAL-05-24-M0-O1","price":16.25,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ Standard colors (no metallic) \/ 2 orange layers","offer_id":67787521196349,"sku":"BVC-HAL-05-24-M0-O2","price":16.5,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ Standard colors (no metallic) \/ 3 orange layers","offer_id":67787521229117,"sku":"BVC-HAL-05-24-M0-O3","price":16.75,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ 1 metallic layer \/ No orange","offer_id":67787521261885,"sku":"BVC-HAL-05-24-M1-O0","price":18.0,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ 1 metallic layer \/ 1 orange layer","offer_id":67787521294653,"sku":"BVC-HAL-05-24-M1-O1","price":18.25,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ 1 metallic layer \/ 2 orange layers","offer_id":67787521327421,"sku":"BVC-HAL-05-24-M1-O2","price":18.5,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ 2 metallic layers \/ No orange","offer_id":67787521360189,"sku":"BVC-HAL-05-24-M2-O0","price":20.0,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ 2 metallic layers \/ 1 orange layer","offer_id":67787521392957,"sku":"BVC-HAL-05-24-M2-O1","price":20.25,"currency_code":"USD","in_stock":true},{"title":"24 inches wide \/ 3 metallic layers \/ No orange","offer_id":67787521425725,"sku":"BVC-HAL-05-24-M3-O0","price":22.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1024\/4754\/6685\/files\/bullard-halloween-grim-reaper-watermarked.png?v=1792805856","url":"https:\/\/bullardvinylco.com\/products\/grim-reaper-halloween-vinyl-decal","provider":"Bullard Vinyl Co.","version":"1.0","type":"link"}