1<!DOCTYPE HTML> 2<html class="js-unavailable" lang="en"> 3 <head> 4 5 6 7<!-- Start of Shoplift scripts --> 8<!-- 2026-05-07T22:04:25.2573778Z --> 9<style>.shoplift-hide { opacity: 0 !important; }</style> 10<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
11<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-06-01T13:45:00.7221233Z */(function(){"use strict";var tt=document.createElement("style");tt.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(tt);var ht=" daum[ /]| deusu/| yadirectfetcher|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?: ya| yandex|^job|inapp;) ?)search|(?<!(?:lib))http|(?<![hg]m)score|@[a-z][\\w-]+\\.|\\(\\)|\\.com|\\b\\d{13}\\b|^<|^[\\w \\.\\-\\(?:\\):]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[^ ]{50,}$|^\\d+\\b|^\\w+/[\\w\\(\\)]*$|^active|^ad muncher|^amaya|^avsdevicesdk/|^biglotron|^bot|^bw/|^clamav[ /]|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d \\(compatible;?\\)$|^mozilla/\\d\\.\\d \\w*$|^navermailapp|^netsurf|^offline|^owler|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^valid|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|^{{.*}}$|admin|analyzer|archive|ask jeeves/teoma|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check|chrome-lighthouse|chromeframe|classifier|clean|cloud|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|evc-batch/|feed|firep
11hp|gomezagent|headless|httrack|hubspot marketing grader|hydra|ibisbrowser|images|insight|inspect|iplabel|ips-agent|java(?!;)|library|mail\\.ru/|manager|measure|neustar wpm|node|nutch|offbyone|optimize|pageburst|pagespeed|parser|perl|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|reputation|resolver|retriever|rexx;|rigor|rss\\b|scan|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|synapse|synthetic|tools|torrent|trace|transcoder|url|virtuoso|wappalyzer|watch|webglance|webkit2png|whatcms/|zgrab",ft=/bot|spider|crawl|http|lighthouse/i,z;function gt(){if(z instanceof RegExp)return z;try{z=new RegExp(ht,"i")}catch{z=ft}return z}function mt(a){return!!a&>().test(a)}class Q{timestamp;constructor(){this.timestamp=new Date}}class yt extends Q{type;testId;hypothesisId;constructor(t,e,i){super(),this.type=3,this.testId=t,this.hypothesisId=e,this.timestamp=i}}class vt extends Q{type;path;constructor(t){super(),this.type=4,this.path=t}}class wt extends Q{type;cart;constructor(t){super(),this.type=5,this.cart=t}}class et extends Error{isBot;constructor(){super(),this.isBot=!0}}function bt(a,t,e){for(const i of t.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)e(t.testId,t.hypothesisId)}st(a,t,(i,s,r,n,o)=>o(s,r),e)}function U(a,t,e){for(const i of t.selectors)rt(a,t.testId,t.hypothesisId,i,e??(()=>{}));st(a,t,rt,e??(()=>{}))}function it(a){return a.urlPatterns.reduce((t,e)=>{switch(e.operator){case"contains":return t+`.*${e}.*`;case"endsWith":return t+`.*${e}`;case"startsWith":return t+`${e}.*`}},"")}function st(a,t,e,i){new MutationObserver(()=>{for(const r of t.selectors)e(a,t.testId,t.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function rt(a,t,e,i,s){const r=a.querySelectorAll(i.cssSelector);for(let n=0;n<r.length;n++){let o=r.item(n);if(o instanceof HTMLElement&&o.dataset.shoplift!==""){o.dataset.shoplift="";for(const l of i.actions.sort(kt))o=St(a,i.cssSelector,o,l)}}return r.length>0&&s?(s(t,e),!0):!1}function St(a,t,e,i){switch(i.type){case"innerHtml":e.innerHTML=i.value;break;case"attribute":Ct(e,i.scope,i.value);break;case"css":Tt(a,t,i.value);break;case"js":It(a,e,i);break;case"copy":return Pt(e);case"remove":At(e);break;case"move":Et(e,parseInt(i.value));break}return e}function Ct(a,t,e){a.setAttribute(t,e)}function Tt(a,t,e){const i=a.createElement("style");i.innerHTML=`${t} { ${e} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function It(a,t,e){Function("document","element",`"use strict"; ${e.value}`)(a,t)}function Pt(a){const t=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(t,a.nextSibling),t}function At(a){a.remove()}function Et(a,t){if(t===0)return;const e=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(e+t,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(t>0?"afterend":"beforebegin",a)}function kt(a,t){return nt(a)-nt(t)}function nt(a){return a.type==="copy"||a.type==="remove"?0:1}var M=(a=>(a[a.Template=0]="Template",a[a.Theme=1]="Theme",a[a.UrlRedirect=2]="UrlRedirect",a[a.Script=3]="Script",a[a.Dom=4]="Dom",a[a.Price=5]="Price",a))(M||{});const xt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",_t="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L
117.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Rt(a){let t=a.replace(/-/g,"+").replace(/_/g,"/");for(;t.length%4;)t+="=";const e=atob(t),i=Uint8Array.from(e,n=>n.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,t){return typeof t=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(t)?new Date(t):t}function X(a,t){return t}function q(a,t=!1,e=!1,i=","){const s=a/100;if(e){const n=Math.round(s).toLocaleString("en-US");return i!==","?n.replace(/,/g,i):n}else{const r=t?",":".",n=s.toFixed(2).split("."),o=parseInt(n[0],10),l=n[1]??"00",c=o.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:t?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,t,e,i){const s=t.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${e}`:s}function ot(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const t=new Map;for(const[e,i,s]of a.variants)t.set(e,{priceInCents:i,compareAtPriceInCents:s});return t}function Dt(a,t,e,i){const{priceInCents:s,compareAtPriceInCents:r}=e,{moneyFormat:n,currency:o,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===t)a.innerHTML=H(s,n,o,l);else if(a.getAttribute("data-sl-attribute-cap")===t)r<=0||r<=s?a.remove():a.innerHTML=H(r,n,o,l);else if(a.getAttribute("data-sl-attribute-discount")===t&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),p=ot(H(r-s,n,o,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${p}`:h==="both"&&(a.textContent=`-${d}% (-${p})`)}}function Ot(a){const t=[],e={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){t.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[e],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const n=r<=0||r<=s;if(t.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[e],actions:[{id:`cap-action-${i}`,type:n?"remove":"innerHtml",scope:"compare-at-price",value:n?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!n&&r>s){const o=Math.round((r-s)/r*100),l=ot(H(r-s,a.moneyFormat,a.currency,!1));t.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[e],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent'; if (format === 'percent') { element.textContent = '-${o}%'; } else if (format === 'amount') { element.textContent = '-${l}'; } else if (format === 'both') { element.textContent = '-${o}% (-${l})'; }`}]})}}return t}const Jt="modulepreload",Yt=function(a){return"/"+a},Zt={}
11,Vt=function(t,e,i){let s=Promise.resolve();function r(n){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=n,window.dispatchEvent(o),!o.defaultPrevented)throw n}return s.then(n=>{for(const o of n||[])o.status==="rejected"&&r(o.reason);return t().catch(r)})};function at(a,t,e){const i=e?a.plans.filter(c=>!c.variantId||c.variantId===e):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const n=t?s:r,o=t?r:s;if(e)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!n.includes(d)&&!o.includes(d)&&o.push(d);const l={};for(let c=0;c<o.length;c++){const d=o[c],p=n[c];d&&p&&(l[d]=p)}return{showPlanIds:n,hidePlanIds:o,swapMap:l}}function lt(a,t,e){const i=t?a.plans.find(r=>r.variantId===t):void 0;if(i)return i.direction;if(e){const r=a.plans.find(n=>n.productId===e);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function K(a,t){const e=t?a.plans.filter(r=>!r.productId||r.productId===t):a.plans,i={};for(const r of e)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const t=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(t)return t;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const n=r.getAttribute("data-sl-attribute-p");if(!n)continue;const o=a.variants.find(l=>l[0]===n);if(o?.[3])return o[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(n=>n[0]===s);if(r?.[3])return r[3]}}const e=window,i=e.ShopifyAnalytics?.meta?.product?.id??e.meta?.product?.id;return i!=null?String(i):null}function D(a,t){return a.widget.selectors[t]??[]}function N(a,t){return a.replace(/[\d.]+%/,`${t}%`)}function $(a,t){const e=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=e.nextNode();for(;i;){if(i.nodeValue!==null){const s=t(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=e.nextNode()}}function ct(a,t){return a===null?!1:a==="decrease"?!t:t}async function Lt(a){if(a.subscriptionSwapDone)return;const t=a.getActiveAssignment();if(!t)return;const e=a.getHypothesis(t.hypothesisId);if(!e?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=e.subscriptionData,s=e.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const n=i.plans.some(d=>d.variantId);let o=!1,l=!1;function c(){if(!l){l=!0;try{const d=n?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:p,hidePlanIds:h,swapMap:u}=at(i,s,d);a.swapMap=u;const b=D(i,"widgetParent"),k=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!k.length||!S.length)return;const P=document.querySelector(b[0].selector);if(!P?.shadowRoot)return;const _=P.shadowRoot.querySelector(k[0].selector);if(!_?.shadowRoot)return;const C=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(C));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(p.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>p.includes(v.value)&&v.checked),T=y.some(v=>h.includes(v.value)&&v.checked);if((w||T)&&(o=!1),!w&&!o){o=!0;for(const v of y)if(p.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&p.includes(f.value)?f.value:p[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(T=>p.includes(T.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=p.includes(y.value)?y.value:p[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}
11if(a.subscriptionHideWrongPlans=c,a.swapMap=at(i,s).swapMap,c(),n){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const t=D(a,"widgetParent");return t.length?document.querySelector(t[0].selector)?.shadowRoot??null:null}function J(a,t){const e=D(a,"subscriptionPlans");return e.length?t.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,t){const e=new URLSearchParams(window.location.search).get("variant");if(e)return e;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,t){return H(a,t.moneyFormat,t.currency,t.currencyCodeEnabled)}function $t({originalFetch:a,swapMap:t,slptValue:e,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed â skipping"),()=>{};function r(o){if(i){const l=i();if(l)return t[l]??l}return t[o]??o}const n=function(o,l){if((typeof o=="string"?o:o instanceof URL?o.href:o.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&e&&l.body.set("properties[_slpt]",e)}else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const p of d.items){const h=String(p.selling_plan??"");h?p.selling_plan=r(h):!p.selling_plan&&e&&(p.properties||(p.properties={}),p.properties._slpt=e)}else if(d.id){const p=String(d.selling_plan??"");p?d.selling_plan=r(p):!d.selling_plan&&e&&(d.properties||(d.properties={}),d.properties._slpt=e)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,o,l)};return n.__shoplift_intercepted=!0,window.fetch=n,function(){window.fetch===n&&(window.fetch=a)}}function Mt({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed â skipping"),()=>{};const t=window.fetch,e=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview â cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):t.call(window,i,s)};return e.__shoplift_intercepted=!0,window.fetch=e,function(){window.fetch===e&&(window.fetch=t)}}function dt({data:a,runUpdates:t,debounceMs:e=150}){let i=null;function s(){i&&clearTimeout(i),t(),i=setTimeout(t,e)}let r=null;const n=[],o={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const u of n)u.disconnect();n.length=0;for(const u of Array.from(h.querySelectorAll("*")))if(u.shadowRoot){const b=new MutationObserver(s);b.observe(u.shadowRoot,o),n.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(u=>{u.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,o),!0):!1}const d=document.body||document.documentElement,p=new MutationObserver(()=>{c()&&s()});return p.observe(d,{childList:!0,subtree:!0}),c()&&s(),t(),function(){i&&(clearTimeout(i),i=null),p.disconnect(),r&&(r.disconnect(),r=null);for(const u of n)u.disconnect();n.length=0}}async function qt(a){if(a.subscriptionPriceDone)return;const t=a.getActiveAssignment(),e=t?a.getHypothesis(t.hypothesisId):void 0,i=e?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=e?.subscriptionData?e:i?.hypothesis;if(!s?.subscriptionData)return;const r=e?.subscriptionData?t.testId:i.testId;a.subscriptionPriceDone=!0;const n=s.subscriptionData,o=s.isControl,l=s.priceData,c=n.widget.widgetType;let d=W(l),p=K(n,d),h=p.discountMap,u=p.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,p=K(n,d),h=p.discountMap,u=p.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${o?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${u}`))}a.log(`[SUB-PRICE] side=${o?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${u}
11`),a.updatePriceTestHiddenInputs(r,o?"control":"variant",!1);function k(){if(!l)return null;const g=j(l),I=Y(g),A=lt(n,I,d);if(!ct(A,o))return null;const E=I?g.get(I):void 0;return E?{formattedVariantPrice:G(E.priceInCents,l),formattedDiscounted:G(E.priceInCents*(1-u/100),l)}:null}$t({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(n);if(!g)return null;const I=J(n,g);if(!I)return null;const A=D(n,"subscriptionInput"),E=A.length?A[0].selector:'input[name="rc_plan"]';return I.querySelector(`${E}:checked`)?.value??null}});function S(g){const I=D(n,"subscriptionDiscount");for(const A of I)if(A.selector.includes("badge")||A.selector.includes("__badge")){const E=g.querySelector(A.selector);E?.textContent&&!E.textContent.includes(`${u}%`)&&$(E,x=>N(x,u))}}function P(g){const I=k();if(!I)return;const A=D(n,"subscriptionCompareAt");for(const E of A){const x=g.querySelector(E.selector)||g.querySelector(`[part~="${E.selector}"]`);x?.textContent&&!x.textContent.includes(I.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?I.formattedVariantPrice:R)}}function _(g,I){const A=D(n,"subscriptionCompareAt"),E=I===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(E==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function C(g){const I=D(n,"subscriptionInput"),A=I.length?I[0].selector:'input[name="rc_plan"]',E=D(n,"subscriptionPlanDiscount"),x=E.length?E[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const V=R.querySelector(A),O=R.querySelector(x);if(V&&O){const L=h[V.value];if(L!==void 0){if(L===0)O.style.display!=="none"&&(O.style.display="none");else if(O.style.display==="none"&&(O.style.display=""),O.textContent){const Z=O.textContent.match(/[\d.]+%/)?.[0];Z&&Z!==`${L}%`&&$(O,Kt=>N(Kt,L))}}}}}function m(g){const I=g.querySelector("select");if(I)for(const A of Array.from(I.options)){const E=h[A.value];if(E!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${E}%`&&(A.textContent=N(A.textContent,E))}}}function y(g,I){const E=D(n,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of E){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const V of Array.from(R.shadowRoot.querySelectorAll("li")))if(V.textContent?.includes("Save")){const O=V;if(I===0)O.style.display!=="none"&&(O.style.display="none");else{O.style.display==="none"&&(O.style.display="");const L=V.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${I}%`&&$(V,Z=>N(Z,I))}}}}}let w=!1;function T(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(n);if(!g)return;S(g),l&&P(g);const I=J(n,g);let A=u;if(I){const E=D(n,"subscriptionInput"),x=E.length?E[0].selector:'input[name="rc_plan"]',R=I.querySelector(`${x}:checked`);if(R){const V=h[R.value];V!==void 0&&(A=V)}c==="buttons"||c==="radio"?C(I):m(I)}_(g,A),y(g,A)}finally{w=!1}}}function f(){const g=k();if(!g)return;const I=B(n);if(!I)return;const A=D(n,"onetimeToggle"),E=A.length?A[0].selector:'input[value="onetime"]';if(!I.querySelector(E)?.checked)return;const R=D(n,"subscriptionPrice");for(const V of R){const O=I.querySelector(V.selector)||I.querySelector(`[part~="${V.selector}"]`);O?.textContent&&!O.textContent.includes(g.formattedDiscounted)&&$(O,L=>/\d/.test(L)?g.formattedDiscounted:L)}}function v(){a.subscriptionHideWrongPlans&&a.subscriptionHideWrongPlans(),T(),a.subscriptionUpdateOneTime&&a.subscriptionUpdateOneTime(),f()}dt({data:n,runUpdates:v})}async function Ht(a){if(a.subscriptionOneTimeDone)return;const t=a.getActiveAssignment(),e=t?a.getHypothesis(t.hypothesisId):void 0,i=!!(e?.subscriptionData&&e.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?e:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const n=i?t.testId:s.testId;a.subscriptionOneTimeDone=!0;const o=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,p=d?"control":"variant";a.slptValue=`${n}:${p}
11:f`,a.updatePriceTestHiddenInputs(n,p,!1);function h(){const u=B(o);if(!u)return;const b=Y(c);if(!b)return;const k=W(l),S=lt(o,b,k);if(!ct(S,d))return;const P=c.get(b);if(!P)return;const _=H(P.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),C=D(o,"onetimePrice");if(!C.length)return;const m=D(o,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',T=u.querySelector(y)??u;for(const f of C){let v=null;try{v=T.querySelector(f.selector)}catch{v=null}v??=T.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Nt(a,t){const{subscriptionPreviewRender:e}=await Vt(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>jt);return{subscriptionPreviewRender:i}},void 0);return e(a.subscriptionData,a.priceData,a.isControl,t)}function Ut(a,t){const e=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!e.length||!i.length||!s.length){t("[SUB-GLOBAL-HIDE] Missing required selectors â skipping");return}const r=e[0].selector,n=i[0].selector,o=s[0].selector;let l=!1,c=null,d=!1;function p(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const P=document.querySelector(r);if(!P?.shadowRoot)return;const _=P.shadowRoot.querySelector(n);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let C=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(o));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",C++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),t(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const T=y.find(f=>f.checked)??y[0];if(T){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==T.value&&(v.value=T.value,t(`[SUB-GLOBAL-HIDE] Mirrored plan id ${T.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const T of Array.from(m.options))a.planIds.includes(T.value)&&(T.style.display!=="none"&&(T.style.display="none"),T.disabled||(T.disabled=!0),C++);const y=Array.from(m.options).filter(T=>!a.planIds.includes(T.value)),w=y.some(T=>T.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),t(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}C>0&&t(`[SUB-GLOBAL-HIDE] Hidden ${C} B-side plan buttons`)}const u={childList:!0,subtree:!0,characterData:!0};let b=null;function k(P){b?.disconnect(),b=new MutationObserver(()=>p()),b.observe(P,u)}function S(){const P=document.querySelector(r);if(!P?.shadowRoot)return!1;p(),new MutationObserver(()=>{p();const m=P.shadowRoot.querySelector(n);m?.shadowRoot&&k(m.shadowRoot)}).observe(P.shadowRoot,u);const C=P.shadowRoot.querySelector(n);return C?.shadowRoot&&k(C.shadowRoot),!0}if(!S()){t("[SUB-GLOBAL-HIDE] Widget not in DOM yet â waiting via MutationObserver");const P=new MutationObserver(()=>{S()&&P.disconnect()});P.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ut="Limited preview",Ft="Add-to-cart and checkout prices won't reflect this test until it launches â test selling plans are not created in your subscription app until after a test is launched.",Bt=5e3;function zt(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__icon",t.setAttribute("aria-hidden","true"),t.textContent="!";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__label",e.textContent=ut;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ft,a.appendChild(t),a.appendChild(e),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ut);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function n(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function o(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){n(),r(),s=setTimeout(()=>{o(),s=null},Bt)}function c(){r(),n()}function d(){s===null&&o()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function p(u){try{const b=u.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}
11document.addEventListener("click",p,!0);function h(){r(),document.removeEventListener("click",p,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let pt=!1;class Wt{constructor(t,e,i,s,r,n,o,l,c,d,p,h,u){this.shop=t,this.host=e,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=p.map(k=>({...k,startAt:new Date(k.startAt),statusHistory:k.statusHistory.map(S=>({...S,createdAt:new Date(S.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=u,this.sendPageView=!!r,this.shopliftDebug=n===!0,this.telemetryEnabled=c===!0,this.gaConfig=o!=={"sendEvents":false,"mode":"gtag"}?o:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const b=this.getDeviceType();this.device=b!=="tablet"?b:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=p.filter(k=>
11k.status=="active"),this.getCountryTimeout=d===1000?1e3:d,this.log("State Loaded",JSON.stringify(this.state))}DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const t=this.state.essential.visitorTests.some(e=>{if(!e.hypothesisId)return!1;const i=this.getHypothesis(e.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=t?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}
11async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const s=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",s),this.state.temporary.isMerchant=s,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,mt(navigator.userAgent))return;const t=this.state.essential.visitorTests.filter(s=>s.hypothesisId&&+s.createdAt>Date.now()-6e4);if(t.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const s of t)this.sendDiagnosticTelemetry("page-landed",s.testId,{hypothesisId:s.hypothesisId,isControl:s.assignedTo==="control",testType:s.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const s=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(r=>r?.json());this.log(`IP: ${s}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),X)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const s=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>s,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const i=this.state.essential.visitorTests.some(s=>(s.hypothesisId?this.getHypothesis(s.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(s=>this.getHypothesis(s.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!i&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test â hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),Ut(this.hiddenSubscriptionPlans,s=>this.log(s))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(t){if(t instanceof et)return;throw t}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(t){switch(t){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(t){return t.title?t.title:t.type==="price"?t.isControl?"Original prices":"Variant prices":t.isControl?"Original":"Untitled variant "+t.label.toUpperCase()}async initPreview(){const t=this.urlParams.get("previewConfig");if(t){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const e=await Rt(t);if(this.state.temporary.previewConfig=e,this.state.temporary.previewConfig.testTypeCategory===M.Price){this.hidePage(!0);const s=this.state.temporary.previewConfig;let r=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/${s.isDraft||!1}`;s.shopifyProductId&&(r+=`?productId=${s.shopifyProductId}`);const n=await this.makeJsonRequest({method:"get",url:r}).catch(o=>(this.log("Error getting domSelectors",o),null));
11if(s.variants.forEach(o=>o.domSelectors=n[o.id]?.domSelectors),s.isDraft){const o=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:o}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const e=this.state.temporary.previewConfig;if(e.testTypeCategory===M.Template&&this.handleTemplatePreview(e)&&this.initPreviewControls(e),e.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(e)&&this.initPreviewControls(e),e.testTypeCategory===M.Script&&this.handleScriptPreview(e)&&this.initPreviewControls(e),e.testTypeCategory===M.Price){const i=await this.handlePricePreview(e);e.isDraft?await this.handleSubscriptionPricePreview(e):await this.handleSubscriptionLivePreview(e),i&&this.initPreviewControls(e)}}}initPreviewControls(t){document.addEventListener("DOMContentLoaded",()=>{const e=t.variants.find(b=>b.id===t.currentVariant),i=e?.label||"a",s=t.variants,r=document.createElement("div");r.id="shoplift-preview-control";const n=document.createElement("div"),o=document.createElement("img");o.src=_t,o.height=24,o.width=14,n.style.padding="0 16px",n.style.lineHeight="100%",n.appendChild(o),r.appendChild(n);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const p=document.createElement("span");if(p.id="shoplift-preview-variant-title",p.innerText=e?this.getDefaultVariantTitle(e):"Untitled variant "+i.toUpperCase(),c.appendChild(p),s.length>1){const b=document.createElement("img");b.src=xt,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const k=document.createElement("div");k.className="preview-variant-menu";for(const S of t.variants.filter(P=>P.id!==t.currentVariant)){const P=document.createElement("div");P.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),P.appendChild(_);const C=document.createElement("span");C.innerText=this.getDefaultVariantTitle(S),P.appendChild(C),P.addEventListener("click",()=>{this.pickVariant(S.id)}),k.appendChild(P)}l.appendChild(k),c.addEventListener("click",()=>{k.className!=="preview-variant-menu preview-variant-menu__visible"?k.classList.add("preview-variant-menu__visible"):k.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&k.className==="preview-variant-menu preview-variant-menu__visible"&&k.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),t.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=zt();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),u=document.createElement("button");u.id="shoplift-exit-preview-button",u.innerText="Exit",h.appendChild(u),u.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(t){if(this.state.temporary.previewConfig){const e=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(e.testTypeCategory===M.UrlRedirect){const s=e.variants.find(r=>r.id===e.currentVariant)?.redirectUrl;if(i.pathname===s){const r=e.variants.find(n=>n.id===t)?.redirectUrl;r&&(i.pathname=r)}}if(e.testTypeCategory===M.Template){const s=e.variants.find(r=>r.id===e.currentVariant)?.pathName;if(s&&i.pathname===s){const r=e.variants.find(n=>n.id===t)?.pathName;r&&r!==s&&(i.pathname=r)}}e.currentVariant=t,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const t=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&t.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&t.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(t.pathname)&&s&&(t.pathname=s)}this.state.temporary.isMerchant=!1,t.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(t)}handleTemplatePreview(t){const e=t.currentVariant,i=t.variants.find(l=>l.id===e);if(!i)return!1;const s=t.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
11const r=new URL(window.location.toString()),n=r.searchParams.get("view"),o=i.type===s.type;return!o&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&o&&n!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),n!==null&&n!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(t){const e=t.currentVariant,i=t.variants.find(n=>n.id===e),s=t.variants.find(n=>n.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(t){const e=t.currentVariant,i=t.variants.find(n=>n.id===e);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(t){const e=t.currentVariant,i=t.variants.find(s=>s.id===e);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:t.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(t){const e=t.variants.find(i=>i.id===t.currentVariant);e?.subscriptionData&&(this.log("Setting up subscription price preview"),await Nt({id:e.id,isControl:e.isControl,subscriptionData:e.subscriptionData,priceData:e.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(t){this.testConfigs.find(s=>s.id===t.testId)?.hypotheses.find(s=>s.id===t.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const t=await this.getCartState();t!==null&&this.queueCartUpdate(t),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const e=this.urlParams.get("slVariant")==="true",i=e?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),e)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(o=>o.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const n=this.state.essential.visitorTests.find(o=>o.testId===r.id);return n?(this.log("Active visitor test found",s),n.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(o=>o.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:n,...o}=s;return o})})}}setShopliftStub(){this.log("Setting up stubbed public API");const e=this.urlParams.get("slVariant")==="true",i=e?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(e||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(t){this.log("Starting manual split for test '%s'",t.id),await this.handleVisitorTest([t]);const e=this.getReservationForTest(t.id);e&&!e.isRealized&&e.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",t.id),this.realizeReservationForCriteria(e.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(t){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
11ategoryFromExistingTests(),this.clearStaleReservations();let e=t?t.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(e.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(e);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,p=c.length,h=d+p,u=Math.random()*h;this.state.temporary.testCategory=u<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",u,h,d,p,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const n=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",n),n==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");e=e.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");e=e.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(e.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(e);const o=this.getReservationForCurrentPage();if(o&&!o.isRealized){const l=this.getHypothesis(o.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(o.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const t=this.getDomTestsForCurrentUrl(),e=this.getVisitorDomHypothesis(t);for(const i of t){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(u=>u.type==="price");if(this.state.essential.visitorTests.find(u=>u.testId===i.id&&u.isInvalid&&!u.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const u=i.hypotheses.find(b=>b.isControl);u?.priceData&&(this.applyPriceTestWithMapLookup(i.id,u,[u],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const n=this.getReservationForTest(i.id);let o=null,l=!1;const c=e.find(u=>i.hypotheses.some(b=>u.id===b.id));if(n)o=this.getHypothesis(n.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",n.hypothesisId,i.id);else if(c)o=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const u=this.visitorActiveTestTypeWithReservations();u?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",u,i.id)):o=this.pickHypothesis(i)}else o=this.pickHypothesis(i);if(l&&s){const u=i.hypotheses.find(b=>b.isControl);u?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,u,[u],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
11),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!o){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:o.id,isControl:o.isControl,testType:o.type});const d=i.bayesianRevision??4,p=o.type==="price",h=d>=5;if(p&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!o.priceData){this.log("No price data for hypothesis '%s', skipping",o.id);continue}const u=o.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${u} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,o,i.hypotheses,b=>{const k=this.getReservationForTest(b);k&&!k.isRealized&&k.entryCriteriaKey?this.realizeReservationForCriteria(k.entryCriteriaKey):this.queueAddVisitorToTest(b,o),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(p&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const u=this.getDomSelectorsForHypothesis(o);if(u.length===0)continue;U(document,{testId:i.id,hypothesisId:o.id,selectors:u},b=>{this.queueAddVisitorToTest(b,o),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!o.domSelectors||o.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:o.id,selectors:o.domSelectors},u=>{this.queueAddVisitorToTest(u,o),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(t){if(this.log("Considering redirect for hypothesis '%s'",t.id),t.isControl)return this.log("Skipping redirect for control"),!1;if(t.type==="basicScript"||t.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const e=this.state.essential.visitorTests.find(n=>n.hypothesisId===t.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(t.type==="theme"){if(!(t.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",t.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(e&&e.themeId!==t.themeId&&(e.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),e.themeId=t.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(t.type!=="dom"&&t.type!=="price"&&t.affix!==template.suffix&&t.affix!==r||t.redirectPath&&!i.pathname.endsWith(t.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(t){if(this.log("Redirecting to hypothesis '%s'",t.id),t.isControl)return;const e=new URL(window.location.toString());if(e.searchParams.delete("view"),t.redirectPath){const i=RegExp("^(/w{2}-w{2})/").exec(e.pathname);if(i&&i.length>1){const s=i[1];e.pathname=`${s}${t.redirectPath}`}else e.pathname=t.redirectPath}else t.type==="theme"?(e.searchParams.set("_ab","0"),e.searchParams.set("_fd","0"),e.searchParams.set("_sc","1"),e.searchParams.set("preview_theme_id",t.themeId.toString())):t.type!=="urlRedirect"&&e.searchParams.set("view",t.affix);this.queueRedirect(e)}async refreshVisitor(t){if(t===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const e=await this.getVisitor(t);e&&e.id&&this.updateLocalVisitor(e)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const t=this.getUTMValue("utm_source")??"",e=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,n=this.device;return{createdAt:new Date,utmSource:t,utmMedium:e,utmCampaign:i,utmContent:s,referrer:r,device:n}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(t=>t.isThemeTest&&t.hypothesisId!=null&&this.getHypothesis(t.hypothesisId)&&t.themeId===themeId)?(this.log("On active theme test, remov
11ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(t=>t.isThemeTest&&t.hypothesisId!=null&&!this.getHypothesis(t.hypothesisId)&&t.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(t=>t.hypotheses.some(e=>e.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(t=>t.hypotheses.some(e=>e.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const t=new URL(window.location.toString());t.searchParams.set("preview_theme_id",""),this.queueRedirect(t)}testsForUrl(t){const e=new URL(window.location.href),i=this.typeFromTemplate();return t.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&e.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!e.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(e.searchParams.get("view")??"")))}domTestsForUrl(t){const e=new URL(window.location.href);return t.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(it(r)).test(e.toString()))))}async filterTestsByAudience(t,e,i){const s=[];let r=e.country;!r&&t.some(n=>n.requiresCountry&&!i.some(o=>o.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),r=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of t){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(c=>c.testId===n.id&&c.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const o=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(c=>c.testId===n.id&&(n.device==="all"||n.device===e.device&&n.device===this.device))||this.isTargetAudience(n,e,o,r))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}isTargetAudience(t,e,i,s){const r=this.getChannel(e);return(t.device==="all"||t.device===e.device&&t.device===this.device)&&(t.visitorOption==="all"||t.visitorOption==="new"&&i||t.visitorOption==="returning"&&!i)&&(t.targetAudiences.length===0||t.targetAudiences.reduce((n,o)=>n||o.reduce((l,c)=>l&&c(e,i,r,s),!0),!1))}visitorCreatedDuringTestActive(t){let e="";for(const i of t){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;e=i.status}return e==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(t){return t.flatMap(e=>e.hypotheses).find(e=>e.type!=="dom"&&e.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===e.id))}getVisitorDomHypothesis(t){return t.flatMap(e=>e.hypotheses).filter(e=>(e.type==="dom"||e.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===e.id))}getHypothesis(t){return this.testConfigs.filter(e=>e.hypotheses.some(i=>i.id===t)).map(e=>e.hypotheses.find(i=>i.id===t))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const e=this.state.temporary.previewConfig;return e.currentVariant&&e.testId?{testId:e.testId,hypothesisId:e.currentVariant}:null}const t=this.state.essential.visitorTests.find(e=>e.hypothesisId);return t?.hypothesisId?{testId:t.testId,hypothesisId:t.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const t of this.testConfigs){const e=t.hypotheses.find(i=>i.isControl);if(e?.subscriptionData)return{testId:t.id,hypothesis:e}}return null}getDomSelectorsForHypothesis(t){if(!t)return[];if(t.domSelectors&&t.domSelectors.length>0)return t.domSelectors;if(t.priceData){const e=`${this.priceSelectorsSessionKey}_${t.id}`;try{const s=sessionStorage.getItem(e);if(s){const r=JSON.parse(s);return t.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,t.id),r}}catch{}const i=Ot(t.priceData);t.domSelectors=i;try{sessionStorage.setItem(e,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,t.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,t.id)}return i}return[]}hasThemeTest(t){return t.some(e=>e.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(t){return t.some(e=>e.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(t){return this.hasThemeTest(t)&&this.hasTestThatIsNotThemeTest(t)}testIsPaused(t){return t.status==="paused"||t.status==="incompatible"||t.status==="suspended"}visitorActiveTestType(){const t=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==e.hypothesisId)));return t.length===0?null:t.some(e=>e.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(t){return t==="price"||this.isTemplateTestType(t)?"deferred":"immediate"}isTemplateTestType(t){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(t)}getEntryCriteriaKey(t){const e=t.hypotheses.find(i=>i.isControl);if(!e)return`unknown:${t.id}`;switch(e.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${t.id}`;case"urlRedirect":return`conditional:url:${e.redirectPath||"unknown"}`;default:return`conditional:template:${e.type}`}}isGlobalEntryCriteria(t){return t.startsWith("global:")}groupTestsByEntryCriteria(t){const e=new Map;for(const i of t){const s=this.getEntryCriteriaKey(i),r=e.get(s)||[];r.push(i),e.set(s,r)}return e}doesCurrentPageMatchEntryCriteria(t){if(this.isGlobalEntryCriteria(t))return!0;
11if(t==="conditional:manualApi")return!1;if(t.startsWith("conditional:url:")){const e=t.replace("conditional:url:","");return window.location.pathname.endsWith(e)}if(t.startsWith("conditional:template:")){const e=t.replace("conditional:template:","");return this.typeFromTemplate()===e}return!1}hasActiveReservation(){const t=this.getActiveReservations();return Object.values(t).some(e=>!e.isRealized)}getActiveReservation(){const t=this.getActiveReservations();return Object.values(t).find(e=>!e.isRealized)??null}clearStaleReservations(){const t=this.state.temporary.testReservations;if(!t)return;let e=!1;for(const[i,s]of Object.entries(t)){const r=this.testConfigs.find(o=>o.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete t[i],e=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete t[i],e=!0;continue}this.testsFilteredByAudience.some(o=>o.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete t[i],e=!0)}e&&this.persistTemporaryState()}createReservations(t){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(t,"global");return}const i=t.filter(o=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(o))),s=t.filter(o=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(o)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(o=>({id:o.id,title:o.title,criteria:this.getEntryCriteriaKey(o)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const o of i){const l=this.getEntryCriteriaKey(o);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const n=this.groupTestsByEntryCriteria(s);for(const[o,l]of n){if(this.state.temporary.rolledEntryCriteria.includes(o)){this.log("Already rolled for criteria '%s', skipping",o);continue}if(l.some(S=>this.state.essential.visitorTests.some(P=>P.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",o),this.state.temporary.rolledEntryCriteria.push(o);continue}const d=[...l].sort((S,P)=>S.id.localeCompare(P.id));this.log("Test dice roll for criteria '%s' - available tests: %o",o,d.map(S=>({id:S.id,title:S.title})));const p=Math.floor(Math.random()*d.length),h=d[p];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",p+1,l.length,h.id,h.title);const u=this.pickHypothesis(h);if(!u){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:u.id,isControl:u.isControl,testType:u.type});const b=this.getReservationType(u.type),k={testId:h.id,hypothesisId:u.id,testType:u.type,reservationType:b,isThemeTest:u.type==="theme",themeId:u.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:o};this.state.temporary.testReservations[o]=k,this.state.temporary.rolledEntryCriteria.push(o),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,o);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,o)}this.persistTemporaryState()}createSingleReservation(t,e){if(this.state.temporary.rolledEntryCriteria.includes(e)){this.log("Already rolled for pool '%s', skipping",e);return}if(t.some(p=>this.state.essential.visitorTests.some(h=>h.testId===p.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",e),this.state.temporary.rolledEntryCriteria.push(e);return}if(t.length===0){this.log("No tests in pool '%s'",e);return}const s=[...t].sort((p,h)=>p.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",e,s.map(p=>({id:p.id,title:p.title,criteria:this.getEntryCriteriaKey(p)})));const r=Math.floor(Math.random()*s.length),n=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,t.length,n.id,n.title);const o=this.pickHypothesis(n);if(!o){this.log("No hypothesis picked for test '%s'",n.id);return}this.sendDiagnosticTelemetry("assignment",n.id,{hypothesisId:o.id,isControl:o.isControl,testType:o.type});const l=this.getReservationType(o.type),c=this.getEntryCriteriaKey(n),d={testId:n.id,hypothesisId:o.id,testType:o.type,reservationType:l,isThemeTest:o.type==="theme",themeId:o.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(e),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,n.id,e,c);for(const p of t)p.id!==n.id&&this.markTestAsBlocked(p,`pool:${e}`);this.persistTemporaryState()}markTestAsBlocked(t,e){this.state.essential.visitorTests.some(i=>i.testId===t.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",t.id,e),this.state.essential.visitorTests.push({createdAt:new Date,testId:t.id,hypothesisId:null,isThemeTest:t.hypotheses.some(i=>
11i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(t){const e=this.state.temporary.testReservations?.[t];if(!e)return this.log("No reservation found for criteria '%s'",t),!1;if(e.isRealized)return this.log("Reservation already realized for criteria '%s'",t),!1;if(this.state.essential.visitorTests.some(s=>s.testId===e.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",e.testId),!1;const i=this.getHypothesis(e.hypothesisId);return i?(e.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(e.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",e.testId,t),!0):(this.log("Hypothesis '%s' not found",e.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const t=this.getActiveReservations();for(const[e,i]of Object.entries(t)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(e))return i}return null}getReservationForTest(t){const e=this.getActiveReservations();return Object.values(e).find(i=>i.testId===t)??null}getReservationTestType(){const t=this.getActiveReservations(),e=Object.values(t);if(e.length===0)return null;for(const i of e)if(i.isThemeTest)return"theme";for(const i of e)if(i.testType==="price")return"price";return e.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(t){return t.some(e=>e.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const t=new Set;for(const e of this.testConfigs)for(const i of e.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&t.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)t.add(s)}return this._priceTestProductIds=t,this.log("Built price test product ID cache with %d products",t.size),t}isProductInAnyPriceTest(t){return this.getPriceTestProductIds().has(t)}visitorActiveTestTypeWithReservations(){const t=this.getActiveReservations();for(const r of Object.values(t)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(t).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const n of Object.values(t)){if(n.testType==="theme")return"theme";if(n.testType==="price")return"price";if(n.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(n=>n.hypotheses.some(o=>o.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const t=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(t.length===0)return;const e=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=t.filter(s=>!e.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),n=this.getDomSelectorsForHypothesis(r);if(n.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const o=new URL(window.location.href);n.some(c=>{try{return new RegExp(it(c)).test(o.toString())}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:n},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(t){let e=Math.random();const i=t.hypotheses.reduce((r,n)=>r+n.visitorCount,0);return t.hypotheses.sort((r,n)=>r.isControl?n.isControl?0:-1:n.isControl?1:0).reduce((r,n)=>{if(r!==null)return r;const l=t.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?n.visitorCount/i-n.trafficPercentage:0;return e<=n.trafficPercentage-l?n:(e-=n.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(t){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(t),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const t=async()=>
11{if(this.isSyncing){window.setTimeout(()=>{(async()=>await t())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await t()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const t=this.state.analytics.queue.length,e=this.state.analytics.queue.splice(0,t);this.log("Syncing %s events",t);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new yt(r.testId,r.hypothesisId,r.createdAt)).concat(e)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(n=>!n.isInvalid&&!n.isSaved&&n.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(n=>!n.isInvalid&&!n.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...e)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(pt)return;pt=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const t=this.state.essential.visitorTests.filter(e=>e.shouldSendToGa);t.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",t.length),Promise.allSettled(t.map(e=>this.sendGAEvent(e))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(t){return new Promise(e=>{this.log("Sending GA Event for test %s, hypothesis %s",t.testId,t.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",t.hypothesisId),t.shouldSendToGa=!1,this.persistEssentialState(),e()},s={exp_variant_string:`SL-${t.testId}-${t.hypothesisId}`};
11this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(n,o,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(t){let e;({visitorTests:e,...this.state.analytics.visitor}=t),this.log("updateLocalVisitor - server returned %d tests: %o",e.length,e.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!e.some(n=>n.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of e){const r=this.state.essential.visitorTests.findIndex(o=>o.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const o=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,o?.hypothesisId,s.hypothesisId,o?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=o?.shouldSendToGa??!1,s.testType=o?.testType,s.assignedTo=o?.assignedTo,s.testTitle=o?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(t){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${t}`})}catch{return null}}async sendEvents(t){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(t)})}sendDiagnosticTelemetry(t,e,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:e,checkpoint:t,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(t){const i=decodeURIComponent(window.location.search.substring(1)).split("&");for(let s=0;s<i.length;s++){const r=i[s].split("=");if(r[0]===t)return r[1]||null}return null}hidePage(t){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),t||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function t(){let i=!1;return(function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
11sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function e(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return t()?"mobile":e()?"tablet":"desktop"}removeAsyncHide(t){return()=>{t&&window.document.documentElement.classList.remove(t)}}async getCartState(){try{let t=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return t===null||(t.note===null&&(t=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),t==null)?null:{token:t.token,total_price:t.total_price,total_discount:t.total_discount,currency:t.currency,items_subtotal_price:t.items_subtotal_price,items:t.items.map(e=>({quantity:e.quantity,variant_id:e.variant_id,key:e.key,price:e.price,final_line_price:e.final_line_price,sku:e.sku,product_id:e.product_id}))}}catch(t){return this.log("Error sending cart info",t),null}}ensureCartAttributesForExistingPriceTests(t){try{if(this.log("Checking visitor assignments for active price tests"),t&&this.state.temporary.previewConfig){const e=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",e.testId);let i="variant";if(e.variants&&e.variants.length>0){const s=e.variants.find(r=>r.id===e.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",e.testId,i),this.updatePriceTestHiddenInputs(e.testId,i,!0);return}for(const e of this.state.essential.visitorTests){const i=this.testConfigs.find(n=>n.id===e.testId);if(!i){this.log("Test config not found:",e.testId);continue}const s=i.hypotheses.find(n=>n.id===e.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",e.testId,r),this.updatePriceTestHiddenInputs(e.testId,r,t)}}catch(e){this.log("Error ensuring cart attributes for existing price tests:",e)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Lt(this)}async subscriptionPriceChange(){await qt(this)}async subscriptionOneTimePrice(){await Ht(this)}
11updatePriceTestHiddenInputs(t,e,i){try{this.cleanupPriceTestObservers();const s=`${t}:${e}:${i?"t":"f"}`,r=C=>{const m=C.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,T=e==="control"?"a":"b",f=w.variants.find(v=>v.label===T);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const I=g[1];if(this.log(`Extracted ID from selector: ${I}, comparing to: ${m}`),I===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",T),!1}const y=this.testConfigs.find(w=>w.id===t);if(!y)return this.log("Test config not found for testId:",t),!1;for(const w of y.hypotheses||[]){for(const T of w.domSelectors||[]){const f=T.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",t),!0}if(w.priceData?.variants){for(const T of w.priceData.variants)if(T[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",t),!0}}return this.log("No product ID match for:",m,"in test:",t),!1},n=new Set;let o=!1,l=null;const c=(C,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{C.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(T){this.log(`Failed to observe element (${m}):`,T)}}),document.body&&document.body.isConnected)try{C.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(C,m,y,w)=>{const T=C.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${C.length}, filtered: ${T.length}`),T.length>0&&U(document,{testId:t,hypothesisId:m,selectors:T})},p=(C,m)=>{this.log(`Applying DOM selector changes for product ID: ${C}`),m.disconnect(),o=!0;try{if(i&&this.state.temporary.previewConfig){const y=e==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(T=>T.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",C)}else{const y=this.testConfigs.find(T=>T.id===t);if(!y){this.log(`No test config found for testId: ${t}`);return}const w=y.hypotheses.find(T=>e==="control"?T.isControl:!T.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${e}`);return}d(w.domSelectors,w.id,"live config",C)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{o=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")},50)}},h=new MutationObserver(C=>{if(!o)for(const m of C){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,T=w.getAttribute("data-sl-attribute-p");for(;!T&&w.parentElement;)w=w.parentElement,T=w.getAttribute("data-sl-attribute-p");if(!T)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${T}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),p(T,h)}});c(h,"initial setup"),n.add(h);const u=new MutationObserver(C=>{C.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;k(w);const T=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');T.length>0&&this.log(`MutationObserver found ${T.length} new hidden input(s)`),T.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});n.add(u);const b=new MutationObserver(C=>
11{C.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,T=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${T}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&p(f,h),this.log("Re-running payment placement updates after variant change"),k(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});n.add(b);const k=C=>{C.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(t,e));const m=C.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(t,e)),C.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(t,e,"afterpay"));const y=C.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(t,e,"afterpay")),C.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(t,e,"square"));const w=C.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(t,e,"square")),C.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(t,e));const T=C.querySelectorAll("klarna-placement");T.length>0&&(this.log(`MutationObserver found ${T.length} klarna-placement in added node`),this.updateKlarnaPlacements(t,e))},S=C=>{b.observe(C,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=C.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},P=()=>{const C=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${C.length} existing hidden inputs to check`),C.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),p(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(u.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),P(),k(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(u.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),P(),k(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=n,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(t,e){this.updatePlacementElements(t,e,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const t=window.__shopliftPriceTestObservers;t&&(t.forEach(e=>{e.disconnect()}),t.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(t,e,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(t,e,s,(n,o)=>
11{if(i==="afterpay"){const l=(o/100).toFixed(2);n.setAttribute("data-amount",l)}else n.setAttribute("data-amount",o.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(t,e,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let n;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=e==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}n=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===t);if(!l){this.log(`No testConfig found for id: ${t} - early return`);return}const c=l.hypotheses.find(d=>e==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${e} - early return`);return}n=c.domSelectors}const o=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const p=c.getAttribute("data-sl-pid");if(!p){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=n.find(S=>{const P=S.cssSelector.match(o);return P&&P[1]===p});if(!h){this.log(`No matching selector found for productId: ${p} - skipping element`);return}const u=h.actions.find(S=>S.scope==="price");if(!u?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(u.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${u.value}" for product ${p} - skipping`);return}const k=Math.round(b*100);s(l,k)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(t,e){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const n=e==="control"?"a":"b",o=this.state.temporary.previewConfig.variants.find(l=>l.label===n);if(!o||!o.domSelectors){this.log(`No variant found for label ${n} in preview config`);return}s=o.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${n}`)}else{const n=this.testConfigs.find(l=>l.id===t);if(!n)return;const o=n.hypotheses.find(l=>e==="control"?l.isControl===!0:l.isControl===!1);if(!o||!o.domSelectors)return;s=o.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(n=>{const o=n.getAttribute("variant-id");if(!o)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===o});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=n.getAttribute("shopify-meta");if(d)try{const p=JSON.parse(d);if(p.variants&&Array.isArray(p.variants)){const h=p.variants.find(u=>u.id?.toString()===o);if(h){h.full_price=c.value;const u=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=u/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}n.setAttribute("shopify-meta",JSON.stringify(p))}}}catch(p){this.log("Error parsing/updating shoplift-meta:",p)}}}})}async makeJsonRequest(t){const e=await this.makeRequest(t);return e===null?null:JSON.parse(await e.text(),F)}async makeRequest(t){const{url:e,method:i,headers:s,data:r,signal:n}=t,o=new Headers;if(s)for(const c in s)o.append(c,s[c]);(!s||!s.Accept)&&o.append("Accept","application/json"),(!s||!s["Content-Type"])&&o.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&o.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(e,{method:i,headers:o,body:r,signal:n});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new et}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(t,e){if(this.state.essential.visitorTests.some(s=>s.testId===t))return;const i=this.testConfigs.find(s=>s.id===t);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:t,hypothesisId:e.id,isThemeTest:e.type==="theme",themeId:e.themeId,isSaved:!1,isInvalid:!1,shouldSe
11ndToGa:!0,testType:e.type,assignedTo:e.isControl?"control":"variant",testTitle:i?.title}),e.type==="price"){const s=e.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",t,s),this.updatePriceTestHiddenInputs(t,s,!1)}}queueCartUpdate(t){this.queueEvent(new wt(t))}queuePageView(t){this.queueEvent(new vt(t))}queueEvent(t){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(t)}legacyGetLocalStorageVisitor(){const t=this.localStorageGet(this.legacySessionKey);if(t)try{return JSON.parse(t,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(e=>e.id==t.testId)||this.inactiveTestConfigs.filter(e=>this.testIsPaused(e)).some(e=>e.id===t.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const t=this.loadAnalyticsState(),e={analytics:t,essential:this.loadEssentialState(t),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(n=>n!==null).sort((n,o)=>+o.storedAt-+n.storedAt)[0];return e.analytics.visitor===null&&r&&({visitorTests:e.essential.visitorTests,...e.analytics.visitor}=r,e.essential.isFirstLoad=!1,e.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!e.essential.consentApproved&&e.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),e}loadEssentialState(t){const e=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();t.visitor?.device&&(s.device=t.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},n=[e,i].filter(o=>o!==null).sort((o,l)=>+l.timestamp-+o.timestamp)[0]??r;return n.initialState||(t.visitor!==null?n.initialState=t.visitor:(n.initialState=s,n.initialState.createdAt=n.timestamp)),n}loadAnalyticsState(){const t=this.loadLocalStorage(this.analyticsSessionKey),e=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[t,e].filter(r=>r!==null).sort((r,n)=>+n.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&t&&t.queue.length>1&&(s.queue=t.queue),s}loadTemporaryState(){const t=this.sessionStorageGet(this.temporarySessionKey),e=t?JSON.parse(t,F):null,i=this.loadCookie(this.temporarySessionKey);return e??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persistCookieState(this.essentialSessionKey,this.state.essential)}persistAnalyticsState(){this.log("Persisting analytics state"),this.state.essential.consentApproved&&(this.state.analytics.timestamp=new Date,this.persistLocalStorageState(this.analyticsSessionKey,this.state.analytics),this.persistCookieState(this.analyticsSessionKey,{...this.state.analytics,queue:[]}))}persistTemporaryState(){this.log("Setting temporary session state"),this.state.temporary.timestamp=new Date,this.sessionStorageSet(this.temporarySessionKey,JSON.stringify(this.state.temporary)),this.persistCookieState(this.temporarySessionKey,this.state.temporary,!0)}loadLocalStorage(t){const e=this.localStorageGet(t);if(e===null)return null;try{return JSON.parse(e,F)}catch{return null}}loadCookie(t){const e=this.getCookie(t);if(e===null)return null;try{return JSON.parse(e,F)}catch{return null}}persistLocalStorageState(t,e){this.localStorageSet(t,JSON.stringify(e))}persistCookieState(t,e,i=!1){const s=JSON.stringify(e),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${t}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(t){const e=new Date(0).toUTCString();document.cookie=`${t}=;domain=.${window.location.hostname};path=/;expires=${e};`}deleteLocalStorage(t){window.localStorage.removeItem(t)}getChannel(t){return[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)}
11,{"name":"direct","test":(v) => v.utmSource === "" && v.utmMedium === ""},{"name":"paid-shopping","test":(v) => (new RegExp("^(?:Google|IGShopping|aax-us-east\.amazon-adsystem\.com|aax\.amazon-adsystem\.com|alibaba|alibaba\.com|amazon|amazon\.co\.uk|amazon\.com|apps\.shopify\.com|checkout\.shopify\.com|checkout\.stripe\.com|cr\.shopping\.naver\.com|cr2\.shopping\.naver\.com|ebay|ebay\.co\.uk|ebay\.com|ebay\.com\.au|ebay\.de|etsy|etsy\.com|m\.alibaba\.com|m\.shopping\.naver\.com|mercadolibre|mercadolibre\.com|mercadolibre\.com\.ar|mercadolibre\.com\.mx|message\.alibaba\.com|msearch\.shopping\.naver\.com|nl\.shopping\.net|no\.shopping\.net|offer\.alibaba\.com|one\.walmart\.com|order\.shopping\.yahoo\.co\.jp|partners\.shopify\.com|s3\.amazonaws\.com|se\.shopping\.net|shop\.app|shopify|shopify\.com|shopping\.naver\.com|shopping\.yahoo\.co\.jp|shopping\.yahoo\.com|shopzilla|shopzilla\.com|simplycodes\.com|store\.shopping\.yahoo\.co\.jp|stripe|stripe\.com|uk\.shopping\.net|walmart|walmart\.com)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
11akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"display","test":(v) =>
11 new RegExp("^(?:display|banner|expandable|interstitial|cpm)$", "i").test(v.utmMedium)},{"name":"paid-other","test":(v) => new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"organic-shopping","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)},{"name":"organic-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
11akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) || new RegExp("^(?:social|social-network|social-media|sm|social network|social media)$", "i").test(v.utmMedium)},{"name":"organic-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) || new RegExp("^(.*video.*)$", "i").test(v.utmMedium)},{"name":"organic-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
11andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(t))?.name??"other"}getShopifyAnalyticsId(){const t=this.getCookie("_shopify_y");if(t)return t;try{const e=this.localStorageGet("Shoplift_ClientId");if(e)return e}catch{}return null}legacyGetCookieVisitor(){const t=this.getCookie("SHOPLIFT");return t===null?null:JSON.parse(t,F)}getCookie(t){const e=this.cookie.split("; ").filter(i=>i.split("=").at(0)===t).at(0);return e===void 0?null:e.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",t=>{(async()=>await this.onConsentChange(t.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let t=0;const e=()=>{this.loadShopifyConsentApi()||t++<10&&window.setTimeout(e,100)};e()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const t=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),e=window.setTimeout(()=>{(async()=>await t())()},1e3);return}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let e=window.setTimeout(()=>{(async()=>await t())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(e),i){this.log("Error loading consent tracking",i);return}await t()})()}),!0}return!1}async onConsentChange(t,e){try{if(this.log("Consent change detected",t,e),this.state.essential.consentApproved=t,this.state.essential.hasConsentInteraction=e,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId();for(const i of this.state.analytics.queue.filter(s=>s.type===1||s.type===2)){const s=i;s.shopifyAnalyticsId=this.shopifyAnalyticsId}this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const t=["/apps/","/tools/","/a/"],e=window.location.pathname;return t.some(i=>e.startsWith(i))}clearThemeBar(t,e,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(n=>(this.log("Found theme bar"),e&&(this.log("Removing theme bar"),n.remove()),t?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},X)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(t,e){return new Promise(i=>{const s=document.querySelector(e);if(s){i(s);return}const r=new MutationObserver(n=>{const o=document.querySelector(e);if(o){r.disconnect(),i(o);return}});r.observe(t??document.documentElement,{childList:!0})})}setDebug(t){this.state.essential.debugMode=t,this.saveState()}log(t,...e){let i=0;const s=t.replace(/%[sdoOfF]/g,r=>{if(i>=e.length)return r;const n=e[i++];return r==="%o"||r==="%O"?JSON.stringify(n):String(n)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${t}`,...e)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
11:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(t,e={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=e,r=new Set;return new IntersectionObserver(n=>{n.forEach(o=>{if(o.isIntersecting&&!r.has(o.target)){const l=o.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(t(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(t,e,i,s){const r=e.selectorsForViewportTracking??e.selectors,n=o=>{if(this.state.essential.visitorTests.some(h=>h.testId===o)||this.activeViewportObservers.has(o))return;const l=[];if(r.forEach(h=>{t.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(o),p.disconnect(),this.activeViewportObservers.delete(o))},p=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(o,p),this.log(`Created viewport observer for test ${o}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(o)),p.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const u=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,k=Math.min(u.bottom,window.innerHeight)-Math.max(u.top,0),S=Math.min(u.right,window.innerWidth)-Math.max(u.left,0);u.top<window.innerHeight&&u.bottom>0&&u.left<window.innerWidth&&u.right>0&&k>0&&S>0&&k>=u.height*b&&(this.log(`Price element already visible in viewport for test ${o}:`,h),d())})},100)};e.selectors.length>0&&U(t,e,()=>{}),bt(t,{testId:e.testId,hypothesisId:e.hypothesisId,selectors:r},o=>{n(o)})}applyPriceTestWithMapLookup(t,e,i,s){if(!e.priceData){this.log("No price data for hypothesis '%s'",e.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",e.id,e.isControl,e.priceData.variants.length);const r=e.priceData.variants.slice(0,3);for(const[S,P,_]of r)this.log(" Sample priceData: variant=%s, price=%d, compareAt=%d",S,P,_);const n=j(e.priceData),o=new Set;for(const S of i)if(S.priceData)for(const[P]of S.priceData.variants)o.add(P);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",n.size,o.size);const l=e.priceData,c=new WeakSet;let d=!1;const p="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const P=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),C=S.getAttribute("data-sl-attribute-discount"),m=P||_||C;if(!m||!o.has(m))return;c.add(S);const y=n.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Dt(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===t)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(t)),this.setupElementViewportTracking(S,t,()=>{d||(d=!0,s(t))}))},u=()=>{const S=document.querySelectorAll(p);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const P of S)P.type==="childList"&&P.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const C=_;(C.hasAttribute("data-sl-attribute-p")||C.hasAttribute("data-sl-attribute-cap")||C.hasAttribute("data-sl-attribute-discount"))&&h(C),C.querySelectorAll(p).forEach(h)}}),P.type==="attributes"&&P.target instanceof Element&&h(P.target)}),k=document.body||document.documentElement;b.observe(k,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),u(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),u()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),u()},100),setTimeout(()=>{this.log("Final rescan for price elements"),u()},500)}setupElementViewportTracking(t,e,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=t.getBoundingClientRect(),n=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),o=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&n>0&&o>0&&n>=r.height*s){this.log("Price element already visible for test %s",e),i();return}const c=new IntersectionObserver(d=>{for(const p of d)if(p.isIntersecting&&p.intersectionRatio>=s){this.log("Price element entered viewport for test %s",e),c.disconnect(),i();break}},{threshold:s});c.observe(t)}debug(){const t=this.debugState();console.log(JSON.stringify(t,X,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Wt("roseskinco.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},false,false,1000,[],[{"id":"019df374-5e8e-77c1-9d44-49dfee496773","bayesianRevision":5,"status":"incompatible","hypotheses":[{"id":"019df35b-460a-787e-ac1b-fcba48c4b3ba","type":"product","themeId":189977231541,"affix":"lumi","isControl":true,"redirectPath":null},{"id":"019df35b-ea50-7d49-b1ef-5de05ce4b23d","type":"product","themeId":189977231541,"affix":"sl-AFABD240","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false}],null),await window.shopliftInstance.init())})();async function Gt(a,t,e,i){const s=Mt({log:i});if(e)return i("[SUB-PREVIEW] A side â no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,n=t?j(t):null;let o=W(t),l=K(a,o),c=l.discountMap,d=l.maxDiscount;function p(){const f=W(t);f!==o&&(o=f,l=K(a,o),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${o??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${o??"n/a"}, maxDiscount=${d}`);function h(f){if(!t||!n)return null;const v=Y(n),g=v?n.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,t),formattedDiscounted:G(g.priceInCents*(1-f/100),t)}:null}function u(f){const v=J(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),I=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${I}:checked`);if(A){const E=c[A.value];if(E!==void 0)return E}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const I=f.querySelector(g.selector);I?.textContent&&!I.textContent.includes(`${d}%`)&&$(I,A=>N(A,d))}}function k(f,v){const g=h(v);if(!g)return;const I=D(a,"subscriptionCompareAt");for(const A of I){const E=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);E?.textContent&&!E.textContent.includes(g.formattedVariantPrice)&&$(E,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const I=D(a,"subscriptionPrice");for(const A of I){const E=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);E?.textContent&&!E.textContent.includes(g.formattedDiscounted)&&$(E,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function P(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',I=D(a,"subscriptionPlanDiscount"),A=I.length?I[0].selector:".rc-plans-button__discount";for(const E of Array.from(f.querySelectorAll("label"))){const x=E.querySelector(g),R=E.querySelector(A);if(x&&R?.textContent){const V=c[x.value];if(V!==void 0){const O=R.textContent.match(/[\d.]+%/)?.[0];O&&O!==`${V}%`&&$(R,L=>N(L,V))}}}}function _(f){const v=f.querySelector("select");if(v)for(const g of Array.from(v.options)){const I=c[g.value];if(I!==void 0&&g.textContent){const A=g.textContent.match(/[\d.]+%/)?.[0];A&&A!==`${I}%`&&(g.textContent=N(g.textContent,I))}}}function C(f){const v=D(a,"onetimePrice");if(!v.length||!t||!n)return;const g=Y(n),I=g?n.get(g):void 0;if(!I)return;const A=G(I.priceInCents,t),E=D(a,"onetimeContainer"),x=E.length?E[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const V of v){const O=R.querySelector(`[part~="${V.selector}"]`);O?.textContent&&!O.textContent.includes(A)&&$(O,L=>/\d/.test(L)?A:L)}}function m(f,v){const I=D(a,"subscriptionDiscount").filter(A=>A.selector.includes("benefit")||A.selector==="rc-benefits");for(const A of I){const E=f.querySelector(A.selector);if(E?.shadowRoot){for(const x of Array.from(E.shadowRoot.querySelectorAll("li")))if(x.textContent?.includes("Save")){const R=x.textContent.match(/[\d.]+%/)?.[0];R&&R!==`${v}%`&&$(x,V=>N(V,v))}}}}let y=!1;function w(){if(!y){y=!0;try{p();const f=B(a);if(!f)return;const v=u(f);b(f),k(f,v),S(f,v),C(f);const g=J(a,f);g&&(r==="buttons"||r==="radio"?P(g):_(g)),m(f,v)}finally{y=!1}}}const T=dt({data:a,runUpdates:w});return function(){T(),s()}}const jt=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Gt},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "", type: "blog" }, "main", 193204912309, false)</script>
11 12<!-- End of Shoplift scripts --> 13 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 14 <link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin /> 15 <link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin /> 16 17 <link href="//roseskinco.com/cdn/shop/t/797/assets/Gilroy-Bold.woff2?v=21569078222817410371788119646" as="font" crossorigin="anonymous" rel="preload"> 18 <link href="//roseskinco.com/cdn/shop/t/797/assets/Gilroy-BoldItalic.woff2?v=23748708746583369371788119647" as="font" crossorigin="anonymous" rel="preload"> 19 <link href="//roseskinco.com/cdn/shop/t/797/assets/Gilroy-Extrabold.woff2?v=15802685512686714131788119649" as="font" crossorigin="anonymous" rel="preload"> 20 <link href="//roseskinco.com/cdn/shop/t/797/assets/Gilroy-Medium.woff2?v=55627608203960875051788119651" as="font" crossorigin="anonymous" rel="preload"> 21 <link href="//roseskinco.com/cdn/shop/t/797/assets/Gilroy-Semibold.woff2?v=103842378369895428241788119652" as="font" crossorigin="anonymous" rel="preload"> 22 23 24 25 26 27 28 29 30 31 32<!-- 33 Copyright 2026 Process Creative 34 35 Visit Us: 36 Web - https://processcreative.com.au 37 Instagram - https://instagram.com/process_creative 38 Shopify - https://experts.shopify.com/process 39--> 40<meta charset="utf-8" /> 41<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 42<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 43<meta name="yandex-verification" content="b716a8db8ae0f315" /> 44<meta name="google-site-verification" content="JBfFY9DYbl5HKFrqxueEfPgYwcVZkMBAfMgrnGsG3ks" /> 45<meta name="google-site-verification" content="_ApYKYlOmdyXjC8ThGT71uZ78-SLEUxrXKB-UMmzoRo" /> 46<meta name="google-site-verification" content="nVREwA2laxzapxJAY3i2sD13Q_iJphW4bmKz-_m5x-w" /> 47 48<meta name="msvalidate.01" content="6BD6F26AD4B3A3517E0F4F66F101E095" /> 49<meta name="p:domain_verify" content="0898117983b25c9d93137197a57e25be" /> 50<meta name="p:domain_verify" content="3746925c6df03e44ccfa045817985ce2" /> 51<meta name="google-site-verification" content="v2OoXKyjc4r5gQUh0EPel4eVHkSpNI5MSz2DoCTSkGM" /> 52<!-- /snippets/social-meta-tags.liquid --> 53 54 55 56 57<meta property="og:site_name" content="RoseSkinCo."> 58<meta property="og:url" content="https://roseskinco.com/blogs/news"> 59<meta property="og:title" content="Blog"> 60<meta property="og:type" content="website"> 61<meta property="og:description" content="Find out more about the latest hair removal trends and products, as well as tips and tricks. Read our blog here."> 62 63 64 65 66 67<meta name="twitter:card" content="summary_large_image"> 68<meta name="twitter:title" content="Blog"> 69<meta name="twitter:description" content="Find out more about the latest hair removal trends and products, as well as tips and tricks. Read our blog here.">
70<script src="https://code.jquery.com/jquery-3.6.0.min.js" async></script>
70<link rel="dns-prefetch" href="//monorail-edge.shopifysvc.com" /><link rel="dns-prefetch" href="//cdn.shopify.com" /><link rel="dns-prefetch" href="//cdnjs.cloudflare.com" /><link rel="canonical" href="https://roseskinco.com/blogs/news">
71<script 72 async 73 type="text/javascript" 74 id="stamped-script-widget" 75 data-api-key="pubkey-dChOv47b2V8KFN853TE6iFi1tbD1z9" 76 src="https://cdn1.stamped.io/files/widget.min.js"></script>
76<link href="//roseskinco.com/cdn/shop/t/797/assets/layouts.critical.css?v=68455728573897419231788119676" rel="stylesheet" type="text/css" media="all" /> 77<link href="//roseskinco.com/cdn/shop/t/797/assets/layouts.theme.css?v=65612535958638233131788119680" rel="stylesheet" type="text/css" media="all" /> 78<title>Blog 79 80 81 82 – RoseSkinCo.</title><meta name="description" content="Find out more about the latest hair removal trends and products, as well as tips and tricks. Read our blog here." /><link 83 rel="shortcut icon" 84 href="//roseskinco.com/cdn/shop/files/RSC_RosePinkBrandmark_12.31.21_V1_1_2_e1c4545c-e1f8-4e72-af0f-52c61781e50c_32x32.png?v=1726687602" 85 type="image/png" />
85<script type="text/javascript"> 86 window.Shop = "row"; 87 window.Asset = "\/\/roseskinco.com\/cdn\/shop\/t\/797\/assets\/layout.theme.js?v=96376"; 88 window.Customer =null; 89 window.Language = window.Language || {}; 90 window.Language.strings = window.Language.strings || {}; 91 window.Cart = window.Cart || {}; 92 window.Cart.data = window.Cart.data || 93{"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0,"items_with_product": []}; 94 window.Currency = window.Currency || {}; 95 window.Currency.currency = "USD"; 96 window.Currency.format = "${{ amount_no_decimals }}"; 97 window.Currency.convertedFormat = null; 98</script>
98 99 100 101 102 103 104 105 106 107 108 109 110 111
112<script type="text/javascript" data-language-strings> 113 var a = function(k,v) {((window.Language=window.Language||{}).strings=window.Language.strings||{})[k]=v;};a("products.product.view_product","View {{productName}}");a("products.product.free","Translation missing: en.products.product.free");a("products.product.add_to_cart","Add to Cart");a("products.product.adding","Adding");a("products.product.add_to_cart_template","Translation missing: en.products.product.add_to_cart_template");a("products.product.cart_pending","Translation missing: en.products.product.cart_pending");a("products.product.all_in_cart","All in Cart");a("products.product.added_to_cart","Added to Cart");a("products.product.quick_add","Quick Add");a("products.product.preorder","Preorder");a("products.product.sold_out","Out of Stock");a("products.product.error","Translation missing: en.products.product.error");a("products.product.on_sale","on sale,on sale,on sale");a("products.product.error_add_cart","There was an error adding the item to your cart. Please try again.");a("collections.collection.sort_label","Sort by");a("collections.collection.category","Category");a("general.cart.add","Quick add");a("general.cart.adding","Adding!");a("rewards.points_count","Translation missing: en.rewards.points_count");a("rewards.copy_code","Translation missing: en.rewards.copy_code");a("rewards.copy","Translation missing: en.rewards.copy");a("rewards.copied","Translation missing: en.rewards.copied");a("rewards.unlock","Translation missing: en.rewards.unlock");a("rewards.reveal","Translation missing: en.rewards.reveal");a("rewards.redeemed","Translation missing: en.rewards.redeemed");a("rewards.activity","Translation missing: en.rewards.activity");a("rewards.no_activity","Translation missing: en.rewards.no_activity");a("rewards.spent","Translation missing: en.rewards.spent");a("rewards.congrats","Translation missing: en.rewards.congrats");</script>
vendor: 1 bytes, line 113
113
114<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
114<meta name="facebook-domain-verification" content="bzpa8v6kzgjym3omm5zemhlh4u2rw6"> 115<meta name="facebook-domain-verification" content="wegswun1uw27qh4bhf4h4gflt0fv4r"> 116<meta name="facebook-domain-verification" content="te4i8d5w8nyxiztfrvi0suj5mfn06l"> 117<meta name="google-site-verification" content="1AWyssC4uq7wpkaYJZaii7J7GruM-x2P1eZgCqexXLs"> 118<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/8487567423/digital_wallets/dialog"> 119<meta id="in-context-paypal-metadata" data-shop-id="8487567423" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 120<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/blogs/news.atom" /> 121<link rel="alternate" hreflang="x-default" href="https://roseskinco.com/blogs/news"> 122<link rel="alternate" hreflang="en" href="https://roseskinco.com/blogs/news"> 123<link rel="alternate" hreflang="en-CA" href="https://ca.roseskinco.com/blogs/news"> 124<link rel="alternate" hreflang="en-AU" href="https://au.roseskinco.com/blogs/news"> 125<link rel="alternate" hreflang="en-GB" href="https://uk.roseskinco.com/blogs/news"> 126<link rel="alternate" hreflang="en-AE" href="https://ae.roseskinco.com/blogs/news"> 127<link rel="alternate" hreflang="en-MX" href="https://int.roseskinco.com/blogs/news"> 128<link rel="alternate" hreflang="en-NZ" href="https://nz.roseskinco.com/blogs/news"> 129<link rel="alternate" hreflang="en-SG" href="https://sg.roseskinco.com/blogs/news"> 130<link rel="alternate" hreflang="en-SI" href="https://eu.roseskinco.com/blogs/news"> 131<link rel="alternate" hreflang="en-AT" href="https://eu.roseskinco.com/blogs/news"> 132<link rel="alternate" hreflang="en-BE" href="https://eu.roseskinco.com/blogs/news"> 133<link rel="alternate" hreflang="en-DK" href="https://eu.roseskinco.com/blogs/news"> 134<link rel="alternate" hreflang="en-FR" href="https://eu.roseskinco.com/blogs/news"> 135<link rel="alternate" hreflang="en-DE" href="https://eu.roseskinco.com/blogs/news"> 136<link rel="alternate" hreflang="en-IE" href="https://eu.roseskinco.com/blogs/news"> 137<link rel="alternate" hreflang="en-IT" href="https://eu.roseskinco.com/blogs/news"> 138<link rel="alternate" hreflang="en-RO" href="https://eu.roseskinco.com/blogs/news"> 139<link rel="alternate" hreflang="en-ES" href="https://eu.roseskinco.com/blogs/news"> 140<link rel="alternate" hreflang="en-NL" href="https://eu.roseskinco.com/blogs/news"> 141<link rel="alternate" hreflang="en-PT" href="https://eu.roseskinco.com/blogs/news"> 142<link rel="alternate" hreflang="en-LT" href="https://eu.roseskinco.com/blogs/news"> 143<link rel="alternate" hreflang="en-MC" href="https://eu.roseskinco.com/blogs/news"> 144<link rel="alternate" hreflang="en-TH" href="https://int.roseskinco.com/blogs/news"> 145<link rel="alternate" hreflang="en-ZA" href="https://za.roseskinco.com/blogs/news"> 146<link rel="alternate" hreflang="en-JP" href="https://int.roseskinco.com/blogs/news"> 147<link rel="alternate" hreflang="en-MY" href="https://int.roseskinco.com/blogs/news"> 148<link rel="alternate" hreflang="en-HK" href="https://int.roseskinco.com/blogs/news"> 149<link rel="alternate" hreflang="en-NO" href="https://eu.roseskinco.com/blogs/news"> 150<link rel="alternate" hreflang="en-CH" href="https://eu.roseskinco.com/blogs/news"> 151<link rel="alternate" hreflang="en-RS" href="https://eu.roseskinco.com/blogs/news"> 152<link rel="alternate" hreflang="en-PH" href="https://int.roseskinco.com/blogs/news"> 153<link rel="alternate" hreflang="en-BG" href="https://eu.roseskinco.com/blogs/news"> 154<link rel="alternate" hreflang="en-HR" href="https://eu.roseskinco.com/blogs/news"> 155<link rel="alternate" hreflang="en-CZ" href="https://eu.roseskinco.com/blogs/news"> 156<link rel="alternate" hreflang="en-FI" href="https://eu.roseskinco.com/blogs/news"> 157<link rel="alternate" hreflang="en-HU" href="https://eu.roseskinco.com/blogs/news"> 158<link rel="alternate" hreflang="en-LV" href="https://eu.roseskinco.com/blogs/news"> 159<link rel="alternate" hreflang="en-LU" href="https://eu.roseskinco.com/blogs/news"> 160<link rel="alternate" hreflang="en-PL" href="https://eu.roseskinco.com/blogs/news"> 161<link rel="alternate" hreflang="en-SK" href="https://eu.roseskinco.com/blogs/news"> 162<link rel="alternate" hreflang="en-SE" href="https://eu.roseskinco.com/blogs/news"> 163<link rel="alternate" hreflang="en-TR" href="https://eu.roseskinco.com/blogs/news"> 164<link rel="alternate" hreflang="en-SA" href="https://int.roseskinco.com/blogs/news"> 165<link rel="alternate" hreflang="en-BR" href="https://int.roseskinco.com/blogs/news"> 166<link rel="alternate" hreflang="en-IN" href="https://int.roseskinco.com/blogs/news"> 167<link rel="alternate" hreflang="en-KR" href="https://int.roseskinco.com/blogs/news">
168<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5032214709"></script>
168 169<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
170<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=5032214709&shop_id=8487567423" crossorigin="anonymous"></script>
vendor: 1 bytes, line 170
170
171<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":8487567423,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/8487567423","merchantName":"RoseSkinCo.","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"RoseSkinCo.","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 171
171
172<script id="shopify-features" type="application/json">{"accessToken":"6d32cb2d61a78c7b24041f2d6eeb0705","betas":["rich-media-storefront-analytics"],"domain":"roseskinco.com","predictiveSearch":true,"shopId":8487567423,"locale":"en"}</script>
vendor: 1 bytes, line 172
172
173<script>var Shopify = Shopify || {}; 174Shopify.shop = "roseskinco.myshopify.com"; 175Shopify.locale = "en"; 176Shopify.currency = {"active":"USD","rate":"1.0"}; 177Shopify.country = "US"; 178Shopify.theme = {"name":"Copy of PC Staging | Cart Redesign | 05.06","id":193204912309,"schema_name":"Process Creative","schema_version":"3.0.0","theme_store_id":null,"role":"main"}; 179Shopify.theme.handle = "null"; 180Shopify.theme.style = {"id":null,"handle":null}; 181Shopify.cdnHost = "roseskinco.com/cdn"; 182Shopify.routes = Shopify.routes || {}; 183Shopify.routes.root = "/"; 184Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 185Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 186Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 187Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 187
187
188<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 188
188
189<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 189
189
190<script> 191 window.ShopifyPay = window.ShopifyPay || {}; 192 window.ShopifyPay.apiHost = "shop.app\/pay"; 193 window.ShopifyPay.redirectState = null; 194</script>
vendor: 1 bytes, line 194
194
195<script> 196 window.Shopify = window.Shopify || {}; 197 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 198 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 199 window.Shopify.SignInWithShop.eligible = true; 200</script>
vendor: 1 bytes, line 200
200
201<script id="shop-js-analytics" type="application/json">{"pageType":"blog"}</script>
vendor: 1 bytes, line 201
201
202<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 202
202
203<script type="module"> 204 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 205 206 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 207 208</script>
vendor: 1 bytes, line 208
208
209<script> 210 window.Shopify = window.Shopify || {}; 211 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 212 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 213</script>
vendor: 1 bytes, line 213
213
214<script>(function() { 215 var isLoaded = false; 216 function asyncLoad() { 217 if (isLoaded) return; 218 isLoaded = true; 219 var urls = ["https:\/\/formbuilder.hulkapps.com\/skeletopapp.js?shop=roseskinco.myshopify.com","https:\/\/cdn.shopify.com\/s\/files\/1\/0084\/8756\/7423\/t\/355\/assets\/globo.formbuilder.init.js?v=1654683630\u0026shop=roseskinco.myshopify.com"]; 220 for (var i = 0; i < urls.length; i++) { 221 var s = document.createElement('script'); 222 s.type = 'text/javascript'; 223 s.async = true; 224 s.src = urls[i]; 225 var x = document.getElementsByTagName('script')[0]; 226 x.parentNode.insertBefore(s, x); 227 } 228 }; 229 if(window.attachEvent) { 230 window.attachEvent('onload', asyncLoad); 231 } else { 232 window.addEventListener('load', asyncLoad, false); 233 } 234})();</script>
vendor: 1 bytes, line 234
234
235<script id="__st">var __st={"a":8487567423,"offset":-14400,"reqid":"be2acfd2-de9d-4796-a2b9-dda396418474-1791062386","pageurl":"roseskinco.com\/blogs\/news","s":"blogs-23978442815","u":"061b8986ab61","p":"blog","rtyp":"blog","rid":23978442815};</script>
vendor: 1 bytes, line 235
235
236<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 236
236
237<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 237
237
238<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//roseskinco.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 238
238
239<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//roseskinco.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
239<script crossorigin="anonymous" defer="defer" src="//roseskinco.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 239
239
240<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 240
240
241<script> 242 window.Shopify = window.Shopify || {}; 243 window.Shopify.MCP = window.Shopify.MCP || {}; 244 window.Shopify.MCP.enabled = true; 245 window.Shopify.MCP.shop = "roseskinco.myshopify.com"; 246 window.Shopify.MCP.mcpEndpoint = "https:\/\/roseskinco.com\/api\/mcp"; 247 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 248</script>
vendor: 1 bytes, line 248
248
249<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/roseskinco.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 250</script>
vendor: 1 bytes, line 250
250
251<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://roseskinco.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 252</script>
vendor: 1 bytes, line 252
252
253<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 254 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 255</script>
vendor: 1 bytes, line 255
255
256<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 257</script>
257 258<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://roseskinco.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 259<style id="shopify-accelerated-checkout-cart"> 260 #shopify-buyer-consent { 261 margin-top: 1em; 262 display: inline-block; 263 width: 100%; 264} 265 266#shopify-buyer-consent.hidden { 267 display: none; 268} 269 270#shopify-subscription-policy-button { 271 background: none; 272 border: none; 273 padding: 0; 274 text-decoration: underline; 275 font-size: inherit; 276 cursor: pointer; 277} 278 279#shopify-subscription-policy-button::before { 280 box-shadow: none; 281} 282 283 </style> 284
285<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
285 286 287 288 289 290 291 292 293 294 295 <style> 296 .no-js { 297 display: none; 298 } 299 body.ab-variant-test:not(.lumi) .c-product-image-carousel__slide-image.no-js { 300 display: block !important; 301 } 302 body.ab-variant-test:not(.lumi) .c-product-image-carousel__slide:first-child picture { 303 display: none; 304 } 305 body.ab-variant-test.sl-C6661040 .shoplift-ac { 306 display: none; 307 } 308 body.ab-variant-test.sl-0F933C55 .shoplift-ab { 309 display: none; 310 } 311 @media only screen and (min-width: 1200px) { 312 body.ab-variant-test:not(.lumi) .c-product-image-carousel__nav-wrapper { 313 top: 50%; 314 transform: translateY(-50%); 315 width: 100%; 316 left: 0; 317 } 318 body.ab-variant-test:not(.lumi) .c-product-image-carousel__nav-container { 319 width: calc(100% - 16px); 320 } 321 body.ab-variant-test:not(.lumi) .c-product-image-carousel__nav-wrapper .c-product-image-carousel__dots-wrapper { 322 display: none; 323 } 324 } 325 @media (max-width: 1199px) { 326 body.ab-variant-test:not(.lumi) .c-product__badge-image-wrapper { 327 left: .5rem; 328 right: auto; 329 } 330 } 331 </style> 332 333 <noscript> 334 <style> 335 .has-js { 336 display: none !important; 337 } 338 .no-js { 339 display: block !important; 340 } 341 </style> 342 </noscript> 343 <style> 344 .skip-link { 345 position: absolute; 346 left: -10000px; 347 top: 0px; 348 padding: 12px; 349 background-color: white; 350 color: black; 351 border: 2px solid black; 352 border-radius: 5px; 353 z-index: 999999999; 354 } 355 .skip-link:focus-visible { 356 left: 0px; 357 } 358 .c-header-navigation__lvl1-item:focus-within .c-header-navigation__lvl2, li.c-header-navigation__lvl2:focus-visible + div.c-header-navigation__lvl2 { 359 opacity: 1; 360 pointer-events: auto; 361 transition-delay: 0s; 362 visibility: visible; 363 } 364 </style> 365 <!-- BEGIN app block: shopify://apps/aimerce-first-party-pixel/blocks/c-track-embed/51cbda5a-dbfc-4e7b-8d12-c9e90363dcd7 --><!-- END app block --><!-- BEGIN app block: shopify://apps/powerful-form-builder/blocks/app-embed/e4bcb1eb-35b2-42e6-bc37-bfe0e1542c9d -->
365<script type="text/javascript" hs-ignore data-cookieconsent="ignore"> 366 var Globo = Globo || {}; 367 var globoFormbuilderRecaptchaInit = function(){}; 368 var globoFormbuilderHcaptchaInit = function(){}; 369 window.Globo.FormBuilder = window.Globo.FormBuilder || {}; 370 window.Globo.FormBuilder.shop = {"configuration":{"money_format":"${{ amount_no_decimals }}"},"pricing":{"features":{"bulkOrderForm":true,"cartForm":true,"fileUpload":30,"removeCopyright":true,"restrictedEmailDomains":true,"metrics":true}},"settings":{"copyright":"Powered by G: <a href=\"https://apps.shopify.com/form-builder-contact-form\" target=\"_blank\">Form Builder</a>","hideWaterMark":false,"reCaptcha":{"recaptchaType":"v2","siteKey":false,"languageCode":"en"},"hCaptcha":{"siteKey":false},"scrollTop":false,"customCssCode":"","customCssEnabled":false,"additionalColumns":[]},"encryption_form_id":1,"url":"https://form.globo.io/","CDN_URL":"https://dnhcnb9q6pxc3.cloudfront.net","flags":{"canary_app_version":false},"app_id":"1783207"}; 371 if(window.Globo.FormBuilder.shop && window.Globo.FormBuilder.shop?.storefront_access_token){ 372 delete window.Globo.FormBuilder.shop.storefront_access_token; 373 } 374 375 if(window.Globo.FormBuilder.shop.settings.customCssEnabled && window.Globo.FormBuilder.shop.settings.customCssCode){ 376 const customStyle = document.createElement('style'); 377 customStyle.type = 'text/css'; 378 customStyle.innerHTML = window.Globo.FormBuilder.shop.settings.customCssCode; 379 document.head.appendChild(customStyle); 380 } 381 382 window.Globo.FormBuilder.forms = []; 383 384 385 386 387 window.Globo.FormBuilder.forms[70723] = {"70723":{"header":{"active":true,"title":"Submit your before \u0026 after results","description":"\u003cp\u003e\u003cem\u003eEarn a free $100 USD gift card when you upload your silky smooth skin - guaranteed!\u003c\/em\u003e\u003c\/p\u003e"},"elements":[{"id":"paragraph","type":"paragraph","text":"\u003cp\u003eThe minimum requirement to be eligible is: 1 picture on week 1, 1 on week 4, and 1 on week 8 - 3 pics total\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eRemember to take your pictures right before shaving while preparing for your treatment session to reflect accurate results.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eMake sure to take your pictures, in the same setting and camera angle with the same body parts and lighting to show the best comparison.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eUnfortunately, we wonât be able to accept any submissions that are unclear or blurred\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eWe reserve the right to reject any submissions at our own discretion\u003c\/p\u003e\u003cp\u003eWe can only accept 1 submission per customer\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eThis offer is available worldwide\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eSubmissions are only accepted when submitted to this form.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003cem\u003e*Please note purchases made with your gift card are non-refundable and cannot be exchanged or returned. Warranty claims will be honored\u003c\/em\u003e\u003c\/p\u003e","columnWidth":100},{"id":"text","type":"text","label":"Your Name","placeholder":"Your Name","description":"","limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":"","columnWidth":50},{"id":"text-2","type":"text","label":"Order #","placeholder":"Order Number","description":"","limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":"","columnWidth":50},{"id":"email","type":"email","label":"Email","placeholder":"Email","description":"","limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":"","columnWidth":50},{"id":"file","type":"file","label":"Week 1 Pictures","button-text":"Choose file","placeholder":"","allowed-multiple":true,"allowed-extensions":["jpg","jpeg","png"],"description":"","uploadPending":"File is uploading. Please wait a second...","uploadSuccess":"File uploaded successfully","hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":"","columnWidth":50},{"id":"file-2","type":"file","label":"Week 4 Pictures","button-text":"Choose file","placeholder":"","allowed-multiple":true,"allowed-extensions":["jpg","jpeg","png"],"description":"","uploadPending":"File is uploading. Please wait a second...","uploadSuccess":"File uploaded successfully","hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":"","columnWidth":50},{"id":"file-3","type":"file","label":"Week 8 Pictures","button-text":"Choose file","placeholder":"","allowed-multiple":true,"allowed-extensions":["jpg","jpeg","png"],"description":"","uploadPending":"File is uploading. Please wait a second...","uploadSuccess":"File uploaded successfully","hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":"","columnWidth":50},{"id":"text-3","type":"text","label":"Tell us what you think!","placeholder":"Review your purchase","description":"","limitCharacters":false,"characters":100,"hideLabel":false,"keepPositionLabel":false,"required":true,"ifHideLabel":false,"inputIcon":"\u003csvg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"laugh\" class=\"svg-inline--fa fa-laugh fa-w-16\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 496 512\"\u003e\u003cpath fill=\"currentColor\" d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 12
3876-142.9 126z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e","columnWidth":100},{"id":"acceptTerms","type":"acceptTerms","label":"By checking this box, I hereby agree and consent RoseSkinCo to use my before\/after images without limitations or expiration","rawOption":"Yes","defaultSelected":false,"description":"","required":false,"columnWidth":100},{"id":"html","type":"html","html":"\u003cstyle\u003e\n\n.globo-app-extension {\n margin-top: 150px;\n \n padding: 0 24px;\n\n}\n\n\u003c\/style\u003e","columnWidth":100}],"add-elements":null,"footer":{"description":"","previousText":"Previous","nextText":"Next","submitText":"Submit","resetButton":false,"resetButtonText":"Reset","submitFullWidth":false,"submitAlignment":"left"},"mail":{"admin":null,"customer":{"enable":true,"emailType":"elementEmail","selectEmail":"onlyEmail","emailId":"email","emailConditional":false,"note":"You can use variables which will help you create a dynamic content","subject":"Thanks for submitting","content":"\u003ctable class=\"header row\" style=\"width: 100%; border-spacing: 0; border-collapse: collapse; margin: 40px 0 20px;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"header__cell\" style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\"\u003e\u003ccenter\u003e\n\u003ctable class=\"container\" style=\"width: 559px; text-align: left; border-spacing: 0px; border-collapse: collapse; margin: 0px auto;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; width: 544.219px;\"\u003e\n\u003ctable class=\"row\" style=\"width: 100%; border-spacing: 0; border-collapse: collapse;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"shop-name__cell\" style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\"\u003e\n\u003ch1 class=\"shop-name__text\" style=\"font-weight: normal; font-size: 30px; color: #333; margin: 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0084\/8756\/7423\/files\/[email protected]?v=1640869343\" alt=\"\" width=\"193\" height=\"26\" \/\u003e\u003c\/h1\u003e\n\u003c\/td\u003e\n\u003ctd class=\"order-number__cell\" style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; font-size: 14px; color: #999;\" align=\"right\"\u003e\u0026nbsp;\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/center\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ctable class=\"row content\" style=\"width: 100%; border-spacing: 0; border-collapse: collapse;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"content__cell\" style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; padding-bottom: 40px;\"\u003e\u003ccenter\u003e\n\u003ctable class=\"container\" style=\"width: 560px; text-align: left; border-spacing: 0; border-collapse: collapse; margin: 0 auto;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\"\u003e\n\u003ch2 class=\"quote-heading\" style=\"font-weight: normal; font-size: 24px; margin: 0 0 10px;\"\u003eThanks for your submission\u003c\/h2\u003e\n\u003cp class=\"quote-heading-message\"\u003eHi, we are\u0026nbsp;reviewing\u0026nbsp;your submission. We will get back to you shortly with your gift card!\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ctable class=\"row section\" style=\"width: 100%; border-spacing: 0; border-collapse: collapse; border-top-width: 1px; border-top-color: #e5e5e5; border-top-style: solid;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"section__cell\" style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; padding: 40px 0;\"\u003e\u003ccenter\u003e\n\u003ctable class=\"container\" style=\"width: 560px; text-align: left; border-spacing: 0; border-collapse: collapse; margin: 0 auto;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\"\u003e\n\u003ch3 class=\"more-information\"\u003eMore information\u003c\/h3\u003e\n\u003cp\u003e{{data}}\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/center\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ctable class=\"row footer\" style=\"width: 100%; border-spacing: 0; border-collapse: collapse; border-top-width: 1px; border-top-color: #e5e5e5; border-top-style: solid;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"footer__cell\" style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; padding: 35px 0;\"\u003e\u003ccenter\u003e\n\u003ctable class=\"container\" style=\"width: 560px; text-align: left; border-spacing: 0; border-collapse: collapse; margin: 0 auto;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\"\u003e\n\u003cp class=\"contact\" style=\"text-align: center;\"\u003eIf you have any questions, reply to this email or contact us at\u0026nbsp;\u003cspan style=\"text-align: left;\"\u003e\u0026nbsp;\u003c\/span\u003e\u003ca class=\"o-link o-link-email\" style=\"text-align: left; box-sizing: inherit; outline: 0px; color: #0093ee; transition: color 0.2s linear 0s; cursor: pointer;
387 -webkit-user-drag: none; word-break: break-all; font-family: 'Crisp Proxima Nova', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;\" href=\"mailto:[email protected]\"\[email protected]\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"font-family: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\"\u003e\n\u003cp class=\"disclaimer__subtext\" style=\"color: #999; line-height: 150%; font-size: 14px; margin: 0; text-align: center;\"\u003eClick \u003ca href=\"[UNSUBSCRIBEURL]\"\u003ehere\u003c\/a\u003e to unsubscribe\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/center\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/center\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e","islimitWidth":false,"maxWidth":"600"}},"appearance":{"layout":"default","width":600,"style":"flat","mainColor":"rgba(255,126,141,1)","headingColor":"rgba(255,126,141,1)","labelColor":"rgba(31,29,36,1)","descriptionColor":"rgba(31,29,36,1)","optionColor":"rgba(31,29,36,1)","paragraphColor":"#000","paragraphBackground":"rgba(255,255,255,0)","background":"none","backgroundColor":"#FFF","backgroundImage":"","backgroundImageAlignment":"middle","floatingIcon":"\u003csvg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"envelope\" class=\"svg-inline--fa fa-envelope fa-w-16\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"\u003e\u003cpath fill=\"currentColor\" d=\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e","floatingText":"","displayOnAllPage":false,"position":"bottom right","formType":"normalForm","newTemplate":false},"reCaptcha":{"enable":false,"note":"Please make sure that you have set Google reCaptcha v2 Site key and Secret key in \u003ca href=\"\/admin\/settings\"\u003eSettings\u003c\/a\u003e"},"errorMessage":{"required":"Please fill in field","invalid":"Invalid","invalidName":"Invalid name","invalidEmail":"Invalid email","invalidURL":"Invalid URL","invalidPhone":"Invalid phone","invalidNumber":"Invalid number","invalidPassword":"Invalid password","confirmPasswordNotMatch":"Confirmed password doesn't match","customerAlreadyExists":"Customer already exists","fileSizeLimit":"File size limit exceeded","fileNotAllowed":"File extension not allowed","requiredCaptcha":"Please, enter the captcha","requiredProducts":"Please select product","limitQuantity":"The number of products left in stock has been exceeded","shopifyInvalidPhone":"phone - Enter a valid phone number to use this delivery method","shopifyPhoneHasAlready":"phone - Phone has already been taken","shopifyInvalidProvice":"addresses.province - is not valid","otherError":"Something went wrong, please try again"}
387,"afterSubmit":{"action":"clearForm","message":"\u003ch4\u003eThanks for getting in touch!\u0026nbsp;\u003c\/h4\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eWe appreciate you contacting us. One of our colleagues will get back in touch with you soon!\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eHave a great day!\u003c\/p\u003e","redirectUrl":"","enableGa":false,"gaEventCategory":"Form Builder by Globo","gaEventAction":"Submit","gaEventLabel":"Contact us form","enableFpx":false,"fpxTrackerName":""},"integration":{"shopify":{"createAccount":false,"ifExist":"returnError","showMessage":false,"messageRedirectToLogin":"You already registered. Click \u003ca href=\"\/account\/login\"\u003ehere\u003c\/a\u003e to login","sendEmailInvite":false,"acceptsMarketing":false,"overwriteCustomerExisting":true,"note":"Learn \u003ca href=\"https:\/\/www.google.com\/\" target=\"_blank\"\u003ehow to connect\u003c\/a\u003e form elements to Shopify customer data","integrationElements":{"text":"additional.your_name","text-2":"additional.order__2","email":"email","file":"additional.week_1_pictures","file-2":"additional.week_4_pictures_2","file-3":"additional.week_8_pictures_3","text-3":"additional.text","acceptTerms":"additional.by_checking_this_box_i_hereby_agree_and_consent_roseskinco_to_use_my_beforeafter_images_without_limitations_or_expiration"}},"mailChimp":{"loading":"","enable":false,"list":false,"note":"Learn \u003ca href=\"https:\/\/www.google.com\/\" target=\"_blank\"\u003ehow to connect\u003c\/a\u003e form elements to Mailchimp subscriber data","integrationElements":[]},"klaviyo":{"loading":"","enable":false,"list":false,"note":"Learn \u003ca href=\"https:\/\/www.google.com\/\" target=\"_blank\"\u003ehow to connect\u003c\/a\u003e form elements to Klaviyo subscriber data","integrationElements":{"klaviyoemail":"","first_name":{"val":"","option":""},"last_name":{"val":"","option":""},"title":{"val":"","option":""},"organization":{"val":"","option":""},"phone_number":{"val":"","option":""},"address1":{"val":"","option":""},"address2":{"val":"","option":""},"city":{"val":"","option":""},"region":{"val":"","option":""},"zip":{"val":"","option":""},"country":{"val":"","option":""},"latitude":{"val":"","option":""},"longitude":{"val":"","option":""}}},"zapier":{"enable":false,"webhookUrl":""},"hubspot":{"loading":"","enable":false,"list":false,"integrationElements":[]},"omnisend":{"loading":"","enable":false,"integrationElements":{"email":{"val":"","option":""},"firstName":{"val":"","option":""},"lastName":{"val":"","option":""},"status":{"val":"","option":""},"country":{"val":"","option":""},"state":{"val":"","option":""},"city":{"val":"","option":""},"phone":{"val":"","option":""},"postalCode":{"val":"","option":""},"gender":{"val":"","option":""},"birthdate":{"val":"","option":""},"tags":{"val":"","option":""},"customProperties1":{"val":"","option":""},"customProperties2":{"val":"","option":""},"customProperties3":{"val":"","option":""},"customProperties4":{"val":"","option":""},"customProperties5":{"val":"","option":""}}},"getresponse":{"loading":"","enable":false,"list":false,"integrationElements":{"email":{"val":"","option":""},"name":{"val":"","option":""},"gender":{"val":"","option":""},"birthdate":{"val":"","option":""},"company":{"val":"","option":""},"city":{"val":"","option":""},"state":{"val":"","option":""},"street":{"val":"","option":""},"postal_code":{"val":"","option":""},"country":{"val":"","option":""},"phone":{"val":"","option":""},"fax":{"val":"","option":""},"comment":{"val":"","option":""},"ref":{"val":"","option":""},"url":{"val":"","option":""},"tags":{"val":"","option":""},"dayOfCycle":{"val":"","option":""},"scoring":{"val":"","option":""}}},"sendinblue":{"loading":"","enable":false,"list":false,"integrationElements":[]},"campaignmonitor":{"loading":"","enable":false,"list":false,"integrationElements":[]},"activecampaign":{"loading":"","enable":false,"list":[],"integrationElements":[]},"googleCalendar":{"loading":"","enable":false,"list":"","integrationElements":{"starttime":"","endtime":"","summary":"","location":"","description":"","attendees":""}},"googleSheet":{"loading":"","enable":false,"spreadsheetdestination":"","listFields":["text-3","html"],"submissionIp":false}},"accountPage":{"showAccountDetail":false,"registrationPage":false,"editAccountPage":false,"header":"Header","active":false,"title":"Account details","headerDescription":"Fill out the form to change account information","afterUpdate":"Message after update","message":"\u
387003ch5\u003eAccount edited successfully!\u003c\/h5\u003e","footer":"Footer","updateText":"Update","footerDescription":""},"publish":{"requiredLogin":false,"requiredLoginMessage":"Please \u003ca href=\"\/account\/login\" title=\"login\"\u003elogin\u003c\/a\u003e to continue","publishType":"embedCode","embedCode":"\u003cdiv class=\"globo-formbuilder\" data-id=\"NzA3MjM=\"\u003e\u003c\/div\u003e","shortCode":"{formbuilder:NzA3MjM=}","popup":"\u003cbutton class=\"globo-formbuilder-open\" data-id=\"NzA3MjM=\"\u003eOpen form\u003c\/button\u003e","lightbox":"\u003cdiv class=\"globo-form-publish-modal lightbox hidden\" data-id=\"NzA3MjM=\"\u003e\u003cdiv class=\"globo-form-modal-content\"\u003e\u003cdiv class=\"globo-formbuilder\" data-id=\"NzA3MjM=\"\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e","enableAddShortCode":true,"selectPage":"86061383861","selectPositionOnPage":"top","selectTime":"forever","setCookie":"1","setCookieHours":"1","setCookieWeeks":"1"},"isStepByStepForm":false,"html":"\n\u003cdiv class=\"globo-form default-form globo-form-id-70723\"\u003e\n\u003cstyle\u003e\n.globo-form-id-70723 .globo-form-app{\n max-width: 600px;\n width: -webkit-fill-available;\n \n \n}\n\n.globo-form-id-70723 .globo-form-app .globo-heading{\n color: rgba(255,126,141,1)\n}\n.globo-form-id-70723 .globo-form-app .globo-description,\n.globo-form-id-70723 .globo-form-app .header .globo-description{\n color: rgba(31,29,36,1)\n}\n.globo-form-id-70723 .globo-form-app .globo-label,\n.globo-form-id-70723 .globo-form-app .globo-form-control label.globo-label,\n.globo-form-id-70723 .globo-form-app .globo-form-control label.globo-label span.label-content{\n color: rgba(31,29,36,1);\n text-align: left !important;\n}\n.globo-form-id-70723 .globo-form-app .globo-label.globo-position-label{\n height: 20px !important;\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .help-text.globo-description{\n color: rgba(31,29,36,1)\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .checkbox-wrapper .globo-option,\n.globo-form-id-70723 .globo-form-app .globo-form-control .radio-wrapper .globo-option\n{\n color: rgba(31,29,36,1)\n}\n.globo-form-id-70723 .globo-form-app .footer{\n text-align:left;\n}\n.globo-form-id-70723 .globo-form-app .footer button{\n border:1px solid rgba(255,126,141,1);\n \n}\n.globo-form-id-70723 .globo-form-app .footer button.submit,\n.globo-form-id-70723 .globo-form-app .footer button.checkout,\n.globo-form-id-70723 .globo-form-app .footer button.action.loading .spinner{\n background-color: rgba(255,126,141,1);\n color : #000000;\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .star-rating\u003efieldset:not(:checked)\u003elabel:before {\n content: url('data:image\/svg+xml; utf8, \u003csvg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"star\" class=\"svg-inline--fa fa-star fa-w-18\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 576 512\"\u003e\u003cpath fill=\"rgba(255,126,141,1)\" d=\"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e');\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .star-rating\u003efieldset\u003einput:checked ~ label:before {\n content: url('data:image\/svg+xml; utf8, \u003csvg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"star\" class=\"svg-inline--fa fa-star fa-w-18\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 576 512\"\u003e\u003cpath fill=\"rgba(255,126,141,1)\" d=\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e');\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .star-rating\u003efieldset:not(:checked)\u003elabel:hover:before,\n.globo-form-id-70723 .globo-form-app .globo-form-control .star-rating\u003efieldset:not(:checked)\u003elabel:hover ~ label:before{\n content : url('data:image\/svg+xml;
387 utf8, \u003csvg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"star\" class=\"svg-inline--fa fa-star fa-w-18\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 576 512\"\u003e\u003cpath fill=\"rgba(255,126,141,1)\" d=\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e')\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .radio-wrapper .radio-input:checked ~ .radio-label:after {\n background: rgba(255,126,141,1);\n background: radial-gradient(rgba(255,126,141,1) 40%, #fff 45%);\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .checkbox-wrapper .checkbox-input:checked ~ .checkbox-label:before {\n border-color: rgba(255,126,141,1);\n box-shadow: 0 4px 6px rgba(50,50,93,0.11), 0 1px 3px rgba(0,0,0,0.08);\n background-color: rgba(255,126,141,1);\n}\n.globo-form-id-70723 .globo-form-app .step.-completed .step__number,\n.globo-form-id-70723 .globo-form-app .line.-progress,\n.globo-form-id-70723 .globo-form-app .line.-start{\n background-color: rgba(255,126,141,1);\n}\n.globo-form-id-70723 .globo-form-app .checkmark__check,\n.globo-form-id-70723 .globo-form-app .checkmark__circle{\n stroke: rgba(255,126,141,1);\n}\n.globo-form-id-70723 .floating-button{\n background-color: rgba(255,126,141,1);\n}\n.globo-form-id-70723 .globo-form-app .globo-form-control .checkbox-wrapper .checkbox-input ~ .checkbox-label:before,\n.globo-form-app .globo-form-control .radio-wrapper .radio-input ~ .radio-label:after{\n border-color : rgba(255,126,141,1);\n}\n.globo-form-id-70723 .flatpickr-day.selected, \n.globo-form-id-70723 .flatpickr-day.startRange, \n.globo-form-id-70723 .flatpickr-day.endRange, \n.globo-form-id-70723 .flatpickr-day.selected.inRange, \n.globo-form-id-70723 .flatpickr-day.startRange.inRange, \n.globo-form-id-70723 .flatpickr-day.endRange.inRange, \n.globo-form-id-70723 .flatpickr-day.selected:focus, \n.globo-form-id-70723 .flatpickr-day.startRange:focus, \n.globo-form-id-70723 .flatpickr-day.endRange:focus, \n.globo-form-id-70723 .flatpickr-day.selected:hover, \n.globo-form-id-70723 .flatpickr-day.startRange:hover, \n.globo-form-id-70723 .flatpickr-day.endRange:hover, \n.globo-form-id-70723 .flatpickr-day.selected.prevMonthDay, \n.globo-form-id-70723 .flatpickr-day.startRange.prevMonthDay, \n.globo-form-id-70723 .flatpickr-day.endRange.prevMonthDay, \n.globo-form-id-70723 .flatpickr-day.selected.nextMonthDay, \n.globo-form-id-70723 .flatpickr-day.startRange.nextMonthDay, \n.globo-form-id-70723 .flatpickr-day.endRange.nextMonthDay {\n background: rgba(255,126,141,1);\n border-color: rgba(255,126,141,1);\n}\n.globo-form-id-70723 .globo-paragraph,\n.globo-form-id-70723 .globo-paragraph * {\n background: rgba(255,255,255,0) !important;\n color: #000 !important;\n width: 100%!important;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"globo-form-app default-layout\"\u003e\n \u003cdiv class=\"header dismiss hidden\" onclick=\"Globo.FormBuilder.closeModalForm(this)\"\u003e\n \u003csvg viewBox=\"0 0 20 20\" class=\"\" focusable=\"false\" aria-hidden=\"true\"\u003e\u003cpath d=\"M11.414 10l4.293-4.293a.999.999 0 1 0-1.414-1.414L10 8.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L8.586 10l-4.293 4.293a.999.999 0 1 0 1.414 1.414L10 11.414l4.293 4.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L11.414 10z\" fill-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/div\u003e\n \u003cform class=\"g-container\" novalidate action=\"\/api\/front\/form\/70723\/send\" method=\"POST\" enctype=\"multipart\/form-data\" data-id=70723\u003e\n \n \n \u003cdiv class=\"header\"\u003e\n \u003ch3 class=\"title globo-heading\"\u003eSubmit your before \u0026 after results\u003c\/h3\u003e\n \n \u003cdiv class=\"description globo-description\"\u003e\u003cp\u003e\u003cem\u003eEarn a free $100 USD gift card when you upload your silky smooth skin - guaranteed!\u003c\/em\u003e\u003c\/p\u003e\u003c\/div\u003e\n \n \u003c\/div\u003e\n \n \n \n \u003cdiv class=\"content flex-wrap block-container\" data-id=70723\u003e\n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-1-column\" \u003e\n \u003cdiv class=\"globo-paragraph\"\u003e\u003cp\u003eThe minimum requirement to be eligible is: 1 picture on week 1, 1 on week 4, and 1 on week 8 - 3 pics total\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eRemember to take your pictures right before shaving while preparing for your treatment session to reflect accurate results.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eMake sure to take your pictures, in the same setting and camera angle with the same body parts and lighting to show the best comparison.\u
387003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eUnfortunately, we wonât be able to accept any submissions that are unclear or blurred\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eWe reserve the right to reject any submissions at our own discretion\u003c\/p\u003e\u003cp\u003eWe can only accept 1 submission per customer\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eThis offer is available worldwide\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eSubmissions are only accepted when submitted to this form.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003cem\u003e*Please note purchases made with your gift card are non-refundable and cannot be exchanged or returned. Warranty claims will be honored\u003c\/em\u003e\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-2-column\" \u003e\n \u003clabel for=\"70723-text\" class=\"flat-label globo-label \"\u003e\u003cspan class=\"label-content\" data-label=\"Your Name\"\u003eYour Name\u003c\/span\u003e\u003cspan class=\"text-danger text-smaller\"\u003e *\u003c\/span\u003e\u003c\/label\u003e\n \u003cdiv class=\"globo-form-input\"\u003e\n \n \u003cinput type=\"text\" data-type=\"text\" class=\"flat-input\" id=\"70723-text\" name=\"text\" placeholder=\"Your Name\" presence \u003e\n \u003c\/div\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-2-column\" \u003e\n \u003clabel for=\"70723-text-2\" class=\"flat-label globo-label \"\u003e\u003cspan class=\"label-content\" data-label=\"Order #\"\u003eOrder #\u003c\/span\u003e\u003cspan class=\"text-danger text-smaller\"\u003e *\u003c\/span\u003e\u003c\/label\u003e\n \u003cdiv class=\"globo-form-input\"\u003e\n \n \u003cinput type=\"text\" data-type=\"text\" class=\"flat-input\" id=\"70723-text-2\" name=\"text-2\" placeholder=\"Order Number\" presence \u003e\n \u003c\/div\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-2-column\" \u003e\n \u003clabel for=\"70723-email\" class=\"flat-label globo-label \"\u003e\u003cspan class=\"label-content\" data-label=\"Email\"\u003eEmail\u003c\/span\u003e\u003cspan class=\"text-danger text-smaller\"\u003e *\u003c\/span\u003e\u003c\/label\u003e\n \u003cdiv class=\"globo-form-input\"\u003e\n \n \u003cinput type=\"text\" data-type=\"email\" class=\"flat-input\" id=\"70723-email\" name=\"email\" placeholder=\"Email\" presence \u003e\n \u003c\/div\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-2-column\" \u003e\n \u003clabel for=\"70723-file\" class=\"flat-label globo-label \"\u003e\u003cspan class=\"label-content\" data-label=\"Week 1 Pictures\"\u003eWeek 1 Pictures\u003c\/span\u003e\u003cspan class=\"text-danger text-smaller\"\u003e *\u003c\/span\u003e\u003c\/label\u003e\n \u003cdiv class=\"globo-form-input\"\u003e\n \n \u003cinput type=\"file\" data-type=\"file\" class=\"flat-input\" id=\"70723-file\" multiple name=\"file[]\" \n placeholder=\"\" presence data-allowed-extensions=\"jpg,jpeg,png\"\u003e\n \u003c\/div\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-2-column\" \u003e\n \u003clabel for=\"70723-file-2\" class=\"flat-label globo-label \"\u003e\u003cspan class=\"label-content\" data-label=\"Week 4 Pictures\"\u003eWeek 4 Pictures\u003c\/span\u003e\u003cspan class=\"text-danger text-smaller\"\u003e *\u003c\/span\u003e\u003c\/label\u003e\n \u003cdiv class=\"globo-form-input\"\u003e\n \n \u003cinput type=\"file\" data-type=\"file\" class=\"flat-input\" id=\"70723-file-2\" multiple name=\"file-2[]\" \n placeholder=\"\" presence data-allowed-extensions=\"jpg,jpeg,png\"\u003e\n \u003c\/div\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-2-column\" \u003e\n \u003clabel for=\"70723-file-3\" class=\"flat-label globo-label \"\u003e\u003cspan class=\"label-content\" data-label=\"Week 8 Pictures\"\u003eWeek 8 Pictures\u003c\/span\u003e\u003cspan class=\"text-danger text-smaller\"\u003e *\u003c\/span\u003e\u003c\/label\u003e\n \u003cdiv class=\"globo-form-input\"\u003e\n \n \u003cinput type=\"file\" data-type=\"file\" class=\"flat-input\" id=\"70723-file-3\" multiple name=\"file-3[]\" \n placeholder=\"\" presence data-allowed-extensions=\"jpg,jpeg,png\"\u003e\n \u003c\/div\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-1-column\" \u003e\n \u003clabel for=\"70723-text-3\" class=\"flat-label globo-label \"\u003e\u003cspan class=\"label-content\" data-label=\"Tell us what you think!\"\u003eTell us what you think!\u003c\/span\u003e\u003cspan class=\"text-danger text-smaller\"\u003e *\u003c\/span\u003e\u003c\/label\u003e\n \u003cdiv class=\"globo-form-input\"\u003e\n \u003cdiv class=\"globo-form-icon\"\u003e\u003csvg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"laugh\" class=\"svg-inline--fa fa-laugh fa-w-16\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 496 512\"\u003e\u003cpath fill=\"currentColor\" d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 12
3876-142.9 126z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n \u003cinput type=\"text\" data-type=\"text\" class=\"flat-input\" id=\"70723-text-3\" name=\"text-3\" placeholder=\"Review your purchase\" presence \u003e\n \u003c\/div\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-1-column\" data-default-value=\"false\"\u003e\n \u003cdiv class=\"checkbox-wrapper\"\u003e\n \u003cinput class=\"checkbox-input\" id=\"70723-acceptTerms\" type=\"checkbox\" data-type=\"acceptTerms\" name=\"acceptTerms[]\" value=\"Yes\" \u003e\n \u003clabel class=\"checkbox-label globo-option flat-label globo-label\" for=\"70723-acceptTerms\"\u003e\u003cspan class=\"label-content\" data-label=\"By checking this box, I hereby agree and consent RoseSkinCo to use my before\/after images without limitations or expiration\"\u003eBy checking this box, I hereby agree and consent RoseSkinCo to use my before\/after images without limitations or expiration\u003c\/span\u003e\u003c\/label\u003e\n \n \u003csmall class=\"messages\"\u003e\u003c\/small\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"globo-form-control layout-1-column\" \u003e\n \u003cstyle\u003e\n\n.globo-app-extension {\n margin-top: 150px;\n \n padding: 0 24px;\n\n}\n\n\u003c\/style\u003e\n\u003c\/div\u003e\n\n\n \n \n \n \u003c\/div\u003e\n \n \u003cdiv class=\"message error\" data-other-error=\"Something went wrong, please try again\"\u003e\n \u003cdiv class=\"content\"\u003e\u003c\/div\u003e\n \u003cdiv class=\"dismiss\" onclick=\"Globo.FormBuilder.dismiss(this)\"\u003e\n \u003csvg viewBox=\"0 0 20 20\" class=\"\" focusable=\"false\" aria-hidden=\"true\"\u003e\u003cpath d=\"M11.414 10l4.293-4.293a.999.999 0 1 0-1.414-1.414L10 8.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L8.586 10l-4.293 4.293a.999.999 0 1 0 1.414 1.414L10 11.414l4.293 4.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L11.414 10z\" fill-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"message warning\" data-other-error=\"Something went wrong, please try again\"\u003e\n \u003cdiv class=\"content\"\u003e\u003c\/div\u003e\n \u003cdiv class=\"dismiss\" onclick=\"Globo.FormBuilder.dismiss(this)\"\u003e\n \u003csvg viewBox=\"0 0 20 20\" class=\"\" focusable=\"false\" aria-hidden=\"true\"\u003e\u003cpath d=\"M11.414 10l4.293-4.293a.999.999 0 1 0-1.414-1.414L10 8.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L8.586 10l-4.293 4.293a.999.999 0 1 0 1.414 1.414L10 11.414l4.293 4.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L11.414 10z\" fill-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \n \n \u003cdiv class=\"message success\"\u003e\n \u003cdiv class=\"content\"\u003e\u003ch4\u003eThanks for getting in touch!\u0026nbsp;\u003c\/h4\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eWe appreciate you contacting us. One of our colleagues will get back in touch with you soon!\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eHave a great day!\u003c\/p\u003e\u003c\/div\u003e\n \u003cdiv class=\"dismiss\" onclick=\"Globo.FormBuilder.dismiss(this)\"\u003e\n \u003csvg viewBox=\"0 0 20 20\" class=\"\" focusable=\"false\" aria-hidden=\"true\"\u003e\u003cpath d=\"M11.414 10l4.293-4.293a.999.999 0 1 0-1.414-1.414L10 8.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L8.586 10l-4.293 4.293a.999.999 0 1 0 1.414 1.414L10 11.414l4.293 4.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L11.414 10z\" fill-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \n \n \u003cdiv class=\"footer\"\u003e\n \n \n \n \n \u003cbutton class=\"action submit flat-button\"\u003e\u003cspan class=\"spinner\"\u003e\u003c\/span\u003e\n \n Submit\n \n \u003c\/button\u003e\n \n \n \u003c\/div\u003e\n \n \u003cinput type=\"hidden\" value=\"\" name=\"customer[id]\"\u003e\n \u003cinput type=\"hidden\" value=\"\" name=\"customer[email]\"\u003e\n \u003cinput type=\"hidden\" value=\"\" name=\"customer[name]\"\u003e\n \u003cinput type=\"hidden\" value=\"\" name=\"page[title]\"\u003e\n \u003cinput type=\"hidden\" value=\"\" name=\"page[href]\"\u003e\n \u003cinput type=\"hidden\" value=\"\" name=\"_keyLabel\"\u003e\n \u003c\/form\u003e\n \n \u003cdiv class=\"message success\"\u003e\n \u003cdiv class=\"content\"\u003e\u003ch4\u003eThanks for getting in touch!\u0026nbsp;\u003c\/h4\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eWe appreciate you contacting us. One of our colleagues will get back in touch with you soon!\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eHave a great day!\u003c\/p\u003e\u003c\/div\u003e\n \u003cdiv class=\"dismiss\" onclick=\"Globo.FormBuilder.dismiss(this)\"\u003e\n \u003csvg viewBox=\"0 0 20 20\" class=\"\" focusable=\"false\" aria-hidden=\"true\"\u003e\u003cpath d=\"M11.414 10l4.293-4.293a.999.999 0 1 0-1.414-1.414L10 8.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L8.586 10l-4.293 4.293a.999.999 0 1 0 1.414 1.414L10 11.414l4.293 4.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L11.414 10z\" fill-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \n\u003c\/div\u003e\n\n\u003c\/div\u003e\n"}}[70723]; 388 389 390 391 window.Globo.FormBuilder.url = window.Globo.FormBuilder.shop.url; 392 window.Globo.FormBuilder.CDN_URL = window.Globo.FormBuilder.shop.CDN_URL ?? window.Globo.FormBuilder.shop.url; 393 window.Globo.FormBuilder.themeOs20 = true; 394 window.Globo.FormBuilder.searchProductByJson = true; 395 396 397 window.Globo.FormBuilder.__webpack_public_path_2__ = "https://cdn.shopify.com/extensions/01a0fc0d-2150-7cf1-86f8-1d048d2b8454/powerful-form-builder
397-360/assets/";Globo.FormBuilder.page = { 398 href : window.location.href, 399 type: "blog" 400 }; 401 Globo.FormBuilder.page.title = document.title 402 403 404 if(window.AVADA_SPEED_WHITELIST){ 405 const pfbs_w = new RegExp("powerful-form-builder", 'i') 406 if(Array.isArray(window.AVADA_SPEED_WHITELIST)){ 407 window.AVADA_SPEED_WHITELIST.push(pfbs_w) 408 }else{ 409 window.AVADA_SPEED_WHITELIST = [pfbs_w] 410 } 411 } 412 413 Globo.FormBuilder.shop.configuration = Globo.FormBuilder.shop.configuration || {}; 414 Globo.FormBuilder.shop.configuration.money_format = "${{ amount_no_decimals }}"; 415</script>
vendor: 1 bytes, line 415
415
416<script src="https://cdn.shopify.com/extensions/01a0fc0d-2150-7cf1-86f8-1d048d2b8454/powerful-form-builder-360/assets/globo.formbuilder.index.js" defer="defer" data-cookieconsent="ignore"></script>
416 417 418 419 420 421<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
422<script type="text/javascript"> 423 (function (c, l, a, r, i, t, y) { 424 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 425 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 426 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 427 428 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 429 if (error) { 430 console.error("Error loading Shopify features:", error); 431 return; 432 } 433 434 c[a]('consentv2', { 435 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 436 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 437 source: 101, 438 }); 439 }); 440 441 l.addEventListener("visitorConsentCollected", function (e) { 442 c[a]('consentv2', { 443 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 444 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 445 source: 101, 446 }); 447 }); 448 })(window, document, "clarity", "script", "f47dpo97zz"); 449</script>
449 450 451 452 453<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
454<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/roseskinco.myshopify.com"></script>
454 455 456
457<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
457 458 459
460<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=roseskinco"></script>
460 461 462 463<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/brandAgents_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea --> 464 465 466 467 468 469<!-- END app block -->
469<script src="https://cdn.shopify.com/extensions/01a0f039-5f02-72aa-9621-fb7a06d5fa1e/df574a3/assets/embed.js" type="text/javascript" defer="defer"></script>
469 470<meta property="og:image" content="https://cdn.shopify.com/s/files/1/0084/8756/7423/files/Wordmark-SocialLogo-Black-01_1.png?v=1782591880" /> 471<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0084/8756/7423/files/Wordmark-SocialLogo-Black-01_1.png?v=1782591880" /> 472<meta property="og:image:width" content="2000" /> 473<meta property="og:image:height" content="1000" /> 474<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
475<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 8487567423,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "blog"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 475
475
476<script> 477 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 478</script>
vendor: 1 bytes, line 478
478
479<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
479).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 8487567423,storefrontBaseUrl: "https://roseskinco.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://roseskinco.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"3244753077","configuration":"{\"pixelCode\":\"D2IFFA3C77U4I5MF3EQG\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
479,"dataSharingState":"unrestricted"},{"id":"3200549045","configuration":"{\"ti\":\"295025688\",\"endpoint\":\"https:\/\/bat.bing.com\/action\/0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5ee93563fe31b11d2d65e2f09a5229dc","type":"APP","apiClientId":2997493,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2927100085","configuration":"{\"accountID\":\"facct_01k9sw1spfddf1fkegxe79s0gs\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b512ad51efb2fbd80a0b3630d2f185b8","type":"APP","apiClientId":61620781057,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2886107317","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\",\\\"GT-5TQXS53W\\\",\\\"AW-625841620\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\/-fVjCMajn7sbEM6zheQC\\\",\\\"AW-625841620\\\/0qbCCI-VpLsbENSrtqoC\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\/1_HWCNKjn7sbEM6zheQC\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-60QTEZVWSR\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\/Tx0VCM-jn7sbEM6zheQC\\\",\\\"MC-TSTSDD7W7N\\\",\\\"AW-625841620\\\/7lpECJeAprsbENSrtqoC\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-60QTEZVWSR\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\/Z00JCMOjn7sbEM6zheQC\\\",\\\"MC-TSTSDD7W7N\\\",\\\"AW-625841620\\\/_MEnCL6aorsbENSrtqoC\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\/SzmjCMyjn7sbEM6zheQC\\\",\\\"MC-TSTSDD7W7N\\\",\\\"AW-625841620\\\/Wl0FCJqRrLsbENSrtqoC\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-60QTEZVWSR\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\/un5XCNWjn7sbEM6zheQC\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-60QTEZVWSR\\\",\\\"AW-746674638\\\/Bj15CMmjn7sbEM6zheQC\\\",\\\"AW-625841620\\\/etn-CLf-q7sbENSrtqoC\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-60QTEZVWSR\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"2867822773","configuration":"{\"projectId\":\"f47dpo97zz\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2865004725","configuration":"{\"tagID\":\"2613317396436\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
479,"dataSharingState":"unrestricted"},{"id":"2864906421","configuration":"{\"accountID\":\"roseskinco.myshopify.com\",\"devRefreshedAt\":\"2025-10-31T19:12:16.515Z\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"bcc23a17366556cd2d14935efb84046d","type":"APP","apiClientId":91904704513,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2570125493","configuration":"{\"pixelId\":\"877f014f-cdb5-4b45-88a6-5af7f4de8416\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c119f01612c13b62ab52809eb08154bb","type":"APP","apiClientId":2556259,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"835420341","configuration":"{\"myshopifyDomain\":\"roseskinco.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"23b97d18e2aa74363140dc29c9284e87","type":"APP","apiClientId":2775569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"8880309","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"WordSeed"},{"id":"124453045","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Retention.com V2 pixel"},{"id":"134480053","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"5","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"UET Tag"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"RoseSkinCo.","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"roseskinco.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/roseskinco.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://roseskinco.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"193204912309","themePublished":"true","eventMetadataId":"7051c289-59e6-4591-8ac1-20e5119c68c1","pageType":"blog","resourceId":"23978442815","shopId":"8487567423","storefrontBaseUrl":"https:\/\/roseskinco.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
479<script> 480 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 481 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 482 window.ShopifyAnalytics.meta.currency = 'USD'; 483 var meta = {"page":{"pageType":"blog","resourceType":"blog","resourceId":23978442815,"requestId":"be2acfd2-de9d-4796-a2b9-dda396418474-1791062386"}}; 484 for (var attr in meta) { 485 window.ShopifyAnalytics.meta[attr] = meta[attr]; 486 } 487</script>
vendor: 1 bytes, line 487
487
488<script class="analytics"> 489 (function () { 490 var customDocumentWrite = function(content) { 491 var jquery = null; 492 493 if (window.jQuery) { 494 jquery = window.jQuery; 495 } else if (window.Checkout && window.Checkout.$) { 496 jquery = window.Checkout.$; 497 } 498 499 if (jquery) { 500 jquery('body').append(content); 501 } 502 }; 503 504 var hasLoggedConversion = function(token) { 505 if (token) { 506 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 507 } 508 return false; 509 } 510 511 var setCookieIfConversion = function(token) { 512 if (token) { 513 var twoMonthsFromNow = new Date(Date.now()); 514 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 515 516 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 517 } 518 } 519 520 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 521 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 522 if (trekkie.integrations) { 523 return; 524 } 525 trekkie.methods = [ 526 'identify', 527 'page', 528 'ready', 529 'track', 530 'trackForm', 531 'trackLink' 532 ]; 533 trekkie.factory = function(method) { 534 return function() { 535 var args = Array.prototype.slice.call(arguments); 536 args.unshift(method); 537 trekkie.push(args); 538 if (method == 'track' || method == 'page') { 539 var pageUrl; 540 try { 541 pageUrl = window.location.href; 542 } catch (e) {} 543 var pageReferrer; 544 try { 545 pageReferrer = document.referrer; 546 } catch (e) {} 547 try { 548 if (window.__TREKKIE_SHIM_QUEUE == null) { 549 window.__TREKKIE_SHIM_QUEUE = []; 550 } 551 window.__TREKKIE_SHIM_QUEUE.push({ 552 from: 'trekkie-stub', 553 method: method, 554 args: args.slice(1), 555 pageContext: { 556 url: pageUrl, 557 referrer: pageReferrer 558 } 559 }); 560 } catch (e) { 561 // no-op 562 } 563 } 564 return trekkie; 565 }; 566 }; 567 for (var i = 0; i < trekkie.methods.length; i++) { 568 var key = trekkie.methods[i]; 569 trekkie[key] = trekkie.factory(key); 570 } 571 trekkie.load = function(config) { 572 trekkie.config = config || {}; 573 trekkie.config.initialDocumentCookie = document.cookie; 574 var first = document.getElementsByTagName('script')[0]; 575var script = document.createElement('script'); 576script.type = 'text/javascript'; 577script.onerror = function(e) { 578 var scriptFallback = document.createElement('script'); 579 scriptFallback.type = 'text/javascript'; 580 scriptFallback.onerror = function(error) { 581 var Monorail = { 582 produce: function produce(monorailDomain, schemaId, payload) { 583 var currentMs = new Date().getTime(); 584 var event = { 585 schema_id: schemaId, 586 payload: payload, 587 metadata: { 588 event_created_at_ms: currentMs, 589 event_sent_at_ms: currentMs 590 } 591 }; 592 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 593 }, 594 sendRequest: function sendRequest(endpointUrl, payload) { 595 // Try the sendBeacon API 596 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 597 var blobData = new window.Blob([payload], { 598 type: 'text/plain' 599 }); 600 601 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 602 return true; 603 } // sendBeacon was not successful 604 605 } // XHR beacon 606 607 var xhr = new XMLHttpRequest(); 608 609 try { 610 xhr.open('POST', endpointUrl); 611 xhr.setRequestHeader('Content-Type', 'text/plain'); 612 xhr.send(payload); 613 } catch (e) { 614 console.log(e); 615 } 616 617 return false; 618 }, 619 isIos12: function isIos12() { 620 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 621 } 622 }; 623 Monorail.produce('monorail-edge.shopifysvc.com', 624 'trekkie_storefront_load_errors/1.1', 625 {shop_id: 8487567423, 626 theme_id: 193204912309, 627 app_name: "storefront", 628 context_url: window.location.href, 629 source_url: "//roseskinco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 630 631 }; 632 scriptFallback.async = true; 633 scriptFallback.src = '//roseskinco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 634 first.parentNode.insertBefore(scriptFallback, first); 635}; 636script.async = true; 637script.src = '//roseskinco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 638first.parentNode.insertBefore(script, first); 639 640 }; 641 trekkie.load( 642 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":8487567423,"isMerchantRequest":null,"themeId":193204912309,"themeCityHash":"10569285099417105194","contentLanguage":"en","currency":"USD","eventMetadataId":"7051c289-59e6-4591-8ac1-20e5119c68c1"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 643 ); 644 645 var loaded = false;
646 trekkie.ready(function() { 647 if (loaded) return; 648 loaded = true; 649 650 window.ShopifyAnalytics.lib = window.trekkie; 651 652 var originalDocumentWrite = document.write; 653 document.write = customDocumentWrite; 654 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 655 document.write = originalDocumentWrite; 656 657 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 658 var token = match? match[1]: undefined; 659 if (!hasLoggedConversion(token)) { 660 setCookieIfConversion(token); 661 662 } 663 }); 664 665 window.ShopifyAnalytics.lib.page(null,{"pageType":"blog","resourceType":"blog","resourceId":23978442815,"requestId":"be2acfd2-de9d-4796-a2b9-dda396418474-1791062386","shopifyEmitted":true}); 666 667 var eventsListenerScript = document.createElement('script'); 668 eventsListenerScript.async = true; 669 eventsListenerScript.src = "//roseskinco.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 670 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 671})();</script>
vendor: 1 bytes, line 671
671
672<script 673 defer 674 src="https://roseskinco.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 675 data-application="storefront-renderer" 676 data-shop-id="8487567423" 677 data-render-region="gcp-us-central1" 678 data-page-type="blog" 679 data-theme-instance-id="193204912309" 680 data-theme-name="Process Creative" 681 data-theme-version="3.0.0" 682 data-monorail-region="shop_domain" 683 data-resource-timing-sampling-rate="10" 684 data-shs="true" 685 data-shs-beacon="true" 686 data-shs-export-with-fetch="true" 687 data-shs-logs-sample-rate="1" 688 data-shs-beacon-endpoint="https://roseskinco.com/api/collect" 689></script>
689 690<meta name="shopify-y" content="c495f15b-e9cb-48bd-9cec-4379da110d52" data-expiration="1822619986000"><meta name="shopify-s" content="c583b206-6b71-4656-b236-b3515f431a96" data-expiration="1791064186000"><meta name="new-cookie-storage-activated" content="t"> 691</head> 692 693 <body class="c-page c-page--blog shop-row"><a class="skip-link" href="#main">Skip to content.</a><div class="c-page__wrapper"> 694 <main 695 role="main" 696 class="o-main" 697 id="MainContent" 698 > 699 <div class="o-main__wrapper"> 700 <!-- BEGIN sections: header-group --> 701<div id="shopify-section-sections--28346835271861__header" class="shopify-section shopify-section-group-header-group c-section c-section__header"><link href="//roseskinco.com/cdn/shop/t/797/assets/sections.header.css?v=34188805263837835641788119759" rel="stylesheet" type="text/css" media="all" />
702<script src="//roseskinco.com/cdn/shop/t/797/assets/sections.header.js?v=26676092189113796591788119761" type="text/javascript" defer="defer"></script>
702 703<header class="c-header" data-header> 704 705 706 707 <div class="c-header__main"> 708 <div class="c-header__main-inner"><div class="c-header__left"><button class="c-header__menu-trigger is-mobile" 709 data-mobile-menu-trigger 710 data-open-mobile-menu 711 > 712 <span class="u-visually-hidden">Open Mobile Menu</span><svg class="c-header__menu-trigger-svg" 713 fill="none" 714 xmlns="http://www.w3.org/2000/svg" 715 viewBox="0 0 24 24" 716 role="presentation" 717> 718 <path d="M3.75 12h16.5M3.75 6h16.5M3.75 18h16.5" stroke="#1F1D24" stroke-width="2" stroke-linecap="square" stroke-linejoin="round"/> 719</svg></button><nav class="c-header-navigation c-header__navigation" 720 data-header-navigation 721 > 722 <header class="c-header-navigation__header is-mobile"><a 723 href="/" 724 class="c-header-navigation__logo" 725 title="RoseSkin Logo" 726 ><svg class="c-header__logo-image" 727 width="244" height="32" 728 viewBox="0 0 244 32" 729 fill="none" 730 xmlns="http://www.w3.org/2000/svg" 731 role="presentation" 732> 733 <path d="M240.262 31.9564C238.194 31.9564 236.523 30.2974 236.523 28.2456C236.523 26.1937 238.194 24.5348 240.262 24.5348C242.329 24.5348 244 26.1937 244 28.2456C244 30.2974 242.329 31.9564 240.262 31.9564Z" fill="#1F1D24"/> 734 <path d="M223.077 32C216.611 32 211.465 26.9795 211.465 20.4747C211.465 13.9699 216.611 8.94948 223.077 8.94948C229.542 8.94948 234.733 13.9699 234.733 20.4747C234.733 26.9795 229.542 32 223.077 32ZM223.077 26.4993C226.464 26.4993 229.059 24.0109 229.059 20.4747C229.059 16.9386 226.464 14.4502 223.077 14.4502C219.734 14.4502 217.139 16.9386 217.139 20.4747C217.139 24.0109 219.734 26.4993 223.077 26.4993Z" fill="#1F1D24"/> 735 <path d="M195.776 32C186.452 32 179.766 25.015 179.766 16.1091C179.766 7.15958 186.452 0.218231 195.776 0.218231C201.406 0.218231 206.376 3.05589 209.015 7.42152L203.781 10.4338C202.286 7.72711 199.295 6.06817 195.776 6.06817C189.75 6.06817 185.792 10.2155 185.792 16.1091C185.792 21.9591 189.75 26.1064 195.776 26.1064C199.295 26.1064 202.33 24.4475 203.781 21.7844L209.015 24.7967C206.42 29.1623 201.45 32 195.776 32Z" fill="#1F1D24"/> 736 <path d="M167.752 8.94948C172.415 8.94948 176.065 12.18 176.065 17.9863V31.3888H170.391V18.6848C170.391 15.7162 168.588 14.1882 166.037 14.1882C163.266 14.1882 161.199 15.8035 161.199 19.6016V31.3888H155.525V9.56067H161.199V12.0054C162.518 10.0409 164.805 8.94948 167.752 8.94948Z" fill="#1F1D24"/> 737 <path d="M147.473 6.94135C145.581 6.94135 143.998 5.36972 143.998 3.4925C143.998 1.61528 145.581 0 147.473 0C149.408 0 150.991 1.61528 150.991 3.4925C150.991 5.36972 149.408 6.94135 147.473 6.94135ZM144.658 31.3889V9.56073H150.332V31.3889H144.658Z" fill="#1F1D24"/> 738 <path d="M141.826 31.3889H135.228L127.223 21.4789V31.3889H121.549V0.829483H127.223V19.1651L134.788 9.56074H141.562L132.721 20.3438L141.826 31.3889Z" fill="#1F1D24"/> 739 <path d="M106.682 32C100.393 32 96.2583 28.9877 94.5869 24.4475L99.7769 21.4352C100.877 24.2728 103.032 26.1064 106.858 26.1064C110.509 26.1064 111.784 24.5784 111.784 22.8758C111.784 20.6057 109.717 19.7326 105.143 18.4229C100.437 17.0696 95.8624 15.105 95.8624 9.29874C95.8624 3.53611 100.701 0.218231 105.979 0.218231C111.037 0.218231 114.907 2.79395 116.974 7.07227L111.872 9.99724C110.773 7.68345 109.101 6.06817 105.979 6.06817C103.428 6.06817 101.932 7.37786 101.932 9.12411C101.932 11.0013 103.12 12.0054 107.782 13.4024C112.664 14.9304 117.854 16.5457 117.854 22.7885C117.854 28.5075 113.236 32 106.682 32Z" fill="#1F1D24"/> 740 <path d="M76.0032 22.7885C76.7949 25.6698 79.214 26.8922 82.2048 26.8922C84.404 26.8922 86.1633 25.9754 87.131 24.7094L91.7052 27.3288C89.638 30.2974 86.3393 32 82.1169 32C74.7277 32 70.0654 26.9795 70.0654 20.4747C70.0654 13.9699 74.7716 8.94948 81.677 8.94948C88.1866 8.94948 92.8048 14.0573 92.8048 20.4747C92.8048 21.3042 92.7169 22.0464 92.5849 22.7885H76.0032ZM75.9152 18.4229H87.131C86.4272 15.2796 84.0521 14.0136 81.677 14.0136C78.6422 14.0136 76.575 15.6289 75.9152 18.4229Z" fill="#1F1D24"/> 741 <path d="M56.5131 15.7599C56.5131 18.9904 67.8608 16.9822 67.8608 25.015C67.8608 29.7299 63.7264 32 59.0202 32C54.6219 32 51.3671 30.1664 49.7837 26.8049L54.7098 24.0545C55.3256 25.8445 56.821 26.8922 59.0202 26.8922C60.8235 26.8922 62.055 26.281 62.055 25.015C62.055 21.8281 50.7073 23.5743 50.7073 15.8908C50.7073
74111.4379 54.5339 8.94948 59.0642 8.94948C62.6268 8.94948 65.7057 10.5648 67.421 13.577L62.5828 16.1964C61.9231 14.7994 60.6916 13.9699 59.0642 13.9699C57.6567 13.9699 56.5131 14.5811 56.5131 15.7599Z" fill="#1F1D24"/> 742 <path d="M36.1048 32C29.6392 32 24.4932 26.9795 24.4932 20.4747C24.4932 13.9699 29.6392 8.94948 36.1048 8.94948C42.5703 8.94948 47.7604 13.9699 47.7604 20.4747C47.7604 26.9795 42.5703 32 36.1048 32ZM36.1048 26.4993C39.4915 26.4993 42.0865 24.0109 42.0865 20.4747C42.0865 16.9386 39.4915 14.4502 36.1048 14.4502C32.762 14.4502 30.167 16.9386 30.167 20.4747C30.167 24.0109 32.762 26.4993 36.1048 26.4993Z" fill="#1F1D24"/> 743 <path d="M16.8896 31.3889L10.688 20.7804H6.0697V31.3889H0V0.829483H12.3153C17.9892 0.829483 22.5635 5.36974 22.5635 10.9577C22.5635 14.7995 20.1444 18.2483 16.6257 19.8636L23.4431 31.3889H16.8896ZM6.0697 6.46114V15.498H12.3153C14.6025 15.498 16.4938 13.4898 16.4938 10.9577C16.4938 8.42568 14.6025 6.46114 12.3153 6.46114H6.0697Z" fill="#1F1D24"/> 744</svg> 745</a> 746 747 <button 748 class="c-header-navigation__close" 749 data-mobile-menu-trigger 750 data-close-mobile-menu-first 751 > 752 <span class="u-visually-hidden"> 753 Close Mobile Menu 754 </span><svg class="c-header-navigation__close-icon" 755 fill="none" 756 xmlns="http://www.w3.org/2000/svg" 757 viewBox="0 0 20 20" 758 role="presentation" 759> 760 <path d="m15.625 4.375-11.25 11.25M15.625 15.625 4.375 4.375" stroke="#1F1D24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 761</svg> 762 </button> 763 </header> 764 765 <div class="c-header-navigation__inner" 766 data-enable-scroll-parent 767 > 768 <div class="c-header-navigation__container"><ul class="c-header-navigation__lvl1"><li 769 class="c-header-navigation__lvl1-item" 770 771 772 > 773 <a 774 href="/pages/faq" 775 class="c-header-navigation__lvl1-link" 776 777 > 778 <span class="c-header-navigation__lvl1-link-text o-heading--4">FAQs & Help</span> 779 780 781 </a></li><li 782 class="c-header-navigation__lvl1-item" 783 784 785 > 786 <a 787 href="/apps/tracktor/track" 788 class="c-header-navigation__lvl1-link" 789 790 > 791 <span class="c-header-navigation__lvl1-link-text o-heading--4">Track Order</span> 792 793 794 </a></li></ul> 795 </div><ul class="c-header-navigation__extra-links is-mobile"><li class="c-header-navigation__extra-item"> 796 <label for="search_text"> 797 <span class="u-visually-hidden">Search Field</span><img 798 src="//roseskinco.com/cdn/shop/t/797/assets/icon-search.svg?v=38941840395643689551788119672" 799 alt="" 800 data-mobile-search-trigger 801 width="32" 802 height="32" 803 class="o-icon o-icon--search c-header-navigation__extra-icon" 804 loading="lazy" 805/> 806 807 </label> 808<div 809 class="c-search-form c-header-navigation__search-form is-mobile" 810 data-search-form 811> 812 <form 813 class="c-search-form__form" 814 action="/search" 815 method="get" 816 role="search" 817 ><input type="hidden" name="type" value="product"> 818 819 <div class="c-search-form__btn-container"> 820 <button 821 class="c-search-form__btn" 822 type="submit" 823 aria-label="Go to Results" 824 > 825 <span class="u-visually-hidden">Go to Results</span> 826 </button> 827 828 <input 829 type="text" 830 class="c-search-form__input o-input" 831 id="search_text" 832 name="q" 833 aria-label="Search" 834 placeholder="Search" 835 autocomplete="off" 836 required 837 data-search-input 838 > 839 </div> 840 </form> 841</div> 842</li> 843 844 <li class="c-header-navigation__extra-item"><a 845 href="/account" 846 class="c-header-navigation__account" 847 ><img 848 src="//roseskinco.com/cdn/shop/t/797/assets/icon-user.svg?v=91207897183825449041788119675" 849 alt="" 850 851 width="32" 852 height="32" 853 class="o-icon o-icon--user c-header-navigation__extra-icon" 854 loading="lazy" 855/> 856 857
858 <span class="c-header-navigation__account-text">Login</span> 859 </a> 860 861 </li> 862 <li class="c-header-navigation__extra-item"> 863 864 865 866 867 868 869<div class="geo-selector mobile"> 870 871 <select name="geo-select-mobile" class="geo-selector__mobile-select"> 872 873 <option value="United States" selected> 874 United States 875 </option> 876 877 <option value="Australia" > 878 Australia 879 </option> 880 881 <option value="Canada" > 882 Canada 883 </option> 884 885 <option value="Europe" > 886 Europe 887 </option> 888 889 <option value="International" > 890 International 891 </option> 892 893 <option value="United Arab Emirates" > 894 United Arab Emirates 895 </option> 896 897 <option value="United Kingdom" > 898 United Kingdom 899 </option> 900 901 <option value="New Zealand" > 902 New Zealand 903 </option> 904 905 <option value="Singapore" > 906 Singapore 907 </option> 908 909 <option value="South Africa" > 910 South Africa 911 </option> 912 913 </select> 914 915 <div class="geo-selector__container"> 916 <div class="geo-selector__current"> 917 <div data-geo-selector-current></div> 918 <span class="geo-selector__current-icon" data-geo-selector-icon><svg 919 fill="none" 920 xmlns="http://www.w3.org/2000/svg" 921 viewBox="0 0 14 14" 922 role="presentation" 923> 924 <path d="M5.25 2.625 9.625 7 5.25 11.375" stroke="#FF7E8D" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 925</svg></span> 926 </div> 927 <ul data-selector-geo data-geo-values=" 928 United States:United States:roseskinco.com | 929 930 Australia:Australia:au.roseskinco.com | 931 932 Canada:Canada:ca.roseskinco.com | 933 934 Europe:Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Finland, France, Germany, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Monaco, Netherlands, Norway, Poland, Portugal, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey:eu.roseskinco.com | 935 936 International:International:int.roseskinco.com | 937 938 United Arab Emirates:United Arab Emirates:ae.roseskinco.com | 939 940 United Kingdom:United Kingdom:uk.roseskinco.com | 941 942 New Zealand:New Zealand:nz.roseskinco.com | 943 944 Singapore:Singapore:sg.roseskinco.com | 945 946 South Africa:South Africa:za.roseskinco.com 947 "> 948 949 <li class="" data-geo-selector-item="United States" data-geo-selector-value="roseskinco.com"> 950 <button 951 data-geo-selector-url="roseskinco.com" 952 id="United States" 953 954 class="active" 955 956 > 957 958 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678403628282/CountryIcons-01.svg?v=1678403628282" width="16" height="16" alt=""/></span> 959 960 <span>United States</span> 961 </button> 962 </li> 963 964 <li class="" data-geo-selector-item="Australia" data-geo-selector-value="au.roseskinco.com"> 965 <button 966 data-geo-selector-url="au.roseskinco.com" 967 id="Australia" 968 969 > 970 971 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678403683799/CountryIcons-02.svg?v=1678403683799" width="16" height="16" alt=""/></span> 972 973 <span>Australia</span> 974 </button> 975 </li> 976 977 <li class="" data-geo-selector-item="Canada" data-geo-selector-value="ca.roseskinco.com"> 978 <button 979 data-geo-selector-url="ca.roseskinco.com" 980 id="Canada" 981 982 > 983 984 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1684333548852/canada-icon.svg?v=1684333548852" width="16" height="16" alt=""/></span> 985 986 <span>Canada</span> 987 </button> 988 </li> 989 990 <li class="" data-geo-selector-item="Europe" data-geo-selector-value="eu.roseskinco.com"> 991 <button 992 data-geo-selector-url="eu.roseskinco.com" 993 id="Europe" 994 995 > 996 997 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678403707249/CountryIcons-03.svg?v=1678403707249" width="16" height="16" alt=""/></span> 998
999 <span>Europe</span> 1000 </button> 1001 </li> 1002 1003 <li class="" data-geo-selector-item="International" data-geo-selector-value="int.roseskinco.com"> 1004 <button 1005 data-geo-selector-url="int.roseskinco.com" 1006 id="International" 1007 1008 > 1009 1010 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678492277650/CountryIcons-04.svg?v=1678492277650" width="16" height="16" alt=""/></span> 1011 1012 <span>International</span> 1013 </button> 1014 </li> 1015 1016 <li class="" data-geo-selector-item="United Arab Emirates" data-geo-selector-value="ae.roseskinco.com"> 1017 <button 1018 data-geo-selector-url="ae.roseskinco.com" 1019 id="United Arab Emirates" 1020 1021 > 1022 1023 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678494567992/CountryIcons-09.svg?v=1678494567993" width="16" height="16" alt=""/></span> 1024 1025 <span>United Arab Emirates</span> 1026 </button> 1027 </li> 1028 1029 <li class="" data-geo-selector-item="United Kingdom" data-geo-selector-value="uk.roseskinco.com"> 1030 <button 1031 data-geo-selector-url="uk.roseskinco.com" 1032 id="United Kingdom" 1033 1034 > 1035 1036 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678494965519/CountryIcons-12.svg?v=1678723301708" width="16" height="16" alt=""/></span> 1037 1038 <span>United Kingdom</span> 1039 </button> 1040 </li> 1041 1042 <li class="" data-geo-selector-item="New Zealand" data-geo-selector-value="nz.roseskinco.com"> 1043 <button 1044 data-geo-selector-url="nz.roseskinco.com" 1045 id="New Zealand" 1046 1047 > 1048 1049 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678495335346/CountryIcons-06.svg?v=1678495335346" width="16" height="16" alt=""/></span> 1050 1051 <span>New Zealand</span> 1052 </button> 1053 </li> 1054 1055 <li class="" data-geo-selector-item="Singapore" data-geo-selector-value="sg.roseskinco.com"> 1056 <button 1057 data-geo-selector-url="sg.roseskinco.com" 1058 id="Singapore" 1059 1060 > 1061 1062 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678495424528/CountryIcons-07.svg?v=1678495424528" width="16" height="16" alt=""/></span> 1063 1064 <span>Singapore</span> 1065 </button> 1066 </li> 1067 1068 <li class="" data-geo-selector-item="South Africa" data-geo-selector-value="za.roseskinco.com"> 1069 <button 1070 data-geo-selector-url="za.roseskinco.com" 1071 id="South Africa" 1072 1073 > 1074 1075 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678495506762/CountryIcons-11.svg?v=1678723316523" width="16" height="16" alt=""/></span> 1076 1077 <span>South Africa</span> 1078 </button> 1079 </li> 1080 1081 </ul> 1082 </div> 1083</div> 1084 1085 1086<div class="country-code-form"><form method="post" action="/localization" id="localization_form" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data" data-country-code-form=""><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/blogs/news" /><select name="country_code" data-country-code-select><option value="AU" data-country-code-select-option> 1087 australia - au 1088 </option><option value="AT" data-country-code-select-option> 1089 austria - europe 1090 </option><option value="BE" data-country-code-select-option> 1091 belgium - europe 1092 </option><option value="BR" data-country-code-select-option> 1093 brazil - international 1094 </option><option value="BG" data-country-code-select-option> 1095 bulgaria - europe 1096 </option><option value="CA" data-country-code-select-option> 1097 canada - ca 1098 </option><option value="HR" data-country-code-select-option> 1099 croatia - europe 1100 </option><option value="CZ" data-country-code-select-option> 1101 czechia - europe 1102 </option><option value="DK" data-country-code-select-option> 1103 denmark - europe 1104 </option><option value="FI" data-country-code-select-option> 1105 finland - europe 1106 </option><option value="FR" data-country-code-select-option> 1107 france - europe 1108 </option><option value="DE" data-country-code-select-option> 1109 germany - europe 1110 </option><option value="HK" data-country-code-select-option> 1111 hong kong sar - international 1112 </option><option value="HU" data-country-code-select-option> 1113 hungary - europe 1114 </option><option value="IN" data-country-code-select-option> 1115 india - international 1116 </option><option value="IE" data-country-code-select-option> 1117 ireland - europe 1118 </option><option value="IT" data-country-code-select-option> 1119 italy - europe 1120 </option><option value="JP" data-country-code-select-option> 1121 japan - international 1122 </option><option value="LV" data-country-code-select-option> 1123 latvia - europe 1124 </option><option value="LT" data-country-code-select-option> 1125 lithuania - europe 1126 </option><option value="LU" data-country-code-select-option> 1127 luxembourg - europe 1128 </option><option value="MY" data-country-code-select-option> 1129 malaysia - international 1130 </option><option value="MX" data-country-code-select-option> 1131 mexico - international 1132 </option><option value="MC" data-country-code-select-option> 1133 monaco - europe 1134 </option><option value="NL" data-country-code-select-option> 1135 netherlands - europe 1136 </option><option value="NZ" data-country-code-select-option> 1137 new zealand - nz 1138 </option><option value="NO" data-country-code-select-option> 1139 norway - europe 1140 </option><option value="PH" data-country-code-select-option> 1141 philippines - international 1142 </option><option value="PL" data-country-code-select-option> 1143 poland - europe 1144 </option><option value="PT" data-country-code-select-option> 1145 portugal - europe 1146 </option><option value="RO" data-country-code-select-option> 1147 romania - europe 1148 </option><option value="SA" data-country-code-select-option> 1149 saudi arabia - international 1150 </option><option value="RS" data-country-code-select-option> 1151 serbia - europe 1152 </option><option value="SG" data-country-code-select-option> 1153 singapore - sg 1154 </option><option value="SK" data-country-code-select-option> 1155 slovakia - europe 1156 </option><option value="SI" data-country-code-select-option> 1157 slovenia - europe 1158 </option><option value="ZA" data-country-code-select-option> 1159 south africa - south-africa 1160 </option><option value="KR" data-country-code-select-option> 1161 south korea - international 1162 </option><option value="ES" data-country-code-select-option> 1163 spain - europe 1164 </option><option value="SE" data-country-code-select-option> 1165 sweden - europe 1166 </option><option value="CH" data-country-code-select-option> 1167 switzerland - europe 1168 </option><option value="TH" data-country-code-select-option> 1169 thailand - international 1170 </option><option value="TR" data-country-code-select-option> 1171 türkiye - europe 1172 </option><option value="AE" data-country-code-select-option> 1173 united arab emirates - ae 1174 </option><option value="GB" data-country-code-select-option> 1175 united kingdom - gb 1176 </option><option value="US" data-country-code-select-option> 1177 united states - 690f0e89-bcad-47b4-8109-e91f5240aa21 1178 </option></select></form></div> 1179
1180<script> 1181 document.addEventListener('DOMContentLoaded', () => { 1182 const geoSelectorMobileSelect = document?.querySelector('.geo-selector__mobile-select'); 1183 1184 if (geoSelectorMobileSelect) { 1185 geoSelectorMobileSelect.addEventListener('change', (e) => { 1186 e.preventDefault(); 1187 const selectValue = e.target.value; 1188 const customSelectButton = document.querySelector(`.geo-selector.mobile button[id="${selectValue}"]`); 1189 if (customSelectButton) { 1190 customSelectButton.click(); 1191 } 1192 }) 1193 } 1194 }) 1195</script>
1195 1196 1197 1198 </li> 1199 1200 </ul> 1201 </div> 1202 </nav></div><div class="c-header__center"> 1203 <a 1204 href="/" 1205 class="c-header__logo" 1206 title="RoseSkin Logo" 1207 ><svg class="c-header__logo-svg" 1208 width="244" height="32" 1209 viewBox="0 0 244 32" 1210 fill="none" 1211 xmlns="http://www.w3.org/2000/svg" 1212 role="presentation" 1213> 1214 <path d="M240.262 31.9564C238.194 31.9564 236.523 30.2974 236.523 28.2456C236.523 26.1937 238.194 24.5348 240.262 24.5348C242.329 24.5348 244 26.1937 244 28.2456C244 30.2974 242.329 31.9564 240.262 31.9564Z" fill="#1F1D24"/> 1215 <path d="M223.077 32C216.611 32 211.465 26.9795 211.465 20.4747C211.465 13.9699 216.611 8.94948 223.077 8.94948C229.542 8.94948 234.733 13.9699 234.733 20.4747C234.733 26.9795 229.542 32 223.077 32ZM223.077 26.4993C226.464 26.4993 229.059 24.0109 229.059 20.4747C229.059 16.9386 226.464 14.4502 223.077 14.4502C219.734 14.4502 217.139 16.9386 217.139 20.4747C217.139 24.0109 219.734 26.4993 223.077 26.4993Z" fill="#1F1D24"/> 1216 <path d="M195.776 32C186.452 32 179.766 25.015 179.766 16.1091C179.766 7.15958 186.452 0.218231 195.776 0.218231C201.406 0.218231 206.376 3.05589 209.015 7.42152L203.781 10.4338C202.286 7.72711 199.295 6.06817 195.776 6.06817C189.75 6.06817 185.792 10.2155 185.792 16.1091C185.792 21.9591 189.75 26.1064 195.776 26.1064C199.295 26.1064 202.33 24.4475 203.781 21.7844L209.015 24.7967C206.42 29.1623 201.45 32 195.776 32Z" fill="#1F1D24"/> 1217 <path d="M167.752 8.94948C172.415 8.94948 176.065 12.18 176.065 17.9863V31.3888H170.391V18.6848C170.391 15.7162 168.588 14.1882 166.037 14.1882C163.266 14.1882 161.199 15.8035 161.199 19.6016V31.3888H155.525V9.56067H161.199V12.0054C162.518 10.0409 164.805 8.94948 167.752 8.94948Z" fill="#1F1D24"/> 1218 <path d="M147.473 6.94135C145.581 6.94135 143.998 5.36972 143.998 3.4925C143.998 1.61528 145.581 0 147.473 0C149.408 0 150.991 1.61528 150.991 3.4925C150.991 5.36972 149.408 6.94135 147.473 6.94135ZM144.658 31.3889V9.56073H150.332V31.3889H144.658Z" fill="#1F1D24"/> 1219 <path d="M141.826 31.3889H135.228L127.223 21.4789V31.3889H121.549V0.829483H127.223V19.1651L134.788 9.56074H141.562L132.721 20.3438L141.826 31.3889Z" fill="#1F1D24"/> 1220 <path d="M106.682 32C100.393 32 96.2583 28.9877 94.5869 24.4475L99.7769 21.4352C100.877 24.2728 103.032 26.1064 106.858 26.1064C110.509 26.1064 111.784 24.5784 111.784 22.8758C111.784 20.6057 109.717 19.7326 105.143 18.4229C100.437 17.0696 95.8624 15.105 95.8624 9.29874C95.8624 3.53611 100.701 0.218231 105.979 0.218231C111.037 0.218231 114.907 2.79395 116.974 7.07227L111.872 9.99724C110.773 7.68345 109.101 6.06817 105.979 6.06817C103.428 6.06817 101.932 7.37786 101.932 9.12411C101.932 11.0013 103.12 12.0054 107.782 13.4024C112.664 14.9304 117.854 16.5457 117.854 22.7885C117.854 28.5075 113.236 32 106.682 32Z" fill="#1F1D24"/> 1221 <path d="M76.0032 22.7885C76.7949 25.6698 79.214 26.8922 82.2048 26.8922C84.404 26.8922 86.1633 25.9754 87.131 24.7094L91.7052 27.3288C89.638 30.2974 86.3393 32 82.1169 32C74.7277 32 70.0654 26.9795 70.0654 20.4747C70.0654 13.9699 74.7716 8.94948 81.677 8.94948C88.1866 8.94948 92.8048 14.0573 92.8048 20.4747C92.8048 21.3042 92.7169 22.0464 92.5849 22.7885H76.0032ZM75.9152 18.4229H87.131C86.4272 15.2796 84.0521 14.0136 81.677 14.0136C78.6422 14.0136 76.575 15.6289 75.9152 18.4229Z" fill="#1F1D24"/> 1222 <path d="M56.5131 15.7599C56.5131 18.9904 67.8608 16.9822 67.8608 25.015C67.8608 29.7299 63.7264 32 59.0202 32C54.6219 32 51.3671 30.1664 49.7837 26.8049L54.7098 24.0545C55.3256 25.8445 56.821 26.8922 59.0202 26.8922C60.8235 26.8922 62.055 26.281 62.055 25.015C62.055 21.8281 50.7073 23.5743 50.7073 15.8908C50.7073 11.4379 54.5339 8.94948 59.0642 8.94948C62.6268 8.94948 65.7057 10.5648 67.421 13.577L62.5828 16.1964C61.9231 14.7994 60.6916 13.9699 59.0642 13.9699C57.6567 13.9699 56.5131 14.5811 56.5131 15.7599Z" fill="#1F1D24"/> 1223 <path d="M36.1048 32C29.6392 32 24.4932 26.9795 24.4932 20.4747C24.4932 13.9699 29.6392 8.94948 36.1048 8.94948C42.5703 8.94948 47.7604 13.9699 47.7604 20.4747C47.7604 26.9795 42.5703 32 36.1048 32ZM36.1048 26.4993C39.4915 26.4993 42.0865 24.0109 42.0865 20.4747C42.0865 16.9386 39.4915 14.4502 36.1048 14.4502C32.762 14.4502 30.167 16.9386 30.167 20.4747C30.167 24.0109 32.762 26.4993 36.1048 26.4993Z" fill="#1F1D24"/> 1224 <path d="M16.8896 31.3889L10.688 20.7804H6.0697V31.3889H0V0.829483H12.3153C17.9892 0.829483 22.5635 5.36974 22.5635 10.9577C22.5635 14.7995 20.1444 18.2483 16.6257 19.8636L23.4431 31.3889H16.8896ZM6.0697 6.46114
1224V15.498H12.3153C14.6025 15.498 16.4938 13.4898 16.4938 10.9577C16.4938 8.42568 14.6025 6.46114 12.3153 6.46114H6.0697Z" fill="#1F1D24"/> 1225</svg> 1226</a> 1227 </div><div class="c-header__right"> 1228<div 1229 class="c-search-form c-header__search-form is-desktop" 1230 data-search-form 1231> 1232 <form 1233 class="c-search-form__form" 1234 action="/search" 1235 method="get" 1236 role="search" 1237 ><input type="hidden" name="type" value="product"> 1238 1239 <div class="c-search-form__btn-container"> 1240 <button 1241 class="c-search-form__btn" 1242 type="submit" 1243 aria-label="Go to Results" 1244 > 1245 <span class="u-visually-hidden">Go to Results</span> 1246 </button> 1247 1248 <input 1249 type="text" 1250 class="c-search-form__input o-input" 1251 id="search_text" 1252 name="q" 1253 aria-label="Search" 1254 placeholder="" 1255 autocomplete="off" 1256 required 1257 data-search-input 1258 > 1259 </div> 1260 </form> 1261</div> 1262<button 1263 class="close-search" 1264 data-close-search 1265 title="Close Search Field" 1266 > 1267 <span class="u-visually-hidden"> 1268 Close Search Field 1269 </span><svg class="c-cart-contents__close-icon" 1270 fill="none" 1271 xmlns="http://www.w3.org/2000/svg" 1272 viewBox="0 0 20 20" 1273 role="presentation" 1274> 1275 <path d="m15.625 4.375-11.25 11.25M15.625 15.625 4.375 4.375" stroke="#1F1D24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1276</svg></button> 1277 1278 <div class="c-header__actions" data-actions-container> 1279 1280 1281 1282 1283 1284 1285 1286<div class="geo-selector desktop"> 1287 1288 <select name="geo-select-mobile" class="geo-selector__mobile-select"> 1289 1290 <option value="United States" selected> 1291 United States 1292 </option> 1293 1294 <option value="Australia" > 1295 Australia 1296 </option> 1297 1298 <option value="Canada" > 1299 Canada 1300 </option> 1301 1302 <option value="Europe" > 1303 Europe 1304 </option> 1305 1306 <option value="International" > 1307 International 1308 </option> 1309 1310 <option value="United Arab Emirates" > 1311 United Arab Emirates 1312 </option> 1313 1314 <option value="United Kingdom" > 1315 United Kingdom 1316 </option> 1317 1318 <option value="New Zealand" > 1319 New Zealand 1320 </option> 1321 1322 <option value="Singapore" > 1323 Singapore 1324 </option> 1325 1326 <option value="South Africa" > 1327 South Africa 1328 </option> 1329 1330 </select> 1331 1332 <div class="geo-selector__container"> 1333 <div class="geo-selector__current"> 1334 <div data-geo-selector-current></div> 1335 <span class="geo-selector__current-icon" data-geo-selector-icon><svg 1336 fill="none" 1337 xmlns="http://www.w3.org/2000/svg" 1338 viewBox="0 0 14 14" 1339 role="presentation" 1340> 1341 <path d="M5.25 2.625 9.625 7 5.25 11.375" stroke="#FF7E8D" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 1342</svg></span> 1343 </div> 1344 <ul data-selector-geo data-geo-values=" 1345 United States:United States:roseskinco.com | 1346 1347 Australia:Australia:au.roseskinco.com | 1348 1349 Canada:Canada:ca.roseskinco.com | 1350 1351 Europe:Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Finland, France, Germany, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Monaco, Netherlands, Norway, Poland, Portugal, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey:eu.roseskinco.com | 1352 1353 International:International:int.roseskinco.com | 1354 1355 United Arab Emirates:United Arab Emirates:ae.roseskinco.com | 1356 1357 United Kingdom:United Kingdom:uk.roseskinco.com | 1358 1359 New Zealand:New Zealand:nz.roseskinco.com | 1360 1361 Singapore:Singapore:sg.roseskinco.com | 1362 1363 South Africa:South Africa:za.roseskinco.com 1364 "> 1365 1366 <li class="" data-geo-selector-item="United States" data-geo-selector-value="roseskinco.com"> 1367 <button 1368 data-geo-selector-url="roseskinco.com" 1369 id="United States" 1370 1371 class="active" 1372 1373 > 1374 1375 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678403628282/CountryIcons-01.svg?v=1678403628282" width="16" height="16" alt=""/></span> 1376
1377 <span>United States</span> 1378 </button> 1379 </li> 1380 1381 <li class="" data-geo-selector-item="Australia" data-geo-selector-value="au.roseskinco.com"> 1382 <button 1383 data-geo-selector-url="au.roseskinco.com" 1384 id="Australia" 1385 1386 > 1387 1388 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678403683799/CountryIcons-02.svg?v=1678403683799" width="16" height="16" alt=""/></span> 1389 1390 <span>Australia</span> 1391 </button> 1392 </li> 1393 1394 <li class="" data-geo-selector-item="Canada" data-geo-selector-value="ca.roseskinco.com"> 1395 <button 1396 data-geo-selector-url="ca.roseskinco.com" 1397 id="Canada" 1398 1399 > 1400 1401 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1684333548852/canada-icon.svg?v=1684333548852" width="16" height="16" alt=""/></span> 1402 1403 <span>Canada</span> 1404 </button> 1405 </li> 1406 1407 <li class="" data-geo-selector-item="Europe" data-geo-selector-value="eu.roseskinco.com"> 1408 <button 1409 data-geo-selector-url="eu.roseskinco.com" 1410 id="Europe" 1411 1412 > 1413 1414 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678403707249/CountryIcons-03.svg?v=1678403707249" width="16" height="16" alt=""/></span> 1415 1416 <span>Europe</span> 1417 </button> 1418 </li> 1419 1420 <li class="" data-geo-selector-item="International" data-geo-selector-value="int.roseskinco.com"> 1421 <button 1422 data-geo-selector-url="int.roseskinco.com" 1423 id="International" 1424 1425 > 1426 1427 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678492277650/CountryIcons-04.svg?v=1678492277650" width="16" height="16" alt=""/></span> 1428 1429 <span>International</span> 1430 </button> 1431 </li> 1432 1433 <li class="" data-geo-selector-item="United Arab Emirates" data-geo-selector-value="ae.roseskinco.com"> 1434 <button 1435 data-geo-selector-url="ae.roseskinco.com" 1436 id="United Arab Emirates" 1437 1438 > 1439 1440 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678494567992/CountryIcons-09.svg?v=1678494567993" width="16" height="16" alt=""/></span> 1441 1442 <span>United Arab Emirates</span> 1443 </button> 1444 </li> 1445 1446 <li class="" data-geo-selector-item="United Kingdom" data-geo-selector-value="uk.roseskinco.com"> 1447 <button 1448 data-geo-selector-url="uk.roseskinco.com" 1449 id="United Kingdom" 1450 1451 > 1452 1453 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678494965519/CountryIcons-12.svg?v=1678723301708" width="16" height="16" alt=""/></span> 1454 1455 <span>United Kingdom</span> 1456 </button> 1457 </li> 1458 1459 <li class="" data-geo-selector-item="New Zealand" data-geo-selector-value="nz.roseskinco.com"> 1460 <button 1461 data-geo-selector-url="nz.roseskinco.com" 1462 id="New Zealand" 1463 1464 > 1465 1466 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678495335346/CountryIcons-06.svg?v=1678495335346" width="16" height="16" alt=""/></span> 1467 1468 <span>New Zealand</span> 1469 </button> 1470 </li> 1471 1472 <li class="" data-geo-selector-item="Singapore" data-geo-selector-value="sg.roseskinco.com"> 1473 <button 1474 data-geo-selector-url="sg.roseskinco.com" 1475 id="Singapore" 1476 1477 > 1478 1479 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678495424528/CountryIcons-07.svg?v=1678495424528" width="16" height="16" alt=""/></span> 1480 1481 <span>Singapore</span> 1482 </button> 1483 </li> 1484 1485 <li class="" data-geo-selector-item="South Africa" data-geo-selector-value="za.roseskinco.com"> 1486 <button 1487 data-geo-selector-url="za.roseskinco.com" 1488 id="South Africa" 1489 1490 > 1491 1492 <img loading="lazy" src="https://cdn.accentuate.io/8487567423/1678495506762/CountryIcons-11.svg?v=1678723316523" width="16" height="16" alt=""/></span> 1493
1494 <span>South Africa</span> 1495 </button> 1496 </li> 1497 1498 </ul> 1499 </div> 1500</div> 1501 1502 1503<div class="country-code-form"><form method="post" action="/localization" id="localization_form" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data" data-country-code-form=""><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/blogs/news" /><select name="country_code" data-country-code-select><option value="AU" data-country-code-select-option> 1504 australia - au 1505 </option><option value="AT" data-country-code-select-option> 1506 austria - europe 1507 </option><option value="BE" data-country-code-select-option> 1508 belgium - europe 1509 </option><option value="BR" data-country-code-select-option> 1510 brazil - international 1511 </option><option value="BG" data-country-code-select-option> 1512 bulgaria - europe 1513 </option><option value="CA" data-country-code-select-option> 1514 canada - ca 1515 </option><option value="HR" data-country-code-select-option> 1516 croatia - europe 1517 </option><option value="CZ" data-country-code-select-option> 1518 czechia - europe 1519 </option><option value="DK" data-country-code-select-option> 1520 denmark - europe 1521 </option><option value="FI" data-country-code-select-option> 1522 finland - europe 1523 </option><option value="FR" data-country-code-select-option> 1524 france - europe 1525 </option><option value="DE" data-country-code-select-option> 1526 germany - europe 1527 </option><option value="HK" data-country-code-select-option> 1528 hong kong sar - international 1529 </option><option value="HU" data-country-code-select-option> 1530 hungary - europe 1531 </option><option value="IN" data-country-code-select-option> 1532 india - international 1533 </option><option value="IE" data-country-code-select-option> 1534 ireland - europe 1535 </option><option value="IT" data-country-code-select-option> 1536 italy - europe 1537 </option><option value="JP" data-country-code-select-option> 1538 japan - international 1539 </option><option value="LV" data-country-code-select-option> 1540 latvia - europe 1541 </option><option value="LT" data-country-code-select-option> 1542 lithuania - europe 1543 </option><option value="LU" data-country-code-select-option> 1544 luxembourg - europe 1545 </option><option value="MY" data-country-code-select-option> 1546 malaysia - international 1547 </option><option value="MX" data-country-code-select-option> 1548 mexico - international 1549 </option><option value="MC" data-country-code-select-option> 1550 monaco - europe 1551 </option><option value="NL" data-country-code-select-option> 1552 netherlands - europe 1553 </option><option value="NZ" data-country-code-select-option> 1554 new zealand - nz 1555 </option><option value="NO" data-country-code-select-option> 1556 norway - europe 1557 </option><option value="PH" data-country-code-select-option> 1558 philippines - international 1559 </option><option value="PL" data-country-code-select-option> 1560 poland - europe 1561 </option><option value="PT" data-country-code-select-option> 1562 portugal - europe 1563 </option><option value="RO" data-country-code-select-option> 1564 romania - europe 1565 </option><option value="SA" data-country-code-select-option> 1566 saudi arabia - international 1567 </option><option value="RS" data-country-code-select-option> 1568 serbia - europe 1569 </option><option value="SG" data-country-code-select-option> 1570 singapore - sg 1571 </option><option value="SK" data-country-code-select-option> 1572 slovakia - europe 1573 </option><option value="SI" data-country-code-select-option> 1574 slovenia - europe 1575 </option><option value="ZA" data-country-code-select-option> 1576 south africa - south-africa 1577 </option><option value="KR" data-country-code-select-option> 1578 south korea - international 1579 </option><option value="ES" data-country-code-select-option> 1580 spain - europe 1581 </option><option value="SE" data-country-code-select-option> 1582 sweden - europe 1583 </option><option value="CH" data-country-code-select-option> 1584 switzerland - europe 1585 </option><option value="TH" data-country-code-select-option> 1586 thailand - international 1587 </option><option value="TR" data-country-code-select-option> 1588 türkiye - europe 1589 </option><option value="AE" data-country-code-select-option> 1590 united arab emirates - ae 1591 </option><option value="GB" data-country-code-select-option> 1592 united kingdom - gb 1593 </option><option value="US" data-country-code-select-option> 1594 united states - 690f0e89-bcad-47b4-8109-e91f5240aa21 1595 </option></select></form></div> 1596
1597<script> 1598 document.addEventListener('DOMContentLoaded', () => { 1599 const geoSelectorMobileSelect = document?.querySelector('.geo-selector__mobile-select'); 1600 1601 if (geoSelectorMobileSelect) { 1602 geoSelectorMobileSelect.addEventListener('change', (e) => { 1603 e.preventDefault(); 1604 const selectValue = e.target.value; 1605 const customSelectButton = document.querySelector(`.geo-selector.mobile button[id="${selectValue}"]`); 1606 if (customSelectButton) { 1607 customSelectButton.click(); 1608 } 1609 }) 1610 } 1611 }) 1612</script>
1612 1613 1614 1615 1616 <a 1617 href="/search" 1618 title="Search" 1619 class="c-header__action is-search is-desktop" 1620 data-open-search 1621 > 1622 <span class="u-visually-hidden"> 1623 Search 1624 </span><svg class="c-header__icon" 1625 fill="none" 1626 xmlns="http://www.w3.org/2000/svg" 1627 viewBox="0 0 28 28" 1628 role="presentation" 1629> 1630 <path d="M12.588 21.813a9.115 9.115 0 1 0 0-18.23 9.115 9.115 0 0 0 0 18.23ZM19.035 19.144l5.274 5.274" stroke="#1F1D24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1631</svg> 1632 </a><a 1633 href="/account" 1634 title="Login" 1635 class="c-header__action is-account is-desktop" 1636 > 1637 <span class="u-visually-hidden">Login</span><svg class="c-header__icon c-header__user-icon" 1638 width="24" 1639 height="24" 1640 viewBox="0 0 24 24" 1641 fill="none" 1642 xmlns="http://www.w3.org/2000/svg" 1643 role="presentation" 1644> 1645 <path d="M2.25 22.5C2.25 17.115 6.615 12.75 12 12.75C17.385 12.75 21.75 17.115 21.75 22.5" stroke="#1F1D24" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round"/> 1646 <path d="M12 12.75C15.1066 12.75 17.625 10.2316 17.625 7.125C17.625 4.0184 15.1066 1.5 12 1.5C8.8934 1.5 6.375 4.0184 6.375 7.125C6.375 10.2316 8.8934 12.75 12 12.75Z" stroke="#1F1D24" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/> 1647</svg> 1648 1649 </a> 1650 </div><a 1651 href="/cart" 1652 class="c-header__cart" 1653 title="Open Shopping Cart" 1654 1655 data-cart-drawer-open 1656 1657 > 1658 <span class="u-visually-hidden">Open Shopping Cart</span> 1659 1660<svg class="c-header__cart-icon" 1661 fill="none" 1662 xmlns="http://www.w3.org/2000/svg" 1663 viewBox="0 0 29 29" 1664 role="presentation" 1665> 1666 <path d="M19.147 11.491V7.982a4.366 4.366 0 0 0-4.366-4.367 4.367 4.367 0 0 0-4.386 4.348v3.528" stroke="#1F1D24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1667 <path clip-rule="evenodd" d="M20.269 25.027H9.29a4.926 4.926 0 0 1-4.928-4.924v-6.385a4.926 4.926 0 0 1 4.928-4.924H20.27a4.926 4.926 0 0 1 4.928 4.925v6.384a4.926 4.926 0 0 1-4.928 4.924Z" stroke="#1F1D24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1668</svg> 1669 1670<span class="c-header__cart-count o-paragraph--2 " 1671 data-cart-count 1672 >0</span> 1673 </a> 1674 </div> 1675 </div><div class="c-header__main-background is-desktop"></div> 1676 </div> 1677</header> 1678 1679 1680</div><div id="shopify-section-sections--28346835271861__cart-drawer" class="shopify-section shopify-section-group-header-group c-section c-section__cart-drawer"><link href="//roseskinco.com/cdn/shop/t/797/assets/sections.cart-drawer.css?v=130263026530863195581788119711" rel="stylesheet" type="text/css" media="all" /> 1681<div class="c-cart-drawer c-cart-drawer__empty" 1682 data-cart-container 1683 data-section-id="sections--28346835271861__cart-drawer" 1684> 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705<header class="c-cart-contents__header" data-icons-count="3"> 1706 <div class="c-cart-contents__title-wrapper"><h2 class="c-cart-contents__title">Your Bag 1707</h2><button 1708 class="c-cart-contents__close" 1709 data-cart-drawer-close 1710 title="Close Cart" 1711 > 1712 <span class="u-visually-hidden"> 1713 Close Cart 1714 </span><svg class="c-cart-contents__close-icon" 1715 fill="none" 1716 xmlns="http://www.w3.org/2000/svg" 1717 viewBox="0 0 20 20" 1718 role="presentation" 1719> 1720 <path d="m15.625 4.375-11.25 11.25M15.625 15.625 4.375 4.375" stroke="#1F1D24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1721</svg></button> 1722 </div> 1723</header><div class="c-cart-contents__inner"><div class="c-cart-contents__empty"> 1724 <h3 class="c-cart-contents__empty-title">Your Cart Is Empty</h3> 1725 1726 1727 <a href="/collections/all-products" 1728 class="c-cart-contents__empty-link o-btn--outlined" 1729 > 1730 START SHOPPING 1731 </a> 1732 1733 </div> 1734 1735 1736 1737</div><div class="c-cart-contents__footer"> 1738 <div class="c-cart-contents__footer-inner"> 1739 <div class="c-cart-icons"> 1740 1741 <div class="c-cart-icon__wrapper" 1742 1743 aria-label="400,000+ happy customers" 1744 1745 > 1746 <img src="//roseskinco.com/cdn/shop/files/Group_12.png?v=1776857749&width=150" 1747 width="88" 1748 height="88" 1749 1750 alt="" 1751 role="presentation" 1752 1753 > 1754 1755
1756 <span>400,000+ HAPPY <br /> 1757CUSTOMERS</span> 1758 1759 </div> 1760 1761 <div class="c-cart-icon__wrapper" 1762 1763 aria-label="try it for 90 days" 1764 1765 > 1766 <img src="//roseskinco.com/cdn/shop/files/Group_13.png?v=1776857749&width=150" 1767 width="88" 1768 height="88" 1769 1770 alt="" 1771 role="presentation" 1772 1773 > 1774 1775 1776 <span>TRY IT FOR <br /> 177790 DAYS</span> 1778 1779 </div> 1780 1781 <div class="c-cart-icon__wrapper" 1782 1783 aria-label="free shipping globally" 1784 1785 > 1786 <img src="//roseskinco.com/cdn/shop/files/Group_14.png?v=1776857749&width=150" 1787 width="88" 1788 height="88" 1789 1790 alt="" 1791 role="presentation" 1792 1793 > 1794 1795 1796 <span>FREE SHIPPING <br /> 1797GLOBALLY</span> 1798 1799 </div> 1800 1801 </div> 1802 1803 </div> 1804</div> 1805</div><div class="c-cart-drawer__background" 1806 data-cart-drawer-overlay 1807 aria-hidden="true" 1808> 1809</div> 1810 1811 1812<div 1813 data-free-gifts-trigger-products="" 1814 data-free-gifts="" 1815 data-available-gwp="false" 1816 aria-hidden="true" 1817></div> 1818
1819<script src="//roseskinco.com/cdn/shop/t/797/assets/sections.cart-drawer.js?v=24907319297057091411788119712" type="text/javascript"></script>
1819 1820 1821</div> 1822<!-- END sections: header-group --> 1823 1824 <div id="main"> 1825 <div id="shopify-section-template--28346832650421__blog_hero_overlay_A9bPWV" class="shopify-section c-section c-section__blog-hero-overlay"> 1826 1827<link href="//roseskinco.com/cdn/shop/t/797/assets/sections.blog-hero-overlay.css?v=129277732940121497431788119703" rel="stylesheet" type="text/css" media="all" /> 1828 1829<div class="blog-hero-overlay blog-hero-overlay--template--28346832650421__blog_hero_overlay_A9bPWV blog-hero-overlay--bottom-border"> 1830 <div class="blog-hero-overlay__container"> 1831 <div class="blog-hero-overlay__content"><p class="blog-hero-overlay__title o-subheading">Our Blog</p><h2 class="blog-hero-overlay__heading">RoseSkin Convos</h2><p class="blog-hero-overlay__copy">Welcome to RoseSkinConvos, where beauty meets care. Dive into our world of hair removal, IPL machine, skincare, and self-care tips. Stay ahead with the latest beauty news and maintenance advice, all designed to empower and inspire.</p></div> 1832 </div> 1833 <div class="blog-hero-overlay__background"> 1834<picture><source 1835 data-w=""500x"" 1836 media="(max-width:500px)" 1837 loading="lazy" 1838 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-m_500x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1839 /><source 1840 data-w=""750x"" 1841 media="(max-width:750px)" 1842 loading="lazy" 1843 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-m_750x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1844 /><source 1845 data-w=""1000x"" 1846 media="(max-width:1000px)" 1847 loading="lazy" 1848 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-m_1000x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1849 /><source 1850 media="(min-width:1000px)" 1851 loading="lazy" 1852 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-m_780x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1853 /><img 1854 loading="eager" 1855 1856 src="//roseskinco.com/cdn/shop/files/blog-hero-overlay-m_780x.jpg?v=1724337601" 1857 width="780"alt="" 1858 class="blog-hero-overlay__image blog-hero-overlay__image--mobile" 1859 1860 fetchpriority="high" 1861 /> 1862 </picture> 1863<picture><source 1864 data-w=""500x"" 1865 media="(max-width:500px)" 1866 loading="lazy" 1867 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-d_500x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1868 /><source 1869 data-w=""750x"" 1870 media="(max-width:750px)" 1871 loading="lazy" 1872 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-d_750x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1873 /><source 1874 data-w=""1000x"" 1875 media="(max-width:1000px)" 1876 loading="lazy" 1877 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-d_1000x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1878 /><source 1879 media="(min-width:1000px)" 1880 loading="lazy" 1881 srcset="//roseskinco.com/cdn/shop/files/blog-hero-overlay-d_2880x.jpg?v=1724337601, //roseskinco.com/cdn/shop/files/[email protected]?v=1724337601 2x" 1882 /><img 1883 loading="eager" 1884 1885 src="//roseskinco.com/cdn/shop/files/blog-hero-overlay-d_2880x.jpg?v=1724337601" 1886 width="2880"alt="" 1887 class="blog-hero-overlay__image blog-hero-overlay__image--desktop" 1888 1889 fetchpriority="high" 1890 /> 1891 </picture></div> 1892</div> 1893 1894<style> 1895 .blog-hero-overlay--template--28346832650421__blog_hero_overlay_A9bPWV { 1896 --blog-hero-overlay-color: #000000; 1897 --blog-hero-overlay-opacity: 20%; 1898 --blog-hero-overlay-content-color: #ffffff; 1899 } 1900</style> 1901 1902</div><div id="shopify-section-template--28346832650421__blog-tag-filters" class="shopify-section c-section c-section__blog-tag-filters"><link href="//roseskinco.com/cdn/shop/t/797/assets/sections.blog-tag-filters.css?v=95385280540528580771788119707" rel="stylesheet" type="text/css" media="all" /> 1903 1904<style> 1905 .blog-tag-filters { 1906 --blog-tag-filters-background-color: #FFF5F7; 1907 } 1908</style> 1909 <section class="blog-tag-filters"> 1910 <div class="blog-tag-filters__container"> 1911 <ul class="blog-tag-filters__list"> 1912 <li 1913 class="selected"> 1914 <a href="/blogs/news">All Categories</a> 1915 </li><li 1916 class=""><a href="/blogs/news/tagged/hair-removal" title="Show articles tagged Hair Removal">Hair Removal</a></li><li 1917 class=""><a href="/blogs/news/tagged/ipl-machine" title="Show articles tagged IPL Machine">IPL Machine</a></li><li 1918 class=""><a href="/blogs/news/tagged/maintenance" title="Show articles tagged Maintenance">Maintenance</a></li><li 1919 class=""><a href="/blogs/news/tagged/news" title="Show articles tagged News">News</a></li><li 1920 class=""><a href="/blogs/news/tagged/self-care" title="Show articles tagged Self Care">Self Care</a></li><li 1921 class=""><a href="/blogs/news/tagged/skincare" title="Show articles tagged Skincare">Skincare</a></li></ul> 1922 </div> 1923 </section></div><div id="shopify-section-template--28346832650421__blog-articles-list" class="shopify-section c-section c-section__blog-articles-list"><link href="//roseskinco.com/cdn/shop/t/797/assets/sections.blog-articles-list.css?v=51168961136999042301788119699" rel="stylesheet" type="text/css" media="all" /> 1924 1925<style> 1926 .blog-articles-list { 1927 --blog-articles-list-background-color: #FFF5F7; 1928 } 1929</style><section class="blog-articles-list"> 1930 <div class="blog-articles-list__container"> 1931 1932 <h2 class="u-visually-hidden">Blog articles</h2> 1933 1934<div class="blog-articles-list__grid blog-articles-list__grid--masonry"><div 1935 class="article-item" 1936 > 1937 <a href="/blogs/news/hypertrichosis-vs-hirsutism" 1938 class="article-item__link" 1939 >
1940 <span class="u-visually-hidden">Hypertrichosis (Excess Hair Everywhere) vs Hirsutism (Hormone-Driven Hair)</span> 1941 </a> 1942 1943 <div class="article-item__container"> 1944 <div class="article-item__image o-responsive-image-container"> 1945<picture><source 1946 data-w=""330x"" 1947 media="(max-width:375px)" 1948 loading="lazy" 1949 srcset="//roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_330x.jpg?v=1758773817, //roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_330x@2x.jpg?v=1758773817 2x" 1950 /><source 1951 data-w=""460x"" 1952 media="(max-width:550px)" 1953 loading="lazy" 1954 srcset="//roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_460x.jpg?v=1758773817, //roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_460x@2x.jpg?v=1758773817 2x" 1955 /><source 1956 data-w=""460x"" 1957 media="(max-width:780px)" 1958 loading="lazy" 1959 srcset="//roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_460x.jpg?v=1758773817, //roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_460x@2x.jpg?v=1758773817 2x" 1960 /><source 1961 media="(min-width:780px)" 1962 loading="lazy" 1963 srcset="//roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_736x.jpg?v=1758773817, //roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_736x@2x.jpg?v=1758773817 2x" 1964 /><img 1965 loading="eager" 1966 1967 src="//roseskinco.com/cdn/shop/articles/Hypertrichosis_vs_hirsutism_86460b54-bd25-4a46-8d72-a991ed5976b9_736x.jpg?v=1758773817" 1968 width="736"alt="Hypertrichosis (Excess Hair Everywhere) vs Hirsutism (Hormone-Driven Hair)" 1969 class="o-responsive-image" 1970 1971 fetchpriority="high" 1972 /> 1973 </picture></div> 1974 <div class="article-item__content"><p class="article-item__length">5 min read 1975 </p><h3 class="article-item__title">Hypertrichosis (Excess Hair Everywhere) vs Hirsutism (Hormone-Driven Hair)</h3> 1976 </div> 1977 </div> 1978 </div><div 1979 class="article-item" 1980 > 1981 <a href="/blogs/news/how-often-should-you-shave" 1982 class="article-item__link" 1983 > 1984 <span class="u-visually-hidden">How Often Should You Shave? (A Guide for Your Legs, Armpits, and Pubes)</span> 1985 </a> 1986 1987 <div class="article-item__container"> 1988 <div class="article-item__image o-responsive-image-container"> 1989<picture><source 1990 data-w=""330x"" 1991 media="(max-width:375px)" 1992 loading="lazy" 1993 srcset="//roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_330x.jpg?v=1758773748, //roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_330x@2x.jpg?v=1758773748 2x" 1994 /><source 1995 data-w=""460x"" 1996 media="(max-width:550px)" 1997 loading="lazy" 1998 srcset="//roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_460x.jpg?v=1758773748, //roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_460x@2x.jpg?v=1758773748 2x" 1999 /><source 2000 data-w=""460x"" 2001 media="(max-width:780px)" 2002 loading="lazy" 2003 srcset="//roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_460x.jpg?v=1758773748, //roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_460x@2x.jpg?v=1758773748 2x" 2004 /><source 2005 media="(min-width:780px)" 2006 loading="lazy" 2007 srcset="//roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_736x.jpg?v=1758773748, //roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_736x@2x.jpg?v=1758773748 2x" 2008 /><img 2009 loading="eager" 2010
2011 src="//roseskinco.com/cdn/shop/articles/Woman_shaving_often_with_razor_d0433647-fa45-4edf-bd3f-88834b176c58_736x.jpg?v=1758773748" 2012 width="736"alt="How Often Should You Shave? (A Guide for Your Legs, Armpits, and Pubes)" 2013 class="o-responsive-image" 2014 2015 fetchpriority="high" 2016 /> 2017 </picture></div> 2018 <div class="article-item__content"><p class="article-item__length">8 min read 2019 </p><h3 class="article-item__title">How Often Should You Shave? (A Guide for Your Legs, Armpits, and Pubes)</h3> 2020 </div> 2021 </div> 2022 </div><div 2023 class="article-item" 2024 > 2025 <a href="/blogs/news/best-razor-for-extremely-sensitive-skin" 2026 class="article-item__link" 2027 > 2028 <span class="u-visually-hidden">How to Choose a Razor When Your Skin is Extremely Sensitive</span> 2029 </a> 2030 2031 <div class="article-item__container"> 2032 <div class="article-item__image o-responsive-image-container"> 2033<picture><source 2034 data-w=""330x"" 2035 media="(max-width:375px)" 2036 loading="lazy" 2037 srcset="//roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_330x.jpg?v=1750965797, //roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_330x@2x.jpg?v=1750965797 2x" 2038 /><source 2039 data-w=""460x"" 2040 media="(max-width:550px)" 2041 loading="lazy" 2042 srcset="//roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_460x.jpg?v=1750965797, //roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_460x@2x.jpg?v=1750965797 2x" 2043 /><source 2044 data-w=""460x"" 2045 media="(max-width:780px)" 2046 loading="lazy" 2047 srcset="//roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_460x.jpg?v=1750965797, //roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_460x@2x.jpg?v=1750965797 2x" 2048 /><source 2049 media="(min-width:780px)" 2050 loading="lazy" 2051 srcset="//roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_736x.jpg?v=1750965797, //roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_736x@2x.jpg?v=1750965797 2x" 2052 /><img 2053 loading="eager" 2054 2055 src="//roseskinco.com/cdn/shop/articles/Best_Razor_for_Sensitive_Skin_1c22464b-59c2-435c-94bf-80e027c69ced_736x.jpg?v=1750965797" 2056 width="736"alt="How to Choose a Razor When Your Skin is Extremely Sensitive" 2057 class="o-responsive-image" 2058 2059 fetchpriority="high" 2060 /> 2061 </picture></div> 2062 <div class="article-item__content"><p class="article-item__length">7 min read 2063 </p><h3 class="article-item__title">How to Choose a Razor When Your Skin is Extremely Sensitive</h3> 2064 </div> 2065 </div> 2066 </div><div 2067 class="article-item" 2068 > 2069 <a href="/blogs/news/pcos-chin-hair-removal-best-practices" 2070 class="article-item__link" 2071 > 2072 <span class="u-visually-hidden">10 Safe Ways to Tackle PCOS Chin Hair</span> 2073 </a> 2074 2075 <div class="article-item__container"> 2076 <div class="article-item__image o-responsive-image-container"> 2077<picture><source 2078 data-w=""330x"" 2079 media="(max-width:375px)" 2080 loading="lazy" 2081 srcset="//roseskinco.com/cdn/shop/articles/PCOS_chin_hair_330x.jpg?v=1750799355, //roseskinco.com/cdn/shop/articles/[email protected]?v=1750799355 2x" 2082 /><source 2083 data-w=""460x"" 2084 media="(max-width:550px)" 2085 loading="lazy" 2086 srcset="//roseskinco.com/cdn/shop/articles/PCOS_chin_hair_460x.jpg?v=1750799355, //roseskinco.com/cdn/shop/articles/[email protected]?v=1750799355 2x" 2087 /><source 2088 data-w=""460x"" 2089 media="(max-width:780px)" 2090 loading="lazy" 2091 srcset="//roseskinco.com/cdn/shop/articles/PCOS_chin_hair_460x.jpg?v=1750799355, //roseskinco.com/cdn/shop/articles/[email protected]?v=1750799355 2x" 2092 /><source 2093 media="(min-width:780px)" 2094 loading="lazy" 2095 srcset="//roseskinco.com/cdn/shop/articles/PCOS_chin_hair_736x.jpg?v=1750799355, //roseskinco.com/cdn/shop/articles/[email protected]?v=1750799355 2x" 2096 /><img 2097 loading="eager" 2098 2099 src="//roseskinco.com/cdn/shop/articles/PCOS_chin_hair_736x.jpg?v=1750799355" 2100 width="736"alt="10 Safe Ways to Tackle PCOS Chin Hair" 2101 class="o-responsive-image" 2102 2103 fetchpriority="high" 2104 /> 2105 </picture></div> 2106 <div class="article-item__content"><p class="article-item__length">6 min read 2107 </p><h3 class="article-item__title">10 Safe Ways to Tackle PCOS Chin Hair</h3> 2108 </div> 2109 </div> 2110 </div><div 2111 class="article-item" 2112 > 2113 <a href="/blogs/news/pcos-facial-hair" 2114 class="article-item__link" 2115 >
2116 <span class="u-visually-hidden">Why Does PCOS Cause Excessive Facial Hair Growth?</span> 2117 </a> 2118 2119 <div class="article-item__container"> 2120 <div class="article-item__image o-responsive-image-container"> 2121<picture><source 2122 data-w=""330x"" 2123 media="(max-width:375px)" 2124 loading="lazy" 2125 srcset="//roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_330x.jpg?v=1750797635, //roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_330x@2x.jpg?v=1750797635 2x" 2126 /><source 2127 data-w=""460x"" 2128 media="(max-width:550px)" 2129 loading="lazy" 2130 srcset="//roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_460x.jpg?v=1750797635, //roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_460x@2x.jpg?v=1750797635 2x" 2131 /><source 2132 data-w=""460x"" 2133 media="(max-width:780px)" 2134 loading="lazy" 2135 srcset="//roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_460x.jpg?v=1750797635, //roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_460x@2x.jpg?v=1750797635 2x" 2136 /><source 2137 media="(min-width:780px)" 2138 loading="lazy" 2139 srcset="//roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_736x.jpg?v=1750797635, //roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_736x@2x.jpg?v=1750797635 2x" 2140 /><img 2141 loading="eager" 2142 2143 src="//roseskinco.com/cdn/shop/articles/PCOS_excessive_facial_hair_growth_69359647-cd62-4f2a-a4ae-e59bbe7e902d_736x.jpg?v=1750797635" 2144 width="736"alt="Why Does PCOS Cause Excessive Facial Hair Growth?" 2145 class="o-responsive-image" 2146 2147 fetchpriority="high" 2148 /> 2149 </picture></div> 2150 <div class="article-item__content"><p class="article-item__length">7 min read 2151 </p><h3 class="article-item__title">Why Does PCOS Cause Excessive Facial Hair Growth?</h3> 2152 </div> 2153 </div> 2154 </div><div 2155 class="article-item" 2156 > 2157 <a href="/blogs/news/how-to-shave-legs-men" 2158 class="article-item__link" 2159 > 2160 <span class="u-visually-hidden">How to Shave Your Legs (Menâs Edition)</span> 2161 </a> 2162 2163 <div class="article-item__container"> 2164 <div class="article-item__image o-responsive-image-container"> 2165<picture><source 2166 data-w=""330x"" 2167 media="(max-width:375px)" 2168 loading="lazy" 2169 srcset="//roseskinco.com/cdn/shop/articles/Lumi_for_Men_f2adf3c8-6ad4-46b3-94e3-93aad95bceaa_330x.jpg?v=1742232900, //roseskinco.com/cdn/shop/articles/[email protected]?v=1742232900 2x" 2170 /><source 2171 data-w=""460x"" 2172 media="(max-width:550px)" 2173 loading="lazy" 2174 srcset="//roseskinco.com/cdn/shop/articles/Lumi_for_Men_f2adf3c8-6ad4-46b3-94e3-93aad95bceaa_460x.jpg?v=1742232900, //roseskinco.com/cdn/shop/articles/[email protected]?v=1742232900 2x" 2175 /><source 2176 data-w=""460x"" 2177 media="(max-width:780px)" 2178 loading="lazy" 2179 srcset="//roseskinco.com/cdn/shop/articles/Lumi_for_Men_f2adf3c8-6ad4-46b3-94e3-93aad95bceaa_460x.jpg?v=1742232900, //roseskinco.com/cdn/shop/articles/[email protected]?v=1742232900 2x" 2180 /><source 2181 media="(min-width:780px)" 2182 loading="lazy" 2183 srcset="//roseskinco.com/cdn/shop/articles/Lumi_for_Men_f2adf3c8-6ad4-46b3-94e3-93aad95bceaa_736x.jpg?v=1742232900, //roseskinco.com/cdn/shop/articles/[email protected]?v=1742232900 2x" 2184 /><img 2185 loading="eager" 2186 2187 src="//roseskinco.com/cdn/shop/articles/Lumi_for_Men_f2adf3c8-6ad4-46b3-94e3-93aad95bceaa_736x.jpg?v=1742232900" 2188 width="736"alt="How to Shave Your Legs (Menâs Edition)" 2189 class="o-responsive-image" 2190 2191 fetchpriority="high" 2192 /> 2193 </picture></div> 2194 <div class="article-item__content"><p class="article-item__length">9 min read 2195 </p><h3 class="article-item__title">How to Shave Your Legs (Menâs Edition)</h3> 2196 </div> 2197 </div> 2198 </div><div 2199 class="article-item" 2200 > 2201 <a href="/blogs/news/how-many-laser-hair-removal-sessions-for-bikini-area" 2202 class="article-item__link" 2203 >
2204 <span class="u-visually-hidden">How Many Laser Hair Removal Sessions for Bikini Area?</span> 2205 </a> 2206 2207 <div class="article-item__container"> 2208 <div class="article-item__image o-responsive-image-container"> 2209<picture><source 2210 data-w=""330x"" 2211 media="(max-width:375px)" 2212 loading="lazy" 2213 srcset="//roseskinco.com/cdn/shop/articles/Laser_Hair_Removal_Sessions_on_Bikini_Area_330x.jpg?v=1740433200, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433200 2x" 2214 /><source 2215 data-w=""460x"" 2216 media="(max-width:550px)" 2217 loading="lazy" 2218 srcset="//roseskinco.com/cdn/shop/articles/Laser_Hair_Removal_Sessions_on_Bikini_Area_460x.jpg?v=1740433200, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433200 2x" 2219 /><source 2220 data-w=""460x"" 2221 media="(max-width:780px)" 2222 loading="lazy" 2223 srcset="//roseskinco.com/cdn/shop/articles/Laser_Hair_Removal_Sessions_on_Bikini_Area_460x.jpg?v=1740433200, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433200 2x" 2224 /><source 2225 media="(min-width:780px)" 2226 loading="lazy" 2227 srcset="//roseskinco.com/cdn/shop/articles/Laser_Hair_Removal_Sessions_on_Bikini_Area_736x.jpg?v=1740433200, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433200 2x" 2228 /><img 2229 loading="eager" 2230 2231 src="//roseskinco.com/cdn/shop/articles/Laser_Hair_Removal_Sessions_on_Bikini_Area_736x.jpg?v=1740433200" 2232 width="736"alt="How Many Laser Hair Removal Sessions for Bikini Area?" 2233 class="o-responsive-image" 2234 2235 fetchpriority="high" 2236 /> 2237 </picture></div> 2238 <div class="article-item__content"><p class="article-item__length">5 min read 2239 </p><h3 class="article-item__title">How Many Laser Hair Removal Sessions for Bikini Area?</h3> 2240 </div> 2241 </div> 2242 </div><div 2243 class="article-item" 2244 > 2245 <a href="/blogs/news/how-to-prevent-razor-bumps" 2246 class="article-item__link" 2247 > 2248 <span class="u-visually-hidden">How to Prevent Razor Bumps When Shaving</span> 2249 </a> 2250 2251 <div class="article-item__container"> 2252 <div class="article-item__image o-responsive-image-container"> 2253<picture><source 2254 data-w=""330x"" 2255 media="(max-width:375px)" 2256 loading="lazy" 2257 srcset="//roseskinco.com/cdn/shop/articles/Razor_Bump_Prevention_330x.jpg?v=1740433186, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433186 2x" 2258 /><source 2259 data-w=""460x"" 2260 media="(max-width:550px)" 2261 loading="lazy" 2262 srcset="//roseskinco.com/cdn/shop/articles/Razor_Bump_Prevention_460x.jpg?v=1740433186, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433186 2x" 2263 /><source 2264 data-w=""460x"" 2265 media="(max-width:780px)" 2266 loading="lazy" 2267 srcset="//roseskinco.com/cdn/shop/articles/Razor_Bump_Prevention_460x.jpg?v=1740433186, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433186 2x" 2268 /><source 2269 media="(min-width:780px)" 2270 loading="lazy" 2271 srcset="//roseskinco.com/cdn/shop/articles/Razor_Bump_Prevention_736x.jpg?v=1740433186, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433186 2x" 2272 /><img 2273 loading="eager" 2274 2275 src="//roseskinco.com/cdn/shop/articles/Razor_Bump_Prevention_736x.jpg?v=1740433186" 2276 width="736"alt="How to Prevent Razor Bumps When Shaving" 2277 class="o-responsive-image" 2278 2279 fetchpriority="high" 2280 /> 2281 </picture></div> 2282 <div class="article-item__content"><p class="article-item__length">5 min read 2283 </p><h3 class="article-item__title">How to Prevent Razor Bumps When Shaving</h3> 2284 </div> 2285 </div> 2286 </div><div 2287 class="article-item" 2288 > 2289 <a href="/blogs/news/laser-hair-removal-transgender" 2290 class="article-item__link" 2291 >
2292 <span class="u-visually-hidden">Transgender Laser Hair Removal Options</span> 2293 </a> 2294 2295 <div class="article-item__container"> 2296 <div class="article-item__image o-responsive-image-container"> 2297<picture><source 2298 data-w=""330x"" 2299 media="(max-width:375px)" 2300 loading="lazy" 2301 srcset="//roseskinco.com/cdn/shop/articles/Transgender_Laser_Hair_Removal_Options_330x.jpg?v=1740433049, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433049 2x" 2302 /><source 2303 data-w=""460x"" 2304 media="(max-width:550px)" 2305 loading="lazy" 2306 srcset="//roseskinco.com/cdn/shop/articles/Transgender_Laser_Hair_Removal_Options_460x.jpg?v=1740433049, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433049 2x" 2307 /><source 2308 data-w=""460x"" 2309 media="(max-width:780px)" 2310 loading="lazy" 2311 srcset="//roseskinco.com/cdn/shop/articles/Transgender_Laser_Hair_Removal_Options_460x.jpg?v=1740433049, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433049 2x" 2312 /><source 2313 media="(min-width:780px)" 2314 loading="lazy" 2315 srcset="//roseskinco.com/cdn/shop/articles/Transgender_Laser_Hair_Removal_Options_736x.jpg?v=1740433049, //roseskinco.com/cdn/shop/articles/[email protected]?v=1740433049 2x" 2316 /><img 2317 loading="eager" 2318 2319 src="//roseskinco.com/cdn/shop/articles/Transgender_Laser_Hair_Removal_Options_736x.jpg?v=1740433049" 2320 width="736"alt="Transgender Laser Hair Removal Options" 2321 class="o-responsive-image" 2322 2323 fetchpriority="high" 2324 /> 2325 </picture></div> 2326 <div class="article-item__content"><p class="article-item__length">7 min read 2327 </p><h3 class="article-item__title">Transgender Laser Hair Removal Options</h3> 2328 </div> 2329 </div> 2330 </div><div 2331 class="article-item" 2332 > 2333 <a href="/blogs/news/ingrown-pubic-hair-treatment-prevention" 2334 class="article-item__link" 2335 > 2336 <span class="u-visually-hidden">How to Finally Get Rid of Ingrown Pubic Hair⦠For Good</span> 2337 </a> 2338 2339 <div class="article-item__container"> 2340 <div class="article-item__image o-responsive-image-container"> 2341<picture><source 2342 data-w=""330x"" 2343 media="(max-width:375px)" 2344 loading="lazy" 2345 srcset="//roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_330x.jpg?v=1740431874, //roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_330x@2x.jpg?v=1740431874 2x" 2346 /><source 2347 data-w=""460x"" 2348 media="(max-width:550px)" 2349 loading="lazy" 2350 srcset="//roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_460x.jpg?v=1740431874, //roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_460x@2x.jpg?v=1740431874 2x" 2351 /><source 2352 data-w=""460x"" 2353 media="(max-width:780px)" 2354 loading="lazy" 2355 srcset="//roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_460x.jpg?v=1740431874, //roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_460x@2x.jpg?v=1740431874 2x" 2356 /><source 2357 media="(min-width:780px)" 2358 loading="lazy" 2359 srcset="//roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_736x.jpg?v=1740431874, //roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_736x@2x.jpg?v=1740431874 2x" 2360 /><img 2361 loading="eager" 2362 2363 src="//roseskinco.com/cdn/shop/articles/ingrown-pubic-hair_520x500_aabcc9e0-9685-44e3-99b9-44dceb54073b_736x.jpg?v=1740431874" 2364 width="736"alt="How to Finally Get Rid of Ingrown Pubic Hair⦠For Good" 2365 class="o-responsive-image" 2366 2367 fetchpriority="high" 2368 /> 2369 </picture></div> 2370 <div class="article-item__content"><p class="article-item__length">6 min read 2371 </p><h3 class="article-item__title">How to Finally Get Rid of Ingrown Pubic Hair⦠For Good</h3> 2372 </div> 2373 </div> 2374 </div><div 2375 class="article-item" 2376 > 2377 <a href="/blogs/news/electrolysis-vs-laser-hair-removal" 2378 class="article-item__link" 2379 >
2380 <span class="u-visually-hidden">Electrolysis vs Laser Hair Removal</span> 2381 </a> 2382 2383 <div class="article-item__container"> 2384 <div class="article-item__image o-responsive-image-container"> 2385<picture><source 2386 data-w=""330x"" 2387 media="(max-width:375px)" 2388 loading="lazy" 2389 srcset="//roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_330x.jpg?v=1734652588, //roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_330x@2x.jpg?v=1734652588 2x" 2390 /><source 2391 data-w=""460x"" 2392 media="(max-width:550px)" 2393 loading="lazy" 2394 srcset="//roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_460x.jpg?v=1734652588, //roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_460x@2x.jpg?v=1734652588 2x" 2395 /><source 2396 data-w=""460x"" 2397 media="(max-width:780px)" 2398 loading="lazy" 2399 srcset="//roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_460x.jpg?v=1734652588, //roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_460x@2x.jpg?v=1734652588 2x" 2400 /><source 2401 media="(min-width:780px)" 2402 loading="lazy" 2403 srcset="//roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_736x.jpg?v=1734652588, //roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_736x@2x.jpg?v=1734652588 2x" 2404 /><img 2405 loading="eager" 2406 2407 src="//roseskinco.com/cdn/shop/articles/electrolysis-vs-laser-1_520x500_2cfffb37-96b7-4595-bb08-13aedc36062f_736x.jpg?v=1734652588" 2408 width="736"alt="Electrolysis vs Laser Hair Removal" 2409 class="o-responsive-image" 2410 2411 fetchpriority="high" 2412 /> 2413 </picture></div> 2414 <div class="article-item__content"><p class="article-item__length">8 min read 2415 </p><h3 class="article-item__title">Electrolysis vs Laser Hair Removal</h3> 2416 </div> 2417 </div> 2418 </div><div 2419 class="article-item" 2420 > 2421 <a href="/blogs/news/full-body-laser-hair-removal-cost" 2422 class="article-item__link" 2423 > 2424 <span class="u-visually-hidden">How Much Does Whole Body Laser Hair Removal Cost?</span> 2425 </a> 2426 2427 <div class="article-item__container"> 2428 <div class="article-item__image o-responsive-image-container"> 2429<picture><source 2430 data-w=""330x"" 2431 media="(max-width:375px)" 2432 loading="lazy" 2433 srcset="//roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_330x.jpg?v=1734652530, //roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_330x@2x.jpg?v=1734652530 2x" 2434 /><source 2435 data-w=""460x"" 2436 media="(max-width:550px)" 2437 loading="lazy" 2438 srcset="//roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_460x.jpg?v=1734652530, //roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_460x@2x.jpg?v=1734652530 2x" 2439 /><source 2440 data-w=""460x"" 2441 media="(max-width:780px)" 2442 loading="lazy" 2443 srcset="//roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_460x.jpg?v=1734652530, //roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_460x@2x.jpg?v=1734652530 2x" 2444 /><source 2445 media="(min-width:780px)" 2446 loading="lazy" 2447 srcset="//roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_736x.jpg?v=1734652530, //roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_736x@2x.jpg?v=1734652530 2x" 2448 /><img 2449 loading="eager" 2450 2451 src="//roseskinco.com/cdn/shop/articles/whole-body-laser-hair-removal_5b1ac62d-154c-4a27-aa1d-ae426890a639_736x.jpg?v=1734652530" 2452 width="736"alt="How Much Does Whole Body Laser Hair Removal Cost?" 2453 class="o-responsive-image" 2454 2455 fetchpriority="high" 2456 /> 2457 </picture></div> 2458 <div class="article-item__content"><p class="article-item__length">8 min read 2459 </p><h3 class="article-item__title">How Much Does Whole Body Laser Hair Removal Cost?</h3> 2460 </div> 2461 </div> 2462 </div></div><div class="blog-articles-list__pagination"><div class="o-pagination o-subheading"> 2463 <span class="page current">1</span> <span class="page"><a href="/blogs/news?page=2" title="">2</a></span> <span class="page"><a href="/blogs/news?page=3" title="">3</a></span> <span class="deco">…</span> <span class="page"><a href="/blogs/news?page=8" title="">8</a></span> <span class="next"><a href="/blogs/news?page=2" title="">Next »</a></span> 2464</div><p class="blog-articles-list__pagination-count">1-12 of 87 blog posts</p> 2465 </div></div> 2466</section> 2467 2468</div> 2469 </div> 2470 </div> 2471 </main> 2472 2473 2474 <div id="shopify-section-newsletter" class="shopify-section c-section c-section__newsletter"><link href="//roseskinco.com/cdn/shop/t/797/assets/sections.newsletter.css?v=59339025525617022251788119782" rel="stylesheet" type="text/css" media="all" /> 2475<section class="c-newsletter" id="newsletter" data-newsletter> 2476 <div class="c-newsletter__inner" data-newsletter-inner> 2477 <div class="c-newsletter__container" data-newsletter-container><div class="c-newsletter-form c-newsletter__form c-newsletter__form"> 2478 <div class="c-newsletter-form__inner"><h2 class="c-newsletter__title o-heading--4">Sign Up for Exclusive Access!</h2><p class="c-newsletter-form__subtitle">Subscribe to emails to receive sales updates and product news.</p><div class="klaviyo-subscribe"> 2479 <div class="klaviyo-subscribe__container"> 2480 <div class="klaviyo-form-VDCZiU"></div> 2481 </div> 2482</div> 2483 2484
2485<script 2486 async 2487 type="text/javascript" 2488 src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=X7D2SB" 2489></script>
2489 2490 2491 2492 2493</div> 2494</div></div> 2495 </div><div class="c-newsletter__image-container"> 2496<picture><source 2497 data-w=""320x"" 2498 media="(max-width:320px)" 2499 loading="lazy" 2500 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_320x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2501 /><source 2502 data-w=""375x"" 2503 media="(max-width:375px)" 2504 loading="lazy" 2505 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_375x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2506 /><source 2507 data-w=""500x"" 2508 media="(max-width:500px)" 2509 loading="lazy" 2510 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_500x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2511 /><source 2512 data-w=""750x"" 2513 media="(max-width:750px)" 2514 loading="lazy" 2515 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_750x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2516 /><source 2517 data-w=""1100x"" 2518 media="(max-width:1100px)" 2519 loading="lazy" 2520 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_1100x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2521 /><source 2522 data-w=""1650x"" 2523 media="(max-width:1650px)" 2524 loading="lazy" 2525 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_1650x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2526 /><source 2527 data-w=""2000x"" 2528 media="(max-width:2000px)" 2529 loading="lazy" 2530 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_2000x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2531 /><source 2532 media="(min-width:2000px)" 2533 loading="lazy" 2534 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_2560x.webp?v=1775672440, //roseskinco.com/cdn/shop/files/[email protected]?v=1775672440 2x" 2535 /><img 2536 loading="eager" 2537 2538 src="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_2560x.webp?v=1775672440" 2539 width="2560"alt="" 2540 class="c-newsletter__image 2541 is-desktop 2542 has-mobile" 2543 2544 fetchpriority="high" 2545 /> 2546 </picture> 2547<picture><source 2548 data-w=""320x"" 2549 media="(max-width:320px)" 2550 loading="lazy" 2551 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_320x.webp?v=1775672677, //roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_320x@2x.webp?v=1775672677 2x" 2552 /><source 2553 data-w=""375x"" 2554 media="(max-width:375px)" 2555 loading="lazy" 2556 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_375x.webp?v=1775672677, //roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_375x@2x.webp?v=1775672677 2x" 2557 /><source 2558 data-w=""500x"" 2559 media="(max-width:500px)" 2560 loading="lazy" 2561 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_500x.webp?v=1775672677, //roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_500x@2x.webp?v=1775672677 2x" 2562 /><source 2563 media="(min-width:500px)" 2564 loading="lazy" 2565 srcset="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_750x.webp?v=1775672677, //roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_750x@2x.webp?v=1775672677 2x" 2566 /><img 2567 loading="eager" 2568 2569 src="//roseskinco.com/cdn/shop/files/ROSE_SKIN_0468_copy_ab80f26c-6b9d-405d-aac4-ca2305a425a9_750x.webp?v=1775672677" 2570 width="750"alt="" 2571 class="c-newsletter__image is-mobile" 2572 2573 fetchpriority="high" 2574 /> 2575 </picture></div> 2576 </section>
2576<script src="//roseskinco.com/cdn/shop/t/797/assets/sections.newsletter.js?v=146237789252133973141788119783" type="text/javascript"></script>
2576 2577 2578</div> 2579 2580 2581 <!-- BEGIN sections: footer-group --> 2582<div id="shopify-section-sections--28346835239093__footer" class="shopify-section shopify-section-group-footer-group"> 2583<link href="//roseskinco.com/cdn/shop/t/797/assets/sections.footer.css?v=138605332406873465261788119753" rel="stylesheet" type="text/css" media="all" /> 2584 2585<footer class="footer c-footer color- gradient section-sections--28346835239093__footer-padding"><div class="footer__content-top page-width"><div 2586 class="c-footer__inner footer__blocks-wrapper grid grid--1-col grid--2-col grid--4-col-tablet " 2587 2588 ><div class="c-footer__logo-socials"> 2589 <div class="c-footer__logo"><svg 2590 width="244" height="32" 2591 viewBox="0 0 244 32" 2592 fill="none" 2593 xmlns="http://www.w3.org/2000/svg" 2594 role="presentation" 2595> 2596 <path d="M240.262 31.9564C238.194 31.9564 236.523 30.2974 236.523 28.2456C236.523 26.1937 238.194 24.5348 240.262 24.5348C242.329 24.5348 244 26.1937 244 28.2456C244 30.2974 242.329 31.9564 240.262 31.9564Z" fill="#1F1D24"/> 2597 <path d="M223.077 32C216.611 32 211.465 26.9795 211.465 20.4747C211.465 13.9699 216.611 8.94948 223.077 8.94948C229.542 8.94948 234.733 13.9699 234.733 20.4747C234.733 26.9795 229.542 32 223.077 32ZM223.077 26.4993C226.464 26.4993 229.059 24.0109 229.059 20.4747C229.059 16.9386 226.464 14.4502 223.077 14.4502C219.734 14.4502 217.139 16.9386 217.139 20.4747C217.139 24.0109 219.734 26.4993 223.077 26.4993Z" fill="#1F1D24"/> 2598 <path d="M195.776 32C186.452 32 179.766 25.015 179.766 16.1091C179.766 7.15958 186.452 0.218231 195.776 0.218231C201.406 0.218231 206.376 3.05589 209.015 7.42152L203.781 10.4338C202.286 7.72711 199.295 6.06817 195.776 6.06817C189.75 6.06817 185.792 10.2155 185.792 16.1091C185.792 21.9591 189.75 26.1064 195.776 26.1064C199.295 26.1064 202.33 24.4475 203.781 21.7844L209.015 24.7967C206.42 29.1623 201.45 32 195.776 32Z" fill="#1F1D24"/> 2599 <path d="M167.752 8.94948C172.415 8.94948 176.065 12.18 176.065 17.9863V31.3888H170.391V18.6848C170.391 15.7162 168.588 14.1882 166.037 14.1882C163.266 14.1882 161.199 15.8035 161.199 19.6016V31.3888H155.525V9.56067H161.199V12.0054C162.518 10.0409 164.805 8.94948 167.752 8.94948Z" fill="#1F1D24"/> 2600 <path d="M147.473 6.94135C145.581 6.94135 143.998 5.36972 143.998 3.4925C143.998 1.61528 145.581 0 147.473 0C149.408 0 150.991 1.61528 150.991 3.4925C150.991 5.36972 149.408 6.94135 147.473 6.94135ZM144.658 31.3889V9.56073H150.332V31.3889H144.658Z" fill="#1F1D24"/> 2601 <path d="M141.826 31.3889H135.228L127.223 21.4789V31.3889H121.549V0.829483H127.223V19.1651L134.788 9.56074H141.562L132.721 20.3438L141.826 31.3889Z" fill="#1F1D24"/> 2602 <path d="M106.682 32C100.393 32 96.2583 28.9877 94.5869 24.4475L99.7769 21.4352C100.877 24.2728 103.032 26.1064 106.858 26.1064C110.509 26.1064 111.784 24.5784 111.784 22.8758C111.784 20.6057 109.717 19.7326 105.143 18.4229C100.437 17.0696 95.8624 15.105 95.8624 9.29874C95.8624 3.53611 100.701 0.218231 105.979 0.218231C111.037 0.218231 114.907 2.79395 116.974 7.07227L111.872 9.99724C110.773 7.68345 109.101 6.06817 105.979 6.06817C103.428 6.06817 101.932 7.37786 101.932 9.12411C101.932 11.0013 103.12 12.0054 107.782 13.4024C112.664 14.9304 117.854 16.5457 117.854 22.7885C117.854 28.5075 113.236 32 106.682 32Z" fill="#1F1D24"/> 2603 <path d="M76.0032 22.7885C76.7949 25.6698 79.214 26.8922 82.2048 26.8922C84.404 26.8922 86.1633 25.9754 87.131 24.7094L91.7052 27.3288C89.638 30.2974 86.3393 32 82.1169 32C74.7277 32 70.0654 26.9795 70.0654 20.4747C70.0654 13.9699 74.7716 8.94948 81.677 8.94948C88.1866 8.94948 92.8048 14.0573 92.8048 20.4747C92.8048 21.3042 92.7169 22.0464 92.5849 22.7885H76.0032ZM75.9152 18.4229H87.131C86.4272 15.2796 84.0521 14.0136 81.677 14.0136C78.6422 14.0136 76.575 15.6289 75.9152 18.4229Z" fill="#1F1D24"/> 2604 <path d="M56.5131 15.7599C56.5131 18.9904 67.8608 16.9822 67.8608 25.015C67.8608 29.7299 63.7264 32 59.0202 32C54.6219 32 51.3671 30.1664 49.7837 26.8049L54.7098 24.0545C55.3256 25.8445 56.821 26.8922 59.0202 26.8922C60.8235 26.8922 62.055 26.281 62.055 25.015C62.055 21.8281 50.7073 23.5743 50.7073 15.8908C50.7073
260411.4379 54.5339 8.94948 59.0642 8.94948C62.6268 8.94948 65.7057 10.5648 67.421 13.577L62.5828 16.1964C61.9231 14.7994 60.6916 13.9699 59.0642 13.9699C57.6567 13.9699 56.5131 14.5811 56.5131 15.7599Z" fill="#1F1D24"/> 2605 <path d="M36.1048 32C29.6392 32 24.4932 26.9795 24.4932 20.4747C24.4932 13.9699 29.6392 8.94948 36.1048 8.94948C42.5703 8.94948 47.7604 13.9699 47.7604 20.4747C47.7604 26.9795 42.5703 32 36.1048 32ZM36.1048 26.4993C39.4915 26.4993 42.0865 24.0109 42.0865 20.4747C42.0865 16.9386 39.4915 14.4502 36.1048 14.4502C32.762 14.4502 30.167 16.9386 30.167 20.4747C30.167 24.0109 32.762 26.4993 36.1048 26.4993Z" fill="#1F1D24"/> 2606 <path d="M16.8896 31.3889L10.688 20.7804H6.0697V31.3889H0V0.829483H12.3153C17.9892 0.829483 22.5635 5.36974 22.5635 10.9577C22.5635 14.7995 20.1444 18.2483 16.6257 19.8636L23.4431 31.3889H16.8896ZM6.0697 6.46114V15.498H12.3153C14.6025 15.498 16.4938 13.4898 16.4938 10.9577C16.4938 8.42568 14.6025 6.46114 12.3153 6.46114H6.0697Z" fill="#1F1D24"/> 2607</svg> 2608</div> 2609 2610 <div class="c-footer__socials"> 2611 2612 <a 2613 href="https://www.instagram.com/roseskinco/" 2614 class="c-footer__social" 2615 title=Instagram><img 2616 src="//roseskinco.com/cdn/shop/t/797/assets/icon-instagram.svg?v=83553628626975025991788119659" 2617 alt="" 2618 2619 role="presentation" 2620 2621 width="32" 2622 height="32" 2623 class="o-icon o-icon--instagram c-footer__social-icon" 2624 loading="lazy" 2625/> 2626</a> 2627 2628 <a 2629 href="https://www.facebook.com/roseskinco" 2630 class="c-footer__social" 2631 title=Facebook><img 2632 src="//roseskinco.com/cdn/shop/t/797/assets/icon-facebook.svg?v=30612893353230315221788119658" 2633 alt="" 2634 2635 role="presentation" 2636 2637 width="32" 2638 height="32" 2639 class="o-icon o-icon--facebook c-footer__social-icon" 2640 loading="lazy" 2641/> 2642</a> 2643 2644 <a 2645 href="https://twitter.com/roseskinco" 2646 class="c-footer__social" 2647 title=Twitter><img 2648 src="//roseskinco.com/cdn/shop/t/797/assets/icon-twitter.svg?v=168993699533756135781788119674" 2649 alt="" 2650 2651 role="presentation" 2652 2653 width="32" 2654 height="32" 2655 class="o-icon o-icon--twitter c-footer__social-icon" 2656 loading="lazy" 2657/> 2658</a> 2659 2660 <a 2661 href="https://www.pinterest.com/roseskinco/" 2662 class="c-footer__social" 2663 title=Pinterest><img 2664 src="//roseskinco.com/cdn/shop/t/797/assets/icon-pinterest.svg?v=72527630185102154111788119664" 2665 alt="" 2666 2667 role="presentation" 2668 2669 width="32" 2670 height="32" 2671 class="o-icon o-icon--pinterest c-footer__social-icon" 2672 loading="lazy" 2673/> 2674</a> 2675 2676 <a 2677 href="https://www.tiktok.com/@roseskinco" 2678 class="c-footer__social" 2679 title=Tiktok><img 2680 src="//roseskinco.com/cdn/shop/t/797/assets/icon-tiktok.svg?v=58351338697783154151788119673" 2681 alt="" 2682 2683 role="presentation" 2684 2685 width="32" 2686 height="32" 2687 class="o-icon o-icon--tiktok c-footer__social-icon" 2688 loading="lazy" 2689/> 2690</a></div><div class="c-footer__address is-desktop"><p>RoseSkinCo Inc.<br/>2093 Philadelphia Pike #3577<br/>Claymont, DE, 19703</p><p>Contact: [email protected]</p><p>Support: [email protected]</p><p>Collabs/PR: [email protected]</p></div></div> 2691 2692 <div class="c-footer__menu is-initialised"><div 2693 class="item-1 footer-block grid__item footer-block--menu link_list" 2694 2695 2696 > 2697 2698 2699 2700 2701 2702 2703 2704 <details class="c-footer__menu-column"> 2705 <summary class="c-footer__heading o-subheading"> 2706 2707Learn 2708 </summary> 2709 2710 2711<ul class="footer-block__details-content list-unstyled c-footer__links"><li class="c-footer__menu-item"> 2712 <a 2713 href="/pages/faqs" 2714 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2715 > 2716 FAQs 2717 </a> 2718 </li><li class="c-footer__menu-item"> 2719 <a 2720 href="/blogs/news" 2721 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link list-menu__item--active" 2722 > 2723 Blog 2724 </a> 2725 </li><li class="c-footer__menu-item"> 2726 <a 2727 href="/pages/reviews" 2728 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2729 > 2730 Reviews 2731 </a> 2732 </li><li class="c-footer__menu-item"> 2733 <a 2734 href="/pages/about-us" 2735 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2736 > 2737 About Us 2738 </a> 2739 </li><li class="c-footer__menu-item"> 2740 <a 2741 href="/blogs/beauty-hacks" 2742 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2743 > 2744 Beauty Hacks 2745 </a> 2746 </li></ul> 2747 </details> 2748 2749 </div><div 2750 class="item-2 footer-block grid__item footer-block--menu link_list" 2751 2752 2753 > 2754 2755 2756 2757 2758 2759 2760 2761 <details class="c-footer__menu-column"> 2762 <summary class="c-footer__heading o-subheading"> 2763 2764Support 2765 </summary> 2766 2767 2768<ul class="footer-block__details-content list-unstyled c-footer__links"><li class="c-footer__menu-item"> 2769 <a 2770 href="/pages/contact-us" 2771 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2772 > 2773 Contact Us 2774 </a> 2775 </li><li class="c-footer__menu-item"> 2776 <a 2777 href="/policies/terms-of-service" 2778 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2779 > 2780 T&C's 2781 </a> 2782 </li><li class="c-footer__menu-item"> 2783 <a 2784 href="/policies/privacy-policy" 2785 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2786 > 2787 Privacy Policy 2788 </a> 2789 </li><li class="c-footer__menu-item"> 2790 <a 2791 href="https://roseskinco.grin.live/" 2792 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2793 > 2794 Collab With Us 2795 </a> 2796 </li><li class="c-footer__menu-item"> 2797 <a 2798 href="/pages/accessibility-statement" 2799 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2800 > 2801 Accessibility Statement 2802 </a> 2803 </li><li class="c-footer__menu-item"> 2804 <a 2805 href="/pages/cookie-preferences" 2806 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2807 > 2808 Cookie preferences 2809 </a> 2810 </li></ul> 2811 </details> 2812 2813 </div><div class="footer-block-group grid__item"><div 2814 class="item-3 footer-block grid__item footer-block--menu link_list" 2815 2816 2817 > 2818 2819 2820 2821 2822 2823 2824 2825 <details class="c-footer__menu-column"> 2826 <summary class="c-footer__heading o-subheading"> 2827 2828Shipping & Returns 2829 </summary> 2830 2831 2832<ul class="footer-block__details-content list-unstyled c-footer__links"><li class="c-footer__menu-item"> 2833 <a 2834 href="/apps/tracktor/track" 2835 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2836 > 2837 Track Order 2838 </a> 2839 </li><li class="c-footer__menu-item"> 2840 <a 2841 href="/pages/shipping-details" 2842 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2843 > 2844 Shipping Details 2845 </a> 2846 </li><li class="c-footer__menu-item"> 2847 <a 2848 href="/pages/satisfaction-guarantee-form" 2849 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2850 > 2851 Product Satisfaction Form 2852 </a> 2853 </li><li class="c-footer__menu-item"> 2854 <a 2855 href="/pages/product-defect-form" 2856 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2857 > 2858 Product Defect Form 2859 </a> 2860 </li><li class="c-footer__menu-item"> 2861 <a 2862 href="https://roseskinco.com/pages/roseskinco-90-day-money-back-guarantee" 2863 class="c-footer__menu-link link link--text list-menu__item list-menu__item--link" 2864 > 2865 90 Day Policy 2866 </a> 2867 </li></ul> 2868 </details> 2869 2870 </div></div><div class="c-footer__address is-mobile"><p>RoseSkinCo Inc.<br/>2093 Philadelphia Pike #3577<br/>Claymont, DE, 19703</p><p>Contact: [email protected]</p><p>Support: [email protected]</p><p>Collabs/PR: [email protected]</p></div></div></div><div
2871 class="c-footer__bottom footer__content-bottom" 2872 2873 > 2874 <div class="bottom-wrapper-group page-width"> 2875 <div class="footer__content-bottom-wrapper "> 2876 <div class="footer__copyright caption"> 2877 <small class="copyright__content c-footer__copyright">© RoseSkinCo 2026</small> 2878 2879 </div> 2880 </div> 2881 </div> 2882 </div> 2883</footer>
2884<script> 2885 document.addEventListener("DOMContentLoaded", function () { 2886 function toggleFooterDetails() { 2887 const detailsElements = document.querySelectorAll(".c-footer__menu-column"); 2888 2889 if (detailsElements.length === 0) return; 2890 2891 detailsElements.forEach((detail) => { 2892 const summary = detail.querySelector("summary"); 2893 if (window.innerWidth > 1199) { 2894 summary.setAttribute("inert", ""); 2895 detail.setAttribute("open", "true"); 2896 } else { 2897 summary.removeAttribute("inert"); 2898 detail.removeAttribute("open"); 2899 } 2900 }); 2901 } 2902 2903 toggleFooterDetails(); 2904 2905 window.addEventListener("resize", toggleFooterDetails); 2906}); 2907 2908</script>
2908 2909 2910</div> 2911<!-- END sections: footer-group --> 2912 2913 2914 </div>
2914<script type="text/javascript"> 2915 window.Asset = "\/\/roseskinco.com\/cdn\/shop\/t\/797\/assets\/layout.theme.js?v=96376"; 2916 2917 window.Customer = null; 2918 2919 window.Language = window.Language || {}; 2920 window.Language.strings = window.Language.strings || {}; 2921 2922 window.Cart = window.Cart || {}; 2923 window.Cart.data = window.Cart.data || {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 2924 2925 window.Currency = window.Currency || {}; 2926 window.Currency.currency = "USD"; 2927 window.Currency.format = "${{ amount_no_decimals }}"; 2928 window.Currency.convertedFormat = null; 2929</script>
vendor: 1 bytes, line 2929
2929
2930<script type="text/javascript" data-language-strings> 2931 var a = function(k,v) {((window.Language=window.Language||{}).strings=window.Language.strings||{})[k]=v;};</script>
vendor: 1 bytes, line 2931
2931
2932<script async type="text/javascript" id="stamped-script-widget" data-api-key="pubkey-dChOv47b2V8KFN853TE6iFi1tbD1z9" 2933 src="https://cdn1.stamped.io/files/widget.min.js"></script>
2933 2934
2934<script src="https://js.afterpay.com/afterpay-1.x.js" id="afterpay-placement-script" data-min="1" data-max="1000" data-locale="en_US" data-modal-id="en_US" data-currency="USD" data-amount="269.95" data-payment-amount-is-bold="true" data-size="sm" data-logo-type="compact-badge" data-intro-text="Make" async></script>
vendor: 1 bytes, line 2934
2934
2935<script src="//roseskinco.com/cdn/shop/t/797/assets/vendor.js?v=49563029207634492961788119852" type="text/javascript"></script>
2935<script src="//roseskinco.com/cdn/shop/t/797/assets/layouts.theme.js?v=20843576160299176961788119681" type="text/javascript"></script>
2935<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"RoseSkinCo.","url":"https://roseskinco.com","logo":"https://roseskinco.com/cdn/shop/files/Updated_Logo_Black_4.png?v=1762061283","sameAs":["https://www.instagram.com/roseskinco/","https://www.facebook.com/roseskinco","https://twitter.com/roseskinco","https://www.pinterest.com/roseskinco/"]}</script>
2935<div id="shopify-section-swatch-theme-editor" class="shopify-section"> 2936 2937<style type="text/css">.s-swatch--rose,.s-swatch--rose-gold 2938 { 2939 background-color: #ed74a3; 2940 color: #ed74a3;background-image: url('//roseskinco.com/cdn/shop/files/[email protected]?v=1658762063'); 2941 background-size: 150%; 2942 background-position: center; 2943 background-repeat: no-repeat;}.s-swatch--rose .o-swatch__inner-color,.s-swatch--rose-gold 2944 .o-swatch__inner-color{}.s-swatch--gold,.s-swatch--white-gold 2945 { 2946 background-color: #ffffff; 2947 color: #ffffff;background-image: url('//roseskinco.com/cdn/shop/files/WhiteColorSwatch_3d44f513-a304-4c3e-ba0e-8c1da1613536_256x@2x.jpg?v=1658771152'); 2948 background-size: 150%; 2949 background-position: center; 2950 background-repeat: no-repeat;}.s-swatch--gold .o-swatch__inner-color,.s-swatch--white-gold 2951 .o-swatch__inner-color{}.s-swatch--pearl-white-gold 2952 { 2953 background-color: ; 2954 color: ;background-image: url('//roseskinco.com/cdn/shop/files/[email protected]?v=1675119062'); 2955 background-size: 150%; 2956 background-position: center; 2957 background-repeat: no-repeat;}.s-swatch--pearl-white-gold 2958 .o-swatch__inner-color{}</style> 2959
2960<script type="text/javascript"> 2961 window.Swatches = window.Swatches || [{ 2962 "name": "Rose Gold", 2963 "color": "#ed74a3", 2964 "handles": ["rose"] 2965 },{ 2966 "name": "White Gold", 2967 "color": "#ffffff", 2968 "handles": ["gold"] 2969 },{ 2970 "name": "Pearl White Gold", 2971 "color": "", 2972 "handles": [] 2973 }]; 2974</script>
2974 2975 2976 2977</div>
2977<script type="application/ld+json"> 2978 { 2979 "@context": "https://schema.org", 2980 "@type": "WebSite", 2981 "name": "RoseSkinCo.", 2982 "url": "https://roseskinco.com", 2983 2984 } 2985</script>
2985 2986 2987 2988
2988<script type="application/ld+json"> 2989 { 2990 "@context": "https://schema.org", 2991 "@type": "BreadcrumbList", 2992 "itemListElement": [{ 2993 "@type": "ListItem", 2994 "position": 1, 2995 "name": "Home", 2996 "item": "https://roseskinco.com" 2997 },{ 2998 "@type": "ListItem", 2999 "position": 2, 3000 "name": "Blog", 3001 "item": "https://roseskinco.com/blogs/news" 3002 }] 3003 } 3004 </script>
3004 3005 3006 3007
3007<script type="text/javascript"> 3008 var _learnq = _learnq || []; 3009 var classname = document.getElementsByClassName("c-product__add-btn o-btn is-atc"); 3010 var addToCart = function() { 3011 _learnq.push(['track', 'Added to Cart', item]); 3012 }; for (var i = 0; i < classname.length; i++) { 3013 classname[i].addEventListener('click', addToCart, false); 3014 } 3015 </script>
3015 3016 3017
3017<script>function myInit(){ StampedFn.init({ apiKey: 'pubkey-dChOv47b2V8KFN853TE6iFi1tbD1z9', storeUrl: '92408' }); }</script>
3017 3018 3019
3019<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
3019 3020 <style> 3021 .stamped-proxy-write img, .stamped-proxy-write-title { 3022 width:auto !important; 3023 display:none; 3024 } 3025 .stamped-proxy-write .form-control .paragraph, .stamped-proxy-write div.description p{ 3026 max-width: 1000px; 3027 margin: auto; 3028 text-align:left; 3029 } 3030 .stamped-proxy-write .form-control .paragraph p, .stamped-proxy-write div.description p{ 3031 margin:15px !important; 3032 } 3033 @media only screen and (min-width: 1027px) { 3034 .stamped-proxy-write div.description p em { 3035 margin-left:15px; 3036 } 3037 } 3038 </style> 3039 3040 3041
3041<script> 3042 document.addEventListener("DOMContentLoaded", function() { 3043 $(document).ready(function(){ 3044 var urlParams = new URLSearchParams(window.location.search); 3045 if (urlParams != 'product=lumi-ipl-hair-removal-handset') { 3046 $( ".stamped-proxy-write img" ).toggle(); 3047 } else { 3048 $("body").append('<style>.stamped-proxy-write div[align="center"] div div div.header:before {content: "Lumi";font-size: 2.875rem;font-weight: 700;line-height: 1.39;margin-top:15px;} .header {margin-top:7em;} @media only screen and (max-width: 749px) {h2.stamped-proxy-write-title {display:none;} .header {margin-top:0em;} }</style>'); 3049 } 3050 }); 3051 }); 3052 </script>
3052 3053 <div id="shopify-block-AeWtjZE1LT2Irb3pva__7079518687644006178" class="shopify-block shopify-app-block">
3053<script> 3054 (function () { 3055 const cartAttributes = {}; 3056 3057 // Helper function to retrieve the UTM from Url 3058 function getUTMFromUrl() { 3059 const url_string = window.location.href; 3060 const url = new URL(url_string); 3061 3062 const utm_id = url.searchParams.get("utm_id"); 3063 const utm_source = url.searchParams.get("utm_source"); 3064 const utm_medium = url.searchParams.get("utm_medium"); 3065 const utm_campaign = url.searchParams.get("utm_campaign"); 3066 const utm_term = url.searchParams.get("utm_term"); 3067 const ref = url.searchParams.get("ref"); 3068 3069 if (!utm_id && !utm_source && !utm_medium && !utm_campaign && !ref) { 3070 return null; 3071 } 3072 3073 let utmParameters = {}; 3074 3075 if (utm_id) { 3076 utmParameters.utm_id = utm_id; 3077 } 3078 if (utm_source) { 3079 utmParameters.utm_source = utm_source; 3080 } 3081 if (utm_medium) { 3082 utmParameters.utm_medium = utm_medium; 3083 } 3084 if (utm_campaign) { 3085 utmParameters.utm_campaign = utm_campaign; 3086 } 3087 if (utm_term) { 3088 utmParameters.utm_term = utm_term; 3089 } 3090 if (ref) { 3091 utmParameters.ref = ref; 3092 } 3093 3094 3095 return Object.keys(utmParameters).length === 0 3096 ? null 3097 : utmParameters; 3098 } 3099 3100 // Helper function to retrieve the UTM from Cookie 3101 function getUTMAttributes() { 3102 const urlUtmParams = getUTMFromUrl(); 3103 3104 if (urlUtmParams) { 3105 return urlUtmParams; 3106 } 3107 3108 // No longer reading from deprecated Shopify cookies 3109 return undefined; 3110 } 3111 3112 function saveUtmParameters() { 3113 const utmParams = getUTMAttributes(); 3114 if (utmParams) { 3115 const cartHasUtmAttributes = Object.keys(cartAttributes).find(attributeKey => attributeKey.startsWith("utm_") || attributeKey === "ref"); 3116 if (cartHasUtmAttributes) { 3117 // Don't call API if it already contains our UTM parameters 3118 return; 3119 } 3120 3121 // Handle both Shopify.routes.root and routes.root_url for better compatibility 3122 var rootUrl = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) 3123 || (window.routes && window.routes.root_url) 3124 || '/'; 3125 3126 var updateCart = fetch(rootUrl + 'cart/update.js', 3127 { 3128 headers: { 3129 'Content-Type': 'application/json', 3130 }, 3131 method: "POST", 3132 body: JSON.stringify({ 3133 attributes: { 3134 ...utmParams 3135 }, 3136 }) 3137 }) 3138 .then(response => response.json()) 3139 .then(data => { 3140 return data 3141 }); 3142 } 3143 } 3144 3145 saveUtmParameters(); 3146 })(); 3147</script>
3147 3148 3149 3150 3151 3152</div><!-- Failed to render app block "17676059084223943535": app block path "shopify://apps/triplewhale/blocks/triple_pixel_snippet/483d496b-3f1a-4609-aea7-8eee3b6b7a2a" does not exist -->
3152<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3152 3153</body> 3154</html>
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.