PageSourceSearch

https://www.bragg.com/cdn/shop/t/148/assets/js-main.min.js?v=116968411349345578331765865306

js bragg.com collected 2026-09-24 18:49:09 UTC 28,052 bytes, 1 lines download raw bytes

1let mmGlobal=gsap.matchMedia();const mmConditions={isDesktop:"(min-width: 601px)",isMobile:"(max-width: 600px)",reduceMotion:"(prefers-reduced-motion: reduce)"},playTargetVideo=(e,t,s,o=!1,i=!1)=>{e?(e=>{const t=()=>{e.muted=!(i&&o);const t=e.play();t&&t.catch((e=>{"AbortError"!==e.name&&console.error("Play error:",e)}))};e.readyState>=3?t():e.addEventListener("canplay",(()=>{t()}),{once:!0})})(e):s&&((e,t)=>{"vimeo"===t&&(e.setMuted(!(i&&o)),e.play().catch((e=>{"PlayInterrupted"!==e.name&&console.error("Error playing video:",e)})))})(s,t)},pauseTargetVideo=(e,t,s)=>{e?(e=>{e.pause(),e.muted=!0})(e):s&&((e,t)=>{"vimeo"===t&&(e.pause().catch((e=>{"PlayInterrupted"!==e.name&&console.error("Error pausing video:",e)})),e.setMuted(!0))})(s,t)},handleVideoPlayback=(e,t,s)=>{const o=e.querySelector("video"),i=e.querySelector(".js-external-video")?.dataset.videoHost,a=e.querySelector(".js-video-mute.is-active, .js-video-unmute.is-active"),r=a?.classList.contains("js-video-mute");(o||s)&&(t?playTargetVideo(o,i,s,r,a):pauseTargetVideo(o,i,s))},handleVideoVisibility=(e,t)=>{const s=t.querySelectorAll(".js-video-mute, .js-video-unmute, .js-video-play, .js-video-pause"),o=t.querySelector(".js-external-video")?.dataset.videoId,i=allPlayersObj[o];handleVideoPlayback(t,e,i),s.forEach((e=>e.classList.remove("is-active"))),e&&(t.querySelector(".js-video-unmute")?.classList.add("is-active"),t.querySelector(".js-video-pause")?.classList.add("is-active"))},loadLazyVideo=e=>{if(e.dataset.loaded)return;e.querySelectorAll("source").forEach((e=>{!e.src&&e.dataset.src&&(e.src=e.dataset.src)})),0===e.readyState&&(e.load(),e.dataset.loaded="true")},initVideo=()=>{document.querySelectorAll(".c-video").forEach((e=>{new IntersectionObserver((([t])=>{if(handleVideoVisibility(t.isIntersecting,e),t.isIntersecting){const t=e.querySelector("video.js-lazy-video");t&&loadLazyVideo(t)}}),{root:null,threshold:[.4]}).observe(e)}));const e=(e,t)=>{const s=e.target.closest(`.js-video-${t}`),o=s.closest(".c-video"),i=o.querySelector("video"),a=o.querySelector(".js-external-video"),r=o.querySelector(".js-video-mute.is-active, .js-video-unmute.is-active"),n=r?.classList.contains("js-video-mute"),c=a?.dataset.videoHost,l=a?.dataset.videoId,d=allPlayersObj[l];"play"===t?playTargetVideo(i,c,d,n,r):"pause"===t?pauseTargetVideo(i,c,d):"mute"!==t&&"unmute"!==t||("vimeo"===c?d.getMuted().then((e=>d.setMuted(!e))):i&&(i.muted="mute"===t)),"play"===t||"pause"===t?(s.classList.remove("is-active"),o.querySelector(".js-video-"+("play"===t?"pause":"play"))?.classList.add("is-active")):"mute"!==t&&"unmute"!==t||(o.querySelector(".js-video-mute")?.classList.toggle("is-active","unmute"===t),o.querySelector(".js-video-unmute")?.classList.toggle("is-active","mute"===t))};on("body","click",".js-video-mute",(t=>e(t,"mute"))),on("body","click",".js-video-unmute",(t=>e(t,"unmute"))),on("body","click",".js-video-play",(t=>e(t,"play"))),on("body","click",".js-video-pause",(t=>e(t,"pause")))};let allPlayersObj={};class ComponentMarquee extends HTMLElement{constructor(){super(),this.contentBlocks=Array.from(this.querySelectorAll(".js-marquee-content")),this.pixelPerSecond=150,this.observer=null}connectedCallback(){0!==this.contentBlocks.length&&(this.setupMarquee(),this.setupResizeObserver())}disconnectedCallback(){this.observer?.disconnect()}setupMarquee(){const{clientWidth:e}=this.contentBlocks[0],t=Math.ceil(window.innerWidth/e),s=parseFloat(this.dataset.speedFactor)||1,o=e*t/this.pixelPerSecond*s;this.contentBlocks.forEach((e=>{e.style.animationDuration=`${o}s`,this.fillBlock(e,t)}));
1this.querySelectorAll(focusableSelectors.join(", ")).forEach((e=>{e.setAttribute("tabindex","-1")}))}fillBlock(e,t){if(!Number.isFinite(t))return;const s=document.createDocumentFragment();for(let o=0;o<t-1;o++)s.append(...Array.from(e.childNodes).map((e=>e.cloneNode(!0))));e.append(s)}setupResizeObserver(){this.observer=new ResizeObserver(this.handleResize.bind(this)),this.observer.observe(this)}handleResize(){this.contentBlocks.forEach((e=>{for(e.style.animationDuration="";e.childElementCount>1;)e.lastElementChild.remove()})),this.setupMarquee()}}customElements.define("c-marquee",ComponentMarquee);class ComponentTabs extends HTMLElement{constructor(){super(),this._tabButtons=[],this._tabPanels=[]}connectedCallback(){this._tabButtons=Array.from(this.querySelectorAll('[role="tab"]')),this._tabPanels=Array.from(this.querySelectorAll('[role="tabpanel"]')),this._tabButtons.forEach((e=>{e.addEventListener("click",(()=>this._onTabClick(e))),e.addEventListener("keydown",(t=>this._onKeyDown(t,e)))}));const e=this._tabButtons.find((e=>"true"===e.getAttribute("aria-selected")));this._activateTab(e||this._tabButtons[0])}activeTabByIndex(e){this._tabButtons.forEach(((t,s)=>{const o=s===e;t.setAttribute("aria-selected",o),t.tabIndex=o?0:-1})),this._tabPanels.forEach(((t,s)=>{s===e?t.classList.add("is-active"):t.classList.remove("is-active")}))}_onTabClick(e){this._activateTab(e)}_onKeyDown(e,t){const{key:s}=e,o=this._tabButtons.indexOf(t);let i=o;"ArrowRight"===s?(i=(o+1)%this._tabButtons.length,this._tabButtons[i].focus(),this._activateTab(this._tabButtons[i])):"ArrowLeft"===s&&(i=(o-1+this._tabButtons.length)%this._tabButtons.length,this._tabButtons[i].focus(),this._activateTab(this._tabButtons[i]))}_activateTab(e){const t=e.getAttribute("aria-controls");this._tabButtons.forEach((t=>{const s=t===e;t.setAttribute("aria-selected",s),t.tabIndex=s?0:-1})),this._tabPanels.forEach((e=>{e.id===t?e.classList.add("is-active"):e.classList.remove("is-active")}))}}customElements.define("c-tabs",ComponentTabs);class ComponentSlider extends HTMLElement{constructor(){super(),this.viewportNode=this.querySelector(".js-embla-viewport"),this.containerNode=this.querySelector(".js-embla-container"),this.prevButtonNode=this.querySelector(".js-embla-button-prev"),this.nextButtonNode=this.querySelector(".js-embla-button-next"),this.dotsNode=this.querySelector(".js-embla-dots"),this.thumbNode=this.querySelector(".js-embla-thumbs"),this.isVertical="true"===this.dataset.emblaVertical,this.enableCenter="true"===this.dataset.emblaCenter,this.enableAutoHeight="true"===this.dataset.emblaAutoHeight,this.enableAutoplay="true"===this.dataset.emblaAutoplay;const e=this.hasAttribute("data-embla-delay")?parseInt(this.dataset.emblaDelay):4e3,t=EmblaCarouselAutoplay({playOnInit:this.enableAutoplay,delay:e,stopOnInteraction:!1,stopOnMouseEnter:!0});this.enableAutoScroll=!vs.prefersReducedMotion&&"true"===this.dataset.emblaAutoScroll;const s=this.hasAttribute("data-embla-scroll-speed")?parseInt(this.dataset.emblaScrollSpeed):2,o=this.hasAttribute("data-embla-scroll-delay")?parseInt(this.dataset.emblaScrollDelay):0,i="true"===this.dataset.emblaScrollBackward?"backward":"forward",a=EmblaCarouselAutoScroll({playOnInit:this.enableAutoScroll,speed:s,startDelay:o,direction:i,stopOnInteraction:!1,stopOnMouseEnter:!0}),r=[EmblaCarouselClassNames(),EmblaCarouselWheelGestures(),...this.enableAutoplay?[t]:[],...this.enableAutoScroll?[a]:[],...this.enableAutoHeight?[EmblaCarouselAutoHeight()]:[]];this.isActive=this.containerNode.scrollWidth>this.containerNode.offsetWidth,this.isActive||(this.classList.add("is-inactive"),this.enableCenter&&(this.containerNode.style.justifyContent="center"));const n={axis:this.isVertical?"y":"x",watchDrag:this.isActive,...JSON.parse(this.dataset.emblaSlider.replace(/'/g,'"').trim())};if(this.embla=EmblaCarousel(this.viewportNode,n,r),this.slideNodes=this.embla.slideNodes(),1===this.slideNodes.length)return this.classList.add("is-inactive"),this.prevButtonNode?.setAttribute("disabled","disabled"),this.nextButtonNode?.setAttribute("disabled","disabled"),void this.embla.destroy();this.toggleActiveState=this.toggleActiveState.bind(this),this.embla.on("resize",this.toggleActiveState),this.embla.on("init",this.toggleActiveState)}connectedCallback(){this.initializeNavigation()}addTogglePrevNextBtnsActive=(e,t,s)=>{const o=()=>{e.canScrollPrev()?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled"),e.canScrollNext()?s.removeAttribute("disabled"):s.setAttribute("disabled","disabled")};return e.on("select",o).on("init",o).on("reInit",o),()=>{t.removeAttribute("disabled"),s.removeAttribute("disabled")}};addPrevNextBtnsClickHandlers=(e,t,s)=>{const o=()=>e.scrollPrev(),i=()=>e.scrollNext();t.addEventListener("click",o,!1),s.addEventListener("click",i,!1);const a=this.addTogglePrevNextBtnsActive(e,t,s);return()=>{a(),t.removeEventListener("click",o,!1),s.removeEventListener("click",i,!1)}};addDotBtnsAndClickHandlers=(e,t)=>{let s=[];const o=()=>{t.innerHTML=e.scrollSnapList().map(((e,t)=>`<button class="embla__dot c-slider__dot increase-target-size" type="button" aria-label="View slide ${t+1}"></button>`)).join("");
1s=Array.from(t.querySelectorAll(".embla__dot")),s.forEach(((t,s)=>{t.addEventListener("click",(()=>(t=>e.scrollTo(t))(s)),!1)}))},i=()=>{const t=e.previousScrollSnap(),o=e.selectedScrollSnap();s[t].classList.remove("embla__dot--selected"),s[o].classList.add("embla__dot--selected")};return e.on("init",o).on("reInit",o).on("init",i).on("reInit",i).on("select",i),()=>{t.innerHTML=""}};initializeThumbnailsNavigation(){this.viewportThumbNode=this.thumbNode.querySelector(".js-embla-thumbs-viewport"),this.emblaThumb=EmblaCarousel(this.viewportThumbNode,{axis:"y",align:"start",containScroll:"keepSnaps"},[EmblaCarouselWheelGestures()]),this.emblaThumb.on("scroll",(e=>{const{limit:t,target:s,location:o,offsetLocation:i,scrollTo:a,translate:r,scrollBody:n}=e.internalEngine();let c;t.reachedMax(s.get())&&(c=t.max),t.reachedMin(s.get())&&(c=t.min),void 0!==c?(i.set(c),o.set(c),s.set(c),r.to(c),r.toggleActive(!1),n.useDuration(0).useFriction(0),a.distance(0,!1)):r.toggleActive(!0)})),this.addThumbBtnsClickHandlers(),this.toggleThumbBtnsActive()}addThumbBtnsClickHandlers(){const e=this.emblaThumb.slideNodes(),t=e.map(((e,t)=>()=>this.embla.scrollTo(t)));e.forEach(((e,s)=>{e.addEventListener("click",t[s],!1)})),this.removeThumbBtnsClickHandlers=()=>{e.forEach(((e,s)=>{e.removeEventListener("click",t[s],!1)}))}}toggleThumbBtnsActive(){const e=this.emblaThumb.slideNodes(),t=()=>{this.emblaThumb.scrollTo(this.embla.selectedScrollSnap());const t=this.embla.previousScrollSnap(),s=this.embla.selectedScrollSnap();e[t].classList.remove("is-selected"),e[s].classList.add("is-selected")};this.embla.on("select",t),this.emblaThumb.on("init",t),this.removeToggleThumbBtnsActive=()=>{const t=this.embla.selectedScrollSnap();e[t].classList.remove("is-selected")}}initializeNavigation=()=>{if(1!==this.slideNodes.length){if(this.prevButtonNode&&this.nextButtonNode){const e=this.addPrevNextBtnsClickHandlers(this.embla,this.prevButtonNode,this.nextButtonNode);this.embla.on("destroy",e)}if(this.dotsNode){const e=this.addDotBtnsAndClickHandlers(this.embla,this.dotsNode);this.embla.on("destroy",e)}this.thumbNode&&this.initializeThumbnailsNavigation()}};toggleActiveState(){!this.isActive||this.isActive&&this.containerNode.scrollWidth<=this.containerNode.offsetWidth?(this.embla.reInit({watchDrag:!1}),this.classList.add("is-inactive"),this.isActive=!1,this.enableCenter&&(this.containerNode.style.justifyContent="center")):(this.isActive||!this.isActive&&this.containerNode.scrollWidth>this.containerNode.offsetWidth)&&(this.embla.reInit({watchDrag:!0}),this.classList.remove("is-inactive"),this.isActive=!0,this.containerNode.style.justifyContent="")}scrollToNodes=(e,t)=>{e.scrollTo(t)}}customElements.define("c-slider",ComponentSlider);class ComponentAccordion extends HTMLElement{constructor(){super()}connectedCallback(){this.addEventListener("click",this.handleClick)}disconnectedCallback(){this.removeEventListener("click",this.handleClick)}handleClick(e){const t=e.target.closest(".js-accordion-toggle");if(t){const e=t.closest(".c-accordion"),s=e.classList.contains("is-close-siblings");this.toggleAccordion(e,s)}}toggleAccordion(e,t){const s=e.querySelector(".js-accordion-content");t&&getSiblings(e).forEach((e=>{e.classList.contains("is-active")&&this.toggleAccordion(e,!1)})),e.classList.toggle("is-active"),e.classList.contains("is-active")?(e.setAttribute("aria-expanded",!0),s.setAttribute("aria-hidden",!1),s.style.height=`${s.querySelector("div").offsetHeight}px`):(e.setAttribute("aria-expanded",!1),s.setAttribute("aria-hidden",!0),s.style.height="0px")}}customElements.define("c-accordion",ComponentAccordion);const initGSAP=()=>{gsap.registerPlugin(ScrollTrigger,ScrollToPlugin,DrawSVGPlugin,SplitText,CustomEase),ScrollTrigger.config({ignoreMobileResize:!0})},initAnimateFadeIn=()=>{const e=gsap.utils.toArray(".js-animate-fade-in"),t=new IntersectionObserver(((e,t)=>{e.forEach((e=>{if(e.isIntersecting){const s=e.target,o=s.dataset.animateDuration?Number(s.dataset.animateDuration):.6,i=s.dataset.animateDelay?Number(s.dataset.animateDelay):0;gsap.timeline({defaults:{ease:"power2.out"}}
1).to(s,{opacity:1,y:0,duration:o,delay:i}).to(s.children,{opacity:1,y:0,stagger:{each:.1}},"-=0.2"),t.unobserve(s)}}))}),{threshold:0});e?.forEach((e=>{gsap.set(e,{opacity:0,y:24}),gsap.set(e.children,{opacity:0,y:16}),t.observe(e)}))},initAnimateText=()=>{const e=gsap.utils.toArray(".js-animate-text"),t=isSafari(),s=new IntersectionObserver(((e,s)=>{e.forEach((e=>{if(e.isIntersecting){const o=e.target,i=o.dataset.animateSplit?o.dataset.animateSplit:"words",a=o.dataset.animateDelay?Number(o.dataset.animateDelay):0;let r;if(t){const e=o.textContent,t=protectLastWord(e);o.innerHTML=t}gsap.set(o,{opacity:1}),SplitText.create(o,{type:i,autoSplit:!0,mask:i,reduceWhiteSpace:!t,onSplit:e=>(r=gsap.from("words"===i?e.words:e.lines,{yPercent:100,opacity:0,stagger:"words"===i?{each:.05}:{amount:.2},ease:"power2.out",delay:a}),r)}),s.unobserve(o)}}))}),{threshold:.5});e?.forEach((e=>{gsap.set(e,{opacity:0}),s.observe(e)}))},initAnimateDrawSvg=()=>{const e=gsap.utils.toArray(".js-animate-draw-svg"),t=new IntersectionObserver(((e,t)=>{e.forEach((e=>{if(e.isIntersecting){const s=e.target,o=s.querySelectorAll("path"),i=s.dataset.animateDuration?Number(s.dataset.animateDuration):.6,a=s.dataset.animateDelay?Number(s.dataset.animateDelay):0;gsap.set(s,{opacity:1}),gsap.to(o,{drawSVG:"100%",duration:i,delay:a}),t.unobserve(s)}}))}),{threshold:.5});e?.forEach((e=>{const s=e.querySelectorAll("path");s&&(gsap.set(s,{drawSVG:0}),t.observe(e))}))},initSectionArticleSlider=()=>{const e=document.querySelector(".js-article-slider-anchors");if(!e)return;let t=[];document.querySelectorAll(".js-section-article-slider")?.forEach((e=>{const s=e.dataset.blogTitle,o=e.dataset.blogHandle;t.push({title:s,handle:o})})),e.innerHTML=t.map((e=>`<a href="#${e.handle}" class="btn btn-filter">${e.title}</a>`)).join("")},initSectionHero=()=>{gsap.utils.toArray(".js-section-hero")?.forEach((e=>{mmGlobal.add(mmConditions,(t=>{let{isDesktop:s,reduceMotion:o}=t.conditions;o||gsap.fromTo(e,{width:"100%",borderRadius:"0px"},{width:`calc(100% - ${s?48:16}px)`,marginTop:16,marginBottom:16,borderRadius:"16px",scrollTrigger:{trigger:e,start:"top top",end:"bottom center",scrub:1}})}))})),ScrollTrigger.refresh()},initSectionComparison=()=>{if(vs.prefersReducedMotion)return;gsap.utils.toArray(".js-section-comparison")?.forEach((e=>{const t=e.querySelectorAll(".js-section-comparison-item"),s=e.querySelectorAll(".js-section-comparison-block");if(!t?.length>0)return;s?.length>0&&gsap.set(s,{opacity:0,y:16});const o=gsap.timeline({default:{ease:"power2.out"},scrollTrigger:{trigger:e,start:"top top",end:"bottom bottom",scrub:1}});mmGlobal.add(mmConditions,(e=>{const{isDesktop:i,isMobile:a}=e.conditions;o.fromTo(t[0],{width:i&&"50%",height:a&&"50%"},{width:i&&"100%",height:a&&"100%"}).to(s[0],{opacity:1,y:0},"<50%").fromTo(s[0].children,{opacity:0,y:16},{opacity:1,y:0,stagger:.1},"<50%"),t[1]&&o.to(t[0],{width:i&&"100%",height:a&&"100%",duration:1}).to(t[0],{width:i&&"50%",height:a&&"50%"}).to(s[0],{opacity:0,duration:.2},"<").fromTo(t[1],{width:i&&"50%",height:a&&"50%"},{width:i&&"100%",height:a&&"100%"},"<").to(s[1],{opacity:1,y:0},"<50%").fromTo(s[1].children,{opacity:0,y:16},{opacity:1,y:0,stagger:.1},"<50%").to(t[1],{width:i&&"100%",height:a&&"100%",duration:1}).to(t[1],{width:i&&"50%",height:a&&"50%"}).to(s[1],{opacity:0,duration:.2},"<")}))})),ScrollTrigger.refresh()},initSectionFeaturedProducts=()=>{gsap.utils.toArray(".js-section-featured-product")?.forEach((e=>{const t=e.querySelector(".js-section-featured-product-top-heading"),s=e.querySelector(".js-section-featured-product-bottom-heading"),o=e.querySelector(".js-section-featured-product-content");if(!o)return void gsap.set(e,{height:"var(--s-vp-height)"});const i=e.querySelector(".js-section-featured-product-paragraph"),a=e.querySelector(".js-section-featured-product-images"),r=e.querySelectorAll(".js-section-featured-product-image"),n=e.querySelector(".js-section-featured-product-items"),c=gsap.timeline({default:{ease:"power2.out"},scrollTrigger:{trigger:e,start:"top center",end:"80% bottom",scrub:1}});mmGlobal.add(mmConditions,(e=>{const{reduceMotion:l}=e.conditions;if(l)c.fromTo(o,{opacity:0}
1,{opacity:1},1);else{if(t){const e=SplitText.create(t,{type:"words",mask:"words",aria:"none"});c.from(e.words,{yPercent:100,opacity:0,stagger:.1})}if(s){const e=SplitText.create(s,{type:"words",mask:"words",aria:"none"});c.from(e.words,{yPercent:100,opacity:0,stagger:.1})}if(t&&c.to(t,{y:"-30vh"}),s&&c.to(s,{y:"30vh"},"<"),c.to(o,{width:"100%",height:"100%",borderRadius:"0px",duration:2},"<10%"),r.length>0&&(c.fromTo(r,{opacity:0,marginTop:"25px"},{opacity:1,marginTop:"0px",stagger:.1},"<25%"),c.fromTo(a,{scale:1.5,yPercent:-5},{scale:1,yPercent:0})),i){const e=SplitText.create(i,{type:"words",mask:"words",aria:"none"});c.set(i,{opacity:1}).to(i,{height:"auto",duration:1}).from(e.words,{yPercent:100,opacity:0,stagger:.1},"<")}n&&(gsap.set(n.children,{opacity:0,y:16}),c.set(n,{opacity:1}).to(n,{height:"auto",duration:1}).to(n.children,{opacity:1,y:0,stagger:{each:.1}},"<"))}}));const l=n.querySelectorAll("a, button");l.length&&l.forEach((t=>{t.addEventListener("focus",(()=>{const t=e.offsetTop+e.offsetHeight-window.innerHeight;window.scrollY+window.innerHeight<t-100&&gsap.to(window,{scrollTo:{y:t},duration:.4})}))}))}))},initSectionSlideShow=()=>{const e=gsap.utils.toArray(".js-section-slide-show"),t=new IntersectionObserver((e=>{e.forEach((e=>{if(!e.isIntersecting){const t=e.target.querySelector(".js-section-slide-show-control");t?.dataset&&(t.dataset.videoPlay="true"),t?.dataset&&(t.dataset.videoMute="true")}}))}),{threshold:.4});e?.forEach((e=>{const s=e.querySelector(".js-section-slide-show-media"),o=e.querySelector(".js-section-slide-show-image-oval"),i=e.querySelector(".js-section-slide-show-image-rect");mmGlobal.add(mmConditions,(t=>{let{isDesktop:a,reduceMotion:r}=t.conditions;const n=gsap.timeline({default:{ease:"power2.out"},scrollTrigger:{trigger:e,start:"top center",end:"bottom bottom",scrub:1}});s&&n.to(s,{rotate:"-2deg",duration:r?0:2},"0"),o&&n.to(o,{filter:"grayscale(0%)",top:"30%",left:a?"95%":"100%",rotate:"-8deg",duration:r?0:2},"0").from(o,{opacity:0,duration:r?.2:0},"0"),i&&n.to(i,{filter:"grayscale(0%)",top:a?"70%":"55%",left:a?"5%":"-10%",rotate:"8deg",duration:r?0:2},"0").from(i,{opacity:0,duration:r?.2:0},"0")})),t.observe(e)})),on("body","click",".js-section-slide-show-play",(e=>{const t=e.target.closest(".js-section-slide-show"),s=t.querySelector(".js-section-slide-show-media video"),o=t.querySelector(".js-section-slide-show-control");s&&(playTargetVideo(s),o.dataset.videoPlay="true")})),on("body","click",".js-section-slide-show-pause",(e=>{const t=e.target.closest(".js-section-slide-show"),s=t.querySelector(".js-section-slide-show-media video"),o=t.querySelector(".js-section-slide-show-control");s&&(pauseTargetVideo(s),o.dataset.videoPlay="false",o.dataset.videoMute="true")})),on("body","click",".js-section-slide-show-mute",(e=>{const t=e.target.closest(".js-section-slide-show"),s=t.querySelector(".js-section-slide-show-media video"),o=t.querySelector(".js-section-slide-show-control");s&&(s.muted=!0,o.dataset.videoMute="true")})),on("body","click",".js-section-slide-show-unmute",(e=>{const t=e.target.closest(".js-section-slide-show"),s=t.querySelector(".js-section-slide-show-media video"),o=t.querySelector(".js-section-slide-show-control");s&&(s.muted=!1,o.dataset.videoMute="false")}))},initSectionIngredients=()=>{document.querySelectorAll(".js-section-ingredients").forEach((t=>function(t){const s=t.querySelector(".js-section-ingredients-images"),o=s?.querySelectorAll(".js-section-ingredients-image");if(!o.length)return;const i=t.querySelectorAll(".js-section-ingredients-dot");let a=o[0],r=0;const n=[],c=[];o.forEach(((e,t)=>{c.push(t),n.push(t+1)}));const l=o.length,d=e=>{for(let t=0;t<o.length;t++){const s=o[t],n=i[t];s.dataset.index==e?(s.classList.add("is-active"),a=s,r=e,n.classList.add("is-active")):(s.classList.remove("is-active"),n.classList.remove("is-active"))}u()};function u(){for(let e=0;e<o.length;e++)n[e]=e<r?r-e:l-(e-r)}const h=(e,t=!1)=>{const s=e.querySelector(".js-section-ingredients-tabs"),i=parseInt(s.dataset.ingredientCount);null!==a&&mmGlobal.add(mmConditions,(e=>{let{reduceMotion:s}=e.conditions;const i=gsap.timeline({defaults:{duration:s?0:.3,ease:"power2.out"}});for(let e=0;e<c.length;e++){const s=c[e];if(s==r)break;
1i.fromTo(o[s],{transform:o[s].style.transform},{transform:t?"translate3d(100%,0,0) rotate(calc(var(--item-rotate) + 30deg))":"translate3d(-100%,0,0) rotate(calc(var(--item-rotate) - 30deg))"},0).to(o[s],{transform:"translate(0) rotate(var(--item-rotate))",zIndex:n[e]},.3)}o.forEach(((e,t)=>{i.to(e,{zIndex:n[t]},"<")}))}));for(let e=r;e<l;e++)c[e-r]=e;for(let e=0;e<r;e++)c[e+l-r]=e;s.dataset.ingredientCount=i+1},m=new IntersectionObserver((s=>{s.forEach((s=>{s.isIntersecting&&(o?.length>0&&o.forEach((e=>{e.style.setProperty("--item-rotate",`${gsap.utils.random(-8,8)}deg`)})),e(t),m.unobserve(t))}))}),{threshold:.2});m.observe(t),on("body","click",".js-section-ingredients-tab",(t=>{const s=t.target.closest(".js-section-ingredients"),o=parseInt(t.target.dataset.index);e(s),d(o),h(s)}));let p=!1,b=0;s.addEventListener("mousedown",(e=>{p=!0,b=e.clientX,a.style.transition="none"})),s.addEventListener("mousemove",(e=>{if(!p)return;let t=e.clientX-b;t=t<0?Math.max(-300,t):Math.min(300,t),a.style.transform=`translate3d(${t}px,0,0) rotate(calc(var(--item-rotate) + ${t/10}deg))`})),document.addEventListener("mouseup",(e=>{if(!p)return;g(e.clientX-b,t)})),s.addEventListener("touchstart",(e=>{p=!0,b=e.touches[0].clientX,a.style.transition="none"})),s.addEventListener("touchmove",(e=>{if(!p)return;let t=e.touches[0].clientX-b;t=t<0?Math.max(-300,t):Math.min(300,t),a.style.transform=`translate3d(${t}px,0,0) rotate(calc(var(--item-rotate) + ${t/10}deg))`})),s.addEventListener("touchend",(e=>{if(!p)return;g(e.changedTouches[0].clientX-b,e.target.closest(".js-section-ingredients"))}));const y=50;function g(t,s){p=!1,Math.abs(t)>y?(d(r===l-1?0:r+1),((e,t)=>{e.querySelector("c-tabs").activeTabByIndex(t)})(s,r),e(s),h(s,t>0)):(a.style.transition="transform 0.3s ease",a.style.transform="translate3d(0,0,0) rotate(var(--item-rotate))")}}(t)));const e=e=>{if(vs.prefersReducedMotion)return;const t=e.querySelector(".js-section-ingredients-content"),s=e.querySelector(".js-section-ingredients-content-item.is-active");if(t&&s){const e=s.offsetHeight;gsap.to(t,{height:e,duration:.4})}}},initSectionHistory=()=>{document.querySelectorAll(".js-section-history")?.forEach((e=>{const t=e.querySelector(".js-section-history-scroller"),s=e.querySelectorAll(".js-section-history-tab"),o=e.querySelector(".js-section-history-prev"),i=e.querySelector(".js-section-history-next"),a=e.querySelectorAll(".js-section-history-image"),r=parseInt(t.dataset.itemCount);let n=0;const c=a=>{if(null==a||a===n)return;const c=e.querySelector(`[role="tabpanel"][data-index="${a}"]`)?.querySelectorAll(".js-section-history-image");c?.length>0&&mmGlobal.add(mmConditions,(e=>{let{reduceMotion:t}=e.conditions;gsap.from(c,{left:a>n?"100vw":"-100vw",stagger:.1,duration:t?0:5,ease:t?null:CustomEase.create("custom","M0,0 C0.025,0.529 0.01,0.796 0.1,0.9 0.174,0.988 0.315,1 1,1 ")})})),t.style.setProperty("--active-index",a||0),t.dataset.activeIndex=a||0,s.forEach((e=>{parseInt(e.dataset.index)===a?e.setAttribute("aria-selected","true"):e.setAttribute("aria-selected","false")})),o.disabled=0==a,i.disabled=a==r-1,n=a};s.forEach((e=>{e.addEventListener("click",(e=>{const t=e.target.closest(".js-section-history-tab"),s=parseInt(t.dataset.index);c(s)}))})),o.addEventListener("click",(()=>{c(0==n?null:n-1)})),i.addEventListener("click",(()=>{c(n==r-1?null:n+1)})),a?.length>0&&(a.forEach((e=>{const t=100*Math.random()-50,s=100*Math.random()-50;e.style.marginTop=`${t}px`,e.style.marginLeft=`${s}px`})),vs.isTouchDevice||vs.prefersReducedMotion||function(e,{velocity:t=.05,factor:s=.8}={}){if(!e?.length>0)return;const o=window.innerWidth,i=window.innerHeight,a=Array.from(e).map((()=>({velocity:t+.05*Math.random(),factorX:s+.2*Math.random(),factorY:s+.2*Math.random()})));function r(t){const s=t.clientX-o/2,r=t.clientY-i/2;e.forEach(((e,t)=>{const{velocity:o,factorX:i,factorY:n}=a[t],c=s*o*i,l=r*o*n;e.style.transform=`translate(${c}px, ${l}px)`}))}document.addEventListener("mousemove",r)}(a))}))},initSectionFaq=()=>{const e=document.querySelector(".js-faq"),t=document.querySelector(".js-faq-nav"),s=t?.querySelector(".js-faq-nav-content"),o=t?.querySelector(".js-faq-nav-btn");if(!s||!e)return;const i=e.querySelectorAll(".js-faq-category"),a={};let r;t.querySelectorAll(".js-faq-nav-item").forEach((e=>{a[e.dataset.handle]=e}));let n=0,c=!1;const l=e=>{if(r?.classList.remove("is-active"),!a[e])return;r=a[e],r.classList.add("is-active");const t=r.offsetLeft,o=t+r.offsetWidth,i=s.scrollLeft,n=i+s.clientWidth;t<i?s.scrollTo({left:t,behavior:"smooth"}):o>n&&s.scrollTo({left:o-s.clientWidth,behavior:"smooth"})};t.querySelectorAll(".js-faq-nav-item").forEach((e=>{e.addEventListener("click",(t=>{t.preventDefault();const s=document.getElementById(e.dataset.handle);s&&(c=!0,l(e.dataset.handle),s.scrollIntoView({behavior:"smooth",block:"start"}),setTimeout((()=>{c=!1}),1e3))}))}));const d=()=>{s.scrollBy({left:50,behavior:"smooth"}),u(),o.removeEventListener("click",d)},u=()=>{t.classList.add("is-scrolled"),t.removeEventListener("scroll",u)};(()=>{let e=parseInt(getComputedStyle(t).top)+(vs.isMobileDown?t.clientHeight+10:48);i?.forEach(((t,s)=>{new IntersectionObserver((([e])=>{e.isIntersecting&&!c&&(e=>{const t=Date.now();t-n>50&&(l(e),n=t)})(t.id)}),{root:null,rootMargin:`-${e}px 0px -99% 0px`,threshold:0}).observe(t)}))})(),s.scrollWidth<=s.clientWidth?t.classList.add("is-scrolled"):(o.addEventListener("click",d),s.addEventListener("scroll",u))},initFlippableCard=()=>{vs.isTouchDevice&&on("body","click",".c-card-square.is-flippable",(e=>{const t=e.target.closest(".c-card-square.is-flippable");t&&(document.querySelectorAll(".c-card-square.is-flippable.is-flipped").forEach((e=>{e!==t&&e.classList.remove("is-flipped")})),t.classList.toggle("is-flipped"))}))},initAnimations=()=>{vs.prefersReducedMotion||(window.self===window.top?[initGSAP,initAnimateFadeIn,initAnimateText,initAnimateDrawSvg].forEach(safeRun):document.documentElement.classList.add("is-iframe"))},checkNavigationMethod=()=>{const e=()=>{root.classList.add("using-mouse"),document.body.addEventListener("keydown",t)},t=s=>{"Tab"===s.key&&(root.classList.remove("using-mouse"),document.body.removeEventListener("keydown",t),document.body.addEventListener("mousedown",e,{once:!0}))};document.body.addEventListener("mousedown",e,{once:!0}),document.body.addEventListener("keydown",t)};document.addEventListener("DOMContentLoaded",(()=>{[initVideo,initSectionArticleSlider,initSectionHistory,checkNavigationMethod].forEac
1h(safeRun)})),window.addEventListener("load",(()=>{setTimeout((()=>{initVideo()}),400),[initAnimations,initSectionHero,initSectionComparison,initSectionFeaturedProducts,initSectionSlideShow,initSectionIngredients,initSectionFaq,initFlippableCard].forEach(safeRun)}));

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.