{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/hab-fx.js?t=1792280718771"],
  "sourcesContent": ["/* H.AB LUXURY \u2013 finishing touches: gold dust in the hero, tilt cards, shiny headings, magnetic buttons */\n(function(){\n  var reduce=window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var fine=window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n  /* 1. Gold dust \u2013 slow floating particles over the hero image */\n  function dust(host){\n    if(reduce||!host||host.querySelector('.hab-dust')) return;\n    var c=document.createElement('canvas'); c.className='hab-dust'; c.setAttribute('aria-hidden','true');\n    var media=host.querySelector('.banner__media'); (media?media.parentNode:host).insertBefore(c,media?media.nextSibling:host.firstChild);\n    var ctx=c.getContext('2d'), dpr=Math.min(window.devicePixelRatio||1,2), W=0,H=0, P=[], run=false, raf=0;\n    var N=window.innerWidth<750?22:46;\n    function size(){ W=host.clientWidth; H=host.clientHeight; c.width=W*dpr; c.height=H*dpr; c.style.width=W+'px'; c.style.height=H+'px'; ctx.setTransform(dpr,0,0,dpr,0,0); }\n    function make(init){ return {x:Math.random()*W,y:init?Math.random()*H:H+10,r:.5+Math.random()*1.7,vy:.12+Math.random()*.35,vx:(Math.random()-.5)*.18,ph:Math.random()*6.28,sp:.008+Math.random()*.02,hue:Math.random()}; }\n    size(); for(var i=0;i<N;i++) P.push(make(true));\n    function frame(){\n      ctx.clearRect(0,0,W,H);\n      for(var i=0;i<P.length;i++){\n        var p=P[i]; p.y-=p.vy; p.x+=p.vx+Math.sin(p.ph)*.12; p.ph+=p.sp;\n        if(p.y<-10||p.x<-10||p.x>W+10){ P[i]=make(false); continue; }\n        var a=(.35+.65*Math.abs(Math.sin(p.ph)))*Math.min(1,(H-p.y)/80)*Math.min(1,p.y/60);\n        var col=p.hue>.5?'230,201,143':'201,166,107';\n        var g=ctx.createRadialGradient(p.x,p.y,0,p.x,p.y,p.r*4);\n        g.addColorStop(0,'rgba('+col+','+a+')'); g.addColorStop(1,'rgba('+col+',0)');\n        ctx.fillStyle=g; ctx.beginPath(); ctx.arc(p.x,p.y,p.r*4,0,6.283); ctx.fill();\n      }\n      raf=requestAnimationFrame(frame);\n    }\n    new IntersectionObserver(function(es){ var on=es[0].isIntersecting; if(on&&!run){ run=true; frame(); } else if(!on&&run){ run=false; cancelAnimationFrame(raf); } }).observe(host);\n    document.addEventListener('visibilitychange',function(){ if(document.hidden&&run){ run=false; cancelAnimationFrame(raf); } });\n    var rt; window.addEventListener('resize',function(){ clearTimeout(rt); rt=setTimeout(size,150); });\n  }\n\n  /* 2. Tilt \u2013 product cards lean towards the cursor, with a soft glare */\n  function tilt(card){ return; /* tilt disabled per owner request */\n    if(reduce||!fine||card.dataset.habTilt) return; card.dataset.habTilt='1';\n    var media=card.querySelector('.card__inner')||card; media.classList.add('hab-tilt');\n    var glare=document.createElement('span'); glare.className='hab-tilt__glare'; glare.setAttribute('aria-hidden','true'); media.appendChild(glare);\n    var MAX=6;\n    card.addEventListener('pointermove',function(e){\n      var r=media.getBoundingClientRect(), x=(e.clientX-r.left)/r.width, y=(e.clientY-r.top)/r.height;\n      media.style.transform='perspective(900px) rotateX('+((.5-y)*MAX).toFixed(2)+'deg) rotateY('+((x-.5)*MAX).toFixed(2)+'deg) translateZ(0)';\n      glare.style.background='radial-gradient(circle at '+(x*100).toFixed(1)+'% '+(y*100).toFixed(1)+'%, rgba(230,201,143,.18), transparent 55%)';\n      glare.style.opacity='1';\n    });\n    card.addEventListener('pointerleave',function(){ media.style.transform=''; glare.style.opacity='0'; });\n  }\n\n  /* 3. Shine \u2013 a light sweep across section headings when they appear (light-coloured headings only) */\n  function shine(h){\n    if(reduce||h.dataset.habShine) return; h.dataset.habShine='1';\n    var m=getComputedStyle(h).color.match(/\\d+/g); if(!m) return;\n    var lum=(0.2126*m[0]+0.7152*m[1]+0.0722*m[2])/255; if(lum<.55) return;\n    var lh=parseFloat(getComputedStyle(h).lineHeight)||parseFloat(getComputedStyle(h).fontSize)*1.3; if(h.offsetHeight>lh*1.5) return; /* single-line headings only */\n    h.classList.add('hab-shine');\n    new IntersectionObserver(function(es,o){ if(es[0].isIntersecting){ h.classList.add('is-shining'); o.disconnect(); } },{threshold:.6}).observe(h);\n  }\n\n  /* 4. Magnetic buttons \u2013 buttons drift a few pixels towards the cursor */\n  function magnet(b){\n    if(reduce||!fine||b.dataset.habMag||!window.gsap) return; b.dataset.habMag='1';\n    var xTo=gsap.quickTo(b,'x',{duration:.5,ease:'power3.out'}), yTo=gsap.quickTo(b,'y',{duration:.5,ease:'power3.out'});\n    var k=b.classList.contains('button--full-width')?.12:.28;\n    b.addEventListener('pointermove',function(e){ var r=b.getBoundingClientRect(); xTo((e.clientX-r.left-r.width/2)*k); yTo((e.clientY-r.top-r.height/2)*k*1.2); });\n    b.addEventListener('pointerleave',function(){ xTo(0); yTo(0); });\n  }\n\n  function boot(){\n    document.querySelectorAll('.banner').forEach(function(b,i){ if(i===0) dust(b); });\n    document.querySelectorAll('.card-wrapper').forEach(tilt);\n    document.querySelectorAll('.title-wrapper .title, .title-wrapper-with-link .title, h2.title, .collection-hero__title, .rich-text__heading, .collage-wrapper-title, .main-page-title, .collection-list-title, .hab-story__title').forEach(shine);\n    document.querySelectorAll('a.button--primary, .banner__buttons .button, .hab-story__link').forEach(magnet);\n  }\n  function start(){ setTimeout(boot,60); }\n  if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',start); else start();\n  document.addEventListener('shopify:section:load',start);\n  /* cards added later (filters, infinite load) */\n  new MutationObserver(function(ms){ for(var i=0;i<ms.length;i++){ if(ms[i].addedNodes.length){ clearTimeout(window.__habFxT); window.__habFxT=setTimeout(boot,120); break; } } }).observe(document.documentElement,{childList:true,subtree:true});\n})();\n"],
  "mappings": "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",
  "names": ["i"]
}
