PageSourceSearch

https://roseskinco.com/blogs/news

html roseskinco.com collected 2026-10-03 21:19:48 UTC 361,419 bytes, 3,154 lines download raw bytes

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&&gt().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    &ndash; 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 &amp; 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="&quot;500x&quot;"
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="&quot;750x&quot;"
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="&quot;1000x&quot;"
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="&quot;500x&quot;"
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="&quot;750x&quot;"
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="&quot;1000x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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="&quot;330x&quot;"
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="&quot;460x&quot;"
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="&quot;460x&quot;"
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">&hellip;</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 &raquo;</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="&quot;320x&quot;"
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="&quot;375x&quot;"
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="&quot;500x&quot;"
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="&quot;750x&quot;"
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="&quot;1100x&quot;"
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="&quot;1650x&quot;"
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="&quot;2000x&quot;"
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="&quot;320x&quot;"
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="&quot;375x&quot;"
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="&quot;500x&quot;"
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&amp;C&#39;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.