{"version":3,"sources":["site/landingCommon/commonTopStyle.js","site/landingCommon/landingTopNav.js","site/curlSecretV4NZ/styles/common.js","site/curlSecretV4NZ/curlSecretStyle.js","site/curlSecretV4NZ/motions/common.js","site/curlSecretV4NZ/styles/VideoPanelStyle.js","site/curlSecretV4NZ/sections/videoPanel.js","site/curlSecretV4NZ/sections/mainPanel.js","site/curlSecretV4NZ/sections/curlPanel1.js","site/curlSecretV4NZ/sections/curlPanel2.js","site/curlSecretV4NZ/styles/videoPanelStyle_large.js","site/curlSecretV4NZ/sections/howToVideosPanel1.js","site/curlSecretV4NZ/sections/curlPanel3.js","site/curlSecretV4NZ/sections/howToVideosPanel3.js","site/curlSecretV4NZ/sections/curlPanel3Max.js","site/curlSecretV4NZ/motions/panels.js","site/curlSecretV4NZ/sections/desPanel.js","site/curlSecretV4NZ/sections/curlGirl.js","site/curlSecretV4NZ/sections/curlGirl3.js","site/curlSecretV4NZ/sections/whereToBuy.js","site/curlSecretV4NZ/sections/packageBottom.js","site/curlSecretV4NZ/sections/loveYourStyle.js","site/curlSecretV4NZ/parallax.js","site/curlSecretV4NZ/parallax-data.js","site/curlSecretV4NZ/scroll-animation-mobile.js","site/curlSecretV4NZ/scroll-animation-desktop.js","site/curlSecretV4NZ/curlSecret.js"],"names":["padding","paddingHalf","map","x","topNav","nav","css","mq","position","right","zIndex","overflow","skew","background","transform","transformOrigin","paddingRight","paddingLeft","unskew","height","alignItems","display","unskewMobile","link","fontSize","fontWeight","textTransform","color","LandingTopNav","style","className","to","breakpoints","breakpointNames","breakpoints2","breakpoints3","breakpoints4","breakpoints5","facepaint","bp","mq4","mqB","mqB2","mqM","mqMin","forEach","index","mqMin2","mqMin3","mqMin4","mqMin5","mqMax","mqMinB","mqMinM","variables","familyBase","familyHeader","familyDin","bgColor","gold","grey","darkBlue","lightBrown","fontColor","mqTransform","fn","ret","args","arr","length","Array","isArray","i","getSize","value","inx","isNumeric","remM","rem","mixin","px","baseSize","base","h1","fontFamily","h2","h3","button","darken","transition","lineHeight","span","textAlign","width","textDecoration","mobileOnly","small","desktopOnly","viewportGuide","document","querySelector","offsetWidth","offsetHeight","e","getScreenSize","isMobile","utils","screenWidth","sc","content","pannelColor","left","header","subHeader","marginBottom","marginTop","letterSpacing","product","pointerEvents","package","videoCommon","videoContainer","playIcon","top","cursor","parallax","panel1","backgroundPositionX","backgroundRepeat","backgroundSize","backgroundImage","panel2","landingPage","img","container","maxWidth","margin","container2","notes","motionAppearFromBottom","hidden","opacity","scale","y","duration","ease","visible","motionAppearFromBottom2","motionAppearFromBottom_speedy","motionAppearFromLeft_slow","motionAppearFromRight_slow","motionAppearFromRight_slow3","motionPop","type","stiffness","damping","videolink","backImgContainer","VideoPanel","openVideo","href","onClick","preventDefault","src","alt","MainPanel","ref","useRef","ss","section","imagesSection1","imagesSection2","cloudLeft","cloudRight","twoGirls","curlSecret","curlSecretM","curlSecret2","curlSecret2M","curlSecret3","curlSecret3M","priceStrong","rrp1","rrp2","textWrap","rrp3","rrpM1","rrpM2","rrpM3","roundCallout","backgroundColor","borderRadius","flexDirection","justifyContent","roundCalloutM","roundCallout2","roundCallout2M","roundCallout3","roundCallout3M","curlSeretLogoContainer","curlSeretLogo","title","fontStyle","strong","curlSecretVideo","curlSecretVideo2","buttonContainer","bottom","getSectionStyle","scrollYProgress","useScroll","target","offset","leftVertical","viewSize","current","h","getLeftOver","useState","distance","_d","window","innerWidth","useTransform","useParallax","toggler","setToggler","popupIndex","setPopupIndex","useEffect","unsub","onChange","console","log","get","reset","addEventListener","removeEventListener","sources","sourceIndex","motion","div","initial","whileInView","variants","barrel","CurlPanel1","panelContainer","marginInline","topHeader","topContainer","headerContainer","imageLeft","flex","yearContainer","year","marginLeft","marginRight","feature1","feature2","imageLine","CurlPanel2","paddingTop","paddingBottom","margiBottom","productContainer","flexWrap","gap","productContainerItem","partImage","maxHeight","productTitle","productDesc","HowToVideosPanel1","CurlPanel3","howToVideos","imageBg2","gtm","sendEvent","discoverMoreButtonName","HowToVideosPanel3","CurlPanel3Max","section1","headerContainer1","header1","disclaimer","MotionBottomUp","delay","children","Col","DesPanel","CurlGirl","imageBg","girl","subtitle","subtitleCreates","mainSubtitle","viewport","once","CurlGirl3","section2","imagesSection12","imagesSection22","cloudLeft2","cloudRight2","girl2","content2","title2","subtitle2","subtitleCreates2","mainSubtitle2","auShops","nzShops","WhereToBuy","shops","site","isNZ","backgroundPosition","ssShops","list","figure","ul","listStyle","li","logo","id","shop","key","rel","PackageBottom","productPackage1","productPackage1M","LoveYourStyle","defaultSettings","cutoffPadding","paddingHeightRatio","init","data","settings","screenSize","au","Object","assign","panels","panel","el","selector","autoPanelHeight","panelHeight","parseFloat","calculated","shadowHeight","shadowWidth","fromTop","toTop","imageRatio","onScroll","pr","getScrollProgress","progress","min","max","prVal","backgroundPositionY","ParallaxData","actionRange","ScrollAnimationMobile","this","parallaxData","initParallax","ev","productImg","setClass","MAX","sliceBg","ScrollAnimationDesktop","CurlSecret","React","scrollAnimationMobile","scrollAnimationDesktop","currentScrollAnimationHandler","setCurrentScrollAnimationHandler","setWidth","setScrollAnimationHandler","winW","currentHandlerName","constructor","name","onDestroy","handleScroll","$event","handleResize","onResize","useLayoutEffect","pageView","callMCPoopu","getMetaTag","visibility","country","env","siteName","description","heroImageUrl","fullUrl","language","url","alternates","getAlternates","faceBookDomainVerifi","FaceBookDomainVerifiNZ","FaceBookDomainVerifiAU"],"mappings":"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","file":"static/js/8.d9f8920d.chunk.js","sourcesContent":["import { css } from \"@emotion/core\";\nimport { mq } from \"../../cssInJs\";\n\nconst padding = [20, null, null, 30];\nconst paddingHalf = padding.map((x) => (x ? x / 2 : null));\n\nexport const topNav = {\n nav: css(\n mq({\n position: \"absolute\",\n right: [44, null, null, 0],\n zIndex: \"999\",\n overflow: \"hidden\",\n })\n ),\n skew: css(\n mq({\n background: \"rgba(0,0,0,0.15)\",\n transform: \"skewX(-12deg) translateX(15px)\",\n transformOrigin: \"top left\",\n paddingRight: padding,\n paddingLeft: paddingHalf,\n })\n ),\n unskew: css(\n mq({\n transform: \"skewX(12deg)\",\n transformOrigin: \"top left\",\n height: [24, 44, null, 56],\n //display: 'flex',\n alignItems: \"center\",\n display: [\"none\", \"flex\"],\n })\n ),\n unskewMobile: css(\n mq({\n transform: \"skewX(12deg)\",\n transformOrigin: \"top left\",\n height: [24, 44, null, 56],\n //display: 'flex',\n alignItems: \"center\",\n display: [\"flex\", \"none\"],\n })\n ),\n link: css(\n mq({\n paddingLeft: paddingHalf,\n paddingRight: paddingHalf,\n display: \"inline-block\",\n fontSize: [12, 16, 16, 18],\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n color: \"black\",\n })\n ),\n};\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { topNav } from \"./commonTopStyle\";\nimport { SiteLink } from \"../../components\";\n\nexport default function LandingTopNav({ style }) {\n return (\n
\n
\n
\n \n Buy Now\n \n
\n\n
\n \n Buy Now\n \n
\n
\n
\n );\n}\n","import facepaint from \"facepaint\";\nimport { css } from \"@emotion/core\";\nimport { darken } from \"polished\";\nimport { isNumeric } from \"lib/utils-core/text\";\nimport { getScreenSize } from \"lib/animation/animationUtils\";\nimport utils from \"utils\";\n\nconst breakpoints = [700, 1920, 2560];\nconst breakpointNames = [\"small\", \"wide\", \"xwide\"];\n\nconst breakpoints2 = [700, 1200, 1920, 2560];\nconst breakpointNames2 = [\"small\", \"middle\", \"wide\", \"xwide\"];\n\nconst breakpoints3 = [700, 1200, 1600, 1920, 2560];\nconst breakpointNames3 = [\"small\", \"middle\", \"wide\", \"xwide\", \"xxwide\"];\n\nconst breakpoints4 = [700, 800, 1200, 1600, 1920, 2560];\nconst breakpointNames4 = [\"small\", \"pad\", \"middle\", \"wide\", \"xwide\", \"xxwide\"];\n\nconst breakpoints5 = [700, 800, 1200, 1366, 1600, 1920, 2560];\nconst breakpointNames5 = [\n \"small\",\n \"pad\",\n \"middle\",\n \"wide\",\n \"xwide\",\n \"xxwide\",\n \"xxwide\",\n];\n\nconst breakpointsT = [576, 700, 992, 1200, 1600];\nconst breakpointsT2 = [576, 700, 992, 1200, 1600, 1920, 2500];\nconst breakpointsNamesT = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"];\n\nconst breakpointsM = [700];\nconst breakpointsNamesM = [\"sm\"];\n\nconst mq = facepaint(breakpoints.map((bp) => `@media (min-width: ${bp}px)`));\nconst mq3 = facepaint(breakpoints3.map((bp) => `@media (min-width: ${bp}px)`));\nconst mq4 = facepaint(breakpoints4.map((bp) => `@media (min-width: ${bp}px)`));\nconst mq5 = facepaint(breakpoints5.map((bp) => `@media (min-width: ${bp}px)`));\nconst mqB = facepaint(breakpointsT.map((bp) => `@media (min-width: ${bp}px)`));\nconst mqB2 = facepaint(\n breakpointsT2.map((bp) => `@media (min-width: ${bp}px)`)\n);\nconst mqM = facepaint(breakpointsM.map((bp) => `@media (min-width: ${bp}px)`));\n\nconst mqMin = {};\nbreakpointNames.forEach(\n (bp, index) => (mqMin[bp] = `@media (min-width: ${breakpoints[index]}px)`)\n);\n\nconst mqMin2 = {};\nbreakpointNames2.forEach(\n (bp, index) => (mqMin2[bp] = `@media (min-width: ${breakpoints2[index]}px)`)\n);\n\nconst mqMin3 = {};\nbreakpointNames3.forEach(\n (bp, index) => (mqMin3[bp] = `@media (min-width: ${breakpoints3[index]}px)`)\n);\n\nconst mqMin4 = {};\nbreakpointNames4.forEach(\n (bp, index) => (mqMin4[bp] = `@media (min-width: ${breakpoints4[index]}px)`)\n);\n\nconst mqMin5 = {};\nbreakpointNames5.forEach(\n (bp, index) => (mqMin5[bp] = `@media (min-width: ${breakpoints5[index]}px)`)\n);\n\nconst mqMax = {};\nbreakpointNames.forEach(\n (bp, index) => (mqMax[bp] = `@media (max-width: ${breakpoints[index] - 1}px)`)\n);\n\nconst mqMinB = {};\nbreakpointsNamesT.forEach(\n (bp, index) =>\n (mqMinB[bp] = `@media (max-width: ${breakpoints[index] - 1}px)`)\n);\n\nconst mqMinM = {};\nbreakpointsNamesM.forEach(\n (bp, index) =>\n (mqMinM[bp] = `@media (max-width: ${breakpoints[index] - 1}px)`)\n);\n\nconst variables = {\n familyBase: '\"Gotham\",sans-serif',\n familyHeader: '\"Gotham\",sans-serif',\n familyDin: '\"DIN Next LT Pro\",serif',\n color: {\n bgColor: \"#0c1728\",\n gold: \"#ffe4ad\",\n grey: \"#b3b2b2\",\n darkBlue: \"#0c1728\",\n lightBrown: \"#f2e5d4\",\n fontColor: \"#555\",\n },\n};\n\nfunction mqTransform(fn, ...args) {\n // console.log(typeof args, args);\n const ret = [];\n const arr = args.length === 1 && Array.isArray(args) ? args[0] : args;\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] === 0 || arr[i]) {\n ret[i] = fn(arr[i], i);\n }\n }\n return ret;\n}\n\nfunction getTransformX(value, inx) {\n // console.log(value, inx);\n return `translate(${getSize(value, inx)}, 0)`;\n}\n\nfunction getSize(value, inx) {\n if (isNumeric(value)) return inx === 0 ? remM(value) : rem(value);\n else return value;\n}\n\nconst mixin = {\n r: (rem, baseSize = 40) => `calc(${rem} * var(--digitalSensorLuxeBase))`,\n rem: (px, baseSize = 40) =>\n `calc(${px / baseSize} * var(--digitalSensorLuxeBase))`,\n remM: (px, baseSize = 20) =>\n `calc(${px / baseSize} * var(--digitalSensorLuxeBase))`,\n px: (...args) => mqTransform(getSize, args),\n tx: (...args) => mqTransform(getTransformX, args),\n\n vh: (v) => `calc(${v} * var(--digitalSensorLuxeVhBase) / 100)`,\n vw: (v) => `calc(${v} * var(--digitalSensorLuxeVmBase) / 100)`,\n};\n\nconst { rem, remM } = mixin;\nconst base = {\n h1: css({\n fontFamily: variables.familyBase,\n fontSize: rem(96),\n color: \"black\",\n }),\n h2: css({\n fontFamily: variables.familyBase,\n fontSize: rem(60),\n color: \"white\",\n }),\n h3: css({\n fontFamily: variables.familyBase,\n fontSize: rem(23),\n color: variables.color.gold,\n }),\n button: css({\n display: \"inline-block\",\n fontFamily: variables.familyHeader,\n fontSize: rem(20),\n fontWeight: \"bold\",\n background: darken(0.1, \"#9e83ac\"),\n padding: `0.4em 1em`,\n color: \"white\",\n transition: \"all 0.3s\",\n transform: \"skewX(-12deg)\",\n lineHeight: 1,\n span: {\n lineHeight: 1,\n textAlign: \"center\",\n display: \"inline-block\",\n transform: \"skewX(12deg)\",\n width: \"100%\",\n },\n\n \"&: hover, &:focus\": {\n textDecoration: \"none\",\n color: \"white\",\n background: darken(0.2, \"#9e83ac\"),\n },\n }),\n mobileOnly: css({\n [mqMin.small]: {\n display: \"none\",\n },\n }),\n desktopOnly: css({\n [mqMax.small]: {\n display: \"none\",\n },\n }),\n};\n\nfunction viewportGuide() {\n try {\n return {\n width: document.querySelector(\".viewportGuide\").offsetWidth,\n height: document.querySelector(\".viewportGuide\").offsetHeight,\n };\n } catch (e) {\n return getScreenSize();\n }\n}\n\nconst isMobile = () => {\n var width = utils.css.screenWidth();\n return width < 700;\n};\nexport {\n variables,\n mixin,\n breakpoints,\n mq,\n mq3,\n mq4,\n mq5,\n mqB,\n mqB2,\n mqM,\n mqMinM,\n mqMinB,\n mqMin,\n mqMin2,\n mqMin3,\n mqMin4,\n mqMin5,\n mqMax,\n base,\n viewportGuide,\n isMobile,\n};\n","import { css } from '@emotion/core'\nimport { variables, mixin, mqMin, mq, base } from './styles/common'\n\nconst { rem, remM } = mixin\n\nconst sc = {\n content: {\n position: 'relative',\n zIndex: '1',\n fontSize: remM(16),\n textAlign: 'left',\n color: variables.color.pannelColor,\n overflow: 'hidden',\n [mqMin.small]: {\n fontSize: rem(20),\n fontWeight: 400,\n position: 'absolute',\n zIndex: '12',\n left: '50%',\n },\n },\n header: css(base.h2, {\n color: variables.color.pannelColor,\n fontSize: remM(22),\n [mqMin.small]: {\n fontSize: rem(36),\n },\n }),\n subHeader: css(base.h3, {\n color: variables.color.pannelColor,\n fontSize: remM(18),\n marginBottom: rem(25),\n [mqMin.small]: {\n fontSize: rem(21),\n },\n }),\n button: css(base.button, {\n marginTop: 10,\n fontSize: remM(20),\n //padding: `${rem(4)}, ${rem(15)}`,\n [mqMin.small]: {\n marginTop: rem(10),\n fontSize: rem(28),\n letterSpacing: '1px',\n },\n }),\n product: css({\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 13,\n left: '50%',\n }),\n package: css({\n pointerEvents: 'none',\n width: 200,\n [mqMin.small]: {\n width: rem(365),\n position: 'absolute',\n //marginBottom: rem(20)\n },\n }),\n}\n\nconst videoCommon = {\n videoContainer: css({\n position: 'relative',\n marginBottom: rem(20),\n }),\n playIcon: css({\n position: 'absolute',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: 1,\n width: rem(100),\n height: rem(100),\n color: 'white',\n pointerEvents: 'none',\n cursor: 'pointer',\n }),\n}\n\nconst parallax = {\n panel1: css(\n mq({\n height: [200, 970],\n backgroundPositionX: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n marginTop: '-7%',\n backgroundImage:\n 'url(/dist/curlsecret-stg/images/hero-new-curl-secret.png)',\n })\n ),\n panel2: css(\n mq({\n height: [200, 370, 570],\n backgroundPositionX: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundImage:\n 'url(/dist/curlsecret-stg/images/258A5702-parallax-banner.jpg)',\n })\n ),\n}\n\nexport default {\n landingPage: css({\n background: 'black',\n fontFamily: 'Gotham',\n fontSize: rem(20),\n fontWeight: 400,\n img: {\n width: '100%',\n },\n }),\n container: css({\n maxWidth: '2560px',\n overflow: 'hidden',\n margin: 'auto',\n }),\n container2: css({\n maxWidth: '2560px',\n overflow: 'hidden',\n margin: 'auto',\n }),\n notes: mq({\n fontSize: [remM(13), rem(15)],\n }),\n parallax,\n sc,\n videoCommon,\n base,\n variables: variables,\n}\n","import { isMobile } from \"../styles/common\";\n\nexport const motionAppearFromBottom = {\n hidden: {\n opacity: 0,\n scale: 1,\n y: isMobile() ? 100 : 240,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n y: 0,\n transition: {\n duration: 1.4,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromBottom2 = {\n hidden: {\n opacity: 0,\n scale: 1,\n y: isMobile() ? 100 : 60,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n y: 0,\n transition: {\n duration: 1.4,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromBottom_speedy = {\n hidden: {\n opacity: 0,\n scale: 1,\n y: isMobile() ? 100 : 240,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n y: 0,\n transition: {\n duration: 1.0,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromBottom_slow = {\n hidden: {\n opacity: 1,\n scale: 1,\n y: isMobile() ? 50 : 100,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n y: 0,\n transition: {\n duration: 1.4,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromTop = {\n hidden: {\n opacity: 1,\n scale: 1,\n y: isMobile() ? -50 : -200,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n y: 0,\n transition: {\n duration: 0.5,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromLeft = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: -600,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 1.2,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromLeft_speedy = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: -600,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 0.5,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromLeft_slow = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: isMobile() ? -100 : -300,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 2.2,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromRight = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: 600,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 1.2,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromRight_speedy = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: 600,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 0.5,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromRight_slow = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: isMobile() ? 100 : 200,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 1.8,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromRight_slow2 = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: isMobile() ? 100 : 200,\n transition: {\n duration: 0.6,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 2.2,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionAppearFromRight_slow3 = {\n hidden: {\n opacity: 0,\n scale: 1,\n x: isMobile() ? 100 : 200,\n transition: {\n duration: 1.0,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n x: 0,\n transition: {\n duration: 2.6,\n ease: \"easeInOut\",\n },\n },\n};\n\nexport const motionPop = {\n hidden: {\n opacity: 0,\n scale: 0.4,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n transition: {\n duration: 1.2,\n type: \"spring\",\n stiffness: 100,\n damping: 10,\n },\n },\n};\n\nexport const motionPopZero = {\n hidden: {\n opacity: 0,\n scale: 0.4,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n transition: {\n duration: 1.2,\n type: \"spring\",\n stiffness: 100,\n damping: 10,\n },\n },\n};\n\nexport const motionPop_slow = {\n hidden: {\n opacity: 0,\n scale: 0.5,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n transition: {\n duration: 1,\n type: \"spring\",\n stiffness: 100,\n damping: 10,\n },\n },\n};\n","import { mqM } from \"./common\";\n\nexport default {\n // videoContainer: mqB({\n // position: 'relative',\n // maxWidth: ['60%', '70%', '55%', '50%', '40%', '35%'],\n // margin: 'auto',\n // marginTop: ['1rem', 'unset'],\n // zIndex: '2',\n // }),\n videoContainer: mqM({\n position: \"relative\",\n maxWidth: [\"95%\", \"40%\"],\n margin: \"auto\",\n marginTop: [\"1rem\", \"unset\"],\n zIndex: \"2\",\n }),\n videolink: {\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"2\",\n },\n playIcon: {\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"1\",\n width: \"100px\",\n height: \"100px\",\n color: \"white\",\n cursor: \"pointer\",\n },\n backImgContainer: {\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"1\",\n height: \"100%\",\n },\n};\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport style from \"../styles/VideoPanelStyle\";\nimport { MdPlayCircleOutline } from \"react-icons/md\";\n\nexport function VideoPanel({ openVideo }) {\n return (\n
\n
\n {\n e.preventDefault();\n openVideo(0);\n }}\n >\n \n \n \n
\n
\n );\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { css } from \"@emotion/core\";\nimport { motion, useScroll, useTransform } from \"framer-motion\";\nimport {\n motionAppearFromBottom,\n motionAppearFromBottom_speedy,\n motionAppearFromLeft_slow,\n motionPop,\n motionAppearFromRight_slow,\n // motionAppearFromRight_slow2,\n motionAppearFromRight_slow3,\n} from \"../motions/common\";\nimport { VideoPanel } from \"../sections/videoPanel\";\nimport {\n mixin,\n mq,\n mqB,\n mqB2,\n base,\n variables,\n viewportGuide,\n mqM,\n} from \"../styles/common\";\nimport { useEffect, useRef } from \"react\";\nimport { useState } from \"react\";\nimport FsLightbox from \"fslightbox-react\";\nimport { SiteLink } from \"../../../components\";\nconst { rem, remM, px } = mixin;\n\nfunction useParallax(value, distance) {\n let _d = -distance;\n if (window.innerWidth >= 2560) {\n _d = -1000;\n } else {\n }\n return useTransform(value, [0, 1], [0, _d]);\n}\n\nfunction getLeftOver(ref) {\n const viewSize = viewportGuide();\n if (ref.current) {\n const h = ref.current.offsetHeight;\n return viewSize.width - h;\n }\n return null;\n}\n\nexport function MainPanel({ style }) {\n const ref = useRef(null);\n const ss = getSectionStyle(style);\n const { scrollYProgress } = useScroll({\n target: ref,\n offset: [\"start end\", \"end start\"],\n });\n const leftVertical = getLeftOver(ref) ?? 300;\n // eslint-disable-next-line\n const [y] = useState(useParallax(scrollYProgress, leftVertical));\n const [toggler, setToggler] = useState(false);\n const [popupIndex, setPopupIndex] = useState(0);\n function openVideo(index) {\n setPopupIndex(index);\n setToggler(!toggler);\n }\n const popupImages = [\n \"https://www.youtube.com/embed/K5II9nw7C5A?si=fjMcAuiqO2IhVPim\",\n ];\n\n useEffect(() => {\n function updateScroll() {\n console.log(scrollYProgress.get());\n console.log(\"scrollYProgress\", scrollYProgress);\n }\n const unsub = scrollYProgress.onChange(updateScroll);\n return () => {\n unsub();\n };\n }, [scrollYProgress]);\n\n useEffect(() => {\n const reset = (e) => {};\n reset();\n window.addEventListener(\"resize\", reset);\n return () => {\n window.removeEventListener(\"resize\", reset);\n };\n }, []);\n\n return (\n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n \n \n
19mm Barrel
\n
\n RRP NZ\n
$279.99
\n
\n \n
\n
\n \n \n
19mm Barrel
\n
\n RRP NZ\n
$279.99
\n
\n \n
\n {/*
\n \n \n
15mm Barrel Cordless
\n
\n RRP AU\n
$139.95
\n
\n \n
\n
\n \n \n
15mm Barrel Cordless
\n
\n RRP AU\n
$139.95
\n
\n \n
*/}\n
\n \n \n
32mm Barrel
\n
\n RRP NZ\n
$319.99
\n
\n \n
\n
\n \n \n
32mm Barrel
\n
\n RRP NZ\n
$319.99
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n Hair goes in.\n
\n Curl comes out.\n
\n Just like magic!\n
\n
\n
\n
\n \n BUY NOW\n \n
\n
\n \n \n \n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section: css(\n mqM({\n height: [rem(3000), rem(1650)],\n position: \"relative\",\n overflow: \"hidden\",\n color: variables.color.gold,\n })\n ),\n imagesSection1: mq({\n position: \"relative\",\n width: \"100%\",\n height: \"100%\",\n }),\n imagesSection2: mq({\n position: \"relative\",\n width: \"100%\",\n height: \"100%\",\n top: \"-100%\",\n }),\n cloudLeft: mqM({\n position: \"absolute\",\n margin: \"auto\",\n top: [\"8%\"],\n right: [\"-185%\", \"-58%\"],\n left: [\"-127%\"],\n transform: [\"scaleX(-1)\", \"scaleX(1)\"],\n width: px(450, 900),\n }),\n cloudRight: mqM({\n position: \"absolute\",\n right: [\"-5%\"],\n top: [\"27%\", \"27%\"],\n transform: [\"scaleX(-1)\", \"scaleX(1)\"],\n margin: \"auto\",\n zIndex: \"2\",\n width: px(1300, 2520),\n }),\n twoGirls: mqB({\n position: \"absolute\",\n left: [\"-5%\", \"7%\"],\n top: [\"4%\"],\n width: px(520, 880),\n margin: \"auto\",\n zIndex: [\"4\", \"1\"],\n display: [\"none\", \"none\", \"block\"],\n }),\n curlSecret: mqM({\n display: [\"none\", \"block\"],\n position: \"absolute\",\n top: [\"19%\", \"-14%\"],\n right: [\"42%\", \"26%\"],\n width: px(280, 420),\n margin: \"auto\",\n zIndex: \"3\",\n }),\n curlSecretM: mqM({\n display: [\"block\", \"none\"],\n position: \"absolute\",\n top: [\"29%\", \"-14%\"],\n right: [\"42%\", \"26%\"],\n width: px(280, 420),\n margin: \"auto\",\n zIndex: \"3\",\n }),\n curlSecret2: mqM({\n display: [\"none\", \"block\"],\n position: \"absolute\",\n top: [\"27%\", \"-4%\"],\n right: [\"13%\", \"15%\"],\n width: px(280, 420),\n margin: \"auto\",\n zIndex: \"3\",\n }),\n curlSecret2M: mqM({\n display: [\"block\", \"none\"],\n position: \"absolute\",\n top: [\"28%\", \"-4%\"],\n right: [\"30%\", \"15%\"],\n width: px(260, 380),\n margin: \"auto\",\n zIndex: \"3\",\n }),\n curlSecret3: mqM({\n display: [\"none\", \"block\"],\n position: \"absolute\",\n top: [\"27%\", \"-4%\"],\n right: [\"13%\", \"14%\"],\n width: px(280, 420),\n margin: \"auto\",\n zIndex: \"3\",\n }),\n curlSecret3M: mqM({\n display: [\"block\", \"none\"],\n position: \"absolute\",\n top: [\"28%\", \"-4%\"],\n right: [\"13%\", \"4%\"],\n width: px(260, 380),\n margin: \"auto\",\n zIndex: \"3\",\n }),\n priceStrong: mqB2({\n fontWeight: \"600\",\n fontSize: [\"16px\", rem(32)],\n }),\n rrp1: mqB2({\n color: \"white\",\n position: \"absolute\",\n top: [\"30%\", \"30%\", \"38%\", \"37%\", \"37%\", \"37%\", \"38%\", \"38%\"],\n left: [\"30%\", \"30%\", \"25%\", \"27%\", \"28%\", \"29%\", \"31%\", \"34%\"],\n fontSize: [\"0.9rem\", \"0.9rem\", \"0.9rem\", \"0.9rem\", \"0.9rem\", \"1.2rem\"],\n transform: \"rotate(68deg)\",\n }),\n rrp2: mqB2({\n color: \"white\",\n position: \"absolute\",\n top: [\"30%\", \"30%\", \"33%\", \"32%\", \"35%\", \"34%\", \"35%\", \"31%\"],\n left: [\"30%\", \"30%\", \"8%\", \"12%\", \"16%\", \"15%\", \"20%\", \"22%\"],\n fontSize: [\"0.9rem\", \"0.9rem\", \"0.9rem\", \"0.9rem\", \"0.9rem\", \"1.2rem\"],\n transform: \"rotate(68deg)\",\n textWrap: \"nowrap\",\n }),\n rrp3: mqB2({\n color: \"white\",\n position: \"absolute\",\n top: [\"30%\", \"30%\", \"33%\", \"32%\", \"31%\", \"31%\", \"31%\", \"31%\"],\n left: [\"30%\", \"30%\", \"38%\", \"41%\", \"40%\", \"39%\", \"41%\", \"44%\"],\n fontSize: [\"0.9rem\", \"0.9rem\", \"0.9rem\", \"0.9rem\", \"0.9rem\", \"1.2rem\"],\n transform: \"rotate(68deg)\",\n textWrap: \"nowrap\",\n }),\n rrpM1: mqM({\n color: \"white\",\n position: \"absolute\",\n top: \"26%\",\n left: \"26%\",\n fontSize: \"1rem\",\n transform: \"rotate(68deg)\",\n }),\n rrpM2: mqM({\n color: \"white\",\n position: \"absolute\",\n top: \"37%\",\n left: \"8%\",\n fontSize: \"1rem\",\n textWrap: \"nowrap\",\n transform: \"rotate(68deg)\",\n }),\n rrpM3: mqM({\n color: \"white\",\n position: \"absolute\",\n top: \"32%\",\n left: \"36%\",\n fontSize: \"1rem\",\n textWrap: \"nowrap\",\n transform: \"rotate(68deg)\",\n }),\n roundCallout: mqM({\n position: \"absolute\",\n zIndex: \"4\",\n top: [\"61%\", \"69%\"],\n right: [\"32%\", \"30%\"],\n width: px(100, 150),\n height: px(100, 150),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"white\",\n fontSize: [rem(28), rem(22)],\n fontFamily: \"Gotham, sans-serif\",\n fontWeight: \"300\",\n lineHeight: \"1.3\",\n }),\n roundCalloutM: mqM({\n position: \"absolute\",\n zIndex: \"4\",\n top: [\"61%\", \"69%\"],\n right: [\"35%\", \"30%\"],\n width: px(140, 150),\n height: px(140, 150),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"white\",\n fontSize: \"12px\",\n fontFamily: \"Gotham, sans-serif\",\n fontWeight: \"300\",\n lineHeight: \"1.3\",\n }),\n roundCallout2: mqM({\n position: \"absolute\",\n zIndex: \"4\",\n top: [\"69.9%\", \"69%\"],\n right: [\"36%\", \"36%\"],\n width: px(100, 150),\n height: px(100, 150),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"white\",\n fontSize: [rem(28), rem(22)],\n fontFamily: \"Gotham, sans-serif\",\n fontWeight: \"300\",\n textAlign: \"center\",\n lineHeight: \"1.3\",\n }),\n roundCallout2M: mqM({\n position: \"absolute\",\n zIndex: \"4\",\n top: [\"69.9%\", \"69%\"],\n right: [\"36%\", \"36%\"],\n width: px(140, 150),\n height: px(140, 150),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"white\",\n fontSize: \"12px\",\n fontFamily: \"Gotham, sans-serif\",\n fontWeight: \"300\",\n textAlign: \"center\",\n lineHeight: \"1.3\",\n }),\n roundCallout3: mqM({\n position: \"absolute\",\n zIndex: \"4\",\n top: [\"69.9%\", \"69%\"],\n right: [\"36%\", \"35%\"],\n width: px(100, 150),\n height: px(100, 150),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"white\",\n fontSize: [rem(28), rem(22)],\n fontFamily: \"Gotham, sans-serif\",\n fontWeight: \"300\",\n textAlign: \"center\",\n lineHeight: \"1.3\",\n }),\n roundCallout3M: mqM({\n position: \"absolute\",\n zIndex: \"4\",\n top: [\"69.9%\", \"69%\"],\n right: [\"30%\", \"36%\"],\n width: px(140, 150),\n height: px(140, 150),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"white\",\n fontSize: \"12px\",\n fontFamily: \"Gotham, sans-serif\",\n fontWeight: \"300\",\n textAlign: \"center\",\n lineHeight: \"1.3\",\n }),\n curlSeretLogoContainer: mqM({\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n top: [\"0%\", \"0%\"],\n }),\n curlSeretLogo: mqM({\n position: \"absolute\",\n left: \"50%\",\n top: [\"6%\", \"12%\"],\n transform: \"translate(-50%, 0)\",\n width: px(400, 490),\n margin: \"auto\",\n zIndex: \"10\",\n }),\n content: mqM({\n position: \"absolute\",\n zIndex: 10,\n left: \"50%\",\n transform: \"translate(-50%, 0)\",\n top: [\"22%\", \"30%\"],\n textAlign: \"center\",\n maxWidth: \"none\",\n }),\n title: mq(base.h2, {\n fontSize: [remM(32), rem(52)],\n lineHeight: [1.2, 1],\n fontWeight: [410, 700],\n fontStyle: \"italic\",\n textAlign: [\"center\", \"center\"],\n color: variables.color.gold,\n marginTop: [remM(0), rem(0)],\n marginBottom: 0,\n strong: {\n fontWeight: 700,\n },\n }),\n curlSecretVideo: mqM({\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n top: [\"72%\", \"63%\"],\n zIndex: 12,\n }),\n curlSecretVideo2: mqM({\n width: \"100%\",\n height: \"100%\",\n marginTop: \"-43rem\",\n }),\n buttonContainer: mqM({\n position: \"absolute\",\n left: \"50%\",\n transform: \"translate(-50%, 0)\",\n bottom: [\"66%\", \"49%\"],\n zIndex: \"15\",\n }),\n button: mq(style.sc.button, {\n fontSize: [remM(28), rem(30)],\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { mixin, mq, mq4, base, mqM } from \"../styles/common\";\nimport { motion } from \"framer-motion\";\nimport { motionAppearFromBottom } from \"../motions/common\";\n// eslint-disable-next-line\nimport { SiteLink } from \"components\";\n// eslint-disable-next-line\nimport { gtm } from \"lib/tracking\";\nconst { rem, remM, px } = mixin;\n\nexport function CurlPanel1({ style }) {\n const ss = getSectionStyle(style);\n return (\n
\n
\n
\n \n
\n
\n The future of curling has arrived:
from the experts who\n brought you\n
the ORIGINAL auto curler.\n
\n
\n
\n
\n \n
\n
\n

\n In 2013\n

\n
\n \n
\n

\n Over a decade ago, VS Sassoon revolutionised hair curling &\n introduced the first auto curler to the market.\n

\n
\n
\n \n
\n
\n \n

\n The original Curl Secret® automatic hair curler was a game-changer\n in the beauty industry, quickly becoming a must-have styling tool\n for women everywhere.\n

\n

\n Back then, “hair goes in, curl comes out” became the rallying cry\n for women who dreamed of a styling tool that would take the\n guesswork out of curling hair.\n

\n \n
\n
\n \n
\n
\n
\n

\n To NOW\n

\n
\n \n
\n {/* eslint-disable-next-line */}\n

\n
\n
\n

\n Meet the completely reimagined Curl Secret®. Transformed to be\n more versatile than ever, it's the ultimate hair styler for total\n foolproof styling & wow-worthy curls & waves made easy.\n

\n

\n Now with more customisation, more innovation & more magic, the\n Curl Secret® is the dream styling tool for all hair types.\n

\n \n
\n {/*
\n {\n gtm.sendEvent('discoverMoreButtonCurlSecret', {\n discoverMoreButtonName: 'Curl Secret',\n })\n }}\n >\n DISCOVER MORE\n \n
*/}\n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section: mqM({\n //height: [remM(1100), rem(1280), rem(1220), rem(980)],\n //height: [remM(1100), rem(1280), rem(1280), rem(1120)],\n //height: [rem(1900), rem(1280), rem(1280), rem(1120)],\n //paddingBottom: [20],\n //height: [remM(1050), remM(800), \"1200px\", \"1300px\"],\n position: \"relative\",\n //zIndex: 3,\n }),\n panelContainer: mq({\n //position: 'absolute',\n //left: '50%',\n //transform: 'translate(-50%, 0)',\n width: px(620, 1440),\n marginInline: \"auto\",\n }),\n topHeader: mq({\n fontSize: [remM(32), rem(55)],\n fontWeight: 700,\n color: \"#fff\",\n textAlign: \"center\",\n lineHeight: 1,\n }),\n topContainer: mq({\n width: px(620, 920),\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: [\"5% auto 5%\", \"5% auto 3%\"],\n }),\n headerContainer: mq({\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n }),\n header: mq({\n width: px(620, 980),\n }),\n imageLeft: mq({\n flex: \"0 0 45%\",\n }),\n yearContainer: mq({\n lineHeight: 1,\n flex: \"0 0 46%\",\n }),\n year: mq(base.h2, {\n fontSize: [remM(28), rem(48)],\n letterSpacing: \"3px\",\n color: style.variables.color.gold,\n marginTop: [remM(0), rem(0)],\n marginBottom: 0,\n textAlign: \"center\",\n strong: {\n fontWeight: 700,\n fontSize: [remM(50), rem(80)],\n },\n }),\n subHeader: mq4(base.h3, {\n fontSize: [remM(20), rem(32), rem(32), rem(26)],\n fontWeight: 300,\n color: \"#fff\",\n marginTop: [remM(10), rem(16)],\n marginLeft: [remM(30), rem(60)],\n marginRight: [remM(30), rem(60)],\n textAlign: \"center\",\n letterSpacing: \"2px\",\n lineHeight: \"1.3\",\n }),\n feature1: mq4(base.h3, {\n fontSize: [remM(20), rem(32), rem(32), rem(26)],\n fontWeight: 300,\n color: \"#fff\",\n marginBottom: [remM(20), rem(30)],\n marginLeft: [remM(30), rem(68)],\n marginRight: [remM(30), rem(68)],\n textAlign: \"center\",\n lineHeight: \"1.2\",\n }),\n feature2: mq4(base.h3, {\n fontSize: [remM(20), rem(32), rem(32), rem(26)],\n fontWeight: 300,\n color: \"#fff\",\n marginBottom: [remM(30), rem(60)],\n marginLeft: [remM(30), rem(68)],\n marginRight: [remM(30), rem(68)],\n textAlign: \"center\",\n lineHeight: \"1.2\",\n }),\n content: mq({\n fontSize: [remM(20), rem(20)],\n fontWeight: 300,\n letterSpacing: \"2px\",\n lineHeight: 1,\n }),\n buttonContainer: mq({\n position: \"absolute\",\n left: \"50%\",\n transform: \"translate(-50%, 0)\",\n zIndex: \"2\",\n }),\n button: mq(style.sc.button, {\n fontSize: [remM(28), rem(30)],\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core'\nimport { mixin, mq, mq4 } from '../styles/common'\nconst { rem, remM, px } = mixin\n\nexport function CurlPanel2({ style }) {\n const ss = getSectionStyle(style)\n return (\n
\n
\n
Make the magic happen in 3 easy steps…
\n
\n
\n
\n \n
\n
STEP 1
\n
Section hair & insert into slot.
\n
\n
\n
\n \n
\n
STEP 2
\n
\n Press START & watch the magic happen as hair gently wraps around\n the barrel.\n
\n
\n
\n
\n \n
\n
STEP 3
\n
\n After the beep, slowly release the curl downward.\n
\n
\n
\n
\n
\n )\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section: mq({\n backgroundColor: '#e0e0e0',\n paddingTop: px(20, 40),\n paddingBottom: px(20, 40),\n position: 'relative',\n zIndex: '1'\n }),\n content: mq({\n marginTop: px(40, 30),\n fontSize: [remM(20), rem(20)],\n fontWeight: 300,\n lineHeight: 1.5,\n width: px(650, 1900),\n color: 'white',\n marginLeft: 'auto',\n marginRight: 'auto',\n }),\n header: mq({\n fontSize: [remM(36), rem(52)],\n fontWeight: 500,\n lineHeight: 1.2,\n color: '#555',\n marginTop: [remM(10), rem(16)],\n margiBottom: [remM(0), rem(0)],\n textAlign: 'center',\n }),\n productContainer: mq({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: ['wrap', 'nowrap'],\n marginTop: ['2rem', '2rem', '3rem'],\n marginBottom: '0rem',\n maxWidth: px('auto', 1360),\n gap: px(10, 20),\n marginLeft: 'auto',\n marginRight: 'auto',\n }),\n productContainerItem: mq({\n flex: ['1 0 100%', '1 0 33%'],\n maxWidth: ['none', '33%'],\n marginBottom: px(40, 0),\n }),\n partImage: mq({\n margin: 'auto',\n maxWidth: px(300, '100%'),\n height: px(300, 240),\n display: 'flex',\n justifyContent: 'center',\n img: {\n maxHeight: '100%',\n width: 'auto',\n },\n }),\n productTitle: mq({\n fontSize: [remM(30), rem(34)],\n marginTop: '1rem',\n height: px('auto', 40),\n textAlign: 'center',\n lineHeight: 1,\n fontWeight: 600,\n color: '#555',\n }),\n productDesc: mq4({\n color: '#555',\n textAlign: 'center',\n fontSize: px(24, 24, 24, 24, 20),\n lineHeight: [1.2, 1.5],\n }),\n }\n return sectionStyle\n}\n","import { mq4 } from './common'\n\nexport default {\n videoContainer: mq4({\n position: 'relative',\n maxWidth: ['95%', '450px', '450px', '720px', ],\n margin: 'auto',\n marginTop: ['1rem', 'unset'],\n zIndex: '2',\n }),\n videolink: {\n position: 'absolute',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: '2',\n },\n playIcon: {\n position: 'absolute',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: '1',\n width: '100px',\n height: '100px',\n color: 'white',\n cursor: 'pointer',\n },\n backImgContainer: {\n position: 'absolute',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: '1',\n height: '100%',\n },\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport style from \"../styles/videoPanelStyle_large\";\nimport { MdPlayCircleOutline } from \"react-icons/md\";\nimport { mixin, mq } from \"../styles/common\";\nimport { motion } from \"framer-motion\";\nimport { motionAppearFromBottom } from \"../motions/common\";\nconst { rem, remM, px } = mixin;\n\nexport function HowToVideosPanel1({ openVideo }) {\n // eslint-disable-next-line\n const ss = getSectionStyle(style);\n return (\n
\n
\n \n {\n e.preventDefault();\n openVideo(0);\n }}\n >\n \n \n \n {/*
\n Watch & learn how-to create\n
\n soft, natural curls with Curl Secret®\n
*/}\n \n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n content: mq({\n marginTop: px(20, 30),\n marginBottom: px(60, 60),\n fontSize: [remM(24), rem(32)],\n fontWeight: 500,\n lineHeight: 1.2,\n color: \"white\",\n marginLeft: \"auto\",\n marginRight: \"auto\",\n textAlign: \"center\",\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core'\nimport { mixin, mq, mqM } from '../styles/common'\nimport { HowToVideosPanel1 } from '../sections/howToVideosPanel1'\nimport { useState } from 'react'\nimport { SiteLink } from 'components'\nimport { gtm } from 'lib/tracking'\nimport FsLightbox from 'fslightbox-react'\nconst { rem, remM, px } = mixin\n\nexport function CurlPanel3({ style }) {\n const ss = getSectionStyle(style)\n const [toggler, setToggler] = useState(false)\n const [popupIndex, setPopupIndex] = useState(0)\n function openVideo(index) {\n setPopupIndex(index)\n setToggler(!toggler)\n }\n const popupImages = ['https://www.youtube.com/watch?v=iHFcE7Pwhts']\n\n return (\n
\n
\n
The dream styling tool that creates easy,
endless curls & waves on mid-length to long hair.
\n
\n
\n \n \n
\n {\n gtm.sendEvent('discoverMoreButtonCurlSecret', {\n discoverMoreButtonName: 'Curl Secret',\n })\n }}\n >\n DISCOVER MORE\n \n
\n
\n
\n \n
\n
\n )\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section: mq({\n paddingTop: px(20, 80),\n }),\n headerContainer: mqM({\n position: 'relative',\n zIndex: '3',\n marginTop: [remM(20), remM(-35)],\n marginBottom: [remM(0), rem(40)],\n display: 'flex',\n justifyContent: 'center',\n width: '100ch',\n marginInline: 'auto'\n }),\n header: mq({\n fontSize: [remM(22), rem(36)],\n fontWeight: 450,\n lineHeight: 1.1,\n color: '#E4E1E8',\n textAlign: 'center',\n maxWidth: '90%',\n }),\n howToVideos: mq({\n width: '100%',\n height: '100%',\n }),\n buttonContainer: mq({\n position: 'absolute',\n left: '50%',\n transform: 'translate(-50%, 0)',\n zIndex: '2',\n }),\n button: mq(style.sc.button, {\n backgroundColor: \"#5C4768\",\n fontSize: [remM(28), rem(30)],\n marginTop: [rem(50), rem(50)],\n }),\n imageBg2: mqM({\n position: 'absolute',\n width: '100%',\n height: '100px',\n '& img': {\n marginTop: ['-47%', '-35%'],\n },\n }),\n }\n return sectionStyle\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport style from \"../styles/videoPanelStyle_large\";\nimport { MdPlayCircleOutline } from \"react-icons/md\";\nimport { mixin, mq } from \"../styles/common\";\nimport { motion } from \"framer-motion\";\nimport { motionAppearFromBottom } from \"../motions/common\";\nconst { rem, remM, px } = mixin;\n\nexport function HowToVideosPanel3({ openVideo }) {\n return (\n
\n
\n \n {\n e.preventDefault();\n openVideo(0);\n }}\n >\n \n \n \n \n
\n
\n );\n}\n// eslint-disable-next-line\nfunction getSectionStyle(style) {\n const sectionStyle = {\n content: mq({\n marginTop: px(20, 30),\n marginBottom: px(60, 60),\n fontSize: [remM(24), rem(32)],\n fontWeight: 500,\n lineHeight: 1.2,\n color: \"white\",\n marginLeft: \"auto\",\n marginRight: \"auto\",\n textAlign: \"center\",\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { mixin, mq, mqM } from \"../styles/common\";\nimport { useState } from \"react\";\nimport { SiteLink } from \"components\";\nimport { gtm } from \"lib/tracking\";\nimport FsLightbox from \"fslightbox-react\";\nimport { HowToVideosPanel3 } from \"./howToVideosPanel3\";\nconst { rem, remM, px } = mixin;\n\nexport function CurlPanel3Max({ style }) {\n const ss = getSectionStyle(style);\n const [toggler, setToggler] = useState(false);\n const [popupIndex, setPopupIndex] = useState(0);\n function openVideo(index) {\n setPopupIndex(index);\n setToggler(!toggler);\n }\n const popupImages = [\"https://www.youtube.com/watch?v=VmenArz4Tog\"];\n\n return (\n
\n
\n
\n The dream styling tool that creates easy, endless curls\n
& waves on mid-length to long & thick hair types.\n
\n
\n
\n \n \n
\n
\n {\n gtm.sendEvent(\"discoverMoreButtonCurlSecret\", {\n discoverMoreButtonName: \"Curl Secret\",\n });\n }}\n >\n DISCOVER MORE\n \n {/*
\n *3 curl directions comes only with corded model\n
*/}\n
\n
\n \n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section1: mq({\n paddingTop: px(80, 100),\n }),\n headerContainer1: mqM({\n position: \"relative\",\n zIndex: \"1\",\n marginTop: [remM(0), remM(-5)],\n marginBottom: [remM(0), rem(40)],\n display: \"flex\",\n justifyContent: \"center\",\n width: [\"103ch\", \"100ch\"],\n marginInline: \"auto\",\n }),\n header1: mq({\n fontSize: [remM(22), rem(36)],\n fontWeight: 450,\n lineHeight: 1.1,\n color: \"#E4E1E8\",\n textAlign: \"center\",\n maxWidth: \"90%\",\n }),\n howToVideos: mq({\n width: \"100%\",\n height: \"100%\",\n }),\n buttonContainer: mq({\n position: \"absolute\",\n left: \"50%\",\n transform: \"translate(-50%, 0)\",\n zIndex: \"20\",\n textAlign: \"center\",\n }),\n button: mq(style.sc.button, {\n backgroundColor: \"#5C4768\",\n fontSize: [remM(28), rem(30)],\n marginTop: [rem(50), rem(30)],\n }),\n disclaimer: mqM({\n color: \"white\",\n marginTop: [rem(70), rem(40)],\n fontStyle: \"italic\",\n fontSize: [remM(16), rem(20)],\n textAlign: \"center\",\n }),\n imageBg2: mqM({\n position: \"absolute\",\n width: \"100%\",\n height: \"100px\",\n \"& img\": {\n marginTop: [\"-47%\", \"-42%\"],\n },\n }),\n };\n return sectionStyle;\n}\n","import { motion } from \"framer-motion\";\nimport React from \"react\";\n\nexport function MotionBottomUp({ duration, delay = 0, children }) {\n const variants = {\n hidden: {\n opacity: 0,\n scale: 1,\n y: 100,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n y: 0,\n transition: {\n delay: delay,\n duration: duration,\n ease: \"easeInOut\",\n },\n },\n };\n return (\n \n {children}\n \n );\n}\n\nexport function MotionFadeIn({ duration = 1, children }) {\n const variants = {\n hidden: {\n opacity: 0,\n scale: 0.5,\n transition: {\n duration: 0.2,\n ease: \"easeInOut\",\n },\n },\n visible: {\n opacity: 1,\n scale: 1,\n transition: {\n duration: 0.75,\n type: \"spring\",\n stiffness: 100,\n damping: 10,\n },\n },\n };\n return (\n \n {children}\n \n );\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { mixin, mq, mq4 } from \"../styles/common\";\nimport { MotionBottomUp } from \"../motions/panels\";\nimport utils from \"utils\";\nconst { rem, remM, px } = mixin;\n\nfunction Col({ inx, children }) {\n var width = utils.css.screenWidth();\n if (width < 700) {\n return (\n \n {children}\n \n );\n } else {\n return (\n \n {children}\n \n );\n }\n}\nexport function DesPanel({ style }) {\n const ss = getSectionStyle(style);\n return (\n
\n
\n
\n
\n \n
\n \n
\n
tangle-free technology
\n
for worry-free styling
\n \n
\n
\n \n
\n \n
\n
various preset curl types
\n
blowout, wavy, soft & defined
\n \n
\n
\n \n
\n \n
\n
5 heat settings
\n
for all hair types
\n \n
\n
\n \n
\n \n
\n
3 curl directions
\n
for versatile styling
\n \n
\n
\n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section: mq({\n //backgroundColor: '#ab94b0',\n backgroundColor: \"#7C5782\",\n paddingTop: px(20, 40),\n paddingBottom: px(20, 40),\n //marginTop: '15%',\n position: \"relative\",\n zIndex: 4,\n }),\n content: mq4({\n marginTop: px(0, 30),\n fontSize: [remM(20), rem(20)],\n fontWeight: 300,\n letterSpacing: \"2px\",\n lineHeight: 1.5,\n width: px(650, 2160, 2160, 1900),\n color: \"white\",\n marginLeft: \"auto\",\n marginRight: \"auto\",\n }),\n productContainer: mq4({\n display: \"flex\",\n flexDirection: \"row\",\n flexWrap: [\"wrap\", \"nowrap\"],\n marginTop: [\"1rem\", \"1rem\", \"0rem\", \"0rem\", \"0rem\", \"3rem\"],\n marginBottom: [\"0rem\", \"0rem\", \"0rem\", \"0rem\", \"0rem\", \"2rem\"],\n maxWidth: px(\"auto\", 2160, 2160, 1920, 1920, 1520),\n gap: px(10, 20),\n marginLeft: \"auto\",\n marginRight: \"auto\",\n }),\n productContainerItem: mq({\n flex: [\"1 0 100%\", \"1 0 25%\"],\n maxWidth: [\"none\", \"25%\"],\n marginBottom: px(40, 0),\n }),\n partImage: mq({\n margin: \"auto\",\n maxWidth: px(300, \"100%\"),\n height: px(200, 200),\n display: \"flex\",\n justifyContent: \"center\",\n img: {\n maxHeight: \"100%\",\n width: \"auto\",\n },\n }),\n productTitle: mq4({\n fontSize: px(28, 28, 28, 20, 24),\n marginTop: \"1rem\",\n height: px(\"auto\", 40),\n textAlign: \"center\",\n lineHeight: [1.2, 1],\n fontWeight: 600,\n color: \"white\",\n }),\n productDesc: mq4({\n color: \"white\",\n textAlign: \"center\",\n fontSize: px(24, 24, 24, 24, 22),\n lineHeight: [1.2, 1],\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { css } from \"@emotion/core\";\nimport { motion, useScroll, useTransform } from \"framer-motion\";\nimport {\n motionAppearFromBottom,\n motionAppearFromBottom2,\n // eslint-disable-next-line\n motionAppearFromRight,\n // eslint-disable-next-line\n motionPopZero,\n // eslint-disable-next-line\n motionPop,\n} from \"../motions/common\";\nimport { mixin, mq, mqM, variables, viewportGuide } from \"../styles/common\";\nimport { useEffect, useRef } from \"react\";\nimport { useState } from \"react\";\n// eslint-disable-next-line\nconst { rem, remM, px, tx } = mixin;\n\nfunction useParallax(value, distance) {\n let _d = -distance;\n if (window.innerWidth >= 2560) {\n _d = -1000;\n } else {\n }\n return useTransform(value, [0, 1], [0, _d]);\n}\n\nfunction getLeftOver(ref) {\n const viewSize = viewportGuide();\n if (ref.current) {\n const h = ref.current.offsetHeight;\n return viewSize.width - h;\n }\n return null;\n}\n\nexport function CurlGirl({ style }) {\n const ref = useRef(null);\n const ss = getSectionStyle(style);\n const { scrollYProgress } = useScroll({\n target: ref,\n offset: [\"start end\", \"end start\"],\n });\n const leftVertical = getLeftOver(ref) ?? 300;\n // eslint-disable-next-line\n const [y] = useState(useParallax(scrollYProgress, leftVertical));\n\n useEffect(() => {\n function updateScroll() {\n console.log(scrollYProgress.get());\n console.log(\"scrollYProgress\", scrollYProgress);\n }\n const unsub = scrollYProgress.onChange(updateScroll);\n return () => {\n unsub();\n };\n }, [scrollYProgress]);\n\n useEffect(() => {\n const reset = (e) => {};\n reset();\n window.addEventListener(\"resize\", reset);\n return () => {\n window.removeEventListener(\"resize\", reset);\n };\n }, []);\n\n return (\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n 19mm barrel\n creates\n \n BOUNCY\n
\n CURLS &\n
\n WAVES\n
\n
\n \n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section: css(\n // mq({\n // //height: ['auto', rem(1120) /* or use \"100vh\" */],\n // height: ['auto', rem(1120) /* or use \"100vh\" */],\n // paddingTop: [0, 0],\n // position: 'relative',\n // color: variables.color.gold,\n // })\n mqM({\n //height: ['auto', rem(1120) /* or use \"100vh\" */],\n height: [rem(780), rem(1620) /* or use \"100vh\" */],\n //paddingTop: [0, 0],\n position: \"relative\",\n color: variables.color.gold,\n })\n ),\n // imageBg: mq({\n // position: 'relative',\n // width: '100%',\n // height: '100%',\n // '& img': {\n // marginTop: ['-29%', '-34%'],\n // },\n // }),\n imageBg: mqM({\n position: \"relative\",\n width: \"100%\",\n height: \"100px\",\n \"& img\": {\n marginTop: [\"-47%\", \"-49%\"],\n },\n }),\n imagesSection1: mq({\n // position: 'absolute',\n // marginTop: '-40%',\n // zIndex: '1',\n }),\n imagesSection2: mqM({\n width: \"100%\",\n height: \"100%\",\n }),\n // cloudLeft: mq({\n // position: 'absolute',\n // margin: 'auto',\n // top: ['6%', '11%'],\n // width: px(300, 830),\n // zIndex: '2',\n // }),\n cloudLeft: mqM({\n position: \"absolute\",\n top: [\"15%\", \"5%\"],\n width: px(200, 870),\n zIndex: [\"2\"],\n }),\n // cloudRight: mq({\n // position: 'absolute',\n // right: '0',\n // top: ['28%', '17%'],\n // margin: 'auto',\n // zIndex: '3',\n // width: px(700, 2320),\n // }),\n cloudRight: mqM({\n position: \"absolute\",\n right: [\"-5%\"],\n top: [\"41%\", \"40%\"],\n margin: \"auto\",\n zIndex: \"3\",\n transform: \"scaleX(-1)\",\n width: px(700, 2320),\n }),\n // girl: mq({\n // position: 'absolute',\n // left: '60%',\n // top: ['44%', '58%'],\n // transform: 'translate(-50%, -50%)',\n // width: px(600, 1800),\n // margin: 'auto',\n // zIndex: '4',\n // marginTop: '4%',\n // }),\n girl: mqM({\n position: \"absolute\",\n // left: ['60%', \"60%\"],\n top: [\"-14%\", \"-5%\"],\n right: [\"4%\", \"6%\"],\n // transform: 'translate(-50%, -50%)',\n width: px(540, 1800),\n margin: \"auto\",\n zIndex: \"4\",\n marginTop: \"4%\",\n }),\n // content: mq({\n // position: 'absolute',\n // left: '46%',\n // top: ['57%', '83%'],\n // transform: tx('-50%'),\n // textAlign: 'center',\n // width: px(700, 1900),\n // maxWidth: 'none',\n // zIndex: '5',\n // }),\n curlSeretLogo: mqM({\n position: \"absolute\",\n left: \"50%\",\n top: [\"78%\", \"79%\"],\n transform: \"translate(-50%, 0)\",\n width: px(100, 590),\n margin: \"auto\",\n zIndex: \"10\",\n }),\n content: mqM({\n position: \"absolute\",\n top: [\"69%\", \"58%\"],\n left: [\"55%\", \"54%\"],\n //transform: tx('-50%'),\n textAlign: \"center\",\n width: px(700, 1900),\n maxWidth: \"none\",\n zIndex: \"5\",\n }),\n title: mqM({\n position: \"absolute\",\n lineHeight: 1.2,\n textAlign: [\"center\", \"center\"],\n width: px(115, 315),\n height: px(115, 315),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n color: variables.color.gold,\n display: \"flex\",\n justifyContent: \"center\",\n //alignItems: 'center',\n flexDirection: \"column\",\n }),\n subtitle: mqM({\n fontSize: [remM(10), rem(30)],\n color: \"white\",\n }),\n subtitleCreates: mqM({\n fontSize: [remM(10), rem(30)],\n color: variables.color.gold,\n }),\n mainSubtitle: mqM({\n fontSize: [remM(16), rem(44)],\n fontWeight: 600,\n color: variables.color.gold,\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { css } from \"@emotion/core\";\nimport { motion, useScroll, useTransform } from \"framer-motion\";\nimport {\n motionAppearFromBottom,\n motionAppearFromBottom2,\n} from \"../motions/common\";\nimport { mixin, mq, mqM, variables, viewportGuide } from \"../styles/common\";\nimport { useEffect, useRef } from \"react\";\nimport { useState } from \"react\";\nconst { rem, remM, px } = mixin;\n\nfunction useParallax(value, distance) {\n let _d = -distance;\n if (window.innerWidth >= 2560) {\n _d = -1000;\n } else {\n }\n return useTransform(value, [0, 1], [0, _d]);\n}\n\nfunction getLeftOver(ref) {\n const viewSize = viewportGuide();\n if (ref.current) {\n const h = ref.current.offsetHeight;\n return viewSize.width - h;\n }\n return null;\n}\n\nexport function CurlGirl3({ style }) {\n const ref = useRef(null);\n const ss = getSectionStyle(style);\n const { scrollYProgress } = useScroll({\n target: ref,\n offset: [\"start end\", \"end start\"],\n });\n const leftVertical = getLeftOver(ref) ?? 300;\n // eslint-disable-next-line\n const [y] = useState(useParallax(scrollYProgress, leftVertical));\n\n useEffect(() => {\n function updateScroll() {\n // console.log(scrollYProgress.get());\n // console.log(\"scrollYProgress\", scrollYProgress);\n }\n const unsub = scrollYProgress.onChange(updateScroll);\n return () => {\n unsub();\n };\n }, [scrollYProgress]);\n\n useEffect(() => {\n const reset = (e) => {};\n reset();\n window.addEventListener(\"resize\", reset);\n return () => {\n window.removeEventListener(\"resize\", reset);\n };\n }, []);\n\n return (\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n 32mm barrel\n creates\n \n BIG CURLS\n
\n & SOFT\n
\n WAVES\n
\n
\n \n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section2: css(\n mq({\n height: [rem(1100), rem(1810) /* or use \"100vh\" */],\n paddingTop: [0, 0],\n position: \"relative\",\n color: variables.color.gold,\n })\n ),\n imageBg2: mqM({\n position: \"relative\",\n width: \"100%\",\n \"& img\": {\n height: [rem(600), rem(1000)],\n marginTop: [\"17%\", \"7%\"],\n },\n }),\n imagesSection12: mq({}),\n imagesSection22: mqM({\n width: \"100%\",\n height: \"100%\",\n }),\n cloudLeft2: mqM({\n position: \"absolute\",\n margin: \"auto\",\n top: [\"13%\", \"7%\"],\n right: [\"-5%\", \"0%\"],\n transform: \"scaleX(-1)\",\n width: px(300, 870),\n zIndex: \"2\",\n }),\n cloudRight2: mqM({\n position: \"absolute\",\n left: [\"-6%\"],\n top: [\"45%\", \"39%\"],\n margin: \"auto\",\n zIndex: \"3\",\n width: px(700, 2520),\n }),\n girl2: mqM({\n position: \"absolute\",\n top: [\"17%\", \"5%\"],\n left: [\"0%\", \"9%\"],\n width: px(700, 2000),\n margin: \"auto\",\n zIndex: \"4\",\n }),\n curlSeretLogo: mqM({\n position: \"absolute\",\n left: \"50%\",\n top: [\"88%\", \"82%\"],\n transform: \"translate(-50%, 0)\",\n width: px(100, 590),\n margin: \"auto\",\n zIndex: \"10\",\n }),\n content2: mqM({\n position: \"absolute\",\n top: [\"88%\", \"64%\"],\n left: [\"32%\", \"33%\"],\n //transform: tx('-50%'),\n textAlign: \"center\",\n width: px(700, 1900),\n maxWidth: \"none\",\n zIndex: \"5\",\n }),\n title2: mqM({\n position: \"absolute\",\n lineHeight: 1.2,\n textAlign: [\"center\", \"center\"],\n width: px(115, 315),\n height: px(115, 315),\n backgroundColor: \"rgba(134, 101, 151, 0.8)\",\n borderRadius: \"100%\",\n color: variables.color.gold,\n display: \"flex\",\n justifyContent: \"center\",\n //alignItems: 'center',\n flexDirection: \"column\",\n }),\n subtitle2: mqM({\n fontSize: [remM(10), rem(30)],\n color: \"white\",\n }),\n subtitleCreates2: mqM({\n fontSize: [remM(10), rem(30)],\n color: variables.color.gold,\n }),\n mainSubtitle2: mqM({\n fontWeight: 600,\n fontSize: [remM(16), rem(44)],\n color: variables.color.gold,\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { css } from \"@emotion/core\";\nimport { mq, mq4, mixin, variables } from \"../styles/common\";\nimport utils from \"../../../utils\";\nconst { rem, remM, px } = mixin;\n\nconst auShops = [\n [\n \"harvey-norman\",\n \"Harvey Norman\",\n \"harvey-norman.png\",\n \"https://www.harveynorman.co.nz/index.php?subcats=Y&status=A&pshort=N&pfull=N&pname=Y&pkeywords=Y&search_performed=Y&q=vssassoon&dispatch=products.search\",\n ],\n [\n \"jbhifi\",\n \"JB HI-FI\",\n \"jbhifi.jpg\",\n \"https://www.jbhifi.co.nz/?q=vs%20sassoon&\",\n ],\n [\n \"farmers\",\n \"Farmers\",\n \"farmers.png\",\n \"https://www.farmers.co.nz/brand-VS%20Sassoon\",\n ],\n];\n\nconst nzShops = [\n [\n \"harvey-norman\",\n \"Harvey Norman\",\n \"harvey-norman.png\",\n \"https://www.harveynorman.co.nz/index.php?subcats=Y&status=A&pshort=N&pfull=N&pname=Y&pkeywords=Y&search_performed=Y&q=vssassoon&dispatch=products.search\",\n ],\n [\n \"noel-leeming\",\n \"Noel Leeming \",\n \"noel-leeming.png\",\n \"https://www.noelleeming.co.nz/shop/vssassoon/cBRAND_VSSASSOON-p1.html\",\n ],\n [\n \"jbhifi\",\n \"JB HI-FI\",\n \"jbhifi.jpg\",\n \"https://www.jbhifi.co.nz/?q=vs%20sassoon&\",\n ],\n [\n \"farmers\",\n \"Farmers\",\n \"farmers.png\",\n \"https://www.farmers.co.nz/brand-VS%20Sassoon\",\n ],\n];\n\nexport function WhereToBuy({ style }) {\n const isNZ = utils.site.isNZ;\n const shops = isNZ ? nzShops : auShops;\n\n const ss = getSectionStyle(style);\n const ssShops = getShopStyle(style);\n return (\n
\n
\n \n
\n
\n
\n

BUY NOW

\n
    \n {shops.map((shop, index) => (\n
  • \n
    \n \n {shop[1]}\n \n
    \n
  • \n ))}\n
\n
\n
\n
\n );\n}\n\nfunction getShopStyle(style) {\n const shops = {\n list: mq({\n textAlign: \"center\",\n // width: px(\"100%\", 600),\n margin: \"auto\",\n marginTop: px(40, 0),\n display: [\"block\"],\n alignItems: \"center\",\n figure: {\n margin: 0,\n },\n }),\n ul: mq({\n margin: \"0.5rem auto\",\n padding: \"0\",\n display: \"flex\",\n flexWrap: \"wrap\",\n listStyle: \"none\",\n justifyContent: \"center\",\n }),\n li: css(\n mq({\n padding: 5,\n textAlign: \"center\",\n flex: [\"0 1 33.3%\", \"0 1 33.3%\"],\n maxWidth: [160, rem(260)],\n })\n ),\n logo: css({}),\n };\n return shops;\n}\nfunction getSectionStyle(style) {\n const sc = style.sc;\n const sectionStyle = {\n section: mq(sc.section, {\n zIndex: 10,\n marginTop: [remM(0), rem(0)],\n paddingTop: px(280, 520),\n paddingBottom: px(0, 0),\n position: \"relative\",\n height: [rem(1440), rem(920)],\n backgroundPosition: \"top center\",\n backgroundSize: \"cover\",\n }),\n imageBg: mq({\n position: \"relative\",\n width: \"100%\",\n height: \"100%\",\n \"& img\": {\n marginTop: [\"-40%\", \"-22%\"],\n height: [\"200%\", \"390%\"],\n },\n }),\n content: mq4(sc.content, {\n padding: [\n `${0} ${remM(20)} ${remM(150)} ${remM(20)}`,\n `${0} ${rem(20)} ${rem(20)} ${rem(20)}`,\n ],\n width: px(\"100%\", 1000),\n textAlign: \"center\",\n transform: [`none`, `translate(-50%, 0)`],\n marginTop: [\"-88%\", \"-28%\", \"-26%\", \"-26%\", \"-25%\"],\n }),\n header: css(\n sc.header,\n mq({\n textAlign: [\"center\", \"center\"],\n color: variables.color.fontColor,\n fontSize: px(40, 60),\n strong: {\n color: variables.color.gold,\n },\n margin: \"0 0 2rem\",\n fontWeight: \"600\",\n })\n ),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { mq, mixin, mqM } from \"../styles/common\";\nconst { rem, remM, px } = mixin;\n\nexport function PackageBottom({ style }) {\n const ss = getSectionStyle(style);\n return (\n
\n
\n \n
\n
\n \n
\n
\n );\n}\n\nfunction getSectionStyle(style) {\n const sectionStyle = {\n section: mq({\n marginTop: [remM(0), rem(-160)],\n position: \"relative\",\n background: \"#ece7e3\",\n height: [remM(0), rem(0)],\n backgroundPosition: \"top center\",\n backgroundSize: \"cover\",\n zIndex: 100,\n }),\n productPackage1: mqM({\n display: [\"none\", \"block\"],\n zIndex: 1,\n width: px(600, 1380),\n position: \"absolute\",\n bottom: [\"-2px\", \"0\"],\n left: \"50%\",\n transform: [\n `translate(${remM(-300)}, ${remM(100)})`,\n `translate(${rem(-640)}, ${rem(300)})`,\n ],\n }),\n productPackage1M: mqM({\n display: [\"block\", \"none\"],\n zIndex: 1,\n width: px(580, 1300),\n position: \"absolute\",\n bottom: [\"28px\", \"0\"],\n left: \"50%\",\n transform: [\n `translate(${remM(-280)}, ${remM(160)})`,\n `translate(${rem(-600)}, ${rem(300)})`,\n ],\n }),\n };\n return sectionStyle;\n}\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core'\nimport { css } from '@emotion/core'\nimport { mq } from '../styles/common'\n\nexport function LoveYourStyle({ style, width }) {\n const ss = getSectionStyle(style, width)\n return (\n
\n )\n}\n\nfunction getSectionStyle(style, width) {\n const sectionStyle = {\n parallax: css(\n mq({\n height: [300, 570, 900],\n backgroundPositionX: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundImage: `url(/dist/curlsecret-stg/images/love-your-style-3${\n width < 800 ? '' : ''\n }.png)`,\n marginTop: ['0', '6%'],\n })\n ),\n }\n return sectionStyle\n}\n","import { au } from '../../components'\n\n/* background image height =\n + cutoff padding = always hidden padding - usually 10 px\n + panel height (desired parallax panel height)\n + padding height = panel height * padding height ratio\n + cutoff padding = always hidden padding - usually 10 px\n*/\n\nconst defaultSettings = {\n cutoffPadding: 10,\n paddingHeightRatio: 1,\n //screenSize\n}\n\nexport function init(data) {\n data.settings.screenSize = au.getScreenSize()\n data.settings = Object.assign({}, defaultSettings, data.settings)\n data.panels.forEach((panel) => {\n const el = document.querySelector(panel.selector)\n if (!el) {\n panel.el = null\n return\n }\n const autoPanelHeight = !panel.panelHeight || panel.panelHeight === 'auto'\n const panelHeight = autoPanelHeight\n ? el.offsetHeight\n : parseFloat(panel.panelHeight)\n //console.log(autoPanelHeight, panelHeight)\n\n const calculated = { shadowHeight: 0, shadowWidth: 0, fromTop: 0, toTop: 0 }\n calculated.shadowHeight =\n panelHeight * (1 + data.settings.paddingHeightRatio) +\n 2 * data.settings.cutoffPadding\n calculated.shadowWidth = calculated.shadowHeight / panel.imageRatio\n if (calculated.shadowWidth < data.settings.screenSize.width) {\n // magnifying the background image to fix the full width of the browser\n calculated.shadowWidth = data.settings.screenSize.width\n calculated.shadowHeight = calculated.shadowWidth * panel.imageRatio\n }\n\n calculated.fromTop = -data.settings.cutoffPadding\n calculated.toTop =\n -calculated.shadowHeight + panelHeight + data.settings.cutoffPadding\n\n if (!autoPanelHeight) el.style.height = panel.panelHeight + 'px'\n\n el.style.backgroundSize =\n calculated.shadowWidth + 'px ' + calculated.shadowHeight + 'px'\n\n panel.el = el\n panel.calculated = calculated\n //console.log(data, calculated)\n })\n}\n\nexport function onScroll(data) {\n data.panels.forEach((panel) => {\n if (!panel.el) return\n const pr = au.getScrollProgress(panel.el).progress\n //console.log(pr);\n\n const min = panel.calculated.fromTop\n const max = panel.calculated.toTop\n const top = au.prVal(min, max, pr, [0, 1])\n //console.log(top);\n panel.el.style.backgroundPositionY = top + 'px'\n })\n}\n","export const ParallaxData = {\n settings: {\n screenSize: null,\n },\n panels: [\n {\n selector: '.curlSecret-parallax',\n imageRatio: 1080 / 1920,\n panelHeight: 'auto',\n paddingHeightRatio: 0.8,\n actionRange: [-0.3, 0.8],\n },\n {\n selector: '.curlSecret-loveYourStyle',\n imageRatio: 1080 / 1920,\n panelHeight: 'auto',\n },\n ],\n}\n","import { au } from '../../components'\nimport * as parallax from './parallax'\nimport { ParallaxData } from './parallax-data'\n\nexport class ScrollAnimationMobile {\n parallaxData\n constructor() {\n this.parallaxData = Object.assign({}, ParallaxData)\n }\n\n onInit() {\n this.initParallax()\n }\n\n onDestroy() {\n console.log('destroy mobile animation')\n }\n\n onResize(ev) {\n this.initParallax()\n }\n\n onScroll(ev) {\n parallax.onScroll(this.parallaxData)\n\n //this.sectionTop();\n //this.sectionNikki();\n //this.sectionSarah();\n //this.sectionCurlTypes();\n }\n\n initParallax() {\n parallax.init(this.parallaxData)\n parallax.onScroll(this.parallaxData)\n }\n\n sectionTop() {\n const section = document.querySelector('.section-top')\n const productImg = section.querySelector('.product-img')\n const pr = au.getScrollProgress(productImg).top\n au.setClass(productImg, 'animated', pr, [0.1, au.MAX])\n }\n\n sectionNikki() {\n const section = document.querySelector('.section-nikki')\n const pr = au.getScrollProgress(section).top\n au.setClass(section, 'animated', pr, [0.6, au.MAX])\n // const hero = section.querySelector('.hero')\n // const content = section.querySelector('.content')\n // const pr = au.getScrollProgress(section).top;\n // console.log(pr)\n // au.transform(hero, au.prVal(50, -10, pr, [0.3, 0.5]) + '%' , '0.57142857rem')\n // au.transform(content, au.prVal(30, -50, pr, [0.3, 0.5]) + '%' , '0')\n }\n\n sectionSarah() {\n const section = document.querySelector('.section-sarah')\n const pr = au.getScrollProgress(section).top\n au.setClass(section, 'animated', pr, [0.6, au.MAX])\n // const hero = section.querySelector('.hero')\n // const content = section.querySelector('.content')\n const sliceBg = section.querySelector('.slice-bg')\n // const pr = au.getScrollProgress(section).top;\n // au.transform(hero, au.prVal(-50, 10, pr, [0.3, 0.5]) + '%' , '-1.14285714rem')\n // au.transform(content, au.prVal(-120, -50, pr, [0.3, 0.5]) + '%' , '0')\n au.transform(sliceBg, au.prVal(-60, -45, pr, [0.3, 0.6]) + '%', '0')\n }\n\n sectionCurlTypes() {\n const section = document.querySelector('.section-curl-types')\n const pr = au.getScrollProgress(section).top\n au.setClass(section, 'animated', pr, [0.6, au.MAX])\n }\n}\n","import { au } from '../../components'\nimport * as parallax from './parallax'\nimport { ParallaxData } from './parallax-data'\n\nexport class ScrollAnimationDesktop {\n parallaxData\n constructor() {\n this.parallaxData = Object.assign({}, ParallaxData)\n }\n\n onInit() {\n console.log('onInit')\n this.initParallax()\n }\n\n onDestroy() {\n console.log('destroy desktop animation')\n }\n\n onResize(ev) {\n console.log('onResize')\n this.initParallax()\n }\n\n onScroll(ev) {\n parallax.onScroll(this.parallaxData)\n // this.sectionTop();\n // this.sectionNikki();\n // this.sectionSarah();\n // this.sectionCurlTypes();\n }\n\n initParallax() {\n parallax.init(this.parallaxData)\n parallax.onScroll(this.parallaxData)\n }\n\n sectionTop() {\n const section = document.querySelector('.section-top')\n const productImg = section.querySelector('.product-img')\n const pr = au.getScrollProgress(productImg).top\n au.setClass(productImg, 'animated', pr, [0.1, au.MAX])\n }\n\n sectionNikki() {\n const section = document.querySelector('.section-nikki')\n const pr = au.getScrollProgress(section).top\n au.setClass(section, 'animated', pr, [0.5, au.MAX])\n // const hero = section.querySelector('.hero')\n // const content = section.querySelector('.content')\n // const pr = au.getScrollProgress(section).top;\n // console.log(pr)\n // au.transform(hero, au.prVal(50, -10, pr, [0.3, 0.5]) + '%' , '0.57142857rem')\n // au.transform(content, au.prVal(30, -50, pr, [0.3, 0.5]) + '%' , '0')\n }\n\n sectionSarah() {\n const section = document.querySelector('.section-sarah')\n const pr = au.getScrollProgress(section).top\n au.setClass(section, 'animated', pr, [0.5, au.MAX])\n // const hero = section.querySelector('.hero')\n // const content = section.querySelector('.content')\n // const sliceBg = section.querySelector('.slice-bg')\n // const pr = au.getScrollProgress(section).top;\n // au.transform(hero, au.prVal(-50, 10, pr, [0.3, 0.5]) + '%' , '-1.14285714rem')\n // au.transform(content, au.prVal(-120, -50, pr, [0.3, 0.5]) + '%' , '0')\n // au.transform(sliceBg, au.prVal(-60, -45, pr, [0.3, 0.6]) + '%' , '0')\n }\n\n sectionCurlTypes() {\n const section = document.querySelector('.section-curl-types')\n const pr = au.getScrollProgress(section).top\n au.setClass(section, 'animated', pr, [0.6, au.MAX])\n }\n}\n","/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport style from \"./curlSecretStyle\";\nimport React from \"react\";\nimport \"./scss/index.scss\";\nimport utils from \"../../utils\";\nimport env from \"../../env\";\nimport { MetaTag } from \"../../components\";\nimport LandingTopNav from \"../landingCommon/landingTopNav\";\nimport { MainPanel } from \"./sections/mainPanel\";\nimport { CurlPanel1 } from \"./sections/curlPanel1\";\nimport { CurlPanel2 } from \"./sections/curlPanel2\";\nimport { CurlPanel3 } from \"./sections/curlPanel3\";\n// import { CurlPanel3Cordless } from \"./sections/curlPanel3Cordless\";\nimport { CurlPanel3Max } from \"./sections/curlPanel3Max\";\n// import { CurlPanel5 } from \"./sections/curlPanel5\";\nimport { DesPanel } from \"./sections/desPanel\";\nimport { CurlGirl } from \"./sections/curlGirl\";\n// import { CurlGirl2 } from \"./sections/curlGirl2\";\nimport { CurlGirl3 } from \"./sections/curlGirl3\";\nimport { WhereToBuy } from \"./sections/whereToBuy\";\nimport { PackageBottom } from \"./sections/packageBottom\";\nimport { LoveYourStyle } from \"./sections/loveYourStyle\";\nimport { ScrollAnimationMobile } from \"./scroll-animation-mobile\";\nimport { ScrollAnimationDesktop } from \"./scroll-animation-desktop\";\nimport { gtm } from \"../../lib/tracking\";\n\nexport default function CurlSecret() {\n const [scrollAnimationMobile] = React.useState(new ScrollAnimationMobile());\n const [scrollAnimationDesktop] = React.useState(new ScrollAnimationDesktop());\n const [currentScrollAnimationHandler, setCurrentScrollAnimationHandler] =\n React.useState(getScrollAnimationHandler());\n // eslint-disable-next-line\n const [width, setWidth] = React.useState(0);\n\n React.useLayoutEffect(() => {\n gtm.pageView(\"/curl-secret-v2\", \"New Curl Secret\");\n utils.site.callMCPoopu();\n setScrollAnimationHandler();\n if (typeof window !== `undefined`) {\n window.addEventListener(\"scroll\", handleScroll);\n window.addEventListener(\"resize\", handleResize);\n }\n handleScroll(null);\n handleResize(null);\n return () => {\n // console.log(\"curlSecretV2 - removed\");\n if (typeof window !== `undefined`) {\n window.removeEventListener(\"scroll\", handleScroll);\n window.removeEventListener(\"resize\", handleResize);\n }\n };\n // eslint-disable-next-line\n }, []);\n\n function getScrollAnimationHandler() {\n const winW = utils.css.screenWidth();\n\n return winW >= 768 ? scrollAnimationDesktop : scrollAnimationMobile;\n }\n\n function setScrollAnimationHandler() {\n const winW = utils.css.screenWidth();\n const currentHandlerName =\n currentScrollAnimationHandler &&\n currentScrollAnimationHandler.constructor.name;\n if (winW >= 768) {\n if (currentHandlerName === \"ScrollAnimationMobile\") {\n scrollAnimationMobile.onDestroy();\n }\n setCurrentScrollAnimationHandler(scrollAnimationDesktop);\n } else {\n if (currentHandlerName === \"ScrollAnimationDesktop\") {\n scrollAnimationDesktop.onDestroy();\n }\n setCurrentScrollAnimationHandler(scrollAnimationMobile);\n }\n }\n\n function handleScroll($event) {\n if (currentScrollAnimationHandler)\n currentScrollAnimationHandler.onScroll($event);\n }\n\n function handleResize($event) {\n setWidth(utils.css.screenWidth());\n setScrollAnimationHandler();\n if (currentScrollAnimationHandler)\n currentScrollAnimationHandler.onResize($event);\n }\n\n return (\n \n
\n \n \n
\n \n \n \n \n \n \n {/* \n */}\n \n \n {/* */}\n \n
\n
\n \n \n \n \n );\n}\n\nfunction getMetaTag() {\n const country = utils.site.isNZ ? \"New Zealand\" : \"Australia\";\n const siteName = env.siteName + \" \" + country;\n return {\n title: \"New Curl Secret® for perfect curls | \" + siteName,\n description:\n \"From the experts who created the original auto curler in 2013: meet the new Curl Secret Ceramic Auto Curler. For dreamy curls & waves that last for days.\",\n heroImageUrl: utils.site.fullUrl(\n \"/dist/curlsecret-stg/images/hero-new-curl-secret.png\"\n ),\n language: \"English\",\n country: utils.site.isNZ ? \"New Zealand\" : \"Australia\",\n siteName: env.siteName,\n url: utils.site.fullUrl(\"/curl-secret\"),\n alternates: utils.site.getAlternates(\"/curl-secret\"),\n //facebook-domain-verification\n faceBookDomainVerifi:\n country === \"New Zealand\"\n ? env.FaceBookDomainVerifiNZ\n : env.FaceBookDomainVerifiAU,\n };\n}\n"],"sourceRoot":""}