PageSourceSearch

https://www.hueylightshop.com/cdn/shop/t/29/assets/custom.js?v=148963849253516364201787969582

js hueylightshop.com collected 2026-09-28 13:35:16 UTC 35,236 bytes, 148 lines download raw bytes

1(function(){function wrapLastWord(button){if(!button.querySelector(".button-last-word")){var fullText=button.textContent.trim(),wordCount=fullText===""?0:fullText.split(/\s+/).length;if(!(wordCount<=1)){for(var walker=document.createTreeWalker(button,NodeFilter.SHOW_TEXT),lastTextNode=null,node;node=walker.nextNode();)node.textContent.trim()!==""&&(lastTextNode=node);if(lastTextNode){var text=lastTextNode.textContent,match=text.match(/(\s*)(\S+)(\s*)$/);if(match){var before=text.slice(0,match.index)+match[1],lastWord=match[2],after=match[3],frag=document.createDocumentFragment();frag.appendChild(document.createTextNode(before));var span=document.createElement("span");span.className="button-last-word",span.textContent=lastWord,frag.appendChild(span),frag.appendChild(document.createTextNode(after)),lastTextNode.parentNode.replaceChild(frag,lastTextNode)}}}}}function processAll(root){root.querySelectorAll(".button").forEach(wrapLastWord)}processAll(document);var observer=new MutationObserver(function(mutations){mutations.forEach(function(mutation){mutation.addedNodes.forEach(function(added){added.nodeType===1&&(added.matches&&added.matches(".button")&&wrapLastWord(added),added.querySelectorAll&&processAll(added))})})});observer.observe(document.body,{childList:!0,subtree:!0})})();function wrapConsecutiveVariantWrappers(){const wrappers=document.querySelectorAll(".variant-wrapper");let group=[];function flushGroup(){if(group.length===0)return;const container=document.createElement("div");container.className="variant-container",group[0].parentNode.insertBefore(container,group[0]),group.forEach(el=>container.appendChild(el)),group=[]}wrappers.forEach((el,i)=>{group.length===0||group[group.length-1].nextElementSibling===el||flushGroup(),group.push(el)}),flushGroup()}wrapConsecutiveVariantWrappers(),(function(){gsap.registerPlugin(ScrollTrigger);function isSafari(){var ua=navigator.userAgent,isAppleWebkit=/^((?!chrome|android|crios|fxios|edg).)*safari/i.test(ua),isIOS=/iP(ad|hone|od)/.test(ua)&&!window.MSStream;return isAppleWebkit||isIOS}var USE_SAFARI_SOURCES=isSafari();function pickSource(sources){if(!sources||!sources.length)return[];if(USE_SAFARI_SOURCES){var mov=sources.filter(function(s){return s.type==="video/quicktime"});return mov.length?mov:sources}var webm=sources.filter(function(s){return s.type==="video/webm"});return webm.length?webm:sources}var DREAMING_VIDEOS=[{selector:".dreaming-hero",id:"1",style:"margin-left:0px; margin-top: 0px;",playbackRate:1,sources:[{src:"https://cdn.shopify.com/videos/c/o/v/5fa6485b6f204d38a171e87a7b5bf8c6.webm",type:"video/webm"},{src:"https://cdn.shopify.com/videos/c/o/v/76e80539ed854ed487ec61e67fddc26a.mov",type:"video/quicktime"}]},{selector:".dreaming-2",id:"2",style:"margin-left:0px; margin-top: -1px;",playbackRate:1,sources:[{src:"https://cdn.shopify.com/videos/c/o/v/d9d2f2a6a808476f843af801d23e67ea.webm",type:"video/webm"},{src:"https://cdn.shopify.com/videos/c/o/v/2a96d051062241a68234ba6f9dc11d8b.mov",type:"video/quicktime"}]},{selector:".dreaming-3",id:"3",playbackRate:1,style:"margin-left:0px; margin-top: -1px;",sources:[{src:"https://cdn.shopify.com/videos/c/o/v/8ec17903cd5f4717ab66ca32ce638269.webm",type:"video/webm"},{src:"https://cdn.shopify.com/videos/c/o/v/118793e293154c0fb41a3fca30fd6547.mov",type:"video/quicktime"}]},{selector:".dreaming-4",id:"4",playbackRate:1,style:"margin-left:0px; margin-top: -1px;",sources:[{src:"https://cdn.shopify.com/videos/c/o/v/3a9c1c87fc5b429c904cbc07e811a052.webm",type:"video/webm"},{src:"https://cdn.shopify.com/videos/c/o/v/4013706a14184f318bd669e85951a671.mov",type:"video/quicktime"}]},{selector:".dreaming-5",id:"5",playbackRate:1,style:"margin-left:0px; margin-top: -1px;",sources:[{src:"https://cdn.shopify.com/videos/c/o/v/29ae5c55a41f4d8cbe1edc21cd089403.webm",type:"video/webm"},{src:"https://cdn.shopify.com/videos/c/o/v/fcf5718eb426442aabf809ae92394bf8.mov",type:"video/quicktime"}]},{selector:".dreaming-6",id:"6",playbackRate:1,style:"margin-left:0px; margin-top: -1px;",sources:[{src:"https://cdn.shopify.com/videos/c/o/v/aaef4bddaa8f4396ae1c2ebd5655a3fa.webm",type:"video/webm"},{src:"https://cdn.shopify.com/videos/c/o/v/8272bd3920614698bc894f3fd906e299.mov",type:"video/quicktime"}]}];function buildVideo(entry,kind){kind=kind||"main";var isAlt=kind!=="main",video=document.createElement("video");video.className="dreaming-overlay-video"+(isAlt?" is-alt-video":""),video.setAttribute("data-dreaming-video",isAlt?entry.id+"-"+kind:entry.id),video.muted=!0,video.playsInl
1ine=!0,video.setAttribute("preload","auto"),(kind==="main"||kind==="loop")&&(video.loop=!0),entry.style&&!entry.hoverAlt&&video.setAttribute("style",entry.style),video.style.pointerEvents="none",entry.playbackRate&&(video.playbackRate=entry.playbackRate,video.addEventListener("loadedmetadata",function(){video.playbackRate=entry.playbackRate}));var allSources=kind==="enter"?entry.hoverAlt.enter.sources:kind==="loop"?entry.hoverAlt.loop.sources:entry.sources,sources=pickSource(allSources);return sources.forEach(function(s){var source=document.createElement("source");source.src=s.src,source.type=s.type,video.appendChild(source)}),video}function buildImage(entry){var img=document.createElement("img");return img.className="dreaming-overlay-video",img.setAttribute("data-dreaming-video",entry.id),img.setAttribute("src",entry.src),img.setAttribute("alt",entry.alt||""),img.style.pointerEvents="none",entry.style&&img.setAttribute("style",entry.style),img.style.pointerEvents="none",img}function isInCorner(event,targetEl,corner,sizePercent){var rect=targetEl.getBoundingClientRect(),xPercent=(event.clientX-rect.left)/rect.width*100,yPercent=(event.clientY-rect.top)/rect.height*100,threshold=100-sizePercent,isRight=corner.indexOf("right")!==-1?xPercent>=threshold:xPercent<=sizePercent,isBottom=corner.indexOf("bottom")!==-1?yPercent>=threshold:yPercent<=sizePercent,withinX=event.clientX>=rect.left&&event.clientX<=rect.right,withinY=event.clientY>=rect.top&&event.clientY<=rect.bottom;return withinX&&withinY&&isRight&&isBottom}document.addEventListener("DOMContentLoaded",function(){var overlay=document.querySelector(".dreaming-overlay");if(!overlay)return;overlay.style.pointerEvents="none";var entries=DREAMING_VIDEOS.map(function(entry){var section=document.querySelector(entry.selector);if(!section)return null;var isImage=entry.type==="image";if(entry.hoverAlt){var wrapper=document.createElement("div");wrapper.className="dreaming-overlay-item-wrapper",entry.style&&wrapper.setAttribute("style",entry.style),wrapper.style.pointerEvents="none";var media=buildVideo(entry,"main"),enterMedia=buildVideo(entry,"enter"),loopMedia=buildVideo(entry,"loop");return wrapper.appendChild(media),wrapper.appendChild(enterMedia),wrapper.appendChild(loopMedia),overlay.appendChild(wrapper),media.classList.add("is-loaded"),enterMedia.classList.add("is-loaded"),loopMedia.classList.add("is-loaded"),{entry,section,video:media,enterVideo:enterMedia,loopVideo:loopMedia,wrapper,isImage:!1,hasPlayed:!1,hoverState:"idle",crossfadeTimeoutId:null,trigger:null}}var media=isImage?buildImage(entry):buildVideo(entry,"main");return overlay.appendChild(media),media.classList.add("is-loaded"),{entry,section,video:media,isImage,hasPlayed:isImage,trigger:null}}).filter(Boolean),leaderItem=entries.length?entries[0]:null,SYNC_TOLERANCE=.15,SYNC_CHECK_INTERVAL=500,lastSyncCheck=0;leaderItem&&!leaderItem.isImage&&leaderItem.video.addEventListener("timeupdate",function(){var now=window.performance&&performance.now?performance.now():Date.now();if(!(now-lastSyncCheck<SYNC_CHECK_INTERVAL)){lastSyncCheck=now;var leaderTime=leaderItem.video.currentTime;entries.forEach(function(item){if(!(item===leaderItem||item.isImage)&&!(item.entry.hoverAlt&&item.hoverState!=="idle")){var diff=Math.abs(item.video.currentTime-leaderTime);if(diff>SYNC_TOLERANCE)try{item.video.currentTime=leaderTime}catch{}}})}});function startSyncedPlayback(){entries.forEach(function(item){if(item.isImage){item.hasPlayed=!0;return}try{item.video.currentTime=0}catch{}}),entries.forEach(function(item){item.isImage||(item.video.play().catch(function(err){console.error("Video failed to play ("+item.entry.id+"):",err)}),item.hasPlayed=!0)})}function revealItem(item){item.video.classList.add("is-active")}function createTrigger(item){return ScrollTrigger.create({trigger:item.section,start:"top bottom",end:"bottom center",onEnter:function(){revealItem(item)},onEnterBack:function(){revealItem(item)}})}function resetItem(item){item.trigger&&(item.trigger.kill(),item.trigger=null),item.crossfadeTimeoutId&&(clearTimeout(item.crossfadeTimeoutId),item.crossfadeTimeoutId=null),item.isImage||item.video.pause(),item.video.classList.remove("is-active"),item.video.style.opacity="",item.video.style.visibility="",[item.enterVideo,item.loopVideo].forEac
1h(function(v){if(v){v.pause();try{v.currentTime=0}catch{}v.classList.remove("is-active"),v.style.opacity="",v.style.visibility=""}}),item.entry.hoverAlt&&(item.hoverState="idle"),item.hasPlayed=item.isImage,item.trigger=createTrigger(item)}function resetAllVideos(){entries.forEach(resetItem),ScrollTrigger.refresh(),startSyncedPlayback()}function pauseAllVideos(){entries.forEach(function(item){item.isImage||item.video.pause(),item.enterVideo&&item.enterVideo.pause(),item.loopVideo&&item.loopVideo.pause()})}entries.forEach(function(item){item.trigger=createTrigger(item),item.entry.hoverAlt&&(item.video.style.transition="opacity 250ms ease",item.enterVideo&&(item.enterVideo.style.transition="opacity 250ms ease"),item.loopVideo&&(item.loopVideo.style.transition="opacity 250ms ease"))});var CROSSFADE_MS=250;function crossfadeTo(item,incoming,outgoing){item.crossfadeTimeoutId&&(clearTimeout(item.crossfadeTimeoutId),item.crossfadeTimeoutId=null);try{incoming===item.video&&leaderItem?incoming.currentTime=leaderItem.video.currentTime:incoming.currentTime=0}catch{}incoming.style.visibility="visible",incoming.style.opacity="1",incoming.classList.add("is-active"),incoming.play().catch(function(err){console.error("Video failed to play ("+item.entry.id+"):",err)}),outgoing.style.opacity="0",item.crossfadeTimeoutId=window.setTimeout(function(){outgoing.pause(),outgoing.classList.remove("is-active"),outgoing.style.visibility="hidden";try{outgoing.currentTime=0}catch{}item.crossfadeTimeoutId=null},CROSSFADE_MS)}document.addEventListener("mousemove",function(event){entries.forEach(function(item){if(!(!item.entry.hoverAlt||!item.enterVideo||!item.loopVideo)&&item.hasPlayed&&item.hoverState==="idle"){var corner=item.entry.hoverAlt.corner||"bottom-right",sizePercent=item.entry.hoverAlt.cornerSizePercent||25,hitTestEl=item.wrapper||item.video,isHovering=isInCorner(event,hitTestEl,corner,sizePercent);isHovering&&(console.log("Hover enter \u2014 playing enter clip ("+item.entry.id+")"),item.hoverState="enter",crossfadeTo(item,item.enterVideo,item.video),item.enterVideo.addEventListener("ended",function onEnterEnded(){item.enterVideo.removeEventListener("ended",onEnterEnded),console.log("Enter clip finished \u2014 switching to loop clip ("+item.entry.id+")"),item.hoverState="looping",crossfadeTo(item,item.loopVideo,item.enterVideo)}))}})});var bodyHasDreaming=document.body.classList.contains("dreaming");bodyHasDreaming&&startSyncedPlayback();var bodyObserver=new MutationObserver(function(){var nowHasDreaming=document.body.classList.contains("dreaming");nowHasDreaming!==bodyHasDreaming&&(bodyHasDreaming=nowHasDreaming,nowHasDreaming?(console.log("dreaming enabled \u2014 resetting video overlay"),resetAllVideos()):(console.log("dreaming disabled \u2014 pausing video overlay"),pauseAllVideos()))});bodyObserver.observe(document.body,{attributes:!0,attributeFilter:["class"]})})})(),(function(){var MOBILE_BREAKPOINT=999.98;function isSafari(){var ua=navigator.userAgent,isAppleWebkit=/^((?!chrome|android|crios|fxios|edg).)*safari/i.test(ua),isIOS=/iP(ad|hone|od)/.test(ua)&&!window.MSStream;return isAppleWebkit||isIOS}var USE_SAFARI_SOURCES=isSafari();function pickSource(sources){if(!sources||!sources.length)return[];if(USE_SAFARI_SOURCES){var mov=sources.filter(function(s){return s.type==="video/quicktime"});return mov.length?mov:sources}var webm=sources.filter(function(s){return s.type==="video/webm"});return webm.length?webm:sources}var MOBILE_OVERLAY_SOURCES=[{src:"https://cdn.shopify.com/videos/c/o/v/20363c10df964666958fcbcd2e3bd85c.webm",type:"video/webm"},{src:"https://cdn.shopify.com/videos/c/o/v/8ececa289df343ff98411014b8bf3af1.mov",type:"video/quicktime"}],video=null,mediaQuery=window.matchMedia("(max-width: "+MOBILE_BREAKPOINT+"px)");function buildVideo(){var v=document.createElement("video");return v.className="mobile-fixed-overlay-video",v.muted=!0,v.loop=!0,v.playsInline=!0,v.setAttribute("preload","auto"),v.style.cssText=["position: fixed","top: 25px","left: 0","width: 100vw","height: 100vh","object-fit: cover","object-position: top","pointer-events: none","z-index: 2","opacity: 0","visibility: hidden","transition: opacity 250ms ease"].join(";
1"),pickSource(MOBILE_OVERLAY_SOURCES).forEach(function(s){var source=document.createElement("source");source.src=s.src,source.type=s.type,v.appendChild(source)}),v}function ensureVideoLoaded(){video||(video=buildVideo(),document.body.appendChild(video),video.play().catch(function(err){console.error("Mobile overlay video failed to start preloading:",err)}))}function teardownVideo(){video&&(video.pause(),video.remove(),video=null)}function revealVideo(){ensureVideoLoaded(),video.style.visibility="visible",video.style.opacity="1",video.play().catch(function(err){console.error("Mobile overlay video failed to play:",err)})}function concealVideo(){video&&(video.style.opacity="0",video.style.visibility="hidden")}function sync(){var isMobileWidth=mediaQuery.matches,isDreaming=document.body.classList.contains("dreaming");if(!isMobileWidth){teardownVideo();return}ensureVideoLoaded(),isDreaming?revealVideo():concealVideo()}document.addEventListener("DOMContentLoaded",function(){sync(),mediaQuery.addEventListener?mediaQuery.addEventListener("change",sync):mediaQuery.addListener&&mediaQuery.addListener(sync);var bodyObserver=new MutationObserver(sync);bodyObserver.observe(document.body,{attributes:!0,attributeFilter:["class"]})})})(),(function(){gsap.registerPlugin(ScrollTrigger);var SPEED=.6;document.addEventListener("DOMContentLoaded",function(){var videos=document.querySelectorAll(".c-image-list__dreaming-video");videos.length&&videos.forEach(function(video){var slideTrigger=null,wasDreaming=document.body.classList.contains("dreaming");video.playbackRate=SPEED,video.addEventListener("loadedmetadata",function(){video.playbackRate=SPEED}),video.pause();function resetVideoPosition(){gsap.killTweensOf(video),gsap.set(video,{x:0}),video.pause(),video.currentTime=0}function killSlideTrigger(){slideTrigger&&(slideTrigger.kill(),slideTrigger=null)}function createSlideTrigger(){killSlideTrigger(),slideTrigger=ScrollTrigger.create({trigger:video,start:"top bottom",once:!0,onEnter:function(){video.play();for(var startLeft=video.getBoundingClientRect().left,totalDistance=window.innerWidth-startLeft,stepDistance=totalDistance*.6,numSteps=Math.ceil(totalDistance/stepDistance),hopDuration=.6/SPEED,hopPause=1.6/SPEED,tl=gsap.timeline(),i=0;i<numSteps;i++){var isLastStep=i===numSteps-1,target=isLastStep?totalDistance:"+="+stepDistance;tl.to(video,{x:target,duration:hopDuration}),isLastStep||tl.to({},{duration:hopPause})}}})}wasDreaming&&createSlideTrigger();var bodyObserver=new MutationObserver(function(){var isDreaming=document.body.classList.contains("dreaming");isDreaming&&!wasDreaming?(resetVideoPosition(),createSlideTrigger()):!isDreaming&&wasDreaming&&(killSlideTrigger(),resetVideoPosition()),wasDreaming=isDreaming});bodyObserver.observe(document.body,{attributes:!0,attributeFilter:["class"]})})})})();function applyFormStyles(){const hostEl=document.querySelector("shopify-forms-embed");return!hostEl||!hostEl.shadowRoot?!1:(hostEl.shadowRoot.querySelector("style")?.insertAdjacentHTML("afterend",`
2    <style>
3      button._formSubmitButton_cit2d_96 {
4        text-transform: uppercase !important;
5      }
6
7      input._formInputField_nag3b_7,
8      input._formPhoneInputField_piv1u_17,
9      ._selectToggle_12thd_25 {
10        border-top: 0px !important;
11        border-right: 0px !important;
12        border-bottom: 1px solid var(--h-main) !important;
13        border-left: 0px !important;
14        border-radius: 0px !important;
15        background-color: transparent !important;
16        box-shadow: none !important;
17      }
18
19      ._formFileInputField_ehvsf_5 {
20          background-color: transparent !important;
21          color: var(--h-main) !important;
22          border: 1px dashed var(--h-main) !important;
23          border-radius: 0px !important;
24      }
25
26      ._inline_1q1d2_47 ._formContainer_1q1d2_30 {
27          max-width: 668px !important;
28      }
29
30      div._formDisclaimer_cit2d_38 p,
31      ._formDisclaimer_jnbzb_38 p,
32      ._formDisclaimer_jnbzb_38 p{
33         text-align: center !important;
34         font-style: italic !important;
35         letter-spacing: 0px !important;
36      }
37
38      button._formSubmitButton_cit2d_96:before,
39      button._formSubmitButton_jnbzb_106:before{
40          content: "\u3010" !important;
41          position: relative !important;
42          padding-right: 1ch !important;
43      }
44
45      button._formSubmitButton_cit2d_96:after,
46      button._formSubmitButton_jnbzb_106:after{
47          content: "\u3011" !important;
48          position: relative !important;
49          padding-left: 1ch !important;
50      }
51
52      button._formSubmitButton_cit2d_96,
53      _formSubmitButton_jnbzb_106,
54      button {
55          all: unset;
56          display: flex;
57          justify-content: center;
58          font: 'Herbik' !important;
59          letter-spacing: 10% !important;
60          line-height: var(--forms-base-font-line-height);
61          padding: var(--button-padding);
62          background-color: transparent !important;
63          text-transform: uppercase !important;
64          color: var(--h-main) !important;
65          border: none;
66          box-shadow: none;
67          outline: var(--button-border);
68          outline-offset: 1px;
69          border-radius: 0px !important;
70          cursor: pointer;
71      }
72
73      ._formFileInputButton_ehvsf_18 {
74          background-color: #FEF8E7 !important;
75          font: var(--forms-body-font);
76          color: var(--h-main) !important;
77          line-height: 20px;
78
79          border-radius: 0px !important;
80      }
81
82      input._formInputField_nag3b_7{
83        color: var(--h-main) !important;
84      }
85
86      .phone-country-selector{
87        display: flex !important;
88      }
89
90      label._formInputFieldLabel_1mxsl_38,
91      p._textBody_2aowh_10,
92      ._formFileInputButton_ehvsf_18{
93        text-transform: uppercase !important;
94        letter-spacing: 10% !important;
95      }
96
97      ._selectContainer_12thd_6 {
98          min-width: 100% !important;
99      }
100 
101      ._formPhoneInputContainer_piv1u_6{
102        align-items: end !important;
103      }
104
105      div._formFieldContainer_1mxsl_5 label._formInputFieldLabel_1mxsl_38 {
106        top: 25px !important;
107        left: 0px !important;
108        color: rgba(var(--h-main), 1) !important;
109    
110      }
111
112      ._formPhoneInputContainer_piv1u_6 div._formFieldContainer_1mxsl_5 label._formInputFieldLabel_1mxsl_38 {
113        top: 10px !important;
114      }
115
116      ._formFieldContainer_1mxsl_5:focus-within label._formInputFieldLabel_1mxsl_38 {
117        top: 10px !important;
118      }
119    </style>
120  `),!0)}document.addEventListener("DOMContentLoaded",()=>{if(applyFormStyles())return;const observer=new MutationObserver(()=>{applyFormStyles()&&observer.disconnect()});observer.observe(document.body,{childList:!0,subtree:!0})}),(function(){const activeRepositionFns=[];function repositionAllOverlays(){activeRepositionFns.forEach(fn=>fn())}const activeCleanupFns=[];
120function disableAllEffects(){activeCleanupFns.length&&(activeCleanupFns.forEach(fn=>{try{fn()}catch{}}),activeCleanupFns.length=0,activeRepositionFns.length=0)}const RIPPLE_FILTER="blur(0.3px) contrast(0.95) saturate(0.92) brightness(1.02)";function isValidImage(img){return img.naturalWidth>4&&img.naturalHeight>4&&img.offsetWidth>=60&&img.offsetHeight>=60}function resolveSrc(img){return img.currentSrc||img.src||""}function preload(src){return new Promise((resolve,reject)=>{const test=new Image;test.onload=()=>resolve(src),test.onerror=()=>reject(new Error("preload failed: "+src)),test.src=src})}function injectSlideshowPointerEventsFix(){if(document.getElementById("ripple-fx-slideshow-fix"))return;const style=document.createElement("style");style.id="ripple-fx-slideshow-fix",style.textContent=`
121      .c-split-showcase__slide { pointer-events: none; }
122      .c-split-showcase__slide.is-active { pointer-events: auto; }
123    `,document.head.appendChild(style)}function neutralizeOverlappingContent(img){const banner=img.closest(".banner");if(!banner)return null;const content=banner.querySelector(".banner__content");if(!content)return null;content.style.pointerEvents="none";const restored=[];return content.querySelectorAll('a, button, [role="link"], input, textarea, select').forEach(el=>{el.style.pointerEvents="auto",restored.push(el)}),function(){content.style.pointerEvents="",restored.forEach(el=>{el.style.pointerEvents=""})}}function addRippleOverlay(img){if(img.dataset.rippleApplied)return;const src=resolveSrc(img);!isValidImage(img)||!src||(img.dataset.rippleApplied="true",preload(src).then(()=>{if(!document.body.classList.contains("dreaming")){delete img.dataset.rippleApplied;return}const parentPositionWasStatic=getComputedStyle(img.parentElement).position==="static";parentPositionWasStatic&&(img.parentElement.style.position="relative");const computed=getComputedStyle(img),objectFit=computed.objectFit||"cover",objectPosition=computed.objectPosition||"center",backgroundSize=objectFit==="contain"?"contain":"cover",overlay=document.createElement("div");overlay.className="ripple-overlay",overlay.dataset.rippleBgApplied="true",overlay.style.setProperty("display","block","important"),overlay.style.position="absolute",overlay.style.top=img.offsetTop+"px",overlay.style.left=img.offsetLeft+"px",overlay.style.width=img.offsetWidth+"px",overlay.style.height=img.offsetHeight+"px",overlay.style.backgroundImage=`url("${src}")`,overlay.style.backgroundSize=backgroundSize,overlay.style.backgroundPosition=objectPosition,overlay.style.backgroundRepeat="no-repeat",overlay.style.pointerEvents="auto",overlay.style.zIndex="2",overlay.style.opacity="0",overlay.style.transition="opacity 1800ms ease",overlay.style.filter=RIPPLE_FILTER;const restoreOverlappingContent=neutralizeOverlappingContent(img);img.parentElement.appendChild(overlay),img.style.visibility="visible";let rippleInitialized=!1,pauseTimeout=null,resizeObserver=null;function initRipplesIfNeeded(){if(rippleInitialized)return!0;try{return jQuery(overlay).ripples({resolution:220,dropRadius:110,perturbance:.006,interactive:!0}),rippleInitialized=!0,!0}catch(e){return console.warn("[ripple-fx] ripples() init failed on hover:",e,overlay,img),overlay.remove(),!1}}function onMouseEnter(){clearTimeout(pauseTimeout),initRipplesIfNeeded()&&(jQuery(overlay).ripples("play"),overlay.style.opacity="1",jQuery(overlay).ripples("drop",overlay.offsetWidth/2,overlay.offsetHeight/2,60,.06))}function onMouseLeave(){overlay.style.opacity="0",pauseTimeout=setTimeout(()=>{rippleInitialized&&jQuery(overlay).ripples("pause")},1800)}overlay.addEventListener("mouseenter",onMouseEnter),overlay.addEventListener("mouseleave",onMouseLeave);function reposition(){overlay.style.top=img.offsetTop+"px",overlay.style.left=img.offsetLeft+"px",overlay.style.width=img.offsetWidth+"px",overlay.style.height=img.offsetHeight+"px"}window.addEventListener("resize",reposition),window.ResizeObserver&&(resizeObserver=new ResizeObserver(reposition),resizeObserver.observe(img)),activeRepositionFns.push(reposition),activeCleanupFns.push(function(){if(clearTimeout(pauseTimeout),window.removeEventListener("resize",reposition),resizeObserver&&resizeObserver.disconnect(),overlay.removeEventListener("mouseenter",onMouseEnter),overlay.removeEventListener("mouseleave",onMouseLeave),rippleInitialized)try{jQuery(overlay).ripples("destroy")}catch{}overlay.remove(),restoreOverlappingContent&&restoreOverlappingContent(),parentPositionWasStatic&&(img.parentElement.style.position=""),img.style.visibility="",delete img.dataset.rippleApplied})}).catch(()=>{}))}
123function addRippleToBackground(el){if(el.dataset.rippleBgApplied||el.offsetWidth<60||el.offsetHeight<60)return;const bg=getComputedStyle(el).backgroundImage,match=/url\(["']?([^"')]+)["']?\)/.exec(bg),src=match?match[1]:null;src&&(el.dataset.rippleBgApplied="true",preload(src).then(()=>{if(!document.body.classList.contains("dreaming")){delete el.dataset.rippleBgApplied;return}el.style.filter="contrast(0.95) saturate(0.92) brightness(1.02)";let rippleInitialized=!1,pauseTimeout=null;function initRipplesIfNeeded(){if(rippleInitialized)return!0;try{return jQuery(el).ripples({resolution:220,dropRadius:110,perturbance:.006,interactive:!0}),rippleInitialized=!0,!0}catch{return!1}}function onMouseEnter(){clearTimeout(pauseTimeout),initRipplesIfNeeded()&&jQuery(el).ripples("play")}function onMouseLeave(){pauseTimeout=setTimeout(()=>{rippleInitialized&&jQuery(el).ripples("pause")},1800)}el.addEventListener("mouseenter",onMouseEnter),el.addEventListener("mouseleave",onMouseLeave),activeCleanupFns.push(function(){if(clearTimeout(pauseTimeout),el.removeEventListener("mouseenter",onMouseEnter),el.removeEventListener("mouseleave",onMouseLeave),rippleInitialized)try{jQuery(el).ripples("destroy")}catch{}el.style.filter="",delete el.dataset.rippleBgApplied})}).catch(()=>{}))}const RIPPLE_DEBUG=!1,RIPPLE_MAX_ATTEMPTS=100;function tryApplyImage(img,attempt){if(attempt=attempt||0,img.dataset.rippleApplied||!document.body.classList.contains("dreaming"))return;img.loading==="lazy"&&(img.loading="eager");const src=resolveSrc(img);
123if(isValidImage(img)&&src){RIPPLE_DEBUG&&console.debug("[ripple-fx] applying ripple",img,{src,attempt}),addRippleOverlay(img);return}if(RIPPLE_DEBUG&&attempt%10===0&&console.debug("[ripple-fx] waiting on image",img,{attempt,naturalWidth:img.naturalWidth,offsetWidth:img.offsetWidth,offsetHeight:img.offsetHeight,src}),img.decode&&!img.dataset.rippleDecoding&&(img.dataset.rippleDecoding="true",img.decode().then(()=>tryApplyImage(img,0)).catch(()=>{})),attempt>RIPPLE_MAX_ATTEMPTS){RIPPLE_DEBUG&&console.warn("[ripple-fx] gave up on image after max attempts",img,{src});return}img.dataset.rippleWatching||(img.dataset.rippleWatching="true",img.addEventListener("load",()=>tryApplyImage(img,0)),new MutationObserver(()=>tryApplyImage(img,0)).observe(img,{attributes:!0,attributeFilter:["src","srcset"]})),setTimeout(()=>tryApplyImage(img,attempt+1),150)}function applyEffects(){document.body.classList.contains("dreaming")&&(typeof jQuery>"u"||!jQuery.fn.ripples||(document.querySelectorAll(".distort img:not([data-ripple-applied])").forEach(img=>tryApplyImage(img,0)),document.querySelectorAll(".distort *:not(img):not(.ripple-overlay):not([data-ripple-bg-applied])").forEach(el=>{const bg=getComputedStyle(el).backgroundImage;bg&&bg!=="none"&&addRippleToBackground(el)})))}injectSlideshowPointerEventsFix(),applyEffects();const VIDEO_GRID=128,VIDEO_DAMPING=.985,VIDEO_DROP_RADIUS=3,VIDEO_DROP_STRENGTH=.6,VIDEO_VERTEX_SRC=`
124    attribute vec2 aPos;
125    varying vec2 vUv;
126    void main() {
127      vUv = aPos * 0.5 + 0.5;
128      vUv.y = 1.0 - vUv.y;
129      gl_Position = vec4(aPos, 0.0, 1.0);
130    }
131  `,VIDEO_FRAGMENT_SRC=`
132    precision mediump float;
133    varying vec2 vUv;
134    uniform sampler2D uVideo;
135    uniform sampler2D uHeight;
136    uniform vec2 uTexel;
137    void main() {
138      float hL = texture2D(uHeight, vUv - vec2(uTexel.x, 0.0)).r;
139      float hR = texture2D(uHeight, vUv + vec2(uTexel.x, 0.0)).r;
140      float hU = texture2D(uHeight, vUv - vec2(0.0, uTexel.y)).r;
141      float hD = texture2D(uHeight, vUv + vec2(0.0, uTexel.y)).r;
142      vec2 grad = vec2(hR - hL, hD - hU);
143      vec2 offset = grad * 0.05;
144      vec3 color = texture2D(uVideo, vUv + offset).rgb;
145      gl_FragColor = vec4(color, 1.0);
146    }
147  `;function compileVideoShader(gl,type,src){const shader=gl.createShader(type);return gl.shaderSource(shader,src),gl.compileShader(shader),gl.getShaderParameter(shader,gl.COMPILE_STATUS)?shader:(console.warn("[ripple-fx] video shader compile error:",gl.getShaderInfoLog(shader)),gl.deleteShader(shader),null)}function initVideoRipple(video){if(video.dataset.rippleVideoApplied||!document.body.classList.contains("dreaming"))return;if(video.readyState<2){video.addEventListener("loadeddata",()=>initVideoRipple(video),{once:!0});return}if(video.offsetWidth<60||video.offsetHeight<60)return;video.dataset.rippleVideoApplied="true";const wrapper=video.parentElement,wrapperPositionWasStatic=getComputedStyle(wrapper).position==="static";wrapperPositionWasStatic&&(wrapper.style.position="relative");const canvas=document.createElement("canvas");canvas.className="ripple-video-overlay",canvas.style.position="absolute",canvas.style.top="0",canvas.style.left="0",canvas.style.width="100%",canvas.style.height="100%",canvas.style.pointerEvents="auto",canvas.style.zIndex="2",canvas.style.filter=RIPPLE_FILTER,canvas.style.opacity="0",canvas.style.transition="opacity 1800ms ease",wrapper.appendChild(canvas);let gl=null,program=null,videoTexture=null,heightTexture=null,animationFrame=null,running=!1;const gridSize=VIDEO_GRID;let heightsA=new Float32Array(gridSize*gridSize),heightsB=new Float32Array(gridSize*gridSize);const heightBytes=new Uint8Array(gridSize*gridSize);function addDrop(gx,gy,strength){const r=VIDEO_DROP_RADIUS;for(let y=-r;y<=r;y++)for(let x=-r;x<=r;x++){const xi=gx+x,yi=gy+y;if(xi<0||yi<0||xi>=gridSize||yi>=gridSize)continue;const dist=Math.sqrt(x*x+y*y);if(dist>r)continue;const falloff=1-dist/r;heightsA[yi*gridSize+xi]-=strength*falloff}}function stepSimulation(){for(let y=1;y<gridSize-1;y++)for(let x=1;x<gridSize-1;x++){const i=y*gridSize+x;
147let val=(heightsA[i-1]+heightsA[i+1]+heightsA[i-gridSize]+heightsA[i+gridSize])/2-heightsB[i];val*=VIDEO_DAMPING,heightsB[i]=val}const tmp=heightsA;heightsA=heightsB,heightsB=tmp}function packHeightsToBytes(){for(let i=0;i<heightsA.length;i++){const v=Math.max(-1,Math.min(1,heightsA[i]));heightBytes[i]=Math.round((v*.5+.5)*255)}}function initGL(){if(gl=canvas.getContext("webgl",{premultipliedAlpha:!1})||canvas.getContext("experimental-webgl",{premultipliedAlpha:!1}),!gl)return!1;const vs=compileVideoShader(gl,gl.VERTEX_SHADER,VIDEO_VERTEX_SRC),fs=compileVideoShader(gl,gl.FRAGMENT_SHADER,VIDEO_FRAGMENT_SRC);if(!vs||!fs)return!1;if(program=gl.createProgram(),gl.attachShader(program,vs),gl.attachShader(program,fs),gl.linkProgram(program),!gl.getProgramParameter(program,gl.LINK_STATUS))return console.warn("[ripple-fx] video shader link error:",gl.getProgramInfoLog(program)),!1;gl.useProgram(program);const quadBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,quadBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),gl.STATIC_DRAW);const aPos=gl.getAttribLocation(program,"aPos");return gl.enableVertexAttribArray(aPos),gl.vertexAttribPointer(aPos,2,gl.FLOAT,!1,0,0),videoTexture=gl.createTexture(),gl.bindTexture(gl.TEXTURE_2D,videoTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),heightTexture=gl.createTexture(),gl.bindTexture(gl.TEXTURE_2D,heightTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.uniform1i(gl.getUniformLocation(program,"uVideo"),0),gl.uniform1i(gl.getUniformLocation(program,"uHeight"),1),gl.uniform2f(gl.getUniformLocation(program,"uTexel"),1/gridSize,1/gridSize),!0}function resizeCanvas(){const rect=video.getBoundingClientRect();canvas.width=Math.max(1,Math.round(rect.width)),canvas.height=Math.max(1,Math.round(rect.height)),gl&&gl.viewport(0,0,canvas.width,canvas.height)}function renderFrame(){if(running){stepSimulation(),packHeightsToBytes(),gl.activeTexture(gl.TEXTURE0),gl.bindTexture(gl.TEXTURE_2D,videoTexture);try{gl.texImage2D(gl.TEXTURE_2D,0,gl.RGB,gl.RGB,gl.UNSIGNED_BYTE,video)}catch(e){console.warn("[ripple-fx] video texture upload failed (likely CORS):",e,video),stop(),canvas.remove();return}gl.activeTexture(gl.TEXTURE1),gl.bindTexture(gl.TEXTURE_2D,heightTexture),gl.texImage2D(gl.TEXTURE_2D,0,gl.LUMINANCE,gridSize,gridSize,0,gl.LUMINANCE,gl.UNSIGNED_BYTE,heightBytes),gl.drawArrays(gl.TRIANGLES,0,6),animationFrame=requestAnimationFrame(renderFrame)}}function start(){running||!gl&&!initGL()||(resizeCanvas(),running=!0,renderFrame())}function stop(){running=!1,animationFrame&&cancelAnimationFrame(animationFrame),animationFrame=null}function onMouseMove(e){if(!running)return;const rect=canvas.getBoundingClientRect(),x=(e.clientX-rect.left)/rect.width,y=(e.clientY-rect.top)/rect.height,gx=Math.floor(x*gridSize),gy=Math.floor(y*gridSize);addDrop(gx,gy,VIDEO_DROP_STRENGTH)}let leaveTimeout=null;function onMouseEnter(){clearTimeout(leaveTimeout),canvas.style.opacity="1",start(),addDrop(Math.floor(gridSize/2),Math.floor(gridSize/2),VIDEO_DROP_STRENGTH*1.5)}function onMouseLeave(){canvas.style.opacity="0",leaveTimeout=setTimeout(stop,1800)}canvas.addEventListener("mousemove",onMouseMove),canvas.addEventListener("mouseenter",onMouseEnter),canvas.addEventListener("mouseleave",onMouseLeave);function onWindowResize(){running&&resizeCanvas()}window.addEventListener("resize",onWindowResize),activeCleanupFns.push(function(){if(clearTimeout(leaveTimeout),stop(),window.removeEventListener("resize",onWindowResize),canvas.removeEventListener("mousemove",onMouseMove),canvas.removeEventListener("mouseenter",onMouseEnter),canvas.removeEventListener("mouseleave",onMouseLeave),gl){const loseContextExt=gl.getExtension("WEBGL_lose_context");loseContextExt&&loseContextExt.loseContext()}canvas.remove(),wrapperPositionWasStatic&&(wrapper.style.position=""),delete video.dataset.rippleVideoApplied})}function applyVideoEffects(){document.body.classList.contains("dreaming")&&document.querySelectorAll(".distort video:not([data-ripple-video-applied])").forEach(video=>{initVideoRipple(video)})}applyVideoEffects();let wasDreaming=document.body.classList.contains("dreaming");new MutationObserver(()=>{const isDreaming=document.body.classList.contains("dreaming");isDreaming?(applyEffects(),applyVideoEffects(),requestAnimationFrame(repositionAllOverlays)):wasDreaming&&disableAllEffe
147cts(),wasDreaming=isDreaming}).observe(document.body,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0})})();
148//# sourceMappingURL=/cdn/shop/t/29/assets/custom.js.map?v=148963849253516364201787969582

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.