1<!doctype html> 2<html class="no-js" lang="en" dir="ltr"> 3 <head> 4 5<!-- Start of Shoplift scripts --> 6<!-- 2025-08-23T20:51:09.2837950Z --> 7<style>.shoplift-hide { opacity: 0 !important; }</style> 8<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
9<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-01-06T22:16:34.8983429Z */var le=Object.defineProperty;var ce=(E,P,_)=>P in E?le(E,P,{enumerable:!0,configurable:!0,writable:!0,value:_}):E[P]=_;var m=(E,P,_)=>ce(E,typeof P!="symbol"?P+"":P,_);(function(){"use strict";var E=document.createElement("style");E.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}`,document.head.appendChild(E);var P=" 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
9hp|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",_=/bot|spider|crawl|http|lighthouse/i,L;function z(){if(L instanceof RegExp)return L;try{L=new RegExp(P,"i")}catch{L=_}return L}function B(c){return!!c&&z().test(c)}class R{constructor(){m(this,"timestamp");this.timestamp=new Date}}class j extends R{constructor(t,i,s){super();m(this,"type");m(this,"testId");m(this,"hypothesisId");this.type=3,this.testId=t,this.hypothesisId=i,this.timestamp=s}}class G extends R{constructor(t){super();m(this,"type");m(this,"path");this.type=4,this.path=t}}class K extends R{constructor(t){super();m(this,"type");m(this,"cart");this.type=5,this.cart=t}}class D extends Error{constructor(){super();m(this,"isBot");this.isBot=!0}}function J(c,e,t){for(const i of e.selectors){const s=c.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}q(c,e,(i,s,r,n,o)=>o(s,r),t)}function O(c,e,t){for(const i of e.selectors)M(c,e.testId,e.hypothesisId,i,t??(()=>{}));q(c,e,M,t??(()=>{}))}function W(c){return c.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function q(c,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(c,e.testId,e.hypothesisId,r,i)}).observe(c.documentElement,{childList:!0,subtree:!0})}function M(c,e,t,i,s){const r=c.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 a of i.actions.sort(se))o=Y(c,i.cssSelector,o,a)}}return r.length>0&&s?(s(e,t),!0):!1}function Y(c,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Z(t,i.scope,i.value);break;case"css":Q(c,e,i.value);break;case"js":X(c,t,i);break;case"copy":return ee(t);case"remove":te(t);break;case"move":ie(t,parseInt(i.value));break}return t}function Z(c,e,t){c.setAttribute(e,t)}function Q(c,e,t){var s;const i=c.createElement("style");i.innerHTML=`${e} { ${t} }`,(s=c.getElementsByTagName("head")[0])==null||s.appendChild(i)}function X(c,e,t){Function("document","element",`"use strict"; ${t.value}`)(c,e)}function ee(c){const e=c.cloneNode(!0);if(!c.parentNode)throw"Can't copy node outside of DOM";return c.parentNode.insertBefore(e,c.nextSibling),e}function te(c){c.remove()}function ie(c,e){if(e===0)return;const t=Array.prototype.slice.call(c.parentElement.children).indexOf(c),i=Math.min(Math.max(t+e,0),c.parentElement.children.length-1);c.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",c)}function se(c,e){return H(c)-H(e)}function H(c){return c.type==="copy"||c.type==="remove"?0:1}var x=(c=>(c[c.Template=0]="Template",c[c.Theme=1]="Theme",c[c.UrlRedirect=2]="UrlRedirect",c[c.Script=3]="Script",c[c.Dom=4]="Dom",c[c.Price=5]="Price",c))(x||{});const re="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",ne="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
97.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 oe(c){let e=c.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,n=>n.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function V(c,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function $(c,e){return e}let N=!1;class ae{constructor(e,t,i,s,r,n,o,a,l,h,g){m(this,"DATA_SL_ATTRIBUTE_P","data-sl-attribute-p");m(this,"DATA_SL_TEST_ID","data-sl-test-id");m(this,"VIEWPORT_TRACK_THRESHOLD",.5);m(this,"temporarySessionKey","Shoplift_Session");m(this,"essentialSessionKey","Shoplift_Essential");m(this,"analyticsSessionKey","Shoplift_Analytics");m(this,"legacySessionKey");m(this,"cssHideClass");m(this,"testConfigs");m(this,"inactiveTestConfigs");m(this,"testsFilteredByAudience");m(this,"sendPageView");m(this,"shopliftDebug");m(this,"gaConfig");m(this,"getCountryTimeout");m(this,"state");m(this,"shopifyAnalyticsId");m(this,"cookie",document.cookie);m(this,"isSyncing",!1);m(this,"isSyncingGA",!1);m(this,"fetch");m(this,"localStorageSet");m(this,"localStorageGet");m(this,"sessionStorageSet",window.sessionStorage.setItem.bind(window.sessionStorage));m(this,"sessionStorageGet",window.sessionStorage.getItem.bind(window.sessionStorage));m(this,"urlParams",new URLSearchParams(window.location.search));m(this,"device");m(this,"logHistory");m(this,"activeViewportObservers",new Map);this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=a,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=h.map(u=>({...u,startAt:new Date(u.startAt),statusHistory:u.statusHistory.map(w=>({...w,createdAt:new Date(w.createdAt)}))})),this.inactiveTestConfigs=g,this.sendPageView=!!r,this.shopliftDebug=n===!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 v=this.getDeviceType();this.device=v!=="tablet"?v:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=h.filter(u=>u.status=="active"),this.getCountryTimeout=l===1000?1e3:l,this.log("State Loaded",JSON.stringify(this.state))}
9async init(){var e;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 i=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",i),this.state.temporary.isMerchant=i,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(),(e=document.querySelector("#sl-preview-bar-hide"))==null||e.remove();return}if(this.state.temporary.previewConfig=void 0,B(navigator.userAgent))return;if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const i=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(s=>s==null?void 0:s.json());this.log(`IP: ${i}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),$)}).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 i=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>i,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),await this.ensureCartAttributesForExistingPriceTests(!1),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(t){if(t instanceof D)return;throw t}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await oe(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===x.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));
9s.variants.forEach(o=>{var a;return o.domSelectors=(a=n[o.id])==null?void 0:a.domSelectors})}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 t=this.state.temporary.previewConfig;t.testTypeCategory===x.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===x.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===x.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===x.Price&&await this.handlePricePreview(t)&&this.initPreviewControls(t)}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(w=>w.id===e.currentVariant),i=(t==null?void 0:t.label)||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const n=document.createElement("div"),o=document.createElement("img");o.src=ne,o.height=24,o.width=14,n.style.padding="0 16px",n.style.lineHeight="100%",n.appendChild(o),r.appendChild(n);const a=document.createElement("div");a.id="shoplift-preview-variant-selector";const l=document.createElement("button");l.id="shoplift-preview-variant-menu-trigger";const h=document.createElement("div");h.className="menu-variant-label",h.style.backgroundColor=this.getVariantColor(i).bg,h.style.color=this.getVariantColor(i).text,h.innerText=i.toUpperCase(),l.appendChild(h);const g=document.createElement("span");if(g.id="shoplift-preview-variant-title",g.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),l.appendChild(g),s.length>1){const w=document.createElement("img");w.src=re,w.width=12,w.height=12,w.style.height="12px",w.style.width="12px",l.appendChild(w);const C=document.createElement("div");C.className="preview-variant-menu";for(const T of e.variants.filter(k=>k.id!==e.currentVariant)){const k=document.createElement("div");k.className="preview-variant-menu--item";const I=document.createElement("div");I.className="menu-variant-label",I.style.backgroundColor=this.getVariantColor(T.label).bg,I.style.color=this.getVariantColor(T.label).text,I.style.flexShrink="0",I.innerText=T.label.toUpperCase(),k.appendChild(I);const f=document.createElement("span");f.innerText=this.getDefaultVariantTitle(T),k.appendChild(f),k.addEventListener("click",()=>{this.pickVariant(T.id)}),C.appendChild(k)}a.appendChild(C),l.addEventListener("click",()=>{C.className!=="preview-variant-menu preview-variant-menu__visible"?C.classList.add("preview-variant-menu__visible"):C.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",T=>{T.target instanceof Element&&!l.contains(T.target)&&C.className==="preview-variant-menu preview-variant-menu__visible"&&C.classList.remove("preview-variant-menu__visible")})}else l.style.pointerEvents="none",h.style.margin="0";a.appendChild(l),r.appendChild(a);const v=document.createElement("div"),u=document.createElement("button");u.id="shoplift-exit-preview-button",u.innerText="Exit",v.appendChild(u),u.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(v),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0).catch(t=>{this.log("Error ensuring cart attributes for price test",t)})}pickVariant(e){var t,i,s,r;if(this.state.temporary.previewConfig){const n=this.state.temporary.previewConfig,o=new URL(window.location.toString());if(n.testTypeCategory===x.UrlRedirect){const a=(t=n.variants.find(l=>l.id===n.currentVariant))==null?void 0:t.redirectUrl;if(o.pathname===a){const l=(i=n.variants.find(h=>h.id===e))==null?void 0:i.redirectUrl;l&&(o.pathname=l)}}if(n.testTypeCategory===x.Template){const a=(s=n.variants.find(l=>l.id===n.currentVariant))==null?void 0:s.pathName;if(a&&o.pathname===a){const l=(r=n.variants.find(h=>h.id===e))==null?void 0:r.pathName;l&&l!==a&&(o.pathname=l)}}n.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(o)}}exitPreview(){var t,i,s,r;const e=new URL(window.location.toString());if(((t=this.state.temporary.previewConfig)==null?void 0:t.testTypeCategory)===x.Template&&e.searchParams.delete("view"),((i=this.state.temporary.previewConfig)==null?void 0:i.testTypeCategory)===x.Script&&e.searchParams.delete("slVariant"),
9((s=this.state.temporary.previewConfig)==null?void 0:s.testTypeCategory)===x.UrlRedirect){const o=this.state.temporary.previewConfig.variants.filter(l=>!l.isControl&&l.redirectUrl!==null).map(l=>l.redirectUrl),a=(r=this.state.temporary.previewConfig.variants.find(l=>l.label==="a"))==null?void 0:r.redirectUrl;o.includes(e.pathname)&&a&&(e.pathname=a)}this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(a=>a.id===t);if(!i)return!1;const s=e.variants.find(a=>a.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);const 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&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){var n;const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=(n=e.variants.find(o=>o.isControl))==null?void 0:n.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(e){const t=e.currentVariant,i=e.variants.find(n=>n.id===t);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(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(O(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),await this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)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(a=>a.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(a=>a.id===s&&this.state.essential.visitorTests.some(l=>l.hypothesisId===a.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,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests);let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];t=t.filter(i=>i.hypotheses.some(n=>n.type==="price")?(i.bayesianRevision??4)<5:!0);try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const o=this.considerRedirect(i);return o&&(this.log("Redirecting for current visitor test"),this.redirect(i)),o}this.log("No active test relation for test page");const s=this.testsForUrl(this.inactiveTestConfigs.filter(o=>this.testIsPaused(o)&&o.hypotheses.some(a=>this.state.essential.visitorTests.some(l=>l.hypothesisId===a.id)))).map(o=>o.id);if(s.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",s),!1;if(this.hasThemeAndOtherTestTypes(this.testsFilteredByAudience)){this.log("Store has both theme and non-theme tests");const o=this.visitorActiveTestType();this.log("Current visitor test type is '%s'",o);let a;switch(o){case"templateOrUrlRedirect":this.log("Filtering to non-theme tests"),a=h=>h!=="theme";break;case"theme":this.log("Filtering to theme tests"),a=h=>h==="theme";break;case null:a=Math.random()>.5?(this.log("Filtering to theme tests"),h=>h==="theme"):(this.log("Filtering to non-theme tests"),h=>h!=="theme");break}const l=t.filter(h=>h.hypotheses.every(g=>!g.isControl||!a(g.type)));this.log(`Blocking visitor from being assigned to filtered test IDs: ["${l.map(h=>h.id).join('", "')}"]`),this.state.essential.visitorTests.push(...l.map(h=>({createdAt:new Date,testId:h.id,hypothesisId:null,isThemeTest:h.hypotheses.some(g=>
9g.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))),t=t.filter(h=>h.hypotheses.some(g=>g.isControl&&a(g.type)))}if(t.length===0)return this.log("No tests found"),!1;const r=t[Math.floor(Math.random()*t.length)],n=this.pickHypothesis(r);if(n){this.log("Adding local visitor to test '%s', hypothesis '%s'",r.id,n.id),this.queueAddVisitorToTest(r.id,n);const o=this.considerRedirect(n);return o&&(this.log("Redirecting for new test"),this.redirect(n)),o}return this.log("No hypothesis found"),!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const r=t.find(l=>i.hypotheses.some(h=>l.id===h.id))??this.pickHypothesis(i);if(!r){this.log("Failed to pick hypothesis for test");continue}const n=i.bayesianRevision??4,o=r.type==="price",a=n>=5;if(o&&a){this.log(`Price test with viewport tracking (v${n}): ${i.id}`);const l=i.hypotheses.flatMap(u=>{var w;return((w=u.domSelectors)==null?void 0:w.map(C=>({...C,testId:i.id})))??[]});if(l.length===0)continue;const h=r.isControl?"control":"variant",g=r.domSelectors??[],v=l;this.log(`Setting up viewport tracking for ${h} (test: ${i.id})`),this.log(`Selectors to apply: ${g.length}`),this.log(`Selectors to track: ${v.length}`),this.applyChangesWithViewport(document,{testId:i.id,hypothesisId:r.id,selectors:g,selectorsForViewportTracking:v},u=>{this.queueAddVisitorToTest(u,r),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()},{threshold:this.VIEWPORT_TRACK_THRESHOLD});continue}if(o&&!a){if(this.log(`Price test without viewport tracking (v${n}): ${i.id}`),!r.domSelectors||r.domSelectors.length===0)continue;O(document,{testId:i.id,hypothesisId:r.id,selectors:r.domSelectors},l=>{this.queueAddVisitorToTest(l,r),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!r.domSelectors||r.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}O(document,{testId:i.id,hypothesisId:r.id,selectors:r.domSelectors},l=>{this.queueAddVisitorToTest(l,r),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.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(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const i=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(i&&i.length>1){const s=i[1];t.pathname=`${s}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=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:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:n}}checkForThemePreview(){var e,t;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),(e=document.querySelector("#sl-preview-bar-hide"))==null||e.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(i=>i.isThemeTest&&i.hypothesisId!=null&&this.getHypothesis(i.hypothesisId)&&i.themeId===themeId)?(this.log("On active theme test, remov
9ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(i=>i.isThemeTest&&i.hypothesisId!=null&&!this.getHypothesis(i.hypothesisId)&&i.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(i=>i.hypotheses.some(s=>s.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(i=>i.hypotheses.some(s=>s.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),(t=document.querySelector("#sl-preview-bar-hide"))==null||t.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.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&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>(s.type==="dom"||s.type==="price")&&s.domSelectors&&s.domSelectors.some(r=>new RegExp(W(r)).test(t.toString()))))}async filterTestsByAudience(e,t,i){const s=[];let r=t.country;!r&&e.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 e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(l=>l.testId===n.id&&l.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const o=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(l=>l.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,o,r))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((n,o)=>n||o.reduce((a,l)=>a&&l(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,n)=>r+n.visitorCount,0);return e.hypotheses.sort((r,n)=>r.isControl?n.isControl?0:-1:n.isControl?1:0).reduce((r,n)=>{if(r!==null)return r;const a=e.hypotheses.reduce((l,h)=>l&&h.visitorCount>20,!0)?n.visitorCount/i-n.trafficPercentage:0;return t<=n.trafficPercentage-a?n:(t-=n.trafficPercentage,null)},null)}typeFromTemplate(){switch(template.type){case"collection-list":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(e){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(e),0),window.setTimeout(()=>void this.syncAllEvents(),2e3)}async syncAllEvents(){const e=async()=>
9{if(this.isSyncing){window.setTimeout(()=>void(async()=>await e())(),500);return}try{this.isSyncing=!0,this.syncGAEvents(),await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){var i,s;if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const r={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:((i=this.state.analytics.visitor)==null?void 0:i.device)??this.device,country:((s=this.state.analytics.visitor)==null?void 0:s.country)??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null).map(o=>new j(o.testId,o.hypothesisId,o.createdAt)).concat(t)};await this.sendEvents(r);const n=await this.getVisitor(this.shopifyAnalyticsId);n!==null&&this.updateLocalVisitor(n);for(const o of this.state.essential.visitorTests.filter(a=>!a.isInvalid&&!a.isSaved))o.isSaved=!0}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(N)return;N=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
9this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(n,o,a){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(e){var i;let t;({visitorTests:t,...this.state.analytics.visitor}=e);for(const s of this.state.essential.visitorTests.filter(r=>!t.some(n=>n.testId===r.testId)))s.isSaved=!0,s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(o=>o.testId===s.testId);r!==-1?(s.isInvalid=!1,s.shouldSendToGa=((i=this.state.essential.visitorTests.at(r))==null?void 0:i.shouldSendToGa)??!1,this.state.essential.visitorTests.splice(r,1,s)):this.state.essential.visitorTests.push(s)}this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}getUTMValue(e){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]===e)return r[1]||null}return null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){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 )|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}function t(){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 )|
9sy(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 e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}async ensureCartAttributesForExistingPriceTests(e){var t;try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const i=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",i.testId);let s="variant";if(i.variants&&i.variants.length>0){const r=i.variants.find(n=>n.id===i.currentVariant);r&&r.isControl&&(s="control")}this.log("Merchant preview - updating hidden inputs:",i.testId,s),this.updatePriceTestHiddenInputs(i.testId,s,!0);return}for(const i of this.state.essential.visitorTests){const s=this.testConfigs.find(n=>n.id===i.testId);if(!s){this.log("Test config not found:",i.testId);continue}const r=s.hypotheses.find(n=>n.id===i.hypothesisId);if(!r||r.type!=="price"){this.log("Skipping non-price hypothesis:",i.hypothesisId);continue}this.log("Found potential price test, validating with server:",i.testId);try{const n=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/price-test/${i.testId}/${(t=this.state.analytics.visitor)==null?void 0:t.id}`});if(!n){this.log("Failed to validate price test with server:",i.testId);continue}if(!n.isActive||!n.isPriceTest||!n.visitorAssigned){this.log("Price test validation failed - Active:",n.isActive,"PriceTest:",n.isPriceTest,"Assigned:",n.visitorAssigned);continue}this.log("Price test validated successfully, updating hidden inputs:",i.testId,n.assignment),this.updatePriceTestHiddenInputs(i.testId,n.assignment,e)}catch(n){this.log("Error validating price test with server:",i.testId,n);const o=r.isControl?"control":"variant";this.updatePriceTestHiddenInputs(i.testId,o,e)}}}catch(i){this.log("Error ensuring cart attributes for existing price tests:",i)}}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=f=>{const p=f.getAttribute("data-sl-pid");if(!p)return!0;if(i&&this.state.temporary.previewConfig){const d=this.state.temporary.previewConfig,y=t==="control"?"a":"b",S=d.variants.find(A=>A.label===y);if(!S)return!1;for(const A of S.domSelectors||[]){const U=A.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(U){const F=U[1];if(this.log(`Extracted ID from selector: ${F}, comparing to: ${p}`),F===p)return this.log("Product ID match found in preview config:",p,"variant:",S.label),!0}else this.log(`Could not extract ID from selector: ${A.cssSelector}`)}return this.log("No product ID match in preview config for:",p,"variant:",y),!1}const b=this.testConfigs.find(d=>d.id===e);if(!b)return this.log("Test config not found for testId:",e),!1;for(const d of b.hypotheses||[])for(const y of d.domSelectors||[]){const S=y.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(S&&S[1]===p)return this.log("Product ID match found:",p,"for test:",e),!0}return this.log("No product ID match for:",p,"in test:",e),!1},n=new Set;let o=!1,a=null;const l=(f,p)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(d=>{if(d instanceof Element&&d.nodeType===Node.ELEMENT_NODE&&d.isConnected&&document.contains(d))try{f.observe(d,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(y){this.log(`Failed to observe element (${p}):`,y)}}),document.body&&document.body.isConnected)try{f.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(d){this.log(`Failed to observe document.body (${p}):`,d)}},h=(f,p,b,d)=>{const y=f.filter(S=>{const A=S.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return A&&A[1]===d});this.log(`Applying ${b} DOM selectors, total: ${f.length}, filtered: ${y.length}`),y.length>0&&O(document,{testId:e,hypothesisId:p,selectors:y})},g=(f,p)=>{this.log(`Applying DOM selector changes for product ID: ${f}`),p.disconnect(),o=!0;try{if(i&&this.state.temporary.previewConfig){const b=t==="control"?"a":"b",d=this.state.temporary.previewConfig.variants.find(y=>y.label===b);if(!(d!=null&&d.domSelectors)){this.log(`No DOM selectors found for preview variant: ${b}`);return}h(d.domSelectors,d.id,"preview config",f)}else{const b=this.testConfigs.find(y=>y.id===e);if(!b){this.log(`No test config found for testId: ${e}`);return}const d=b.hypotheses.find(y=>t==="control"?y.isControl:!y.isControl);if(!(d!=null&&d.domSelectors)){this.log(`No DOM selectors found for assignment: ${t}`);return}h(d.domSelectors,d.id,"live config",f)}}finally{a!==null&&clearTimeout(a),a=window.setTimeout(()=>{o=!1,a=null,l(p,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
9,50)}},v=new MutationObserver(f=>{if(!o)for(const p of f){if(p.type!=="childList"&&p.type!=="characterData")continue;let b=p.target;p.type==="characterData"&&(b=p.target.parentElement||p.target.parentNode);let d=b,y=d.getAttribute("data-sl-attribute-p");for(;!y&&d.parentElement;)d=d.parentElement,y=d.getAttribute("data-sl-attribute-p");if(!y)continue;const S=d.innerHTML||d.textContent||"";let A="";p.type==="characterData"&&p.oldValue!==null&&(A=p.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${y}"`),A&&this.log(`Previous content: "${A}"`),this.log(`Current content: "${S}"`),g(y,v)}});l(v,"initial setup"),n.add(v);const u=new MutationObserver(f=>{f.forEach(p=>{p.addedNodes.forEach(b=>{if(b.nodeType===Node.ELEMENT_NODE){const d=b;C(d);const y=d.matches('input[name="properties[_slpt]"]')?[d]:d.querySelectorAll('input[name="properties[_slpt]"]');y.length>0&&this.log(`MutationObserver found ${y.length} new hidden input(s)`),y.forEach(S=>{const A=S.getAttribute("data-sl-pid");this.log(`MutationObserver checking new input with data-sl-pid="${A}"`),r(S)?(S.value!==s&&(S.value=s,this.log("Updated newly added hidden input:",s)),T(S)):(S.remove(),this.log("Removed newly added non-matching hidden input for product ID:",S.getAttribute("data-sl-pid")))})}})})});n.add(u);const w=new MutationObserver(f=>{f.forEach(p=>{if(p.type==="attributes"&&p.attributeName==="data-sl-pid"){const b=p.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",b.tagName),b.matches('input[name="properties[_slpt]"]')){const d=b,y=p.oldValue,S=d.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${y}" to "${S}" - triggering payment placement updates`),r(d)?(d.value!==s&&(d.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),S&&g(S,v),this.log("Re-running payment placement updates after variant change"),C(document.body)):(d.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",S))}}})});n.add(w);const C=f=>{f.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const p=f.querySelectorAll("shopify-payment-terms");p.length>0&&(this.log(`MutationObserver found ${p.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),f.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const b=f.querySelectorAll("afterpay-placement");b.length>0&&(this.log(`MutationObserver found ${b.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),f.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const d=f.querySelectorAll("square-placement");d.length>0&&(this.log(`MutationObserver found ${d.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),f.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const y=f.querySelectorAll("klarna-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},T=f=>{w.observe(f,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const p=f.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${p}"`)},k=()=>{const f=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${f.length} existing hidden inputs to check`),f.forEach(p=>{const b=p.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${b}"`),r(p)?(p.value=s,this.log("Updated existing hidden input:",s),b&&(this.log("Applying initial DOM selector changes for existing product"),g(b,v)),T(p)):(p.remove(),this.log("Removed non-matching hidden input for product ID:",p.getAttribute("data-sl-pid")))})},I=()=>{document.body?(u.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),k(),C(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(u.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),k(),C(document.body))}):(this.log("Set timeout on observer"),setTimeout(I,10))};I(),window.__shopliftPriceTestObservers=n,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden input
9s")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,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(e,t,s,(n,o)=>{if(i==="afterpay"){const a=(o/100).toFixed(2);n.setAttribute("data-amount",a)}else n.setAttribute("data-amount",o.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,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 a=t==="control"?"a":"b",l=this.state.temporary.previewConfig.variants.find(h=>h.label===a);if(!(l!=null&&l.domSelectors)){this.log(`No variant found for label ${a} in preview config for ${i}`);return}n=l.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${a}`)}else{const a=this.testConfigs.find(h=>h.id===e);if(!a){this.log(`No testConfig found for id: ${e} - early return`);return}const l=a.hypotheses.find(h=>t==="control"?h.isControl:!h.isControl);if(!(l!=null&&l.domSelectors)){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}n=l.domSelectors}const o=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(a=>{let l=null;const h=a.parentElement;if(h&&(l=h.querySelector('input[name="properties[_slpt]"]')),l||(l=a.querySelector('input[name="properties[_slpt]"]')),!l){this.log(`No hidden input found for ${i} element`);return}const g=l.getAttribute("data-sl-pid");if(!g){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const v=n.find(T=>{const k=T.cssSelector.match(o);return k&&k[1]===g});if(!v){this.log(`No matching selector found for productId: ${g} - skipping element`);return}const u=v.actions.find(T=>T.scope==="price");if(!(u!=null&&u.value)){this.log("No price action or value found - skipping element");return}const w=parseFloat(u.value.replace(/[^0-9.]/g,""));if(Number.isNaN(w)){this.log(`Invalid price "${u.value}" for product ${g} - skipping`);return}const C=Math.round(w*100);s(a,C)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){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=t==="control"?"a":"b",o=this.state.temporary.previewConfig.variants.find(a=>a.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(a=>a.id===e);if(!n)return;const o=n.hypotheses.find(a=>t==="control"?a.isControl===!0:a.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 a=s.find(l=>{const h=l.cssSelector.match(r);return h&&h[1]===o});if(a){const l=a.actions.find(h=>h.scope==="price");if(l&&l.value){const h=n.getAttribute("shopify-meta");if(h)try{const g=JSON.parse(h);if(g.variants&&Array.isArray(g.variants)){const v=g.variants.find(u=>{var w;return((w=u.id)==null?void 0:w.toString())===o});if(v){v.full_price=l.value;const u=parseFloat(l.value.replace(/[^0-9.]/g,""));if(v.number_of_payment_terms&&v.number_of_payment_terms>1){const w=u/v.number_of_payment_terms;v.price_per_term=`$${w.toFixed(2)}`}n.setAttribute("shopify-meta",JSON.stringify(g))}}}catch(g){this.log("Error parsing/updating shoplift-meta:",g)}}}})}
9async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),V)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:n}=e,o=new Headers;if(s)for(const l in s)o.append(l,s[l]);(!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 a=await this.fetch(t,{method:i,headers:o,body:r,signal:n});if(!a.ok){if(a.status===204)return null;if(a.status===422){const l=await a.json();if(typeof l<"u"&&l.isBot)throw new D}throw new Error(`Error sending shoplift request ${a.status}`)}return a}queueAddVisitorToTest(e,t){if(!this.state.essential.visitorTests.some(i=>i.testId===e)&&(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0}),t.type==="price")){const i=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,i),this.updatePriceTestHiddenInputs(e,i,!1)}}queueCartUpdate(e){this.queueEvent(new K(e))}queuePageView(e){this.queueEvent(new G(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,V)}catch{}return null}pruneStateAndSave(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId)),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),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 t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.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)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){var o;const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();(o=e.visitor)!=null&&o.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},n=[t,i].filter(a=>a!==null).sort((a,l)=>+l.timestamp-+a.timestamp)[0]??r;return n.initialState||(e.visitor!==null?n.initialState=e.visitor:(n.initialState=s,n.initialState.createdAt=n.timestamp)),n}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,n)=>+n.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,V):null,i=this.loadCookie(this.temporarySessionKey);return t??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.persist
9CookieState(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(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,V)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,V)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){var i;return((i=[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"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|y
9andex\.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|kakao|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\.o
9pera\.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) => 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)}
9,{"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
9akao|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
9andex\.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(s=>s.test(e)))==null?void 0:i.name)??"other"}getShopifyAnalyticsId(){return this.getCookie("_shopify_y")}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,V)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>void(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=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"),t=window.setTimeout(()=>void(async()=>await e())(),1e3);return}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>void(async()=>await e())(),5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!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"}clearThemeBar(e,t,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"),t&&(this.log("Removing theme bar"),n.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},$)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(n=>{const o=document.querySelector(t);if(o){r.disconnect(),i(o);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){this.logHistory.push([`[${new Date().toISOString()}][SL] ${e}`,...t.map(i=>JSON.stringify(i))].join(" ")),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}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
9:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(n=>{n.forEach(o=>{if(o.isIntersecting&&!r.has(o.target)){const a=o.target,l=a.getAttribute(this.DATA_SL_TEST_ID);l&&(e(l,a),s&&r.add(a))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,n=o=>{if(this.state.essential.visitorTests.some(v=>v.testId===o)||this.activeViewportObservers.has(o))return;const a=[];if(r.forEach(v=>{e.querySelectorAll(v.cssSelector).forEach(w=>a.push(w))}),a.length===0)return;let l=!1;const h=()=>{l||(l=!0,i(o),g.disconnect(),this.activeViewportObservers.delete(o))},g=this.createViewportObserver(()=>{h()},{triggerOnce:!0,...s});this.activeViewportObservers.set(o,g),this.log(`Created viewport observer for test ${o}, observing ${a.length} elements`),a.forEach(v=>{v.setAttribute(this.DATA_SL_TEST_ID,String(o)),g.observe(v)}),setTimeout(()=>{l||a.forEach(v=>{const u=v.getBoundingClientRect(),w=(s==null?void 0:s.threshold)??this.VIEWPORT_TRACK_THRESHOLD,C=Math.min(u.bottom,window.innerHeight)-Math.max(u.top,0),T=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&&C>0&&T>0&&C>=u.height*w&&(this.log(`Price element already visible in viewport for test ${o}:`,v),h())})},100)};t.selectors.length>0&&O(e,t,()=>{}),J(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},o=>{n(o)})}debug(){const e=this.debugState();console.log(JSON.stringify(e,$,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new ae("rage-nation-apparel.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},false,1000,[],[]),await window.shopliftInstance.init())})()})(); })("/", { suffix: "", type: "cart" }, "main", 156884762868, false)</script>
9 10<!-- End of Shoplift scripts --><meta charset="utf-8"> 11 <meta 12 name="viewport" 13 content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=5.0" 14 ><title>Your Shopping Cart</title><link rel="canonical" href="https://ragenationapparel.com/cart"><link rel="shortcut icon" href="//ragenationapparel.com/cdn/shop/files/rna-email-logo-225.png?v=1698955059&width=96"> 15 <link rel="apple-touch-icon" href="//ragenationapparel.com/cdn/shop/files/rna-email-logo-225.png?v=1698955059&width=180"><link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 16 <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin> 17 <link rel="preconnect" href="https://fonts.googleapis.com"> 18 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 19 <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"><link 20 href="https://fonts.googleapis.com/css2?family=Oswald:wght@200;300;400;500;600;700&family=Roboto:wght@100;300;400;500;700;900&display=swap" 21 rel="stylesheet" 22 ><link rel="preload" href="//ragenationapparel.com/cdn/fonts/quantico/quantico_n4.6e63eba878761e30c5ffb43a6ee8ab35145a10ed.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_n4.db86542ae5e1596dbdb28c279ae6c2086c4c5bfa.woff2" as="font" type="font/woff2" crossorigin><link href="//ragenationapparel.com/cdn/shop/t/84/assets/theme.css?v=38415184223754213181765066657" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/button-system.css?v=77730596613112753991767855212" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/product-card-badges.css?v=125578033664351669971764915216" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/product-badges-enhanced.css?v=1597696037708164921786404279" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/rn-smooth-scroll-fix.css?v=23832747172088683851764915216" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/rn-variant-modal-fix.css?v=126827926801806671641764915216" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/customer-accounts-concierge-overrides.css?v=17210645486153459921764915216" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/breadcrumbs.css?v=101547040937087164961764915216" rel="stylesheet" type="text/css" media="all" /><link href="//ragenationapparel.com/cdn/shop/t/84/assets/product-card-shimmer.css?v=183561440242683054181764915216" rel="stylesheet" type="text/css" media="all" /><!-- 2025-08-23T20:51:09.2837950Z --> 23<style>.shoplift-hide { opacity: 0 !important; }</style> 24<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
25<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-01-06T22:16:34.8983429Z */var le=Object.defineProperty;var ce=(E,P,_)=>P in E?le(E,P,{enumerable:!0,configurable:!0,writable:!0,value:_}):E[P]=_;var m=(E,P,_)=>ce(E,typeof P!="symbol"?P+"":P,_);(function(){"use strict";var E=document.createElement("style");E.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}`,document.head.appendChild(E);var P=" 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
25hp|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",_=/bot|spider|crawl|http|lighthouse/i,L;function z(){if(L instanceof RegExp)return L;try{L=new RegExp(P,"i")}catch{L=_}return L}function B(c){return!!c&&z().test(c)}class R{constructor(){m(this,"timestamp");this.timestamp=new Date}}class j extends R{constructor(t,i,s){super();m(this,"type");m(this,"testId");m(this,"hypothesisId");this.type=3,this.testId=t,this.hypothesisId=i,this.timestamp=s}}class G extends R{constructor(t){super();m(this,"type");m(this,"path");this.type=4,this.path=t}}class K extends R{constructor(t){super();m(this,"type");m(this,"cart");this.type=5,this.cart=t}}class D extends Error{constructor(){super();m(this,"isBot");this.isBot=!0}}function J(c,e,t){for(const i of e.selectors){const s=c.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}q(c,e,(i,s,r,n,o)=>o(s,r),t)}function O(c,e,t){for(const i of e.selectors)M(c,e.testId,e.hypothesisId,i,t??(()=>{}));q(c,e,M,t??(()=>{}))}function W(c){return c.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function q(c,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(c,e.testId,e.hypothesisId,r,i)}).observe(c.documentElement,{childList:!0,subtree:!0})}function M(c,e,t,i,s){const r=c.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 a of i.actions.sort(se))o=Y(c,i.cssSelector,o,a)}}return r.length>0&&s?(s(e,t),!0):!1}function Y(c,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Z(t,i.scope,i.value);break;case"css":Q(c,e,i.value);break;case"js":X(c,t,i);break;case"copy":return ee(t);case"remove":te(t);break;case"move":ie(t,parseInt(i.value));break}return t}function Z(c,e,t){c.setAttribute(e,t)}function Q(c,e,t){var s;const i=c.createElement("style");i.innerHTML=`${e} { ${t} }`,(s=c.getElementsByTagName("head")[0])==null||s.appendChild(i)}function X(c,e,t){Function("document","element",`"use strict"; ${t.value}`)(c,e)}function ee(c){const e=c.cloneNode(!0);if(!c.parentNode)throw"Can't copy node outside of DOM";return c.parentNode.insertBefore(e,c.nextSibling),e}function te(c){c.remove()}function ie(c,e){if(e===0)return;const t=Array.prototype.slice.call(c.parentElement.children).indexOf(c),i=Math.min(Math.max(t+e,0),c.parentElement.children.length-1);c.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",c)}function se(c,e){return H(c)-H(e)}function H(c){return c.type==="copy"||c.type==="remove"?0:1}var x=(c=>(c[c.Template=0]="Template",c[c.Theme=1]="Theme",c[c.UrlRedirect=2]="UrlRedirect",c[c.Script=3]="Script",c[c.Dom=4]="Dom",c[c.Price=5]="Price",c))(x||{});const re="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",ne="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
257.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 oe(c){let e=c.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,n=>n.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function V(c,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function $(c,e){return e}let N=!1;class ae{constructor(e,t,i,s,r,n,o,a,l,h,g){m(this,"DATA_SL_ATTRIBUTE_P","data-sl-attribute-p");m(this,"DATA_SL_TEST_ID","data-sl-test-id");m(this,"VIEWPORT_TRACK_THRESHOLD",.5);m(this,"temporarySessionKey","Shoplift_Session");m(this,"essentialSessionKey","Shoplift_Essential");m(this,"analyticsSessionKey","Shoplift_Analytics");m(this,"legacySessionKey");m(this,"cssHideClass");m(this,"testConfigs");m(this,"inactiveTestConfigs");m(this,"testsFilteredByAudience");m(this,"sendPageView");m(this,"shopliftDebug");m(this,"gaConfig");m(this,"getCountryTimeout");m(this,"state");m(this,"shopifyAnalyticsId");m(this,"cookie",document.cookie);m(this,"isSyncing",!1);m(this,"isSyncingGA",!1);m(this,"fetch");m(this,"localStorageSet");m(this,"localStorageGet");m(this,"sessionStorageSet",window.sessionStorage.setItem.bind(window.sessionStorage));m(this,"sessionStorageGet",window.sessionStorage.getItem.bind(window.sessionStorage));m(this,"urlParams",new URLSearchParams(window.location.search));m(this,"device");m(this,"logHistory");m(this,"activeViewportObservers",new Map);this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=a,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=h.map(u=>({...u,startAt:new Date(u.startAt),statusHistory:u.statusHistory.map(w=>({...w,createdAt:new Date(w.createdAt)}))})),this.inactiveTestConfigs=g,this.sendPageView=!!r,this.shopliftDebug=n===!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 v=this.getDeviceType();this.device=v!=="tablet"?v:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=h.filter(u=>u.status=="active"),this.getCountryTimeout=l===1000?1e3:l,this.log("State Loaded",JSON.stringify(this.state))}
25async init(){var e;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 i=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",i),this.state.temporary.isMerchant=i,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(),(e=document.querySelector("#sl-preview-bar-hide"))==null||e.remove();return}if(this.state.temporary.previewConfig=void 0,B(navigator.userAgent))return;if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const i=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(s=>s==null?void 0:s.json());this.log(`IP: ${i}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),$)}).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 i=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>i,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),await this.ensureCartAttributesForExistingPriceTests(!1),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(t){if(t instanceof D)return;throw t}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await oe(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===x.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));
25s.variants.forEach(o=>{var a;return o.domSelectors=(a=n[o.id])==null?void 0:a.domSelectors})}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 t=this.state.temporary.previewConfig;t.testTypeCategory===x.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===x.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===x.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===x.Price&&await this.handlePricePreview(t)&&this.initPreviewControls(t)}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(w=>w.id===e.currentVariant),i=(t==null?void 0:t.label)||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const n=document.createElement("div"),o=document.createElement("img");o.src=ne,o.height=24,o.width=14,n.style.padding="0 16px",n.style.lineHeight="100%",n.appendChild(o),r.appendChild(n);const a=document.createElement("div");a.id="shoplift-preview-variant-selector";const l=document.createElement("button");l.id="shoplift-preview-variant-menu-trigger";const h=document.createElement("div");h.className="menu-variant-label",h.style.backgroundColor=this.getVariantColor(i).bg,h.style.color=this.getVariantColor(i).text,h.innerText=i.toUpperCase(),l.appendChild(h);const g=document.createElement("span");if(g.id="shoplift-preview-variant-title",g.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),l.appendChild(g),s.length>1){const w=document.createElement("img");w.src=re,w.width=12,w.height=12,w.style.height="12px",w.style.width="12px",l.appendChild(w);const C=document.createElement("div");C.className="preview-variant-menu";for(const T of e.variants.filter(k=>k.id!==e.currentVariant)){const k=document.createElement("div");k.className="preview-variant-menu--item";const I=document.createElement("div");I.className="menu-variant-label",I.style.backgroundColor=this.getVariantColor(T.label).bg,I.style.color=this.getVariantColor(T.label).text,I.style.flexShrink="0",I.innerText=T.label.toUpperCase(),k.appendChild(I);const f=document.createElement("span");f.innerText=this.getDefaultVariantTitle(T),k.appendChild(f),k.addEventListener("click",()=>{this.pickVariant(T.id)}),C.appendChild(k)}a.appendChild(C),l.addEventListener("click",()=>{C.className!=="preview-variant-menu preview-variant-menu__visible"?C.classList.add("preview-variant-menu__visible"):C.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",T=>{T.target instanceof Element&&!l.contains(T.target)&&C.className==="preview-variant-menu preview-variant-menu__visible"&&C.classList.remove("preview-variant-menu__visible")})}else l.style.pointerEvents="none",h.style.margin="0";a.appendChild(l),r.appendChild(a);const v=document.createElement("div"),u=document.createElement("button");u.id="shoplift-exit-preview-button",u.innerText="Exit",v.appendChild(u),u.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(v),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0).catch(t=>{this.log("Error ensuring cart attributes for price test",t)})}pickVariant(e){var t,i,s,r;if(this.state.temporary.previewConfig){const n=this.state.temporary.previewConfig,o=new URL(window.location.toString());if(n.testTypeCategory===x.UrlRedirect){const a=(t=n.variants.find(l=>l.id===n.currentVariant))==null?void 0:t.redirectUrl;if(o.pathname===a){const l=(i=n.variants.find(h=>h.id===e))==null?void 0:i.redirectUrl;l&&(o.pathname=l)}}if(n.testTypeCategory===x.Template){const a=(s=n.variants.find(l=>l.id===n.currentVariant))==null?void 0:s.pathName;if(a&&o.pathname===a){const l=(r=n.variants.find(h=>h.id===e))==null?void 0:r.pathName;l&&l!==a&&(o.pathname=l)}}n.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(o)}}exitPreview(){var t,i,s,r;const e=new URL(window.location.toString());if(((t=this.state.temporary.previewConfig)==null?void 0:t.testTypeCategory)===x.Template&&e.searchParams.delete("view"),((i=this.state.temporary.previewConfig)==null?void 0:i.testTypeCategory)===x.Script&&e.searchParams.delete("slVariant"),
25((s=this.state.temporary.previewConfig)==null?void 0:s.testTypeCategory)===x.UrlRedirect){const o=this.state.temporary.previewConfig.variants.filter(l=>!l.isControl&&l.redirectUrl!==null).map(l=>l.redirectUrl),a=(r=this.state.temporary.previewConfig.variants.find(l=>l.label==="a"))==null?void 0:r.redirectUrl;o.includes(e.pathname)&&a&&(e.pathname=a)}this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(a=>a.id===t);if(!i)return!1;const s=e.variants.find(a=>a.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);const 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&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){var n;const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=(n=e.variants.find(o=>o.isControl))==null?void 0:n.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(e){const t=e.currentVariant,i=e.variants.find(n=>n.id===t);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(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(O(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),await this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)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(a=>a.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(a=>a.id===s&&this.state.essential.visitorTests.some(l=>l.hypothesisId===a.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,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests);let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];t=t.filter(i=>i.hypotheses.some(n=>n.type==="price")?(i.bayesianRevision??4)<5:!0);try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const o=this.considerRedirect(i);return o&&(this.log("Redirecting for current visitor test"),this.redirect(i)),o}this.log("No active test relation for test page");const s=this.testsForUrl(this.inactiveTestConfigs.filter(o=>this.testIsPaused(o)&&o.hypotheses.some(a=>this.state.essential.visitorTests.some(l=>l.hypothesisId===a.id)))).map(o=>o.id);if(s.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",s),!1;if(this.hasThemeAndOtherTestTypes(this.testsFilteredByAudience)){this.log("Store has both theme and non-theme tests");const o=this.visitorActiveTestType();this.log("Current visitor test type is '%s'",o);let a;switch(o){case"templateOrUrlRedirect":this.log("Filtering to non-theme tests"),a=h=>h!=="theme";break;case"theme":this.log("Filtering to theme tests"),a=h=>h==="theme";break;case null:a=Math.random()>.5?(this.log("Filtering to theme tests"),h=>h==="theme"):(this.log("Filtering to non-theme tests"),h=>h!=="theme");break}const l=t.filter(h=>h.hypotheses.every(g=>!g.isControl||!a(g.type)));this.log(`Blocking visitor from being assigned to filtered test IDs: ["${l.map(h=>h.id).join('", "')}"]`),this.state.essential.visitorTests.push(...l.map(h=>({createdAt:new Date,testId:h.id,hypothesisId:null,isThemeTest:h.hypotheses.some(g=>
25g.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))),t=t.filter(h=>h.hypotheses.some(g=>g.isControl&&a(g.type)))}if(t.length===0)return this.log("No tests found"),!1;const r=t[Math.floor(Math.random()*t.length)],n=this.pickHypothesis(r);if(n){this.log("Adding local visitor to test '%s', hypothesis '%s'",r.id,n.id),this.queueAddVisitorToTest(r.id,n);const o=this.considerRedirect(n);return o&&(this.log("Redirecting for new test"),this.redirect(n)),o}return this.log("No hypothesis found"),!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const r=t.find(l=>i.hypotheses.some(h=>l.id===h.id))??this.pickHypothesis(i);if(!r){this.log("Failed to pick hypothesis for test");continue}const n=i.bayesianRevision??4,o=r.type==="price",a=n>=5;if(o&&a){this.log(`Price test with viewport tracking (v${n}): ${i.id}`);const l=i.hypotheses.flatMap(u=>{var w;return((w=u.domSelectors)==null?void 0:w.map(C=>({...C,testId:i.id})))??[]});if(l.length===0)continue;const h=r.isControl?"control":"variant",g=r.domSelectors??[],v=l;this.log(`Setting up viewport tracking for ${h} (test: ${i.id})`),this.log(`Selectors to apply: ${g.length}`),this.log(`Selectors to track: ${v.length}`),this.applyChangesWithViewport(document,{testId:i.id,hypothesisId:r.id,selectors:g,selectorsForViewportTracking:v},u=>{this.queueAddVisitorToTest(u,r),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()},{threshold:this.VIEWPORT_TRACK_THRESHOLD});continue}if(o&&!a){if(this.log(`Price test without viewport tracking (v${n}): ${i.id}`),!r.domSelectors||r.domSelectors.length===0)continue;O(document,{testId:i.id,hypothesisId:r.id,selectors:r.domSelectors},l=>{this.queueAddVisitorToTest(l,r),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!r.domSelectors||r.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}O(document,{testId:i.id,hypothesisId:r.id,selectors:r.domSelectors},l=>{this.queueAddVisitorToTest(l,r),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.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(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const i=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(i&&i.length>1){const s=i[1];t.pathname=`${s}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=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:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:n}}checkForThemePreview(){var e,t;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),(e=document.querySelector("#sl-preview-bar-hide"))==null||e.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(i=>i.isThemeTest&&i.hypothesisId!=null&&this.getHypothesis(i.hypothesisId)&&i.themeId===themeId)?(this.log("On active theme test, remov
25ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(i=>i.isThemeTest&&i.hypothesisId!=null&&!this.getHypothesis(i.hypothesisId)&&i.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(i=>i.hypotheses.some(s=>s.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(i=>i.hypotheses.some(s=>s.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),(t=document.querySelector("#sl-preview-bar-hide"))==null||t.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.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&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>(s.type==="dom"||s.type==="price")&&s.domSelectors&&s.domSelectors.some(r=>new RegExp(W(r)).test(t.toString()))))}async filterTestsByAudience(e,t,i){const s=[];let r=t.country;!r&&e.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 e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(l=>l.testId===n.id&&l.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const o=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(l=>l.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,o,r))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((n,o)=>n||o.reduce((a,l)=>a&&l(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,n)=>r+n.visitorCount,0);return e.hypotheses.sort((r,n)=>r.isControl?n.isControl?0:-1:n.isControl?1:0).reduce((r,n)=>{if(r!==null)return r;const a=e.hypotheses.reduce((l,h)=>l&&h.visitorCount>20,!0)?n.visitorCount/i-n.trafficPercentage:0;return t<=n.trafficPercentage-a?n:(t-=n.trafficPercentage,null)},null)}typeFromTemplate(){switch(template.type){case"collection-list":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(e){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(e),0),window.setTimeout(()=>void this.syncAllEvents(),2e3)}async syncAllEvents(){const e=async()=>
25{if(this.isSyncing){window.setTimeout(()=>void(async()=>await e())(),500);return}try{this.isSyncing=!0,this.syncGAEvents(),await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){var i,s;if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const r={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:((i=this.state.analytics.visitor)==null?void 0:i.device)??this.device,country:((s=this.state.analytics.visitor)==null?void 0:s.country)??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null).map(o=>new j(o.testId,o.hypothesisId,o.createdAt)).concat(t)};await this.sendEvents(r);const n=await this.getVisitor(this.shopifyAnalyticsId);n!==null&&this.updateLocalVisitor(n);for(const o of this.state.essential.visitorTests.filter(a=>!a.isInvalid&&!a.isSaved))o.isSaved=!0}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(N)return;N=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
25this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(n,o,a){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(e){var i;let t;({visitorTests:t,...this.state.analytics.visitor}=e);for(const s of this.state.essential.visitorTests.filter(r=>!t.some(n=>n.testId===r.testId)))s.isSaved=!0,s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(o=>o.testId===s.testId);r!==-1?(s.isInvalid=!1,s.shouldSendToGa=((i=this.state.essential.visitorTests.at(r))==null?void 0:i.shouldSendToGa)??!1,this.state.essential.visitorTests.splice(r,1,s)):this.state.essential.visitorTests.push(s)}this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}getUTMValue(e){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]===e)return r[1]||null}return null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){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 )|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}function t(){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 )|
25sy(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 e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}async ensureCartAttributesForExistingPriceTests(e){var t;try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const i=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",i.testId);let s="variant";if(i.variants&&i.variants.length>0){const r=i.variants.find(n=>n.id===i.currentVariant);r&&r.isControl&&(s="control")}this.log("Merchant preview - updating hidden inputs:",i.testId,s),this.updatePriceTestHiddenInputs(i.testId,s,!0);return}for(const i of this.state.essential.visitorTests){const s=this.testConfigs.find(n=>n.id===i.testId);if(!s){this.log("Test config not found:",i.testId);continue}const r=s.hypotheses.find(n=>n.id===i.hypothesisId);if(!r||r.type!=="price"){this.log("Skipping non-price hypothesis:",i.hypothesisId);continue}this.log("Found potential price test, validating with server:",i.testId);try{const n=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/price-test/${i.testId}/${(t=this.state.analytics.visitor)==null?void 0:t.id}`});if(!n){this.log("Failed to validate price test with server:",i.testId);continue}if(!n.isActive||!n.isPriceTest||!n.visitorAssigned){this.log("Price test validation failed - Active:",n.isActive,"PriceTest:",n.isPriceTest,"Assigned:",n.visitorAssigned);continue}this.log("Price test validated successfully, updating hidden inputs:",i.testId,n.assignment),this.updatePriceTestHiddenInputs(i.testId,n.assignment,e)}catch(n){this.log("Error validating price test with server:",i.testId,n);const o=r.isControl?"control":"variant";this.updatePriceTestHiddenInputs(i.testId,o,e)}}}catch(i){this.log("Error ensuring cart attributes for existing price tests:",i)}}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=f=>{const p=f.getAttribute("data-sl-pid");if(!p)return!0;if(i&&this.state.temporary.previewConfig){const d=this.state.temporary.previewConfig,y=t==="control"?"a":"b",S=d.variants.find(A=>A.label===y);if(!S)return!1;for(const A of S.domSelectors||[]){const U=A.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(U){const F=U[1];if(this.log(`Extracted ID from selector: ${F}, comparing to: ${p}`),F===p)return this.log("Product ID match found in preview config:",p,"variant:",S.label),!0}else this.log(`Could not extract ID from selector: ${A.cssSelector}`)}return this.log("No product ID match in preview config for:",p,"variant:",y),!1}const b=this.testConfigs.find(d=>d.id===e);if(!b)return this.log("Test config not found for testId:",e),!1;for(const d of b.hypotheses||[])for(const y of d.domSelectors||[]){const S=y.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(S&&S[1]===p)return this.log("Product ID match found:",p,"for test:",e),!0}return this.log("No product ID match for:",p,"in test:",e),!1},n=new Set;let o=!1,a=null;const l=(f,p)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(d=>{if(d instanceof Element&&d.nodeType===Node.ELEMENT_NODE&&d.isConnected&&document.contains(d))try{f.observe(d,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(y){this.log(`Failed to observe element (${p}):`,y)}}),document.body&&document.body.isConnected)try{f.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(d){this.log(`Failed to observe document.body (${p}):`,d)}},h=(f,p,b,d)=>{const y=f.filter(S=>{const A=S.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return A&&A[1]===d});this.log(`Applying ${b} DOM selectors, total: ${f.length}, filtered: ${y.length}`),y.length>0&&O(document,{testId:e,hypothesisId:p,selectors:y})},g=(f,p)=>{this.log(`Applying DOM selector changes for product ID: ${f}`),p.disconnect(),o=!0;try{if(i&&this.state.temporary.previewConfig){const b=t==="control"?"a":"b",d=this.state.temporary.previewConfig.variants.find(y=>y.label===b);if(!(d!=null&&d.domSelectors)){this.log(`No DOM selectors found for preview variant: ${b}`);return}h(d.domSelectors,d.id,"preview config",f)}else{const b=this.testConfigs.find(y=>y.id===e);if(!b){this.log(`No test config found for testId: ${e}`);return}const d=b.hypotheses.find(y=>t==="control"?y.isControl:!y.isControl);if(!(d!=null&&d.domSelectors)){this.log(`No DOM selectors found for assignment: ${t}`);return}h(d.domSelectors,d.id,"live config",f)}}finally{a!==null&&clearTimeout(a),a=window.setTimeout(()=>{o=!1,a=null,l(p,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
25,50)}},v=new MutationObserver(f=>{if(!o)for(const p of f){if(p.type!=="childList"&&p.type!=="characterData")continue;let b=p.target;p.type==="characterData"&&(b=p.target.parentElement||p.target.parentNode);let d=b,y=d.getAttribute("data-sl-attribute-p");for(;!y&&d.parentElement;)d=d.parentElement,y=d.getAttribute("data-sl-attribute-p");if(!y)continue;const S=d.innerHTML||d.textContent||"";let A="";p.type==="characterData"&&p.oldValue!==null&&(A=p.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${y}"`),A&&this.log(`Previous content: "${A}"`),this.log(`Current content: "${S}"`),g(y,v)}});l(v,"initial setup"),n.add(v);const u=new MutationObserver(f=>{f.forEach(p=>{p.addedNodes.forEach(b=>{if(b.nodeType===Node.ELEMENT_NODE){const d=b;C(d);const y=d.matches('input[name="properties[_slpt]"]')?[d]:d.querySelectorAll('input[name="properties[_slpt]"]');y.length>0&&this.log(`MutationObserver found ${y.length} new hidden input(s)`),y.forEach(S=>{const A=S.getAttribute("data-sl-pid");this.log(`MutationObserver checking new input with data-sl-pid="${A}"`),r(S)?(S.value!==s&&(S.value=s,this.log("Updated newly added hidden input:",s)),T(S)):(S.remove(),this.log("Removed newly added non-matching hidden input for product ID:",S.getAttribute("data-sl-pid")))})}})})});n.add(u);const w=new MutationObserver(f=>{f.forEach(p=>{if(p.type==="attributes"&&p.attributeName==="data-sl-pid"){const b=p.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",b.tagName),b.matches('input[name="properties[_slpt]"]')){const d=b,y=p.oldValue,S=d.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${y}" to "${S}" - triggering payment placement updates`),r(d)?(d.value!==s&&(d.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),S&&g(S,v),this.log("Re-running payment placement updates after variant change"),C(document.body)):(d.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",S))}}})});n.add(w);const C=f=>{f.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const p=f.querySelectorAll("shopify-payment-terms");p.length>0&&(this.log(`MutationObserver found ${p.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),f.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const b=f.querySelectorAll("afterpay-placement");b.length>0&&(this.log(`MutationObserver found ${b.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),f.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const d=f.querySelectorAll("square-placement");d.length>0&&(this.log(`MutationObserver found ${d.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),f.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const y=f.querySelectorAll("klarna-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},T=f=>{w.observe(f,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const p=f.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${p}"`)},k=()=>{const f=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${f.length} existing hidden inputs to check`),f.forEach(p=>{const b=p.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${b}"`),r(p)?(p.value=s,this.log("Updated existing hidden input:",s),b&&(this.log("Applying initial DOM selector changes for existing product"),g(b,v)),T(p)):(p.remove(),this.log("Removed non-matching hidden input for product ID:",p.getAttribute("data-sl-pid")))})},I=()=>{document.body?(u.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),k(),C(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(u.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),k(),C(document.body))}):(this.log("Set timeout on observer"),setTimeout(I,10))};I(),window.__shopliftPriceTestObservers=n,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden input
25s")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,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(e,t,s,(n,o)=>{if(i==="afterpay"){const a=(o/100).toFixed(2);n.setAttribute("data-amount",a)}else n.setAttribute("data-amount",o.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,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 a=t==="control"?"a":"b",l=this.state.temporary.previewConfig.variants.find(h=>h.label===a);if(!(l!=null&&l.domSelectors)){this.log(`No variant found for label ${a} in preview config for ${i}`);return}n=l.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${a}`)}else{const a=this.testConfigs.find(h=>h.id===e);if(!a){this.log(`No testConfig found for id: ${e} - early return`);return}const l=a.hypotheses.find(h=>t==="control"?h.isControl:!h.isControl);if(!(l!=null&&l.domSelectors)){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}n=l.domSelectors}const o=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(a=>{let l=null;const h=a.parentElement;if(h&&(l=h.querySelector('input[name="properties[_slpt]"]')),l||(l=a.querySelector('input[name="properties[_slpt]"]')),!l){this.log(`No hidden input found for ${i} element`);return}const g=l.getAttribute("data-sl-pid");if(!g){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const v=n.find(T=>{const k=T.cssSelector.match(o);return k&&k[1]===g});if(!v){this.log(`No matching selector found for productId: ${g} - skipping element`);return}const u=v.actions.find(T=>T.scope==="price");if(!(u!=null&&u.value)){this.log("No price action or value found - skipping element");return}const w=parseFloat(u.value.replace(/[^0-9.]/g,""));if(Number.isNaN(w)){this.log(`Invalid price "${u.value}" for product ${g} - skipping`);return}const C=Math.round(w*100);s(a,C)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){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=t==="control"?"a":"b",o=this.state.temporary.previewConfig.variants.find(a=>a.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(a=>a.id===e);if(!n)return;const o=n.hypotheses.find(a=>t==="control"?a.isControl===!0:a.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 a=s.find(l=>{const h=l.cssSelector.match(r);return h&&h[1]===o});if(a){const l=a.actions.find(h=>h.scope==="price");if(l&&l.value){const h=n.getAttribute("shopify-meta");if(h)try{const g=JSON.parse(h);if(g.variants&&Array.isArray(g.variants)){const v=g.variants.find(u=>{var w;return((w=u.id)==null?void 0:w.toString())===o});if(v){v.full_price=l.value;const u=parseFloat(l.value.replace(/[^0-9.]/g,""));if(v.number_of_payment_terms&&v.number_of_payment_terms>1){const w=u/v.number_of_payment_terms;v.price_per_term=`$${w.toFixed(2)}`}n.setAttribute("shopify-meta",JSON.stringify(g))}}}catch(g){this.log("Error parsing/updating shoplift-meta:",g)}}}})}
25async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),V)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:n}=e,o=new Headers;if(s)for(const l in s)o.append(l,s[l]);(!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 a=await this.fetch(t,{method:i,headers:o,body:r,signal:n});if(!a.ok){if(a.status===204)return null;if(a.status===422){const l=await a.json();if(typeof l<"u"&&l.isBot)throw new D}throw new Error(`Error sending shoplift request ${a.status}`)}return a}queueAddVisitorToTest(e,t){if(!this.state.essential.visitorTests.some(i=>i.testId===e)&&(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0}),t.type==="price")){const i=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,i),this.updatePriceTestHiddenInputs(e,i,!1)}}queueCartUpdate(e){this.queueEvent(new K(e))}queuePageView(e){this.queueEvent(new G(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,V)}catch{}return null}pruneStateAndSave(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId)),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),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 t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.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)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){var o;const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();(o=e.visitor)!=null&&o.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},n=[t,i].filter(a=>a!==null).sort((a,l)=>+l.timestamp-+a.timestamp)[0]??r;return n.initialState||(e.visitor!==null?n.initialState=e.visitor:(n.initialState=s,n.initialState.createdAt=n.timestamp)),n}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,n)=>+n.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,V):null,i=this.loadCookie(this.temporarySessionKey);return t??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.persist
25CookieState(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(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,V)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,V)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){var i;return((i=[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"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|y
25andex\.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|kakao|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\.o
25pera\.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) => 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)}
25,{"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
25akao|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
25andex\.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(s=>s.test(e)))==null?void 0:i.name)??"other"}getShopifyAnalyticsId(){return this.getCookie("_shopify_y")}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,V)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>void(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=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"),t=window.setTimeout(()=>void(async()=>await e())(),1e3);return}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>void(async()=>await e())(),5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!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"}clearThemeBar(e,t,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"),t&&(this.log("Removing theme bar"),n.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},$)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(n=>{const o=document.querySelector(t);if(o){r.disconnect(),i(o);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){this.logHistory.push([`[${new Date().toISOString()}][SL] ${e}`,...t.map(i=>JSON.stringify(i))].join(" ")),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}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
25:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(n=>{n.forEach(o=>{if(o.isIntersecting&&!r.has(o.target)){const a=o.target,l=a.getAttribute(this.DATA_SL_TEST_ID);l&&(e(l,a),s&&r.add(a))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,n=o=>{if(this.state.essential.visitorTests.some(v=>v.testId===o)||this.activeViewportObservers.has(o))return;const a=[];if(r.forEach(v=>{e.querySelectorAll(v.cssSelector).forEach(w=>a.push(w))}),a.length===0)return;let l=!1;const h=()=>{l||(l=!0,i(o),g.disconnect(),this.activeViewportObservers.delete(o))},g=this.createViewportObserver(()=>{h()},{triggerOnce:!0,...s});this.activeViewportObservers.set(o,g),this.log(`Created viewport observer for test ${o}, observing ${a.length} elements`),a.forEach(v=>{v.setAttribute(this.DATA_SL_TEST_ID,String(o)),g.observe(v)}),setTimeout(()=>{l||a.forEach(v=>{const u=v.getBoundingClientRect(),w=(s==null?void 0:s.threshold)??this.VIEWPORT_TRACK_THRESHOLD,C=Math.min(u.bottom,window.innerHeight)-Math.max(u.top,0),T=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&&C>0&&T>0&&C>=u.height*w&&(this.log(`Price element already visible in viewport for test ${o}:`,v),h())})},100)};t.selectors.length>0&&O(e,t,()=>{}),J(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},o=>{n(o)})}debug(){const e=this.debugState();console.log(JSON.stringify(e,$,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new ae("rage-nation-apparel.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},false,1000,[],[]),await window.shopliftInstance.init())})()})(); })("/", { suffix: "", type: "cart" }, "main", 156884762868, false)</script>
25<script 26 src="https://sapi.negate.io/script/uiKX7fw0aWbPX5U/s8T7lA==?shop=rage-nation-apparel.myshopify.com" 27 async 28 ></script>
28<link 29 rel="preload" 30 href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" 31 as="style" 32 onload="this.onload=null;this.rel='stylesheet'" 33 > 34 <noscript> 35 <link 36 rel="stylesheet" 37 href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" 38 integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" 39 crossorigin="anonymous" 40 referrerpolicy="no-referrer" 41 > 42 </noscript><meta property="og:type" content="website"> 43 <meta property="og:title" content="Your Shopping Cart"><meta property="og:image" content="http://ragenationapparel.com/cdn/shop/files/332777414_492124756260057_2156200037044117768_n.jpg?v=1698185742&width=2048"> 44 <meta property="og:image:secure_url" content="https://ragenationapparel.com/cdn/shop/files/332777414_492124756260057_2156200037044117768_n.jpg?v=1698185742&width=2048"> 45 <meta property="og:image:width" content="2048"> 46 <meta property="og:image:height" content="2048"><meta property="og:url" content="https://ragenationapparel.com/cart"> 47<meta property="og:site_name" content="Rage Nation Apparel"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Your Shopping Cart"> 48 <meta name="twitter:description" content="Your Shopping Cart"><meta name="twitter:image" content="https://ragenationapparel.com/cdn/shop/files/332777414_492124756260057_2156200037044117768_n.jpg?crop=center&height=1200&v=1698185742&width=1200"> 49 <meta name="twitter:image:alt" content=""> 50 51 52
52<script type="application/ld+json"> 53 { 54 "@context": "https://schema.org", 55 "@type": "BreadcrumbList", 56 "itemListElement": [{ 57 "@type": "ListItem", 58 "position": 1, 59 "name": "Home", 60 "item": "https://ragenationapparel.com" 61 }] 62 } 63 </script>
63 64 65<style> 66 /* Typography (heading) */ 67 @font-face { 68 font-family: Quantico; 69 font-weight: 400; 70 font-style: normal; 71 font-display: fallback; 72 src: url("//ragenationapparel.com/cdn/fonts/quantico/quantico_n4.6e63eba878761e30c5ffb43a6ee8ab35145a10ed.woff2") format("woff2"), 73 url("//ragenationapparel.com/cdn/fonts/quantico/quantico_n4.18f9145bdfea61e6ca380f89dbf77ed98e14f33a.woff") format("woff"); 74} 75 76@font-face { 77 font-family: Quantico; 78 font-weight: 400; 79 font-style: italic; 80 font-display: fallback; 81 src: url("//ragenationapparel.com/cdn/fonts/quantico/quantico_i4.9999813cd9117a070aa986273b20e58909fa5556.woff2") format("woff2"), 82 url("//ragenationapparel.com/cdn/fonts/quantico/quantico_i4.2227ffda153f29b47feaad911dc24627bf44dd0f.woff") format("woff"); 83} 84 85/* Typography (body) */ 86 @font-face { 87 font-family: "Instrument Sans"; 88 font-weight: 400; 89 font-style: normal; 90 font-display: fallback; 91 src: url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_n4.db86542ae5e1596dbdb28c279ae6c2086c4c5bfa.woff2") format("woff2"), 92 url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_n4.510f1b081e58d08c30978f465518799851ef6d8b.woff") format("woff"); 93} 94 95@font-face { 96 font-family: "Instrument Sans"; 97 font-weight: 400; 98 font-style: italic; 99 font-display: fallback; 100 src: url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_i4.028d3c3cd8d085648c808ceb20cd2fd1eb3560e5.woff2") format("woff2"), 101 url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_i4.7e90d82df8dee29a99237cd19cc529d2206706a2.woff") format("woff"); 102} 103 104@font-face { 105 font-family: "Instrument Sans"; 106 font-weight: 700; 107 font-style: normal; 108 font-display: fallback; 109 src: url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_n7.e4ad9032e203f9a0977786c356573ced65a7419a.woff2") format("woff2"), 110 url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_n7.b9e40f166fb7639074ba34738101a9d2990bb41a.woff") format("woff"); 111} 112 113@font-face { 114 font-family: "Instrument Sans"; 115 font-weight: 700; 116 font-style: italic; 117 font-display: fallback; 118 src: url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_i7.d6063bb5d8f9cbf96eace9e8801697c54f363c6a.woff2") format("woff2"), 119 url("//ragenationapparel.com/cdn/fonts/instrument_sans/instrumentsans_i7.ce33afe63f8198a3ac4261b826b560103542cd36.woff") format("woff"); 120} 121 122:root { 123 /* Container */ 124 --container-max-width: 100%; 125 --container-xxs-max-width: 27.5rem; /* 440px */ 126 --container-xs-max-width: 42.5rem; /* 680px */ 127 --container-sm-max-width: 61.25rem; /* 980px */ 128 --container-md-max-width: 71.875rem; /* 1150px */ 129 --container-lg-max-width: 78.75rem; /* 1260px */ 130 --container-xl-max-width: 85rem; /* 1360px */ 131 --container-gutter: 1.25rem; 132 133 --section-with-border-vertical-spacing: 2.5rem; 134 --section-with-border-vertical-spacing-tight:2.5rem; 135 --section-without-border-vertical-spacing:3.75rem; 136 --section-without-border-vertical-spacing-tight:3.75rem; 137 138 --section-stack-gap:3rem; 139 --section-stack-gap-tight: 2.25rem; 140 141 /* Form settings */ 142 --form-gap: 1.25rem; /* Gap between fieldset and submit button */ 143 --fieldset-gap: 1rem; /* Gap between each form input within a fieldset */ 144 --form-control-gap: 0.625rem; /* Gap between input and label (ignored for floating label) */ 145 --checkbox-control-gap: 0.75rem; /* Horizontal gap between checkbox and its associated label */ 146 --input-padding-block: 0.65rem; /* Vertical padding for input, textarea and native select */ 147 --input-padding-inline: 0.8rem; /* Horizontal padding for input, textarea and native select */ 148 --checkbox-size: 0.875rem; /* Size (width and height) for checkbox */ 149 150 /* Other sizes */ 151 --sticky-area-height: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-height, 0px)); 152 153 /* RTL support */ 154 --transform-logical-flip: 1; 155 --transform-origin-start: left; 156 --transform-origin-end: right; 157 158 /** 159 * --------------------------------------------------------------------- 160 * TYPOGRAPHY 161 * --------------------------------------------------------------------- 162 */ 163 164 /* Font properties */ 165 --heading-font-family: Quantico, sans-serif;
166 --heading-font-weight: 400; 167 --heading-font-style: normal; 168 --heading-text-transform: uppercase; 169 --heading-letter-spacing: 0.13em; 170 --text-font-family: "Instrument Sans", sans-serif; 171 --text-font-weight: 400; 172 --text-font-style: normal; 173 --text-letter-spacing: 0.0em; 174 --button-font: var(--heading-font-style) var(--heading-font-weight) var(--text-sm) / 1.65 var(--heading-font-family); 175 --button-text-transform: uppercase; 176 --button-letter-spacing: 0.18em; 177 178 /** 179 * --------------------------------------------------------------------- 180 * BUTTON SYSTEM - Extended Variant Tokens 181 * --------------------------------------------------------------------- 182 */ 183 184 /* Primary Variant (default CTA) */ 185 --btn-primary-bg: var(--button-background-primary); 186 --btn-primary-text: var(--button-text-primary); 187 --btn-primary-border: var(--button-background-primary); 188 189 /* Secondary Variant (supporting actions) */ 190 --btn-secondary-bg: var(--background-secondary); 191 --btn-secondary-text: var(--text-primary); 192 --btn-secondary-border: var(--border-color); 193 194 /* Tertiary Variant (minimal styling) */ 195 --btn-tertiary-bg: transparent; 196 --btn-tertiary-text: var(--text-primary); 197 --btn-tertiary-border: transparent; 198 199 /* Destructive Variant (danger/delete) */ 200 --btn-destructive-bg: var(--error-text); 201 --btn-destructive-text: 255 255 255; 202 --btn-destructive-border: var(--error-text); 203 204 /* Success Variant (positive confirmation) */ 205 --btn-success-bg: var(--success-text); 206 --btn-success-text: 255 255 255; 207 --btn-success-border: var(--success-text); 208 209 /* Warning Variant (caution) */ 210 --btn-warning-bg: var(--warning-text); 211 --btn-warning-text: 0 0 0 / 0.85; 212 --btn-warning-border: var(--warning-text); 213 214 /* Glass Variant (matches header aesthetic) */ 215 --btn-glass-blur: 12px; 216 --btn-glass-tint: var(--background-primary); 217 --btn-glass-tint-opacity: 0.7; 218 --btn-glass-border: 1px solid rgb(255 255 255 / 0.18); 219 --btn-glass-shadow: 0 4px 24px rgb(0 0 0 / 0.12); 220 221 /* Size Scale Tokens */ 222 --btn-size-xs-padding-y: 0.4rem; 223 --btn-size-xs-padding-x: 0.875rem; 224 --btn-size-xs-font: var(--text-xs); 225 226 --btn-size-s-padding-y: 0.5rem; 227 --btn-size-s-padding-x: 0.75rem; 228 --btn-size-s-font: var(--text-sm); 229 230 --btn-size-m-padding-y: 0.65rem; 231 --btn-size-m-padding-x: 1.75rem; 232 --btn-size-m-font: var(--text-sm); 233 234 --btn-size-l-padding-y: 0.875rem; 235 --btn-size-l-padding-x: 2.25rem; 236 --btn-size-l-font: var(--text-base); 237 238 --btn-size-xl-padding-y: 1.125rem; 239 --btn-size-xl-padding-x: 3rem; 240 --btn-size-xl-font: var(--text-lg); 241 242 /* Animation Tokens */ 243 --btn-anim-lift-distance: -2px; 244 --btn-anim-lift-duration: 0.2s; 245 --btn-anim-lift-easing: cubic-bezier(0.4, 0, 0.2, 1); 246 --btn-anim-press-scale: 0.97; 247 --btn-anim-press-duration: 0.1s; 248 249 /* Font sizes */--text-heading-size-factor: 1.1; 250 --text-h1: max(0.6875rem, clamp(1.375rem, 1.146341463414634rem + 0.975609756097561vw, 2rem) * var(--text-heading-size-factor)); 251 --text-h2: max(0.6875rem, clamp(1.25rem, 1.0670731707317074rem + 0.7804878048780488vw, 1.75rem) * var(--text-heading-size-factor)); 252 --text-h3: max(0.6875rem, clamp(1.125rem, 1.0335365853658536rem + 0.3902439024390244vw, 1.375rem) * var(--text-heading-size-factor)); 253 --text-h4: max(0.6875rem, clamp(1rem, 0.9542682926829268rem + 0.1951219512195122vw, 1.125rem) * var(--text-heading-size-factor)); 254 --text-h5: calc(0.875rem * var(--text-heading-size-factor)); 255 --text-h6: calc(0.75rem * var(--text-heading-size-factor)); 256 257 --text-xs: 0.6875rem; 258 --text-sm: 0.75rem; 259 --text-base: 0.8125rem; 260 --text-lg: 0.9375rem; 261 --text-xl: 1.0625rem; 262 263 /** 264 * --------------------------------------------------------------------- 265 * COLORS 266 * --------------------------------------------------------------------- 267 */ 268 269 /* Color settings (pre-calculated above) */ 270 --accent: 226 175 0; 271 --text-primary: 234 234 234; 272 --background-primary: 0 0 0; 273 --background-secondary: 97 97 97; 274 --border-color: 35 35 35; 275 --page-overlay: 0 0 0 / 0.4; 276 277 /* Button colors */ 278 --button-background-primary: 226 175 0; 279 --button-text-primary: 0 0 0; 280 281 /* Status colors */ 282 --success-background: 212 227 203; 283 --success-text: 48 122 7; 284 --warning-background: 253 241 224; 285 --warning-text: 237 138 0; 286 --error-background: 243 204 204; 287 --error-text: 203 43 43; 288 289 /* Product colors */ 290 --on-sale-text: 227 44 43; 291 --on-sale-badge-background: 227 44 43; 292 --on-sale-badge-text: 255 255 255; 293 --sold-out-badge-background: 239 239 239; 294 --sold-out-badge-text: 0 0 0 / 0.65; 295 --custom-badge-background: 28 28 28; 296 --custom-badge-text: 255 255 255; 297 --star-color: 255 255 255; 298 299 /* Header colors */ 300 --header-background: 255 255 255; 301 --header-text: 236 236 236; 302 --header-border-color: 252 252 252; 303 304 /* Footer colors */ 305 --footer-background: 242 240 239; 306 --footer-text: 28 28 28; 307 --footer-border-color: 210 208 207; 308 309 /* Modal colors */ 310 --modal-background: 242 240 239; 311 --modal-text: 28 28 28; 312 --modal-border-color: 210 208 207; 313 314 /* Drawer colors (reuse the same as modal) */ 315 --drawer-background: 242 240 239; 316 --drawer-text: 28 28 28; 317 --drawer-border-color: 210 208 207; 318 319 /* Popover background (uses the primary background) */ 320 --popover-background: 97 97 97; 321 --popover-text: 234 234 234; 322 --popover-border-color: 35 35 35; 323 324 /* Rounded variables (used for border radius) */ 325 --rounded-full: 9999px; 326 --button-border-radius: 0.375rem; 327 --input-border-radius: 0.375rem; 328 329 /* Box shadow */ 330 --shadow-sm: 0 2px 8px rgb(0 0 0 / 0.05); 331 --shadow: 0 5px 15px rgb(0 0 0 / 0.05); 332 --shadow-md: 0 5px 30px rgb(0 0 0 / 0.05); 333 --shadow-block: px px px rgb(var(--text-primary) / 0.0); 334 335 /** 336 * --------------------------------------------------------------------- 337 * OTHER 338 * --------------------------------------------------------------------- 339 */ 340 341 --checkmark-svg-url: url(//ragenationapparel.com/cdn/shop/t/84/assets/checkmark.svg.liquid?v=135446304197898335061764915216); 342 --cursor-zoom-in-svg-url: url(//ragenationapparel.com/cdn/shop/t/84/assets/cursor-zoom-in.svg.liquid?v=136250466470202546141764915216); 343 } 344 345 [dir="rtl"]:root { 346 /* RTL support */ 347 --transform-logical-flip: -1; 348 --transform-origin-start: right;
349 --transform-origin-end: left; 350 } 351 352 @media screen and (min-width: 700px) { 353 :root { 354 /* Typography (font size) */ 355 --text-xs: 0.6875rem; 356 --text-sm: 0.75rem; 357 --text-base: 0.8125rem; 358 --text-lg: 0.9375rem; 359 --text-xl: 1.1875rem; 360 361 /* Spacing settings */ 362 --container-gutter: 2rem; 363 } 364 } 365 366 @media screen and (min-width: 1000px) { 367 :root { 368 /* Spacing settings */ 369 --container-gutter: 3rem; 370 371 --section-with-border-vertical-spacing: 4rem; 372 --section-with-border-vertical-spacing-tight: 4rem; 373 --section-without-border-vertical-spacing: 6rem; 374 --section-without-border-vertical-spacing-tight: 6rem; 375 376 --section-stack-gap:3rem; 377 --section-stack-gap-tight:3rem; 378 } 379 } 380</style> 381<style id="variant-modal-theme-styles"> 382 quick-buy-modal { 383 --variant-modal-scrim: rgba(11, 11, 11, 0.7); 384 --variant-modal-scrim-blur: 13px; 385 --variant-modal-surface: #f2f0ef; 386 --variant-modal-surface-radius: 8px; 387 --variant-modal-heading-color: #1c1c1c; 388 --variant-modal-body-color: #1c1c1c; 389 --variant-modal-option-background: #1c1c1c; 390 --variant-modal-option-border: #333333; 391 --variant-modal-option-text: #1c1c1c; 392 --variant-modal-option-selected-background: #e2af00; 393 --variant-modal-option-selected-text: #000000; 394 --variant-modal-button-background: #e2af00; 395 --variant-modal-button-text: #000000; 396 --variant-modal-button-border: #e2af00; 397 398 --variant-modal-title-size: 18px; 399 --variant-modal-price-size: 16px; 400 --variant-modal-option-label-size: 14px; 401 --variant-modal-option-value-size: 14px; 402 --variant-modal-button-size: 16px; 403 --variant-modal-content-gap: 48px; 404 --variant-modal-section-gap: 24px; 405 --variant-modal-option-gap: 16px; 406 --variant-modal-padding: 32px; 407 } 408 409 @media screen and (max-width: 699px) { 410 quick-buy-modal { 411 --variant-modal-title-size: 16px; 412 --variant-modal-price-size: 14px; 413 --variant-modal-option-label-size: 13px; 414 --variant-modal-option-value-size: 13px; 415 --variant-modal-button-size: 15px; 416 --variant-modal-image-title-gap: 8px; 417 --variant-modal-title-price-gap: 8px; 418 --variant-modal-section-gap: 8px; 419 --variant-modal-option-gap: 16px; 420 --variant-modal-padding: 12px; 421 } 422 } 423 424 quick-buy-modal::part(scrim) { 425 background-color: var(--variant-modal-scrim); 426 backdrop-filter: blur(var(--variant-modal-scrim-blur)); 427 } 428 429 quick-buy-modal::part(content) { 430 background-color: var(--variant-modal-surface); 431 color: var(--variant-modal-body-color); 432 border-radius: var(--variant-modal-surface-radius); 433 box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35); 434 } 435 436 quick-buy-modal .quick-buy-modal__content, 437 quick-buy-modal .quick-buy-modal__content p, 438 quick-buy-modal .quick-buy-modal__content span, 439 quick-buy-modal .quick-buy-modal__content .text-subdued { 440 color: var(--variant-modal-body-color) !important; 441 } 442 443 quick-buy-modal .quick-buy-modal__content .product-title, 444 quick-buy-modal .quick-buy-modal__content .h5, 445 quick-buy-modal .quick-buy-modal__content legend { 446 color: var(--variant-modal-heading-color) !important; 447 } 448 449 quick-buy-modal .quick-buy-modal__view-more { 450 color: var(--variant-modal-heading-color) !important; 451 } 452 453 quick-buy-modal .variant-picker__option-info legend { 454 color: var(--variant-modal-heading-color) !important; 455 } 456 457 quick-buy-modal .variant-picker__option-values button[role='option'], 458 quick-buy-modal .variant-picker__option-values .block-swatch, 459 quick-buy-modal .variant-picker__option-values .media-swatch { 460 background-color: var(--variant-modal-option-background); 461 color: var(--variant-modal-option-text); 462 border: 1px solid var(--variant-modal-option-border); 463 transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease; 464 } 465 466 quick-buy-modal .variant-picker__option-values button[role='option'][aria-selected='true'], 467 quick-buy-modal .variant-picker__option-values .block-swatch.is-selected, 468 quick-buy-modal input:checked + .block-swatch, 469 quick-buy-modal .variant-picker__option-values .media-swatch.is-selected, 470 quick-buy-modal input:checked + .media-swatch { 471 background-color: var(--variant-modal-option-selected-background); 472 color: var(--variant-modal-option-selected-text); 473 border-color: var(--variant-modal-option-selected-background); 474 } 475 476 quick-buy-modal .variant-picker__option-values .block-swatch.is-selected span, 477 quick-buy-modal input:checked + .block-swatch span { 478 color: var(--variant-modal-option-selected-text); 479 } 480 481 quick-buy-modal .variant-picker__option-values .color-swatch { 482 box-shadow: 0 0 0 2px var(--variant-modal-option-border); 483 } 484 485 quick-buy-modal .variant-picker__option-values .color-swatch.is-selected, 486 quick-buy-modal input:checked + .color-swatch { 487 box-shadow: 0 0 0 2px var(--variant-modal-option-selected-background); 488 } 489 490 /* ============================================ 491 ENHANCED VARIANT OPTION STYLING 492 ============================================ */ 493 494 quick-buy-modal .variant-picker__option-values button[role='option'], 495 quick-buy-modal .variant-picker__option-values .block-swatch, 496 quick-buy-modal .variant-picker__option-values .media-swatch { 497 border-radius: 6px !important; 498 padding: 0.625rem 1rem !important; 499 min-height: 44px !important; 500 font-weight: 600 !important; 501 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important; 502 } 503 504 quick-buy-modal .variant-picker__option-values button[role='option'][aria-selected='true'], 505 quick-buy-modal .variant-picker__option-values .block-swatch.is-selected, 506 quick-buy-modal input:checked + .block-swatch, 507 quick-buy-modal .variant-picker__option-values .media-swatch.is-selected, 508 quick-buy-modal input:checked + .media-swatch { 509 box-shadow: 0 0 0 2px rgba(226, 175, 0, 0.2) !important; 510 transform: scale(1.02); 511 } 512 513 quick-buy-modal .variant-picker__option-values button[role='option']:hover, 514 quick-buy-modal .variant-picker__option-values .block-swatch:hover, 515 quick-buy-modal .variant-picker__option-values .media-swatch:hover { 516 transform: translateY(-2px); 517 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); 518 } 519 520 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] .button, 521 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] button[type='submit'] { 522 background-color: var(--variant-modal-button-background); 523 color: var(--variant-modal-button-text); 524 border: 1px solid var(--variant-modal-button-border); 525 } 526 527 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] .button:hover, 528 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] button[type='submit']:hover { 529 filter: brightness(1.1); 530 box-shadow: 0 0 20px rgba(226, 175, 0, 0.5), 0 0 40px rgba(226, 175, 0, 0.3); 531 transform: translateY(-1px); 532 } 533 534 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] .button:active, 535 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] button[type='submit']:active { 536 transform: translateY(0); 537 box-shadow: 0 0 15px rgba(226, 175, 0, 0.4); 538 } 539 540 /* ============================================ 541 RAGE NATION TYPOGRAPHY ENHANCEMENTS 542 ============================================ */ 543 544 /* Quantico font for headings and buttons */ 545 quick-buy-modal .product-title, 546 quick-buy-modal .quick-buy-modal__mobile-info .product-title, 547 quick-buy-modal .variant-picker__option-info legend { 548 font-family: var(--heading-font-family), Quantico, sans-serif !important; 549 letter-spacing: 0.05em !important; 550 font-weight: 600 !important; 551 } 552 553 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] button, 554 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] .button { 555 font-family: var(--heading-font-family), Quantico, sans-serif !important; 556 letter-spacing: 0.1em !important; 557 font-weight: 600 !important; 558 text-transform: uppercase !important; 559 border-radius: 6px !important; 560 transition: all 0.3s ease !important; 561 position: relative; 562 overflow: hidden; 563 } 564 565 quick-buy-modal .shopify-payment-button__button--unbranded { 566 background-color: var(--variant-modal-button-background); 567 color: var(--variant-modal-button-text); 568 border: 1px solid var(--variant-modal-button-border); 569 } 570 571 /* Typography Controls */ 572 quick-buy-modal .product-title, 573 quick-buy-modal .quick-buy-modal__mobile-info .product-title { 574 font-size: var(--variant-modal-title-size) !important; 575 } 576 577 quick-buy-modal .price, 578 quick-buy-modal .price-list, 579 quick-buy-modal .quick-buy-modal__mobile-info .price { 580 font-size: var(--variant-modal-price-size) !important; 581 } 582 583 quick-buy-modal .variant-picker__option-info legend, 584 quick-buy-modal .variant-picker fieldset legend { 585 font-size: var(--variant-modal-option-label-size) !important; 586 } 587 588 quick-buy-modal .variant-picker__option-values button, 589 quick-buy-modal .variant-picker__option-values .block-swatch, 590 quick-buy-modal .variant-picker__option-values .media-swatch, 591 quick-buy-modal .variant-picker__option-values label { 592 font-size: var(--variant-modal-option-value-size) !important; 593 } 594 595 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] button, 596 quick-buy-modal .product-info__block-item[data-block-type='buy-buttons'] .button { 597 font-size: var(--variant-modal-button-size) !important; 598 } 599 600 /* Spacing Controls - Desktop */ 601 @media screen and (min-width: 700px) { 602 quick-buy-modal::part(content) { 603 padding: var(--variant-modal-padding) !important; 604 } 605 606 quick-buy-modal .quick-buy-modal__content { 607 gap: var(--variant-modal-content-gap) !important; 608 } 609 610 quick-buy-modal .product-info__block-item { 611 margin-top: var(--variant-modal-section-gap) !important; 612 } 613 614 quick-buy-modal .product-info__block-item:first-child { 615 margin-top: 0 !important; 616 } 617 618 quick-buy-modal .variant-picker__option { 619 margin-top: var(--variant-modal-option-gap) !important; 620 } 621 622 quick-buy-modal .variant-picker__option:first-child { 623 margin-top: 0 !important; 624 } 625 } 626 627 /* Spacing Controls - Mobile */ 628 @media screen and (max-width: 699px) { 629 quick-buy-modal::part(content) { 630 padding: var(--variant-modal-padding) !important; 631 } 632 633 quick-buy-modal .quick-buy-modal__mobile-info { 634 margin-top: var(--variant-modal-image-title-gap) !important; 635 gap: var(--variant-modal-title-price-gap) !important; 636 } 637 638 quick-buy-modal .quick-buy-modal__content { 639 gap: var(--variant-modal-section-gap) !important; 640 } 641 642 quick-buy-modal .product-info__block-item { 643 margin-top: var(--variant-modal-option-gap) !important; 644 } 645 646 quick-buy-modal .product-info__block-item:first-child { 647 margin-top: 0 !important; 648 } 649 650 quick-buy-modal .variant-picker__option { 651 margin-top: var(--variant-modal-option-gap) !important; 652 } 653 654 quick-buy-modal .variant-picker__option:first-child { 655 margin-top: 0 !important; 656 } 657 } 658 659 /* ============================================
660 WAIR CONTRAST FIX (Light Background) 661 ============================================ */ 662 663 quick-buy-modal .wair-size-rec-wrapper, 664 quick-buy-modal .wair-size-rec-wrapper *, 665 quick-buy-modal [class*="wair"], 666 quick-buy-modal [id*="wair"], 667 quick-buy-modal [data-wair] { 668 color: #1c1c1c !important; 669 } 670 671 quick-buy-modal .wair-size-rec-wrapper button, 672 quick-buy-modal [class*="wair"] button, 673 quick-buy-modal [id*="wair"] button { 674 background-color: #1c1c1c !important; 675 color: #ffffff !important; 676 border: 1px solid #1c1c1c !important; 677 } 678 679 quick-buy-modal .wair-size-rec-wrapper a, 680 quick-buy-modal [class*="wair"] a, 681 quick-buy-modal [id*="wair"] a { 682 color: #1c1c1c !important; 683 } 684 685 686 /* ============================================ 687 SHOPIFY PAYMENT BUTTON CONTRAST FIX 688 ============================================ */ 689 690 quick-buy-modal .shopify-payment-button__button--branded, 691 quick-buy-modal [data-shopify-buttoncontainer] button, 692 quick-buy-modal [data-testid="Checkout-button"], 693 quick-buy-modal .shopify-payment-button__button { 694 filter: brightness(0.9) contrast(1.1) !important; 695 } 696 697 698 /* ============================================ 699 FROSTED GLASS EFFECT FOR PRODUCT INFO 700 ============================================ */ 701 702 /* Create ONE cohesive dark frosted glass overlay */ 703 quick-buy-modal .quick-buy-modal__mobile-info, 704 quick-buy-modal .quick-buy-modal__info-wrapper, 705 quick-buy-modal .quick-buy-modal__mobile-info + div { 706 background: rgba(0, 0, 0, 0.45) !important; 707 backdrop-filter: blur(20px) saturate(180%) !important; 708 -webkit-backdrop-filter: blur(20px) saturate(180%) !important; 709 border-radius: 12px !important; 710 padding: 1.25rem !important; 711 margin-top: 0.75rem !important; 712 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2), 713 inset 0 1px 0 rgba(255, 255, 255, 0.1) !important; 714 } 715 716 /* Connect title section to variant section - COMPLETELY SEAMLESS */ 717 quick-buy-modal .quick-buy-modal__info-wrapper { 718 margin-top: 0 !important; 719 margin-block-start: 0 !important; 720 border-top-left-radius: 0 !important; 721 border-top-right-radius: 0 !important; 722 padding-top: 1rem !important; 723 border-top: none !important; 724 } 725 726 /* Title section - rounded top only, no bottom padding gap */ 727 quick-buy-modal .quick-buy-modal__mobile-info { 728 border-bottom-left-radius: 0 !important; 729 border-bottom-right-radius: 0 !important; 730 padding-bottom: 0.75rem !important; 731 margin-bottom: 0 !important; 732 } 733 734 /* Ensure all text inside is white for contrast on dark glass */ 735 quick-buy-modal .quick-buy-modal__mobile-info *, 736 quick-buy-modal .quick-buy-modal__info-wrapper *, 737 quick-buy-modal .quick-buy-modal__mobile-info + div * { 738 color: #ffffff !important; 739 } 740 741 /* Product title - BOLD and highly visible */ 742 quick-buy-modal .quick-buy-modal__mobile-info .product-title, 743 quick-buy-modal .quick-buy-modal__info-wrapper .product-title, 744 quick-buy-modal .quick-buy-modal__mobile-info + div .product-title { 745 color: #ffffff !important; 746 text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8) !important; 747 font-weight: 700 !important; 748 font-family: var(--heading-font-family), Quantico, sans-serif !important; 749 letter-spacing: 0.05em !important; 750 } 751 752 /* Mobile: Even more prominent title */ 753 @media screen and (max-width: 699px) { 754 quick-buy-modal .quick-buy-modal__mobile-info .product-title { 755 font-size: 20px !important; 756 line-height: 1.3 !important; 757 } 758 } 759 760 /* Price - match title styling with Quantico font */ 761 quick-buy-modal .quick-buy-modal__mobile-info .price, 762 quick-buy-modal .quick-buy-modal__info-wrapper .price, 763 quick-buy-modal .quick-buy-modal__mobile-info + div .price { 764 color: #ffffff !important; 765 text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6) !important; 766 font-family: var(--heading-font-family), Quantico, sans-serif !important; 767 font-weight: 600 !important; 768 letter-spacing: 0.05em !important; 769 font-size: 18px !important; 770 } 771 772 /* Variant option labels - white */ 773 quick-buy-modal .quick-buy-modal__info-wrapper legend, 774 quick-buy-modal .quick-buy-modal__mobile-info + div legend, 775 quick-buy-modal .variant-picker__option-info legend { 776 color: #ffffff !important; 777 } 778 779 /* Keep buttons with their original gold styling but ensure visibility */ 780 quick-buy-modal .quick-buy-modal__info-wrapper .button, 781 quick-buy-modal .quick-buy-modal__mobile-info + div .button { 782 box-shadow: 0 4px 16px rgba(226, 175, 0, 0.3) !important; 783 } 784 785 /* Variant option buttons on glass background */ 786 quick-buy-modal .quick-buy-modal__info-wrapper .variant-picker__option-values button, 787 quick-buy-modal .quick-buy-modal__mobile-info + div .variant-picker__option-values button, 788 quick-buy-modal .variant-picker__option-values button, 789 quick-buy-modal .variant-picker__option-values .block-swatch { 790 background-color: rgba(255, 255, 255, 0.15) !important; 791 border: 1px solid rgba(255, 255, 255, 0.2) !important; 792 color: #ffffff !important; 793 backdrop-filter: blur(10px) !important; 794 } 795 796 /* Force all text inside variant buttons to be white */ 797 quick-buy-modal .variant-picker__option-values button *, 798 quick-buy-modal .variant-picker__option-values .block-swatch *, 799 quick-buy-modal .variant-picker__option-values button span, 800 quick-buy-modal .variant-picker__option-values .block-swatch span { 801 color: #ffffff !important; 802 } 803 804 quick-buy-modal .quick-buy-modal__info-wrapper .variant-picker__option-values button[aria-selected='true'], 805 quick-buy-modal .quick-buy-modal__mobile-info + div .variant-picker__option-values button[aria-selected='true'], 806 quick-buy-modal .variant-picker__option-values button[aria-selected='true'], 807 quick-buy-modal .variant-picker__option-values .block-swatch.is-selected { 808 background-color: rgba(226, 175, 0, 0.9) !important; 809 border-color: #e2af00 !important; 810 color: #000000 !important; 811 box-shadow: 0 0 0 2px rgba(226, 175, 0, 0.3) !important; 812 } 813 814 /* Selected variant button text should be black */ 815 quick-buy-modal .variant-picker__option-values button[aria-selected='true'] *, 816 quick-buy-modal .variant-picker__option-values button[aria-selected='true'] span, 817 quick-buy-modal .variant-picker__option-values .block-swatch.is-selected *, 818 quick-buy-modal .variant-picker__option-values .block-swatch.is-selected span { 819 color: #000000 !important; 820 } 821 822 /* WAIR on frosted glass - ensure text is visible */ 823 quick-buy-modal .quick-buy-modal__info-wrapper .wair-size-rec-wrapper, 824 quick-buy-modal .quick-buy-modal__mobile-info + div .wair-size-rec-wrapper, 825 quick-buy-modal .quick-buy-modal__info-wrapper .wair-size-rec-wrapper *, 826 quick-buy-modal .quick-buy-modal__mobile-info + div .wair-size-rec-wrapper * { 827 color: #ffffff !important; 828 } 829 830 quick-buy-modal .quick-buy-modal__info-wrapper .wair-size-rec-wrapper button, 831 quick-buy-modal .quick-buy-modal__mobile-info + div .wair-size-rec-wrapper button { 832 background-color: rgba(255, 255, 255, 0.2) !important; 833 border: 1px solid rgba(255, 255, 255, 0.3) !important; 834 color: #ffffff !important; 835 backdrop-filter: blur(10px) !important; 836 } 837 838 quick-buy-modal .quick-buy-modal__info-wrapper .wair-size-rec-wrapper button:hover, 839 quick-buy-modal .quick-buy-modal__mobile-info + div .wair-size-rec-wrapper button:hover { 840 background-color: rgba(255, 255, 255, 0.3) !important; 841 } 842 843 /* Force WAIR text elements to be white */ 844 quick-buy-modal .wair-size-rec-wrapper span, 845 quick-buy-modal .wair-size-rec-wrapper div, 846 quick-buy-modal .wair-size-rec-wrapper p, 847 quick-buy-modal [class*="wair"] span, 848 quick-buy-modal [class*="wair"] div, 849 quick-buy-modal [id*="wair"] span { 850 color: #ffffff !important; 851 } 852 853 854 /* ============================================ 855 HIDE PRODUCT PHOTO COUNT PILL 856 ============================================ */ 857 quick-buy-modal .product-gallery__media-count, 858 quick-buy-modal .media-count, 859 quick-buy-modal [class*="media-count"], 860 quick-buy-modal [class*="photo-count"] { 861 display: none !important; 862 visibility: hidden !important; 863 } 864</style>
865<script> 866 document.documentElement.classList.replace('no-js', 'js'); 867 868 // This allows to expose several variables to the global scope, to be used in scripts 869 window.themeVariables = { 870 settings: { 871 showPageTransition: false, 872 pageType: "cart", 873 moneyFormat: "\u003cspan class=money\u003e$ {{amount}}\u003c\/span\u003e", 874 moneyWithCurrencyFormat: "\u003cspan class=money\u003e$ {{amount}} USD\u003c\/span\u003e", 875 currencyCodeEnabled: false, 876 cartType: "drawer" 877 }, 878 879 strings: { 880 addToCartButton: "Add to cart", 881 soldOutButton: "Sold out", 882 preOrderButton: "Pre-Order Now", 883 unavailableButton: "Unavailable", 884 addedToCart: "Added to your cart!", 885 closeGallery: "Close gallery", 886 zoomGallery: "Zoom picture", 887 errorGallery: "Image cannot be loaded", 888 soldOutBadge: "Sold out", 889 discountBadge: "Save @@", 890 sku: "SKU:", 891 shippingEstimatorNoResults: "Sorry, we do not ship to your address.", 892 shippingEstimatorOneResult: "There is one shipping rate for your address:", 893 shippingEstimatorMultipleResults: "There are several shipping rates for your address:", 894 shippingEstimatorError: "One or more error occurred while retrieving shipping rates:", 895 next: "Next", 896 previous: "Previous" 897 }, 898 899 mediaQueries: { 900 'sm': 'screen and (min-width: 700px)', 901 'md': 'screen and (min-width: 1000px)', 902 'lg': 'screen and (min-width: 1150px)', 903 'xl': 'screen and (min-width: 1400px)', 904 '2xl': 'screen and (min-width: 1600px)', 905 'sm-max': 'screen and (max-width: 699px)', 906 'md-max': 'screen and (max-width: 999px)', 907 'lg-max': 'screen and (max-width: 1149px)', 908 'xl-max': 'screen and (max-width: 1399px)', 909 '2xl-max': 'screen and (max-width: 1599px)', 910 'motion-safe': '(prefers-reduced-motion: no-preference)', 911 'motion-reduce': '(prefers-reduced-motion: reduce)', 912 'supports-hover': 'screen and (pointer: fine)', 913 'supports-touch': 'screen and (hover: none)' 914 } 915 };</script>
915<script async src="//ragenationapparel.com/cdn/shop/t/84/assets/es-module-shims.min.js?v=41244696521020306371764915216"></script>
915 916 917
917<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 917
917
918<script type="importmap">{ 919 "imports": { 920 "vendor": "//ragenationapparel.com/cdn/shop/t/84/assets/vendor.min.js?v=114730757745344854631764915216", 921 "theme": "//ragenationapparel.com/cdn/shop/t/84/assets/theme.js?v=184349715117166174911765066486", 922 "photoswipe": "//ragenationapparel.com/cdn/shop/t/84/assets/photoswipe.min.js?v=30761459775438637251764915216" 923 } 924 } 925 </script>
925 926 927
927<script type="module" src="//ragenationapparel.com/cdn/shop/t/84/assets/vendor.min.js?v=114730757745344854631764915216"></script>
927 928
928<script type="module" src="//ragenationapparel.com/cdn/shop/t/84/assets/theme.js?v=184349715117166174911765066486"></script>
928 929
929<script src="//ragenationapparel.com/cdn/shop/t/84/assets/product-card.js?v=28588513189672654031767860838" defer></script>
929 930
930<script src="//ragenationapparel.com/cdn/shop/t/84/assets/rn-quick-view.js?v=70849527596967677081778911069" defer></script>
930 931
931<script src="//ragenationapparel.com/cdn/shop/t/84/assets/rn-modular-blocks.js?v=111497162506504743051770800208" defer></script>
931 932
932<script src="//ragenationapparel.com/cdn/shop/t/84/assets/rn-smooth-scroll-fix.js?v=52411830305253769561770808518" defer></script>
932<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
932<meta name="google-site-verification" content="q2D35Qvqlt8O_qqAOSHiyTK48qZXx7Jv9rlPszWBmOg"> 933<meta name="google-site-verification" content="q2D35Qvqlt8O_qqAOSHiyTK48qZXx7Jv9rlPszWBmOg"> 934<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/11852902/digital_wallets/dialog"> 935<meta id="in-context-paypal-metadata" data-shop-id="11852902" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 936<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://ragenationapparel.com/cart"> 937<link rel="alternate" hreflang="en" href="https://ragenationapparel.com/cart"> 938<link rel="alternate" hreflang="en-CA" href="https://ragenationapparel.com/en-ca/cart">
939<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=8487156"></script>
939 940<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
941<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=8487156&shop_id=11852902" crossorigin="anonymous"></script>
vendor: 1 bytes, line 941
941
942<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":11852902,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/11852902","merchantName":"Rage Nation Apparel","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"Rage Nation Apparel","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 942
942
943<script id="shopify-features" type="application/json">{"accessToken":"cf18bd454bd187a3a0ffed8015f46b1b","betas":["rich-media-storefront-analytics"],"domain":"ragenationapparel.com","predictiveSearch":true,"shopId":11852902,"locale":"en"}</script>
vendor: 1 bytes, line 943
943
944<script>var Shopify = Shopify || {}; 945Shopify.shop = "rage-nation-apparel.myshopify.com"; 946Shopify.locale = "en"; 947Shopify.currency = {"active":"USD","rate":"1.0"}; 948Shopify.country = "US"; 949Shopify.theme = {"name":"Anime LP - RNA Optimized: NEW DATTI THEME_003","id":156884762868,"schema_name":"Prestige","schema_version":"7.3.6","theme_store_id":855,"role":"main"}; 950Shopify.theme.handle = "null"; 951Shopify.theme.style = {"id":null,"handle":null}; 952Shopify.cdnHost = "ragenationapparel.com/cdn"; 953Shopify.routes = Shopify.routes || {}; 954Shopify.routes.root = "/"; 955Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 956Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 957Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 958Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 958
958
959<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 959
959
960<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 960
960
961<script> 962 window.ShopifyPay = window.ShopifyPay || {}; 963 window.ShopifyPay.apiHost = "shop.app\/pay"; 964 window.ShopifyPay.redirectState = null; 965</script>
vendor: 1 bytes, line 965
965
966<script> 967 window.Shopify = window.Shopify || {}; 968 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 969 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 970 window.Shopify.SignInWithShop.eligible = true; 971</script>
vendor: 1 bytes, line 971
971
972<script id="shop-js-analytics" type="application/json">{"pageType":"cart"}</script>
vendor: 1 bytes, line 972
972
973<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 973
973
974<script type="module"> 975 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 976 977 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 978 979</script>
vendor: 1 bytes, line 979
979
980<script> 981 window.Shopify = window.Shopify || {}; 982 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 983 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"]}; 984</script>
vendor: 1 bytes, line 984
984
985<script>(function() { 986 var isLoaded = false; 987 function asyncLoad() { 988 if (isLoaded) return; 989 isLoaded = true; 990 var urls = ["\/\/tag.marinsm.com\/serve\/5cbc26536e0e39e23b000020.js?shop=rage-nation-apparel.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=W7vPpz\u0026shop=rage-nation-apparel.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=W93Jgz\u0026shop=rage-nation-apparel.myshopify.com","https:\/\/intg.snapchat.com\/shopify\/shopify-scevent-init.js?id=443a76e0-667c-449f-911a-4c289d162c26\u0026shop=rage-nation-apparel.myshopify.com","https:\/\/customer-first-focus.b-cdn.net\/cffOrderifyLoader_min.js?shop=rage-nation-apparel.myshopify.com","https:\/\/cdn.attn.tv\/ragenationapparel\/dtag.js?shop=rage-nation-apparel.myshopify.com","https:\/\/cdn.nfcube.com\/instafeed-f60ccde747803049c6797a53dbb60147.js?shop=rage-nation-apparel.myshopify.com"]; 991 for (var i = 0; i < urls.length; i++) { 992 var s = document.createElement('script'); 993 s.type = 'text/javascript'; 994 s.async = true; 995 s.src = urls[i]; 996 var x = document.getElementsByTagName('script')[0]; 997 x.parentNode.insertBefore(s, x); 998 } 999 }; 1000 if(window.attachEvent) { 1001 window.attachEvent('onload', asyncLoad); 1002 } else { 1003 window.addEventListener('load', asyncLoad, false); 1004 } 1005})();</script>
vendor: 1 bytes, line 1005
1005
1006<script id="__st">var __st={"a":11852902,"offset":-25200,"reqid":"e56ec514-ba7c-4235-8686-6c27673fa2aa-1791510630","pageurl":"ragenationapparel.com\/cart","u":"44d577770733","p":"cart"};</script>
vendor: 1 bytes, line 1006
1006
1007<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1007
1007
1008<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(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){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 1008
1008
1009<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//ragenationapparel.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1009
1009
1010<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 = "//ragenationapparel.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>
1010<script crossorigin="anonymous" defer="defer" src="//ragenationapparel.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 1010
1010
1011<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 1011
1011
1012<script> 1013 window.Shopify = window.Shopify || {}; 1014 window.Shopify.MCP = window.Shopify.MCP || {}; 1015 window.Shopify.MCP.enabled = true; 1016 window.Shopify.MCP.shop = "rage-nation-apparel.myshopify.com"; 1017 window.Shopify.MCP.mcpEndpoint = "https:\/\/ragenationapparel.com\/api\/mcp"; 1018 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?\"\nSet policy_types to also get the store's written policies (full text and URL).\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."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 1019</script>
vendor: 1 bytes, line 1019
1019
1020<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("\/\/ragenationapparel.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 1021</script>
vendor: 1 bytes, line 1021
1021
1022<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://ragenationapparel.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 1023</script>
vendor: 1 bytes, line 1023
1023
1024<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 1025 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); 1026</script>
vendor: 1 bytes, line 1026
1026
1027<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})}})); 1028</script>
vendor: 1 bytes, line 1028
1028
1029<script id='scb4127' type='text/javascript' async='' src='https://ragenationapparel.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
1029<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://ragenationapparel.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 1030<style id="shopify-accelerated-checkout-cart"> 1031 #shopify-buyer-consent { 1032 margin-top: 1em; 1033 display: inline-block; 1034 width: 100%; 1035} 1036 1037#shopify-buyer-consent.hidden { 1038 display: none; 1039} 1040 1041#shopify-subscription-policy-button { 1042 background: none; 1043 border: none; 1044 padding: 0; 1045 text-decoration: underline; 1046 font-size: inherit; 1047 cursor: pointer; 1048} 1049 1050#shopify-subscription-policy-button::before { 1051 box-shadow: none; 1052} 1053 1054 </style> 1055
1056<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
vendor: 1 bytes, line 1056
1056
1057<script> 1058 jdgm = window.jdgm || {}; 1059 jdgm.SHOP_DOMAIN = 'rage-nation-apparel.myshopify.com'; 1060 jdgm.PLATFORM = 'shopify'; 1061 jdgm.PUBLIC_TOKEN = 'Bns5UR7zvJnDbhHpcnaH-GcA9FA'; 1062 </script>
1062 1063
1063<script data-cfasync='false' type='text/javascript' async src='https://cdnwidget.judge.me/widget_preloader.js'></script>
1063<link href="//ragenationapparel.com/cdn/shop/t/84/assets/supercart-overrides.css?v=27273283921295665521764915216" rel="stylesheet" type="text/css" media="all" /> 1064 <link href="//ragenationapparel.com/cdn/shop/t/84/assets/jdgm-overrides.css?v=176274341581428756821765164255" rel="stylesheet" type="text/css" media="all" />
1065<script> 1066 (function (h, o, t, j, a, r) { 1067 h.hj = 1068 h.hj || 1069 function () { 1070 (h.hj.q = h.hj.q || []).push(arguments); 1071 }; 1072 h._hjSettings = { hjid: 3678051, hjsv: 6 }; 1073 a = o.getElementsByTagName('head')[0]; 1074 r = o.createElement('script'); 1075 r.async = 1; 1076 r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; 1077 a.appendChild(r); 1078 })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv='); 1079 </script>
1079<template id="sc_checkout_buttons"><div class="dynamic-checkout__content" id="dynamic-checkout-cart" data-shopify="dynamic-checkout-cart"> <shopify-accelerated-checkout-cart wallet-configs="[{"supports_subs":true,"supports_def_opts":false,"name":"shop_pay","wallet_params":{"shopId":11852902,"merchantName":"Rage Nation Apparel","personalized":true}},{"supports_subs":false,"supports_def_opts":false,"name":"amazon_pay","wallet_params":{"checkoutLanguage":"en_US","ledgerCurrency":"USD","placement":"Cart","sandbox":false,"merchantId":"A32G1KHF3KJI97","productType":"PayAndShip","design":"C0002"}},{"supports_subs":true,"supports_def_opts":false,"name":"paypal","wallet_params":{"shopId":11852902,"countryCode":"US","merchantName":"Rage Nation Apparel","phoneRequired":false,"companyRequired":false,"shippingType":"shipping","shopifyPaymentsEnabled":true,"hasManagedSellingPlanState":false,"requiresBillingAgreement":false,"gatewayType":"CONNECTED","merchantId":"4HHQWY7W74NYJ","sdkUrl":"https://www.paypal.com/sdk/js?components=buttons\u0026commit=false\u0026currency=USD\u0026locale=en_US\u0026client-id=AexZEtAxk09Ncgj6FSWFFyGKbxxAZ_LTyJ2DPdJWl1YUlecinmc5AfIaRF2qYjWlusWahlzz6SVkY5Ci\u0026merchant-id=4HHQWY7W74NYJ\u0026intent=authorize","serviceableCountryCodes":["AC","AD","AE","AF","AG","AI","AL","AM","AO","AR","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MK","ML","MM","MN","MO","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PS","PT","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"]}}]" access-token="cf18bd454bd187a3a0ffed8015f46b1b" buyer-country="US" buyer-locale="en" buyer-currency="USD" shop-id="11852902" cart-id="2590b7f925f071f5a2892215da11d633" enabled-flags="["1172c16a","a1d1f9a1","f5afabb3","370070f3"]" > <div class="wallet-button-wrapper"> <ul class='wallet-cart-grid wallet-cart-grid--skeleton' role="list" data-shopify-buttoncontainer="true"> <li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li><li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li><li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li> </ul> </div> </shopify-accelerated-checkout-cart> </div></template><div id="shopify-section-rn-quick-view-settings" class="shopify-section rn-quick-view-settings-section"><style> 1080 :root { 1081 /* Quick View - Colors */ 1082 --rn-qv-bg: #0a0a0a; 1083 --rn-qv-bg-secondary: #111111; 1084 --rn-qv-text-primary: #ffffff; 1085 --rn-qv-text-secondary: #a0a0a0; 1086 --rn-qv-text-muted: #666666; 1087 --rn-qv-accent: #e2af00; 1088 --rn-qv-accent-hover: #f5c518; 1089 --rn-qv-border: #ffffff14; 1090 --rn-qv-overlay: linear-gradient(180deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) 100%); 1091 1092 /* Quick View - Desktop Sizing */ 1093 --rn-qv-max-width: 960px; 1094 --rn-qv-border-radius: 16px; 1095 --rn-qv-padding: 32px; 1096 1097 /* Quick View - Desktop Typography */ 1098 --rn-qv-title-size: 24px; 1099 --rn-qv-price-size: 22px; 1100 1101 /* Quick View - Button */ 1102 --rn-qv-button-height: 52px; 1103 --rn-qv-button-font-size: 13px; 1104 --rn-qv-button-letter-spacing: 2px; 1105 } 1106 1107 /* Mobile overrides */ 1108 @media screen and (max-width: 768px) { 1109 :root { 1110 --rn-qv-padding: 20px; 1111 --rn-qv-title-size: 18px; 1112 --rn-qv-price-size: 20px; 1113 --rn-qv-button-height: 48px; 1114 } 1115 } 1116 1117 /* Apply custom typography sizes */ 1118 .rn-quick-view__title { 1119 font-size: var(--rn-qv-title-size); 1120 } 1121 1122 .rn-quick-view__price { 1123 font-size: var(--rn-qv-price-size); 1124 } 1125 1126 .rn-quick-view__add-btn { 1127 height: var(--rn-qv-button-height); 1128 font-size: var(--rn-qv-button-font-size); 1129 letter-spacing: var(--rn-qv-button-letter-spacing); 1130 } 1131</style> 1132 1133 1134</div> 1135 <!-- BEGIN app block: shopify://apps/attentive/blocks/attn-tag/8df62c72-8fe4-407e-a5b3-72132be30a0d -->
1135<script type="text/javascript" src="https://sfcev.ragenationapparel.com/providers/atLabel/load" onerror=" var fallbackScript = document.createElement('script'); fallbackScript.src = 'https://cdn.attn.tv/ragenationapparel/dtag.js'; document.head.appendChild(fallbackScript);" data-source="loaded?source=app-embed" defer="defer"></script>
1135 1136 1137 1138<!-- END app block --><!-- BEGIN app block: shopify://apps/froonze-loyalty-wishlist/blocks/customer_account_page/3c495b68-652c-468d-a0ef-5bad6935d104 --><!-- BEGIN app snippet: main_color_variables --> 1139 1140 1141 1142 1143 1144<style> 1145 :root { 1146 --frcp-primaryColor: #000000; 1147 --frcp-btnTextColor: #c9c9c9; 1148 --frcp-backgroundColor: #000000; 1149 --frcp-textColor: #a5a5a5; 1150 --frcp-hoverOpacity: 0.7; 1151 } 1152</style> 1153<!-- END app snippet --> 1154
1155<script> 1156 window.frcp ||= {} 1157 frcp.customerPage ||= {} 1158 frcp.customerPage.enabled = true 1159 frcp.customerPage.path = "\/cart" 1160 frcp.customerPage.accountPage = "customer-dashboard" 1161 frcp.customerId = null 1162</script>
1162 1163 1164 1165
1165<script> 1166 frcp.customerPage.settings = Object({"customer_page_navigation":[{"type":"custom_page","page_id":"e9d8367ad6c4b45c","page_url":"/customer-dashboard","page_type":"shopify","page_title":"Customer Dashboard","customer_tags":[]},{"type":"wishlist","default":true},{"type":"profile"},{"type":"orders"},{"type":"addresses"},{"type":"recently_viewed"},{"type":"custom_page","page_id":"0bbb8700404c8391","page_url":"/returns","page_type":"shopify","page_title":"Returns","customer_tags":[]},{"type":"change_password"},{"type":"loyalty"}],"customer_page_enable_email_edit":null,"wishlist_social_share":{"enabled":false,"facebook":true,"twitter":true,"whatsapp":true},"wishlist_keep_item_after_add_to_cart":false,"wishlist_open_product_same_tab":false,"wishlist_enable_multilist":false,"customer_page_profile":{"spent":true,"orders_count":true,"addresses_count":true,"gender":true,"date_of_birth":true,"store_credit_balance":false},"customer_page_cancel_order":{"customer_include_tags":[],"customer_exclude_tags":[],"order_include_tags":[],"order_exclude_tags":[],"button_color":"#D34D4D","button_text_color":"#ffffff","optional_reason":false}
1166,"customer_page_phone_default_country":null,"date_format":"mm/dd/yyyy","customer_page_self_return_enabled":null,"customer_page_empty_panel_link":null,"customer_page_recently_viewed_enabled":true,"customer_page_wishlist_recently_compare_at_price_enabled":null,"customer_page_reorder_button_enabled":null,"customer_page_split_address_fields":false,"customer_account_version":"new_customer_accounts"}) 1167 </script>
1167 1168 <!-- BEGIN app snippet: assets_loader -->
1168<script id="customer_page_account_link_overwrite"> 1169 (function() { 1170 window.frcp ||= {} 1171 frcp.loadedAssets ||= {} 1172 1173 // Keyed by the resolved asset URL so a block rendered multiple times on the 1174 // same page (e.g. several preview badges) only injects each file once. 1175 const _loadAsset = function(tag, key, params) { 1176 if (frcp.loadedAssets[key]) return 1177 frcp.loadedAssets[key] = true 1178 1179 const asset = document.createElement(tag) 1180 for (const attr in params) asset[attr] = params[attr] 1181 document.head.append(asset) 1182 } 1183 1184 const jsSrc = 'https://cdn.shopify.com/extensions/01a1196c-0428-70e7-bea2-2540441cd383/froonze-app-320/assets/customer_page_account_link_overwrite-yCdJxVsE.js' 1185 const _loadJs = function() { 1186 _loadAsset('script', jsSrc, { id: 'frcp_customer_page_account_link_overwrite_main_js', src: jsSrc, type: 'module', defer: true }) 1187 } 1188 1189 if (document.readyState !== 'loading') { 1190 _loadJs() 1191 } else { 1192 document.addEventListener('DOMContentLoaded', _loadJs) 1193 } 1194 1195 1196 })() 1197</script>
1197 1198<!-- END app snippet --> 1199 1200 1201 1202 1203 1204<!-- END app block --><!-- BEGIN app block: shopify://apps/wair-size-fit-recommendation/blocks/app-embed/68b6dfc9-7d29-46dc-8820-cbcd3543e806 --> 1205 1206 1207 1208 1209 1210
1211<script type="text/javascript"> 1212 var predictProduct = null; 1213 window.addEventListener("onPredictLoad", function (event) { 1214 event.detail.predict.render({ 1215 brandKey: "rage-nation-apparel.myshopify.com", 1216 product: predictProduct ? { 1217 key: predictProduct.handle, 1218 name: predictProduct.title, 1219 image: "//ragenationapparel.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_x600.gif", 1220 } : null 1221 }); 1222 }); 1223</script>
1223 1224 1225
1225<script 1226 type="text/javascript" 1227 async 1228 src="https://cdn.shopify.com/extensions/01a0eb8c-8329-7b42-b272-646f3b03cd7e/wair-size-fit-recommendation-19/assets/predict.js"> 1229 </script>
1229 1230 1231 1232 1233 1234<!-- END app block --><!-- BEGIN app block: shopify://apps/froonze-loyalty-wishlist/blocks/product_wishlist/3c495b68-652c-468d-a0ef-5bad6935d104 --> 1235 <!-- BEGIN app snippet: product_wishlist_data_script -->
1235<script id='frcp_data_script'> 1236 window.frcp = window.frcp || {} 1237 frcp.shopDomain = "rage-nation-apparel.myshopify.com" 1238 frcp.shopToken = '32d0715733938361572189b119a128ada3913629c2bd1cf16bacaa31275cae26' 1239 frcp.httpsUrl = "https://app.froonze.com" 1240 frcp.moneyFormat ="\u003cspan class=money\u003e$ {{amount}}\u003c\/span\u003e" 1241 frcp.wishlist = frcp.wishlist || {} 1242 frcp.appProxy = null || '/apps/customer-portal' 1243 1244 frcp.useAppProxi = true 1245 frcp.wishlist.requestType = "cart" 1246 frcp.wishlist.integrations = Object({}) 1247 frcp.wishlist.blockSettings = {"add_button_color":"#2b2b2b","add_button_text_color":"#fafafa","remove_button_color":"#ffffff","remove_button_text_color":"#000000","placement":"below_add_to_cart","product_css_selector":"","button_style":"icon_and_text","border_radius":4,"shadow":true,"offset_top":0,"offset_bottom":0,"offset_left":0,"offset_right":0,"collections_wishlist_button":"none","collection_button_border_radius":50,"floating_link_placement":"none","floating_link_vertical_offset":0,"floating_link_lateral_offset":0,"floating_link_border_radius":4,"navigation_link":true,"navigation_link_css_selector":"","custom_css":""}, 1248 frcp.plugins = frcp.plugins || Object({"social_logins":null,"wishlist":"premium","order_actions":null,"custom_forms":null,"loyalty":null,"customer_account":"grandfathered","reviews":null,"reorder_btn":false,"custom_pages":true,"cp_integrations":"basic","recently_viewed":true}) 1249 frcp.wishlist.pageHandle = "01afb63d-d12e-4aea-8d91-fca5a4b9440b" 1250 frcp.shopId = 11852902 1251</script>
1251 1252<!-- END app snippet --> 1253 <!-- BEGIN app snippet: product_wishlist_common_data -->
1254<script id='frcp_wishlist_common_data'> 1255 frcp.wishlist = frcp.wishlist || {} 1256 frcp.wishlist.data = 1257 { 1258 'lists': { 1259 'default': {} 1260 }, 1261 'listNames': ['default'], 1262 'customerId': null, 1263 } 1264 1265 1266 // Translations 1267 frcp.wishlist.texts = Object() 1268 frcp.customerPage ||= {} 1269 frcp.customerPage.texts ||= {} 1270 frcp.customerPage.texts.shared ||= Object() 1271 1272 frcp.wishlist.settings = Object({"wishlist_tag_conditions":{"customer_include_tags":[],"customer_exclude_tags":[],"product_include_tags":[],"product_exclude_tags":[]},"wishlist_keep_item_after_add_to_cart":false,"wishlist_open_product_same_tab":false,"wishlist_enable_multilist":false,"wishlist_enable_modal":false,"wishlist_enable_guest":false,"wishlist_social_share":{"enabled":false,"facebook":true,"twitter":true,"whatsapp":true},"customer_page_empty_panel_link":null,"customer_account_version":"new_customer_accounts"}) 1273 frcp.wishlist.customerTags = null 1274 frcp.wishlist.socialAppIds = { 1275 facebook: '493867338961209' 1276 } 1277 frcp.wishlist.modalJsUrl = "https://cdn.shopify.com/extensions/01a1196c-0428-70e7-bea2-2540441cd383/froonze-app-320/assets/wishlist_modal-w3iDmSpJ.js" 1278 frcp.wishlist.modalCssUrl = "https://cdn.shopify.com/extensions/01a1196c-0428-70e7-bea2-2540441cd383/froonze-app-320/assets/wishlist_modal-w3iDmSpJ.css" 1279 1280 frcp.wishlist.profile = { 1281 froonzeToken: "ada95ce74e35368b18d952ce518c75a4db60c250dd50e55c7b337ee40087a401", 1282 id: null 1283 } 1284</script>
1284 1285<!-- END app snippet --> 1286 <!-- BEGIN app snippet: theme_customization_tags --> 1287
1287<script class="frcp-theme-customization-loader-script"> 1288 (function() { 1289 var themeCustomizationsList = {"0":{"html":"","css":".frcp-wishlist-grid-btn-wrapper--overlay-hover .frcp-wishlist-grid-btn, .frcp-wishlist-grid-btn-wrapper--overlay .frcp-wishlist-grid-btn {\n z-index: 3 !important;\n}\n\n.frcp-wishlist-nav-link-li .frcp-wishlist-nav-link-wrapper {\n display: flex;\n}\n\n.header__secondary-nav .frcp-wishlist-nav-link__text {\n display: none !important;\n}\n\n\n.frcp-wishlist-nav-link-wrapper .frcp-wishlist__icon {\n height: 20px !important;\n width: 20px !important;\n stroke-width: 1.7px !important;\n}\n\n.frcp-wishlist-nav-link__count {\n background: grey !important;\n color: white !important;\n height: 16px !important;\n width: 16px !important;\n font-size: 10px !important;\n left: 21px !important;\n line-height: 1.7 !important;\n}\n\n.header-sidebar__footer .frcp-wishlist-nav-link__count {\ndisplay: none !important;\n}\n\n.header-sidebar__footer .frcp-wishlist-nav-link__text {\n font-size: .625rem !important;\n text-transform: uppercase !important;\n margin-left: 10px !important;\n letter-spacing: var(--heading-letter-spacing);\n}\n\n\nmain .frcp-wishlist-nav-link-wrapper,\n#main .frcp-wishlist-nav-link-wrapper,\nfooter .frcp-wishlist-nav-link-wrapper {\n display: none !important;\n}","js":""}}; 1290 if (!themeCustomizationsList) return; 1291 var currentThemeCustomization = Shopify && Shopify.theme && themeCustomizationsList[Shopify.theme.id]; 1292 var globalCustomization = themeCustomizationsList[0] 1293 1294 if (currentThemeCustomization) { 1295 addTags(currentThemeCustomization, 'frcp-theme-customization'); 1296 } 1297 1298 if (globalCustomization) { 1299 addTags(globalCustomization, 'frcp-global-customization'); 1300 } 1301 1302 function addTags(themeCustomization, prefix) { 1303 if (themeCustomization.css) { 1304 var styleTag = document.createElement('style'); 1305 styleTag.classList.add(prefix + '-style'); 1306 styleTag.innerText = themeCustomization.css; 1307 document.head.append(styleTag); 1308 }; 1309 1310 if (themeCustomization.html) { 1311 document.addEventListener("DOMContentLoaded", function() { 1312 var htmlDiv = document.createElement('div'); 1313 htmlDiv.classList.add(prefix + '-html'); 1314 htmlDiv.innerHTML = themeCustomization.html; 1315 document.body.append(htmlDiv); 1316 }); 1317 }; 1318 1319 if (themeCustomization.js) { 1320 var scriptTag = document.createElement('script'); 1321 scriptTag.classList.add(prefix + '-script'); 1322 scriptTag.innerText = themeCustomization.js; 1323 document.head.append(scriptTag); 1324 }; 1325 } 1326 })(); 1327 </script>
1327 1328 1329<!-- END app snippet --> 1330 1331 <!-- BEGIN app snippet: assets_loader -->
1331<script id="product_wishlist"> 1332 (function() { 1333 window.frcp ||= {} 1334 frcp.loadedAssets ||= {} 1335 1336 // Keyed by the resolved asset URL so a block rendered multiple times on the 1337 // same page (e.g. several preview badges) only injects each file once. 1338 const _loadAsset = function(tag, key, params) { 1339 if (frcp.loadedAssets[key]) return 1340 frcp.loadedAssets[key] = true 1341 1342 const asset = document.createElement(tag) 1343 for (const attr in params) asset[attr] = params[attr] 1344 document.head.append(asset) 1345 } 1346 1347 const jsSrc = 'https://cdn.shopify.com/extensions/01a1196c-0428-70e7-bea2-2540441cd383/froonze-app-320/assets/product_wishlist-Dfr4-dnf.js' 1348 const _loadJs = function() { 1349 _loadAsset('script', jsSrc, { id: 'frcp_product_wishlist_main_js', src: jsSrc, type: 'module', defer: true }) 1350 } 1351 1352 if (document.readyState !== 'loading') { 1353 _loadJs() 1354 } else { 1355 document.addEventListener('DOMContentLoaded', _loadJs) 1356 } 1357 1358 1359 const cssHref = 'https://cdn.shopify.com/extensions/01a1196c-0428-70e7-bea2-2540441cd383/froonze-app-320/assets/product_wishlist-Dfr4-dnf.css' 1360 _loadAsset('link', cssHref, { id: 'frcp_product_wishlist_main_css', href: cssHref, rel: 'stylesheet', media: 'all' }) 1361 1362 })() 1363</script>
1363 1364<!-- END app snippet --> 1365 1366 1367 1368<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 1369 1370 1371 1372 1373 1374 1375 1376<link rel="dns-prefetch" href="https://cdn.judge.me"> 1377<link rel="dns-prefetch" href="https://cdn1.judge.me"> 1378<link rel="dns-prefetch" href="https://api.judge.me"> 1379
1380<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"","coupon_value_type":"percentage","coupon_value_percentage":5,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":true,"badge_no_review_text":"No reviews","badge_n_reviews_text":"({{ n }})","badge_star_color":"#E2AF00","hide_badge_preview_if_no_reviews":false,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"FROM OUR CUSTOMERS ","widget_open_form_text":"DROP A REVIEW","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to share your thoughts!","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"SUBMIT","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
1380ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"all_initials","widget_rating_filter_color":"#FCFCFC","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#E2AF00","verified_badge_text":"Verified","verified_badge_bg_color":"#8B8C8C","verified_badge_text_color":"#ffffff","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":true,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":true,"widget_location_format":"country_iso_code","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":true,"widget_theme":"carousel","review_date_format":"mm/dd/yyyy","default_sort_method":"highest-rating","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":true,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"custom","all_reviews_text_color":"#EBEBEB","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":false,"featured_carousel_title":"Reviews from our Customers","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":180,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#000000","verified_count_badge_style":"vintage","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":false,"widget_histogram_use_custom_color":true,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":true,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":true,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"below","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"compact","featured_carousel_show_rating":true,"featured_carousel_show_title":false,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":false,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
1380itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#626263","widget_enable_secondary_color":true,"widget_secondary_color":"#DEDEDE","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Fam photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":true,"widget_show_product_medals":false,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":true,"widget_reviewer_name_color":"","widget_write_review_text_color":"#F2F2F2","widget_write_review_bg_color":"#626263","widget_collected_by_judgeme_text":"Shared by the fam.","widget_pagination_type":"load_more","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"vertical","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":false,"review_snippet_widget_card_color":"#E9
1380E9E9","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#FFCE2A","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"soft","review_form_star_color":"#626263","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#626263","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
1380youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":true,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":".jdgm-rev-widg__title, .jdgm-btn--dark,.jdgm-ask-question-btn, .jdgm-write-rev-link, .jdgm-all-reviews-rating-wrapper, .jdgm-carousel-wrapper a, .jdgm-rev__prod-link, .jdgm-all-reviews-text a, .jdgm-carousel-item__product, .jdgm-carousel-number-of-reviews, .jdgm-revs-tab__url {\n font-family: 'Quantico', Helvetica, Arial, sans-serif;\n}\ninput, textarea {\n font-size: 16px !important;\n}\n","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":true,"preview_badge_home_page_install_preference":true,"preview_badge_product_page_install_preference":true,"review_widget_install_preference":"I need star rating to show up on collection pages","review_carousel_install_preference":true,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":true,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
1380:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/ragenationapparel.com","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Rage Nation Apparel","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
1380shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Rage Nation Apparel"};</script>
1380 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #626263;--jdgm-secondary-color: #DEDEDE;--jdgm-star-color: #E2AF00;--jdgm-write-review-text-color: #F2F2F2;--jdgm-write-review-bg-color: #626263;--jdgm-paginate-color: #626263;--jdgm-border-radius: 10;--jdgm-reviewer-name-color: #626263}.jdgm-histogram__bar-content{background-color:#FCFCFC}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:#ffffff;background-color:#8B8C8C}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#E2AF00}.jdgm-rev .jdgm-rev__icon{display:none !important}.jdgm-widget.jdgm-all-reviews-widget,.jdgm-widget .jdgm-rev-widg{border:none;padding:0}.jdgm-author-fullname{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-histogram{display:none !important}.jdgm-widget .jdgm-sort-dropdown-wrapper{margin-top:12px}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #E9E9E9;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #FFCE2A;--jdgm-snippet-border-radius: 0px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:0px;background:#E9E9E9}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#FFCE2A}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:0px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:0px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:0px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 0px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Rage Nation Apparel'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 0px * 6 )} 1381</style> <style class='jdgm-settings-style'>.jdgm-review-widget .jdgm-rev-widg__title,.jdgm-review-widget .jdgm-btn--dark,.j
1381dgm-review-widget .jdgm-ask-question-btn,.jdgm-review-widget .jdgm-write-rev-link,.jdgm-review-widget .jdgm-all-reviews-rating-wrapper,.jdgm-review-widget .jdgm-carousel-wrapper a,.jdgm-review-widget .jdgm-rev__prod-link,.jdgm-review-widget .jdgm-all-reviews-text a,.jdgm-review-widget .jdgm-carousel-item__product,.jdgm-review-widget .jdgm-carousel-number-of-reviews,.jdgm-review-widget .jdgm-revs-tab__url{font-family:'Quantico', Helvetica, Arial, sans-serif}.jdgm-review-widget input,.jdgm-review-widget textarea{font-size:16px !important} 1382</style> 1383 1384 1385 1386 1387 <style class='jdgm-miracle-styles'> 1388 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/I
1388azfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important} 1389 1390</style> 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403
1403<script id="judgeme_widget_carousel_js" data-cfasync="false" type="text/javascript" async src="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/widget_v3_theme_carousel.js"></script>
1403 1404 1405 1406 1407 1408 1409 <link id="judgeme_widget_carousel_css" rel="stylesheet" type="text/css" media="nope!" onload="this.media='all'" href="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/widget_v3_theme_carousel.css"> 1410 1411 1412 1413
1414<script data-cfasync='false' class='jdgm-script'> 1415!function(e){window.jdgm=window.jdgm||{}; 1416/* INF-1976 */ 1417var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 1418if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 1419jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 1420jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 1421setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 1422!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 1423(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 1424a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 1425jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 1426t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 1427t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 1428".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 1429parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 1430jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 1431)}))}(document); 1432</script>
1432 1433<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/shopify_v2.css"></noscript> 1434 1435<!-- BEGIN app snippet: theme_fix_tags -->
1435<script> 1436 (function() { 1437 var jdgmThemeFixes = {"136990687476":{"html":"","css":".jdgm-rev-widg__title {\n font-family: 'Quantico' !important;\n}\n.jdgm-rev__title{\n font-family: 'Quantico' !important;\n}","js":""},"137021161716":{"html":"","css":".jm-mfp-bg {\nheight: 100%!important;\n}\n.jm-mfp-bg {\n position: fixed!important;\n overflow: hidden!important;\n \toverflow-x: hidden!important;\n \toverflow-y: hidden!important;\n}\n.jm-mfp-bg, .jm-mfp-wrap, .jm-mfp-container {\n top: 0!important;\n left: 0!important;\n height: 100%!important;\n}\n.jm-mfp-wrap {\n position: fixed!important;\n overflow: hidden!important;\n \toverflow-x: hidden!important;\n \toverflow-y: hidden!important;\n outline: none !important;\n}\nbody.jm-mfp-is-open {position: initial !important;}\n\n.jdgm-rev__reply {\nbackground: black !important\n}\n\n","js":""}}; 1438 if (!jdgmThemeFixes) return; 1439 1440 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 1441 // before the per-theme fix so the theme-specific CSS wins the cascade. 1442 // HTML is never applied globally (too risky). 1443 var allThemesFix = jdgmThemeFixes['all']; 1444 if (allThemesFix && allThemesFix.css) { 1445 var allStyleTag = document.createElement('style'); 1446 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 1447 allStyleTag.innerHTML = allThemesFix.css; 1448 document.head.append(allStyleTag); 1449 }; 1450 1451 if (allThemesFix && allThemesFix.js) { 1452 var allScriptTag = document.createElement('script'); 1453 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 1454 allScriptTag.innerHTML = allThemesFix.js; 1455 document.head.append(allScriptTag); 1456 }; 1457 1458 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 1459 if (!thisThemeFix) return; 1460 1461 if (thisThemeFix.html) { 1462 document.addEventListener("DOMContentLoaded", function() { 1463 var htmlDiv = document.createElement('div'); 1464 htmlDiv.classList.add('jdgm-theme-fix-html'); 1465 htmlDiv.innerHTML = thisThemeFix.html; 1466 document.body.append(htmlDiv); 1467 }); 1468 }; 1469 1470 if (thisThemeFix.css) { 1471 var styleTag = document.createElement('style'); 1472 styleTag.classList.add('jdgm-theme-fix-style'); 1473 styleTag.innerHTML = thisThemeFix.css; 1474 document.head.append(styleTag); 1475 }; 1476 1477 if (thisThemeFix.js) { 1478 var scriptTag = document.createElement('script'); 1479 scriptTag.classList.add('jdgm-theme-fix-script'); 1480 scriptTag.innerHTML = thisThemeFix.js; 1481 document.head.append(scriptTag); 1482 }; 1483 })(); 1484</script>
1484 1485<!-- END app snippet --> 1486<!-- End of Judge.me Core --> 1487 1488 1489 1490<!-- END app block -->
1490<script src="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1490
1490
1491<script src="https://cdn.shopify.com/extensions/019f1808-4277-7a25-b5f6-09aad6894dff/fabrikator-inventory-assistant-20/assets/product-customizer.js" type="text/javascript" defer="defer"></script>
1491 1492<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1493<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: 11852902,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "cart"};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 1493
1493
1494<script> 1495 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1496</script>
vendor: 1 bytes, line 1496
1496
1497<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}
1497).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: 11852902,storefrontBaseUrl: "https://ragenationapparel.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://ragenationapparel.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"2785771764","configuration":"{\"shopId\":\"11852902\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"83adcaf06c5deacff41ffdf8f92d9129","type":"APP","apiClientId":246667608065,"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":"optimized"}
1497,{"id":"1303707892","configuration":"{\"env\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"8a9a175b11d15038a70fe78d09c59720","type":"APP","apiClientId":3977633,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1139441908","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9bce1c0cdfc09538057898e4ff134fa2","type":"APP","apiClientId":30400643073,"privacyPurposes":["ANALYTICS"],"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":"972095732","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"537362676","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"GT-WRGBXRN\\\",\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-XPH2FPQJ6R\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-XPH2FPQJ6R\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-XPH2FPQJ6R\\\"}],\\\"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":"optimized","enabledFlags":["9a3ed68a"]},{"id":"432308468","configuration":"{\"pixelCode\":\"CCHOVJ3C77UASAJQ531G\"}","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":[]},"dataSharingState":"optimized"},{"id":"138838260","configuration":"{\"pixel_id\":\"1809942362659682\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"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":"optimized","enabledFlags":["9a3ed68a"]},{"id":"105054452","configuration":"{\"accountID\":\"1234\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"ea25f2ab5d10fac64f3da4922b75167f","type":"APP","apiClientId":4914567,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"63537396","configuration":"{\"tagID\":\"2612503067064\"}","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"]},"dataSharingState":"optimized"}
1497,{"id":"10354932","configuration":"{\"myshopifyDomain\":\"rage-nation-apparel.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":"optimized"},{"id":"7864564","configuration":"{\"pixelId\":\"443a76e0-667c-449f-911a-4c289d162c26\"}","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":"optimized"},{"id":"81494260","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"},{"id":"95453428","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Attentive"},{"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":"Rage Nation Apparel","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"rage-nation-apparel.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/ragenationapparel.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://ragenationapparel.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"156884762868","themeStoreId":"855","themePublished":"true","eventMetadataId":"82cf2471-7aa9-4b82-ba5f-86e063ba2e3c","pageType":"cart","shopId":"11852902","storefrontBaseUrl":"https:\/\/ragenationapparel.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1497<script> 1498 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1499 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1500 window.ShopifyAnalytics.meta.currency = 'USD'; 1501 var meta = {"page":{"pageType":"cart","requestId":"e56ec514-ba7c-4235-8686-6c27673fa2aa-1791510630"}}; 1502 for (var attr in meta) { 1503 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1504 } 1505</script>
vendor: 1 bytes, line 1505
1505
1506<script class="analytics"> 1507 (function () { 1508 var customDocumentWrite = function(content) { 1509 var jquery = null; 1510 1511 if (window.jQuery) { 1512 jquery = window.jQuery; 1513 } else if (window.Checkout && window.Checkout.$) { 1514 jquery = window.Checkout.$; 1515 } 1516 1517 if (jquery) { 1518 jquery('body').append(content); 1519 } 1520 }; 1521 1522 var hasLoggedConversion = function(token) { 1523 if (token) { 1524 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1525 } 1526 return false; 1527 } 1528 1529 var setCookieIfConversion = function(token) { 1530 if (token) { 1531 var twoMonthsFromNow = new Date(Date.now()); 1532 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1533 1534 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1535 } 1536 } 1537 1538 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1539 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1540 if (trekkie.integrations) { 1541 return; 1542 } 1543 trekkie.methods = [ 1544 'identify', 1545 'page', 1546 'ready', 1547 'track', 1548 'trackForm', 1549 'trackLink' 1550 ]; 1551 trekkie.factory = function(method) { 1552 return function() { 1553 var args = Array.prototype.slice.call(arguments); 1554 args.unshift(method); 1555 trekkie.push(args); 1556 if (method == 'track' || method == 'page') { 1557 var pageUrl; 1558 try { 1559 pageUrl = window.location.href; 1560 } catch (e) {} 1561 var pageReferrer; 1562 try { 1563 pageReferrer = document.referrer; 1564 } catch (e) {} 1565 try { 1566 if (window.__TREKKIE_SHIM_QUEUE == null) { 1567 window.__TREKKIE_SHIM_QUEUE = []; 1568 } 1569 window.__TREKKIE_SHIM_QUEUE.push({ 1570 from: 'trekkie-stub', 1571 method: method, 1572 args: args.slice(1), 1573 pageContext: { 1574 url: pageUrl, 1575 referrer: pageReferrer 1576 } 1577 }); 1578 } catch (e) { 1579 // no-op 1580 } 1581 } 1582 return trekkie; 1583 }; 1584 }; 1585 for (var i = 0; i < trekkie.methods.length; i++) { 1586 var key = trekkie.methods[i]; 1587 trekkie[key] = trekkie.factory(key); 1588 } 1589 trekkie.load = function(config) { 1590 trekkie.config = config || {}; 1591 trekkie.config.initialDocumentCookie = document.cookie; 1592 var first = document.getElementsByTagName('script')[0]; 1593var script = document.createElement('script'); 1594script.type = 'text/javascript'; 1595script.onerror = function(e) { 1596 var scriptFallback = document.createElement('script'); 1597 scriptFallback.type = 'text/javascript'; 1598 scriptFallback.onerror = function(error) { 1599 var Monorail = { 1600 produce: function produce(monorailDomain, schemaId, payload) { 1601 var currentMs = new Date().getTime(); 1602 var event = { 1603 schema_id: schemaId, 1604 payload: payload, 1605 metadata: { 1606 event_created_at_ms: currentMs, 1607 event_sent_at_ms: currentMs 1608 } 1609 }; 1610 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1611 }, 1612 sendRequest: function sendRequest(endpointUrl, payload) { 1613 // Try the sendBeacon API 1614 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1615 var blobData = new window.Blob([payload], { 1616 type: 'text/plain' 1617 }); 1618 1619 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1620 return true; 1621 } // sendBeacon was not successful 1622 1623 } // XHR beacon 1624 1625 var xhr = new XMLHttpRequest(); 1626 1627 try { 1628 xhr.open('POST', endpointUrl); 1629 xhr.setRequestHeader('Content-Type', 'text/plain'); 1630 xhr.send(payload); 1631 } catch (e) { 1632 console.log(e); 1633 } 1634 1635 return false; 1636 }, 1637 isIos12: function isIos12() { 1638 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1639 } 1640 }; 1641 Monorail.produce('monorail-edge.shopifysvc.com', 1642 'trekkie_storefront_load_errors/1.1', 1643 {shop_id: 11852902, 1644 theme_id: 156884762868, 1645 app_name: "storefront", 1646 context_url: window.location.href, 1647 source_url: "//ragenationapparel.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 1648 1649 }; 1650 scriptFallback.async = true; 1651 scriptFallback.src = '//ragenationapparel.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1652 first.parentNode.insertBefore(scriptFallback, first); 1653}; 1654script.async = true; 1655script.src = '//ragenationapparel.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1656first.parentNode.insertBefore(script, first); 1657 1658 }; 1659 trekkie.load( 1660 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":11852902,"isMerchantRequest":null,"themeId":156884762868,"themeCityHash":"6859546824642282147","contentLanguage":"en","currency":"USD","eventMetadataId":"82cf2471-7aa9-4b82-ba5f-86e063ba2e3c"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1661 ); 1662 1663 var loaded = false;
1664 trekkie.ready(function() { 1665 if (loaded) return; 1666 loaded = true; 1667 1668 window.ShopifyAnalytics.lib = window.trekkie; 1669 1670 var originalDocumentWrite = document.write; 1671 document.write = customDocumentWrite; 1672 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1673 document.write = originalDocumentWrite; 1674 1675 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1676 var token = match? match[1]: undefined; 1677 if (!hasLoggedConversion(token)) { 1678 setCookieIfConversion(token); 1679 1680 } 1681 }); 1682 1683 window.ShopifyAnalytics.lib.page(null,{"pageType":"cart","requestId":"e56ec514-ba7c-4235-8686-6c27673fa2aa-1791510630","shopifyEmitted":true}); 1684 1685 var eventsListenerScript = document.createElement('script'); 1686 eventsListenerScript.async = true; 1687 eventsListenerScript.src = "//ragenationapparel.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1688 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1689})();</script>
1689 1690
1690<script> 1691 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1692 window.ga = function ga() { 1693 (window.ga.q = window.ga.q || []).push(arguments); 1694 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1695 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1696 } 1697 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1698 }; 1699 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1700 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1701 } 1702 } 1703</script>
vendor: 1 bytes, line 1703
1703
1704<script 1705 defer 1706 src="https://ragenationapparel.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 1707 data-application="storefront-renderer" 1708 data-shop-id="11852902" 1709 data-render-region="gcp-us-central1" 1710 data-page-type="cart" 1711 data-theme-instance-id="156884762868" 1712 data-theme-name="Prestige" 1713 data-theme-version="7.3.6" 1714 data-monorail-region="shop_domain" 1715 data-resource-timing-sampling-rate="10" 1716 data-shs="true" 1717 data-shs-beacon="true" 1718 data-shs-export-with-fetch="true" 1719 data-shs-logs-sample-rate="1" 1720 data-shs-beacon-endpoint="https://ragenationapparel.com/api/collect" 1721></script>
1721 1722<meta name="shopify-y" content="dcf74e84-3148-46c2-b27f-8f44b781b888" data-expiration="1823068230000"><meta name="shopify-s" content="f59dfb72-2ede-477d-a2de-ae6d375a7fe3" data-expiration="1791512430000"> 1723</head><body class="features--button-transition " data-infinite-scroll="true"><template id="drawer-default-template"> 1724 <div part="base"> 1725 <div part="overlay"></div> 1726 1727 <div part="content"> 1728 <header part="header"> 1729 <slot name="header"></slot> 1730 1731 <button type="button" is="dialog-close-button" part="close-button tap-area" aria-label="Close"><svg 1732 aria-hidden="true" 1733 focusable="false" 1734 fill="none" 1735 width="14" 1736 class="icon icon-close" 1737 viewBox="0 0 16 16" 1738 > 1739 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.7"/> 1740 </svg> 1741 1742 </button> 1743 </header> 1744 1745 <div part="body"> 1746 <slot></slot> 1747 </div> 1748 1749 <footer part="footer"> 1750 <slot name="footer"></slot> 1751 </footer> 1752 </div> 1753 </div> 1754</template><template id="modal-default-template"> 1755 <div part="base"> 1756 <div part="overlay"></div> 1757 1758 <div part="content"> 1759 <header part="header"> 1760 <slot name="header"></slot> 1761 1762 <button type="button" is="dialog-close-button" part="close-button tap-area" aria-label="Close"><svg 1763 aria-hidden="true" 1764 focusable="false" 1765 fill="none" 1766 width="14" 1767 class="icon icon-close" 1768 viewBox="0 0 16 16" 1769 > 1770 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.7"/> 1771 </svg> 1772 1773 </button> 1774 </header> 1775 1776 <div part="body"> 1777 <slot></slot> 1778 </div> 1779 </div> 1780 </div> 1781</template><template id="popover-default-template"> 1782 <div part="base"> 1783 <div part="overlay"></div> 1784 1785 <div part="content"> 1786 <header part="header"> 1787 <slot name="header"></slot> 1788 1789 <button type="button" is="dialog-close-button" part="close-button tap-area" aria-label="Close"><svg 1790 aria-hidden="true" 1791 focusable="false" 1792 fill="none" 1793 width="14" 1794 class="icon icon-close" 1795 viewBox="0 0 16 16" 1796 > 1797 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.7"/> 1798 </svg> 1799 1800 </button> 1801 </header> 1802 1803 <div part="body"> 1804 <slot></slot> 1805 </div> 1806 </div> 1807 </div> 1808</template><template id="header-search-default-template"> 1809 <div part="base"> 1810 <div part="overlay"></div> 1811 1812 <div part="content"> 1813 <slot></slot> 1814 </div> 1815 </div> 1816</template><template id="video-media-default-template"> 1817 <slot></slot> 1818 1819 <svg part="play-button" fill="none" width="48" height="48" viewBox="0 0 48 48"> 1820 <path fill-rule="evenodd" clip-rule="evenodd" d="M48 24c0 13.255-10.745 24-24 24S0 37.255 0 24 10.745 0 24 0s24 10.745 24 24Zm-18 0-9-6.6v13.2l9-6.6Z" fill="var(--play-button-background, #000000)"/> 1821 </svg> 1822</template><loading-bar class="loading-bar" aria-hidden="true"></loading-bar> 1823 <a href="#main" allow-hash-change class="skip-to-content sr-only">Skip to content</a><!-- BEGIN sections: header-group --> 1824<aside id="shopify-section-sections--20944657875188__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 1825 :root { 1826 --announcement-bar-is-sticky: 0; 1827 }#shopify-section-sections--20944657875188__announcement-bar { 1828 --announcement-bar-font-size: 0.6875rem; 1829 } 1830 1831 @media screen and (min-width: 999px) { 1832 #shopify-section-sections--20944657875188__announcement-bar { 1833 --announcement-bar-font-size: 0.6875rem; 1834 } 1835 } 1836 </style> 1837 1838 <height-observer variable="announcement-bar"> 1839 <div class="announcement-bar" style="--background: 239 239 239 ; background-color: rgb(var(--background));--text-color: 0 0 0; color: rgb(var(--text-color));--border-color:203 203 203;"><announcement-bar-carousel allow-swipe autoplay="5" id="carousel-sections--20944657875188__announcement-bar" class="announcement-bar__carousel"><p class="prose heading is-selected" ><a href="/pages/all-r-a-g-e-collections" title="ALL R.A.G.E. COLLECTIONS">⦠R.ESONATE A. G.REATER E.XISTENCE<strong> </strong>â¦</a></p>
1839</announcement-bar-carousel></div> 1840 </height-observer> 1841 1842
1842<script> 1843 document.documentElement.style.setProperty('--announcement-bar-height', `${Math.round(document.getElementById('shopify-section-sections--20944657875188__announcement-bar').clientHeight)}px`); 1844 </script>
1844</aside><header id="shopify-section-sections--20944657875188__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 1845 :root { 1846 --header-is-sticky: 1; 1847 } 1848 1849 #shopify-section-sections--20944657875188__header { 1850 --header-grid: "primary-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr); 1851 --header-padding-block: 1rem; 1852 --header-transparent-header-text-color: 234 234 234; 1853 --header-separation-border-color: 0 0 0 / 0; 1854 1855 position: relative; 1856 z-index: 5; 1857 } 1858 1859 @media screen and (min-width: 700px) { 1860 #shopify-section-sections--20944657875188__header { 1861 --header-padding-block: 1.2rem; 1862 } 1863 } 1864 1865 @media screen and (min-width: 1000px) { 1866 #shopify-section-sections--20944657875188__header {} 1867 }#shopify-section-sections--20944657875188__header { 1868 position: sticky; 1869 top: 0; 1870 } 1871 1872 .shopify-section--announcement-bar ~ #shopify-section-sections--20944657875188__header { 1873 top: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px)); 1874 }#shopify-section-sections--20944657875188__header { 1875 --header-logo-width: 65px; 1876 --header-logo-height: 69px; 1877 } 1878 1879 @media screen and (min-width: 700px) { 1880 #shopify-section-sections--20944657875188__header { 1881 --header-logo-width: 100px; 1882 --header-logo-height: 107px; 1883 } 1884 }#shopify-section-sections--20944657875188__header {--rn-header-glassy-blur: 14px; 1885 --rn-header-glassy-bg-alpha: 0.8;--rn-header-glassy-tint: 0 0 0;--rn-header-radius: 24px; 1886 --rn-header-btn-radius: 8px; 1887 --rn-header-shadow-intensity: 2.0;--rn-sticky-compress-ratio: 1.0;--rn-header-entrance-duration: 600ms; 1888 --rn-nav-hover-thickness: 2px; 1889 --rn-nav-hover-offset: 4px; 1890 --rn-nav-magnetic-distance: 4px; 1891 --rn-mega-entrance-duration: 400ms; 1892 --rn-cart-bounce-duration: 400ms;--rn-glassy-mobile-blur: 8px;--rn-nav-font-family: Assistant, sans-serif; 1893 --rn-nav-font-weight: 400;--rn-nav-font-size-desktop: 14px; 1894 --rn-nav-font-size-mobile: 13px; 1895 --rn-nav-letter-spacing: 0.0em; 1896 --rn-nav-line-height: 1.5; 1897 --rn-nav-text-transform: none; 1898 --rn-nav-item-spacing: 40px;--rn-dropdown-font-family: Assistant, sans-serif; 1899 --rn-dropdown-font-weight: 400;--rn-dropdown-font-size-desktop: 14px; 1900 --rn-dropdown-font-size-mobile: 13px; 1901 --rn-dropdown-line-height: 1.5; 1902 --rn-dropdown-item-spacing: 12px;--rn-icon-scale: 1.0; 1903 --rn-cart-icon-variant: shopping_bag;--rn-dropdown-blur: 12px;--rn-dropdown-tint: 234, 234, 234; 1904 --rn-dropdown-tint-alpha: 0.85;--rn-dropdown-gradient: linear-gradient(to bottom, rgba(var(--rn-dropdown-tint), 0.35), rgba(var(--rn-dropdown-tint), 0.2));--rn-dropdown-border-alpha: 0.15;--rn-dropdown-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);--rn-dropdown-text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);--rn-collision-safe-padding: 16px; 1905 --rn-dropdown-max-width: 1200px; 1906 --rn-dropdown-max-height: 600px; 1907 }</style><link href="//ragenationapparel.com/cdn/shop/t/84/assets/rn-header-enhancements.css?v=38646218370198780761764915216" rel="stylesheet" type="text/css" media="all" />
1908<script src="//ragenationapparel.com/cdn/shop/t/84/assets/rn-header-enhancements.js?v=168929639030367798761770804183" defer></script>
1908<height-observer variable="header"><x-header 1909 class="header" 1910 data-rn-header 1911 data-rn-glassy="true" 1912 data-rn-glassy-border="hairline" 1913 data-rn-shadow="deep" 1914 data-rn-entrance="none" 1915 data-rn-sticky-effect="bluron" 1916 data-rn-hover="underline" 1917 data-rn-compress="true" 1918 data-rn-reveal="true" 1919 data-rn-reveal-threshold="250" 1920 data-rn-dark-auto="false" 1921 data-rn-glassy-mobile="true" 1922 > 1923 <a href="/" class="header__logo"><span class="sr-only">Rage Nation Apparel</span><img src="//ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&width=2776" alt="" srcset="//ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&width=200 200w, //ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&width=300 300w" width="2776" height="2962" sizes="100px" class="header__logo-image"><img src="//ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&width=2776" alt="" srcset="//ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&width=200 200w, //ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&width=300 300w" width="2776" height="2962" sizes="100px" class="header__logo-image header__logo-image--transparent"></a> 1924 1925<nav 1926 class="header__primary-nav " 1927 aria-label="Primary navigation" 1928 > 1929 <button 1930 type="button" 1931 aria-controls="sidebar-menu" 1932 1933 > 1934 <span class="sr-only">Open navigation menu</span><svg 1935 aria-hidden="true" 1936 fill="none" 1937 focusable="false" 1938 width="24" 1939 class="header__nav-icon icon icon-hamburger" 1940 viewBox="0 0 24 24" 1941 > 1942 <path d="M1 19h22M1 12h22M1 5h22" stroke="currentColor" stroke-width="1.7" stroke-linecap="square"/> 1943 </svg></button></nav><nav class="header__secondary-nav" aria-label="Secondary navigation"><a href="/account" class="sm-max:hidden"> 1944 <span class="sr-only">Open account page</span><svg 1945 aria-hidden="true" 1946 fill="none" 1947 focusable="false" 1948 width="24" 1949 class="header__nav-icon icon icon-account" 1950 viewBox="0 0 24 24" 1951 > 1952 <path d="M16.125 8.75c-.184 2.478-2.063 4.5-4.125 4.5s-3.944-2.021-4.125-4.5c-.187-2.578 1.64-4.5 4.125-4.5 2.484 0 4.313 1.969 4.125 4.5Z" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/> 1953 <path d="M3.017 20.747C3.783 16.5 7.922 14.25 12 14.25s8.217 2.25 8.984 6.497" stroke="currentColor" stroke-width="1.7" stroke-miterlimit="10"/> 1954 </svg></a><a 1955 href="/pages/customer-dashboard" 1956 class="relative rn-wishlist-nav" 1957 data-rn-wishlist-nav 1958 > 1959 <span class="sr-only">Wishlist</span><svg class="header__nav-icon rn-wishlist-nav__icon icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation"> 1960 <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/> 1961 </svg><span class="rn-wishlist-nav__count" data-rn-wishlist-count hidden></span> 1962 </a><a href="/search" aria-controls="header-search-sections--20944657875188__header"> 1963 <span class="sr-only">Open search</span><svg 1964 aria-hidden="true" 1965 fill="none" 1966 focusable="false" 1967 width="24" 1968 class="header__nav-icon icon icon-search" 1969 viewBox="0 0 24 24" 1970 > 1971 <path d="M10.364 3a7.364 7.364 0 1 0 0 14.727 7.364 7.364 0 0 0 0-14.727Z" stroke="currentColor" stroke-width="1.7" stroke-miterlimit="10"/> 1972 <path d="M15.857 15.858 21 21.001" stroke="currentColor" stroke-width="1.7" stroke-miterlimit="10" stroke-linecap="round"/> 1973 </svg></a><a 1974 href="/cart" 1975 class="relative header__cart-icon" 1976 data-rn-cart 1977 data-rn-cart-feedback="bounce" 1978 data-rn-cart-variant="shopping_bag" 1979 1980 > 1981 <span class="sr-only">Open cart</span><svg 1982 aria-hidden="true" 1983 fill="none" 1984 focusable="false" 1985 width="24" 1986 class="header__nav-icon icon icon-cart"
1987 viewBox="0 0 24 24" 1988 ><path d="M4.75 8.25A.75.75 0 0 0 4 9L3 19.125c0 1.418 1.207 2.625 2.625 2.625h12.75c1.418 0 2.625-1.149 2.625-2.566L20 9a.75.75 0 0 0-.75-.75H4.75Zm2.75 0v-1.5a4.5 4.5 0 0 1 4.5-4.5v0a4.5 4.5 0 0 1 4.5 4.5v1.5" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg><cart-dot 1989 class="header__cart-dot " 1990 ></cart-dot> 1991 </a></nav><style> 1992 .rn-wishlist-nav { 1993 display: inline-flex; 1994 align-items: center; 1995 gap: 6px; 1996 } 1997 .rn-wishlist-nav__icon { 1998 /* The theme's icon snippet sizes its SVGs via a width attribute; this 1999 one is inline, so pin the box explicitly or it collapses to 0x0. */ 2000 width: 24px; 2001 height: 24px; 2002 fill: none; 2003 stroke: currentColor; 2004 stroke-width: 1.5; 2005 stroke-linejoin: round; 2006 } 2007 @media screen and (max-width: 699px) { 2008 .rn-wishlist-nav__icon { width: 1.375rem; height: 1.375rem; } 2009 } 2010 .rn-wishlist-nav.is-filled .rn-wishlist-nav__icon { 2011 fill: #cb2b2b; 2012 stroke: #cb2b2b; 2013 } 2014 .rn-wishlist-nav__count { 2015 position: absolute; 2016 top: -6px; 2017 right: -8px; 2018 min-width: 16px; 2019 height: 16px; 2020 padding: 0 4px; 2021 border-radius: 8px; 2022 background: #cb2b2b; 2023 color: #fff; 2024 font-size: 10px; 2025 line-height: 16px; 2026 text-align: center; 2027 font-weight: 600; 2028 box-sizing: border-box; 2029 } 2030 .rn-wishlist-nav__count[hidden] { display: none !important; } 2031 </style> 2032 2033
2033<script> 2034 (function () { 2035 var links = document.querySelectorAll('[data-rn-wishlist-nav]'); 2036 if (!links.length) return; 2037 2038 // Count distinct products across the active list and the pending guest 2039 // buffer. A guest save lands only in data.guest until it is bound to a 2040 // customer, so counting the list alone reads 0 for guests. 2041 function wishlistCount() { 2042 var d = window.frcp && window.frcp.wishlist && window.frcp.wishlist.data; 2043 if (!d) return null; 2044 var list = d.activeList || 'default'; 2045 var ids = {}; 2046 var n = 0; 2047 function add(o) { if (o) { Object.keys(o).forEach(function (k) { ids[k] = 1; }); } } 2048 function drop(o) { if (o) { Object.keys(o).forEach(function (k) { delete ids[k]; }); } } 2049 add(d.product_id_lists && d.product_id_lists[list]); 2050 add(d.guest && d.guest.addProductId); 2051 drop(d.guest && d.guest.removeProductId); 2052 for (var k in ids) { if (Object.prototype.hasOwnProperty.call(ids, k)) n++; } 2053 return n; 2054 } 2055 2056 function render() { 2057 var n = wishlistCount(); 2058 links.forEach(function (link) { 2059 var badge = link.querySelector('[data-rn-wishlist-count]'); 2060 link.classList.toggle('is-filled', !!n); 2061 if (!badge) return; 2062 if (n) { 2063 badge.textContent = n > 99 ? '99+' : String(n); 2064 badge.hidden = false; 2065 } else { 2066 badge.hidden = true; 2067 } 2068 }); 2069 } 2070 2071 window.addEventListener('frcp.wishlist.update', function () { setTimeout(render, 60); }); 2072 window.addEventListener('frcp.wishlist.installed', render); 2073 2074 // Froonze initialises async and may land after this runs, so poll 2075 // briefly rather than trusting the event alone. 2076 var tries = 0; 2077 (function boot() { 2078 if (wishlistCount() !== null) { render(); return; } 2079 if (++tries > 40) return; 2080 setTimeout(boot, 250); 2081 })(); 2082 })(); 2083 </script>
2083<header-search id="header-search-sections--20944657875188__header" class="header-search"> 2084 <div class="container"> 2085 <form id="predictive-search-form" action="/search" method="GET" aria-owns="header-predictive-search" class="header-search__form" role="search"> 2086 <div class="header-search__form-control"><svg 2087 aria-hidden="true" 2088 fill="none" 2089 focusable="false" 2090 width="20" 2091 class="icon icon-search" 2092 viewBox="0 0 24 24" 2093 > 2094 <path d="M10.364 3a7.364 7.364 0 1 0 0 14.727 7.364 7.364 0 0 0 0-14.727Z" stroke="currentColor" stroke-width="1.7" stroke-miterlimit="10"/> 2095 <path d="M15.857 15.858 21 21.001" stroke="currentColor" stroke-width="1.7" stroke-miterlimit="10" stroke-linecap="round"/> 2096 </svg><input type="search" name="q" spellcheck="false" class="header-search__input h5 sm:h4" aria-label="Search" placeholder="Search for..."> 2097 <button type="button" is="dialog-close-button"> 2098 <span class="sr-only">Close</span><svg 2099 aria-hidden="true" 2100 focusable="false" 2101 fill="none" 2102 width="16" 2103 class="icon icon-close" 2104 viewBox="0 0 16 16" 2105 > 2106 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.7"/> 2107 </svg> 2108 2109 </button> 2110 </div> 2111 </form> 2112 2113 <predictive-search id="header-predictive-search" class="predictive-search"> 2114 <div class="predictive-search__content" slot="results"></div> 2115 </predictive-search> 2116 </div> 2117</header-search><template id="header-sidebar-template"> 2118 <div part="base"> 2119 <div part="overlay"></div> 2120 2121 <div part="content"> 2122 <header part="header"> 2123 <button type="button" is="dialog-close-button" part="close-button tap-area" aria-label="Close"><svg 2124 aria-hidden="true" 2125 focusable="false" 2126 fill="none" 2127 width="16" 2128 class="icon icon-close" 2129 viewBox="0 0 16 16" 2130 > 2131 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.7"/> 2132 </svg> 2133 2134 </button> 2135 </header> 2136 2137 <div part="panel-list"> 2138 <slot name="main-panel"></slot><slot name="collapsible-panel"></slot></div> 2139 </div> 2140 </div> 2141</template> 2142 2143<header-sidebar id="sidebar-menu" class="header-sidebar drawer drawer--sm" template="header-sidebar-template" open-from="left"><div class="header-sidebar__main-panel" slot="main-panel"> 2144 <div class="header-sidebar__scroller"> 2145 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="/" class="header-sidebar__linklist-button h6">HOME</a></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-2" aria-expanded="false">NEW ARRIVALS<svg 2146 aria-hidden="true" 2147 focusable="false" 2148 fill="none" 2149 width="12" 2150 class="icon icon-chevron-right icon--direction-aware" 2151 viewBox="0 0 10 10" 2152 > 2153 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2154 </svg></button></li><li><a href="/collections/pashmina-festival-shawls-rave-scarf?filter.v.availability=1" class="header-sidebar__linklist-button h6">FESTIVAL SHAWLS</a></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-4" aria-expanded="false">EXPLORE APPAREL<svg 2155 aria-hidden="true" 2156 focusable="false" 2157 fill="none" 2158 width="12" 2159 class="icon icon-chevron-right icon--direction-aware" 2160 viewBox="0 0 10 10" 2161 > 2162 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2163 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-5" aria-expanded="false">CURATED CAPSULES<svg 2164 aria-hidden="true" 2165 focusable="false" 2166 fill="none" 2167 width="12" 2168 class="icon icon-chevron-right icon--direction-aware" 2169 viewBox="0 0 10 10" 2170 > 2171 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2172 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-6" aria-expanded="false">HOME & OFFICE<svg 2173 aria-hidden="true" 2174 focusable="false" 2175 fill="none" 2176 width="12" 2177 class="icon icon-chevron-right icon--direction-aware"
2178 viewBox="0 0 10 10" 2179 > 2180 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2181 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-7" aria-expanded="false">SUPPORT<svg 2182 aria-hidden="true" 2183 focusable="false" 2184 fill="none" 2185 width="12" 2186 class="icon icon-chevron-right icon--direction-aware" 2187 viewBox="0 0 10 10" 2188 > 2189 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2190 </svg></button></li></ul> 2191 </div><div class="header-sidebar__footer"><a href="/account" class="text-with-icon smallcaps sm:hidden"><svg 2192 aria-hidden="true" 2193 fill="none" 2194 focusable="false" 2195 width="20" 2196 class="icon icon-account" 2197 viewBox="0 0 24 24" 2198 > 2199 <path d="M16.125 8.75c-.184 2.478-2.063 4.5-4.125 4.5s-3.944-2.021-4.125-4.5c-.187-2.578 1.64-4.5 4.125-4.5 2.484 0 4.313 1.969 4.125 4.5Z" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/> 2200 <path d="M3.017 20.747C3.783 16.5 7.922 14.25 12 14.25s8.217 2.25 8.984 6.497" stroke="currentColor" stroke-width="1.7" stroke-miterlimit="10"/> 2201 </svg>Account</a></div></div><header-sidebar-collapsible-panel class="header-sidebar__collapsible-panel" slot="collapsible-panel"> 2202 <div class="header-sidebar__scroller"><div id="header-panel-2" class="header-sidebar__sub-panel" hidden> 2203 <button type="button" class="header-sidebar__back-button link-faded is-divided text-with-icon h6 md:hidden" data-action="close-panel"><svg 2204 aria-hidden="true" 2205 focusable="false" 2206 fill="none" 2207 width="12" 2208 class="icon icon-chevron-left icon--direction-aware" 2209 viewBox="0 0 10 10" 2210 > 2211 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2212 </svg>NEW ARRIVALS</button> 2213 2214 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="/collections/new-releases?filter.v.availability=1" class="header-sidebar__linklist-button h6">Just Dropped</a></li><li><a href="/collections/back-in-stock?filter.v.availability=1" class="header-sidebar__linklist-button h6">Just Restocked</a></li><li><a href="/collections/best-sellers?filter.v.availability=1" class="header-sidebar__linklist-button h6">Best Sellers</a></li><li><a href="/collections/pre-order?filter.v.availability=1" class="header-sidebar__linklist-button h6">PRE-ORDER</a></li><li><a href="/collections/coming-soon" class="header-sidebar__linklist-button h6">COMING SOON</a></li></ul></div><div id="header-panel-4" class="header-sidebar__sub-panel" hidden> 2215 <button type="button" class="header-sidebar__back-button link-faded is-divided text-with-icon h6 md:hidden" data-action="close-panel"><svg 2216 aria-hidden="true" 2217 focusable="false" 2218 fill="none" 2219 width="12" 2220 class="icon icon-chevron-left icon--direction-aware" 2221 viewBox="0 0 10 10" 2222 > 2223 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2224 </svg>EXPLORE APPAREL</button> 2225 2226 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="/collections/tops-tees?filter.v.availability=1" class="header-sidebar__linklist-button h6">TOPS</a></li><li><a href="/collections/bottoms?filter.v.availability=1" class="header-sidebar__linklist-button h6">BOTTOMS</a></li><li><a href="/collections/outerwear?filter.v.availability=1" class="header-sidebar__linklist-button h6">OUTERWEAR</a></li><li><a href="/collections/accessories?filter.v.availability=1" class="header-sidebar__linklist-button h6">ACCESSORIES </a></li><li><a href="/collections/clearance?filter.v.availability=1" class="header-sidebar__linklist-button h6">CLEARANCE </a></li></ul></div><div id="header-panel-5" class="header-sidebar__sub-panel" hidden> 2227 <button type="button" class="header-sidebar__back-button link-faded is-divided text-with-icon h6 md:hidden" data-action="close-panel"><svg 2228 aria-hidden="true" 2229 focusable="false" 2230 fill="none" 2231 width="12" 2232 class="icon icon-chevron-left icon--direction-aware"
2233 viewBox="0 0 10 10" 2234 > 2235 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2236 </svg>CURATED CAPSULES</button> 2237 2238 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="https://ragenationapparel.com/collections" class="header-sidebar__linklist-button h6">RAGE CAPSULES</a></li><li><a href="/collections/artist-series?filter.v.availability=1" class="header-sidebar__linklist-button h6">COLLABORATIONS</a></li></ul></div><div id="header-panel-6" class="header-sidebar__sub-panel" hidden> 2239 <button type="button" class="header-sidebar__back-button link-faded is-divided text-with-icon h6 md:hidden" data-action="close-panel"><svg 2240 aria-hidden="true" 2241 focusable="false" 2242 fill="none" 2243 width="12" 2244 class="icon icon-chevron-left icon--direction-aware" 2245 viewBox="0 0 10 10" 2246 > 2247 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2248 </svg>HOME & OFFICE</button> 2249 2250 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="/collections/bed-bath?filter.v.availability=1" class="header-sidebar__linklist-button h6">BED & BATH</a></li><li><a href="/collections/wall-art?filter.v.availability=1" class="header-sidebar__linklist-button h6">WALL ART</a></li><li><a href="/collections/office?filter.v.availability=1" class="header-sidebar__linklist-button h6">OFFICE & GAMING</a></li><li><a href="/collections/skate?filter.v.availability=1" class="header-sidebar__linklist-button h6">SKATEBOARDS</a></li></ul></div><div id="header-panel-7" class="header-sidebar__sub-panel" hidden> 2251 <button type="button" class="header-sidebar__back-button link-faded is-divided text-with-icon h6 md:hidden" data-action="close-panel"><svg 2252 aria-hidden="true" 2253 focusable="false" 2254 fill="none" 2255 width="12" 2256 class="icon icon-chevron-left icon--direction-aware" 2257 viewBox="0 0 10 10" 2258 > 2259 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2260 </svg>SUPPORT</button> 2261 2262 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="/pages/connect" class="header-sidebar__linklist-button h6">Contact</a></li><li><a href="/pages/returns" class="header-sidebar__linklist-button h6">Returns</a></li><li><a href="/pages/faq" class="header-sidebar__linklist-button h6">FAQ</a></li><li><a href="/pages/about-us" class="header-sidebar__linklist-button h6">OUR STORY</a></li><li><a href="/collections/gift-cards-rage-nation?filter.v.availability=1" class="header-sidebar__linklist-button h6">GIFTCARDS</a></li></ul></div></div> 2263 </header-sidebar-collapsible-panel></header-sidebar></x-header> 2264</height-observer> 2265
2266<script> 2267 document.documentElement.style.setProperty( 2268 '--header-height', 2269 `${Math.round(document.getElementById('shopify-section-sections--20944657875188__header').clientHeight)}px` 2270 ); 2271</script>
2271 2272 2273 2274</header> 2275<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 2276<section id="shopify-section-sections--20944658923764__cart-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--cart-drawer"><cart-drawer id="cart-drawer" class="cart-drawer drawer drawer--center-body" initial-focus="false" handle-editor-events> 2277 <p class="h4" slot="header">Cart</p><p class="h5 text-center">Your cart is empty</p></cart-drawer> 2278 2279</section> 2280<!-- END sections: overlay-group --><main id="main" class="anchor"> 2281 <section id="shopify-section-template--20944663642356__main" class="shopify-section shopify-section--main-cart"><div class="section-spacing section-spacing--tight"><div class="container container--xs"> 2282 <div class="empty-state"> 2283 <div class="prose"> 2284 <h1 class="h4">Cart</h1> 2285 <p>Your cart is empty</p> 2286<a class="button button--primary button--anim-glow"href="/collections/new-releases" >Continue shopping</a></div> 2287 </div> 2288 </div></div> 2289 2290</section>
2291<script id="bss-ltap-fl-redirect" type="text/javascript"> 2292 const skipDomains = ['minimo-skin-essentials-wholesale.myshopify.com']; 2293 function runInLoginPage() { 2294 function insertElement(id) { 2295 const BSS = JSON.parse(localStorage.getItem("BSS")) || ""; 2296 let createCustomer = document.getElementById(id); 2297 if (BSS && BSS.redirect_url && createCustomer) { 2298 const returnToInput = document.createElement('input'); 2299 returnToInput.type = 'hidden'; 2300 returnToInput.name = 'return_to'; 2301 returnToInput.value = BSS.redirect_url; 2302 createCustomer.appendChild(returnToInput); 2303 } 2304 } 2305 2306 insertElement("customer_login"); 2307 } 2308 2309 function runInRegisterPage() { 2310 if(skipDomains.includes(window.Shopify.shop)) { 2311 return; 2312 } 2313 const BSS = JSON.parse(localStorage.getItem("BSS")) || ""; 2314 let formCreate = document.getElementById('create_customer'); 2315 if (BSS && BSS.redirect_url && formCreate) { 2316 let firstName = document.getElementById('RegisterForm-FirstName'); 2317 let lastName = document.getElementById('RegisterForm-LastName'); 2318 let email = document.getElementById('RegisterForm-email'); 2319 let password = document.getElementById('RegisterForm-password'); 2320 formCreate.addEventListener('submit', async function (e) { 2321 if(BSS_B2B && BSS_B2B.RF) { 2322 return; 2323 } 2324 e.preventDefault(); 2325 let isError = false; 2326 2327 if ( 2328 !email.value || 2329 !password.value || 2330 !validateEmail(email.value) || 2331 password.value.length < 5) { 2332 isError = true; 2333 } 2334 2335 if (isError) { 2336 formCreate.submit(); 2337 } else { 2338 let data = { 2339 "form_type": "create_customer", 2340 "utf8": "â", 2341 "customer[first_name]": `${firstName.value}`, 2342 "customer[last_name]": `${lastName.value}`, 2343 "customer[email]": `${email.value}`, 2344 "customer[password]": `${password.value}`, 2345 } 2346 var formBody = []; 2347 for (var property in data) { 2348 var encodedKey = encodeURIComponent(property); 2349 var encodedValue = encodeURIComponent(data[property]); 2350 formBody.push(encodedKey + "=" + encodedValue); 2351 } 2352 formBody = formBody.join("&"); 2353 2354 try { 2355 let res = await fetch("/account", { 2356 method: "POST", 2357 headers: { 2358 "Content-Type": "application/x-www-form-urlencoded", 2359 }, 2360 body: formBody, 2361 }); 2362 let resUrl = res.url; 2363 if (res.status === 200) { 2364 if (resUrl.includes("/account/register")) { 2365 formCreate.submit(); 2366 } else { 2367 let url = BSS.redirect_url; 2368 localStorage.removeItem("BSS"); 2369 window.location.href = url; 2370 } 2371 } else { 2372 formCreate.submit(); 2373 } 2374 2375 } catch (error) { 2376 console.log('error: ', error); 2377 } 2378 } 2379 2380 }) 2381 2382 function validateEmail(email) { 2383 const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 2384 return regex.test(email); 2385 } 2386 } 2387 } 2388 2389 if (window.location.pathname.includes("/account/login")) { 2390 if (window.Shopify.shop === "protegisparts.myshopify.com") { 2391 setTimeout(() => { 2392 runInLoginPage(); 2393 }, 3000) 2394 } else { 2395 runInLoginPage(); 2396 } 2397 } 2398 2399 2400 if (window.location.pathname === "/account/register") { 2401 runInRegisterPage(); 2402 } 2403</script>
2403</main><!-- BEGIN sections: footer-group --> 2404<section id="shopify-section-sections--20944657744116__text-with-icons" class="shopify-section shopify-section-group-footer-group shopify-section--text-with-icons"><div class="section-spacing section-spacing--tight "> 2405 <div class="container"> 2406 <div class="v-stack gap-8"><text-with-icons-carousel disabled-on="sm" allow-swipe id="text-with-icons-sections--20944657744116__text-with-icons" class="text-with-icons full-bleed sm:unbleed" role="region" style="--border-color: var(--text-color) / 0.15;"><div class="text-with-icons__item is-selected snap-center" role="group" aria-label="Item 1 of 4" > 2407 <div class="v-stack gap-6 justify-items-center sm:justify-items-center"><img src="//ragenationapparel.com/cdn/shop/files/AR_Activated.png?v=1760909621&width=108" alt="" srcset="//ragenationapparel.com/cdn/shop/files/AR_Activated.png?v=1760909621&width=40 40w, //ragenationapparel.com/cdn/shop/files/AR_Activated.png?v=1760909621&width=80 80w" width="108" height="108" loading="lazy" sizes="40px" class="constrained-image" style="--image-mobile-max-width: 24px; --image-max-width: 40px"><div class="v-stack gap-2 text-center sm:text-center"><p class="h6">SWIFT SHPPING</p><div class="prose"><p>We pack and ship orders in-house, every weekday. Most orders placed Mon - Thurs will ship next day. </p></div></div></div> 2408 </div><div class="text-with-icons__item snap-center" role="group" aria-label="Item 2 of 4" > 2409 <div class="v-stack gap-6 justify-items-center sm:justify-items-center"><img src="//ragenationapparel.com/cdn/shop/files/Hand-Drawn.png?v=1760908952&width=100" alt="" srcset="//ragenationapparel.com/cdn/shop/files/Hand-Drawn.png?v=1760908952&width=40 40w, //ragenationapparel.com/cdn/shop/files/Hand-Drawn.png?v=1760908952&width=80 80w" width="100" height="100" loading="lazy" sizes="40px" class="constrained-image" style="--image-mobile-max-width: 24px; --image-max-width: 40px"><div class="v-stack gap-2 text-center sm:text-center"><p class="h6">ENDEARING SUPPORT</p><div class="prose"><p>Our customer service team is ready and available to ensure product quality and smooth delivery. </p></div></div></div> 2410 </div><div class="text-with-icons__item snap-center" role="group" aria-label="Item 3 of 4" > 2411 <div class="v-stack gap-6 justify-items-center sm:justify-items-center"><img src="//ragenationapparel.com/cdn/shop/files/Premium.png?v=1760919907&width=101" alt="" srcset="//ragenationapparel.com/cdn/shop/files/Premium.png?v=1760919907&width=40 40w, //ragenationapparel.com/cdn/shop/files/Premium.png?v=1760919907&width=80 80w" width="101" height="101" loading="lazy" sizes="40px" class="constrained-image" style="--image-mobile-max-width: 24px; --image-max-width: 40px"><div class="v-stack gap-2 text-center sm:text-center"><p class="h6">SCOOP NOW, PAY LATER</p><div class="prose"><p>Select Shop Pay or Afterpay at checkout to split your purchase into 4 interest-free payments.</p></div></div></div> 2412 </div><div class="text-with-icons__item snap-center" role="group" aria-label="Item 4 of 4" > 2413 <div class="v-stack gap-6 justify-items-center sm:justify-items-center"><img src="//ragenationapparel.com/cdn/shop/files/Lounge.png?v=1760920682&width=100" alt="" srcset="//ragenationapparel.com/cdn/shop/files/Lounge.png?v=1760920682&width=32 32w, //ragenationapparel.com/cdn/shop/files/Lounge.png?v=1760920682&width=64 64w" width="100" height="100" loading="lazy" sizes="32px" class="constrained-image" style="--image-mobile-max-width: 24px; --image-max-width: 32px"><div class="v-stack gap-2 text-center sm:text-center"><p class="h6">GUARDED CHECKOUT</p><div class="prose"><p>Choose from a variety of secure payment methods for a seamless transaction.</p></div></div></div> 2414 </div></text-with-icons-carousel><carousel-navigation aria-controls="text-with-icons-sections--20944657744116__text-with-icons" class="page-dots sm:hidden"><button class="tap-area" aria-current="true">
2415 <span class="sr-only">Go to item 1</span> 2416 </button><button class="tap-area" aria-current="false"> 2417 <span class="sr-only">Go to item 2</span> 2418 </button><button class="tap-area" aria-current="false"> 2419 <span class="sr-only">Go to item 3</span> 2420 </button><button class="tap-area" aria-current="false"> 2421 <span class="sr-only">Go to item 4</span> 2422 </button></carousel-navigation></div> 2423 </div> 2424 </div></section><footer id="shopify-section-sections--20944657744116__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><style> 2425 #shopify-section-sections--20944657744116__footer { 2426 --footer-content-justify-items: space-between; 2427 } 2428 2429 /* Accordion Base Styles */ 2430 .footer-accordion__title { 2431 display: flex; 2432 justify-content: space-between; 2433 align-items: center; 2434 width: 100%; 2435 padding: var(--accordion-padding, 1rem) 0; 2436 margin: 0; 2437 background: none; 2438 border: none; 2439 text-align: left; 2440 cursor: pointer; 2441 } 2442 2443 .footer-accordion__title::-webkit-details-marker { 2444 display: none; 2445 } 2446 2447 .footer-accordion .footer-accordion__icon { 2448 transition: transform 0.2s ease-out; 2449 height: 0.6rem; 2450 width: 0.6rem; 2451 flex-shrink: 0; 2452 } 2453 2454 .footer-accordion__icon--plus-minus { 2455 height: 1rem; 2456 width: 1rem; 2457 position: relative; 2458 } 2459 2460 .footer-accordion__icon--plus-minus .icon-minus { 2461 display: none; 2462 } 2463 2464 .footer-accordion__content { 2465 padding-bottom: 1.5rem; 2466 } 2467 2468 /* Mobile-Only Accordion Styles */ 2469 @media screen and (max-width: 749px) { 2470 .footer__block-list { 2471 --accordion-padding: 8px; 2472 border-top: 1px solid rgba(var(--color-foreground), 0.08); 2473 } 2474 2475 .footer__block--links, .footer__block--text { 2476 border-bottom: 1px solid rgba(var(--color-foreground), 0.08); 2477 } 2478 2479 .footer-accordion.is-open > .footer-accordion__title .icon-caret { 2480 transform: rotate(180deg); 2481 } 2482 2483 .footer-accordion.is-open > .footer-accordion__title .icon-plus { 2484 display: none; 2485 } 2486 2487 .footer-accordion.is-open > .footer-accordion__title .icon-minus { 2488 display: block; 2489 } 2490 2491 .footer-accordion.is-open > .footer-accordion__title > span { 2492 text-decoration: underline; 2493 text-underline-offset: 4px; 2494 } 2495 2496 .footer__block--image { 2497 display: flex; 2498 justify-content: ; 2499 } 2500 } 2501 2502 /* Desktop Styles (Accordion disabled) */ 2503 @media screen and (min-width: 750px) { 2504 .footer__block-list { 2505 display: grid; 2506 grid-auto-flow: column; 2507 justify-content: var(--footer-content-justify-items); 2508 gap: 48px; 2509 } 2510 2511 .footer-accordion__title { 2512 cursor: default; 2513 pointer-events: none; 2514 padding: 0; 2515 } 2516 2517 .footer-accordion__title .footer-accordion__icon { 2518 display: none; 2519 } 2520 2521 .footer-accordion__content { 2522 display: block !important; 2523 padding-bottom: 0; 2524 } 2525 } 2526</style> 2527 2528<div class="footer "> 2529 <div class="container"> 2530 <div class="footer__inner"><div class="footer__block-list"><div class="footer__block footer__block--image" ><img src="//ragenationapparel.com/cdn/shop/files/rage-2021-logo.png?v=1761263279&width=2421" alt="" srcset="//ragenationapparel.com/cdn/shop/files/rage-2021-logo.png?v=1761263279&width=300 300w, //ragenationapparel.com/cdn/shop/files/rage-2021-logo.png?v=1761263279&width=600 600w" width="2421" height="463" sizes="300px" style="--image-max-width: 300px" class="constrained-image"></div><div class="footer__block footer__block--text" ><div class="footer-accordion"><button 2531 class="footer-accordion__title h6" 2532 aria-expanded="false" 2533 aria-controls="footer-text-text"> 2534 <span>I N S P I R Î</span> 2535 <div class="footer-accordion__icon"><svg class="icon-plus" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" /></svg> 2536 <svg class="icon-minus" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 12h-15" /></svg></div> 2537 </button><div id="footer-text-text" class="footer-accordion__content" hidden><div class="prose text-subdued"><p>â he spirit is life.</p><p>â he mind is the builder.</p><p>â he physical is the result.</p><p>â each compassion</p><p>â each peace</p><p>â each love</p><p>Â ÎND HATÎ</p></div></div> 2538 </div></div><div class="footer__block footer__block--links" ><div class="footer-accordion"><button 2539 class="footer-accordion__title h6" 2540 aria-expanded="false" 2541 aria-controls="footer-links-links">
2542 <span>C O L L A B Ã R A T Î</span> 2543 <div class="footer-accordion__icon"><svg class="icon-plus" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" /></svg> 2544 <svg class="icon-minus" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 12h-15" /></svg></div> 2545 </button><div id="footer-links-links" class="footer-accordion__content" hidden> 2546 <ul class="v-stack gap-2.5 unstyled-list" role="list"><li> 2547 <a href="/pages/connect" class="link-faded">Submit Portfolio</a> 2548 </li><li> 2549 <a href="/pages/connect" class="link-faded">Wholesale Inquiries</a> 2550 </li><li> 2551 <a href="/pages/connect" class="link-faded">Vending Inquiries</a> 2552 </li></ul> 2553 </div> 2554 </div></div><div class="footer__block footer__block--links" ><div class="footer-accordion"><button 2555 class="footer-accordion__title h6" 2556 aria-expanded="false" 2557 aria-controls="footer-links-c81853dc-942f-4353-b34b-7607e80a1475"> 2558 <span>H Î L P</span> 2559 <div class="footer-accordion__icon"><svg class="icon-plus" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" /></svg> 2560 <svg class="icon-minus" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 12h-15" /></svg></div> 2561 </button><div id="footer-links-c81853dc-942f-4353-b34b-7607e80a1475" class="footer-accordion__content" hidden> 2562 <ul class="v-stack gap-2.5 unstyled-list" role="list"><li> 2563 <a href="/pages/faq" class="link-faded">FAQ</a> 2564 </li><li> 2565 <a href="/pages/connect" class="link-faded">Contact</a> 2566 </li><li> 2567 <a href="/pages/returns" class="link-faded">Returns</a> 2568 </li><li> 2569 <a href="/pages/care-instructions" class="link-faded">Care Instructions</a> 2570 </li><li> 2571 <a href="/pages/about-us" class="link-faded">Our Story</a> 2572 </li><li> 2573 <a href="/pages/privacy-policy" class="link-faded">Privacy Policy</a> 2574 </li></ul> 2575 </div> 2576 </div></div></div><ul class="social-media social-media--list unstyled-list" role="list"><li class="social-media__item branding-colors--facebook"> 2577 <a href="https://facebook.com/groups/ragenationfamily" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Facebook"><svg 2578 aria-hidden="true" 2579 focusable="false" 2580 width="24" 2581 class="icon icon-facebook" 2582 viewBox="0 0 24 24" 2583 > 2584 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.183 21.85v-8.868H7.2V9.526h2.983V6.982a4.17 4.17 0 0 1 4.44-4.572 22.33 22.33 0 0 1 2.667.144v3.084h-1.83a1.44 1.44 0 0 0-1.713 1.68v2.208h3.423l-.447 3.456h-2.97v8.868h-3.57Z" fill="currentColor"/> 2585 </svg></a> 2586 </li><li class="social-media__item branding-colors--twitter"> 2587 <a href="https://twitter.com/ragenation333" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Twitter"><svg 2588 aria-hidden="true" 2589 focusable="false" 2590 width="24" 2591 class="icon icon-twitter"
2592 viewBox="0 0 24 24" 2593 > 2594 <path d="M16.94 4h2.715l-5.93 6.777L20.7 20h-5.462l-4.278-5.593L6.065 20H3.35l6.342-7.25L3 4h5.6l3.868 5.113L16.94 4Zm-.952 14.375h1.504L7.784 5.54H6.17l9.818 12.836Z" fill="currentColor"/> 2595 </svg></a> 2596 </li><li class="social-media__item branding-colors--instagram"> 2597 <a href="https://www.instagram.com/ragenationapparel/" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on Instagram"><svg 2598 aria-hidden="true" 2599 focusable="false" 2600 width="24" 2601 class="icon icon-instagram" 2602 viewBox="0 0 24 24" 2603 > 2604 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/> 2605 </svg></a> 2606 </li><li class="social-media__item branding-colors--youtube"> 2607 <a href="https://www.youtube.com/@ragenationapparel" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on YouTube"><svg 2608 aria-hidden="true" 2609 focusable="false" 2610 width="24" 2611 class="icon icon-youtube" 2612 viewBox="0 0 24 24" 2613 > 2614 <path fill-rule="evenodd" clip-rule="evenodd" d="M20.44 5.243c.929.244 1.66.963 1.909 1.876.451 1.654.451 5.106.451 5.106s0 3.452-.451 5.106a2.681 2.681 0 0 1-1.91 1.876c-1.684.443-8.439.443-8.439.443s-6.754 0-8.439-.443a2.682 2.682 0 0 1-1.91-1.876c-.45-1.654-.45-5.106-.45-5.106s0-3.452.45-5.106a2.681 2.681 0 0 1 1.91-1.876c1.685-.443 8.44-.443 8.44-.443s6.754 0 8.438.443Zm-5.004 6.982L9.792 15.36V9.091l5.646 3.134Z" fill="currentColor"/> 2615 </svg></a> 2616 </li><li class="social-media__item branding-colors--tiktok"> 2617 <a href="https://www.tiktok.com/@ragenationapparel" class="tap-area" target="_blank" rel="noopener" aria-label="Follow on TikTok"><svg 2618 aria-hidden="true" 2619 focusable="false" 2620 width="24" 2621 class="icon icon-tiktok" 2622 viewBox="0 0 24 24" 2623 > 2624 <path d="M20.027 10.168a5.125 5.125 0 0 1-4.76-2.294v7.893a5.833 5.833 0 1 1-5.834-5.834c.122 0 .241.011.361.019v2.874c-.12-.014-.237-.036-.36-.036a2.977 2.977 0 0 0 0 5.954c1.644 0 3.096-1.295 3.096-2.94L12.56 2.4h2.75a5.122 5.122 0 0 0 4.72 4.573v3.195" fill="currentColor"/> 2625 </svg></a> 2626 </li></ul><div class="footer__aside"><p class="heading text-subdued text-xxs">© 2026 - Rage Nation Apparel</p></div> 2627 </div> 2628 </div> 2629</div> 2630
2631<script> 2632 class FooterAccordion { 2633 constructor(container) { 2634 this.container = container; 2635 this.button = this.container.querySelector('.footer-accordion__title'); 2636 this.content = this.container.querySelector('.footer-accordion__content'); 2637 this.isDesktop = window.matchMedia('(min-width: 750px)'); 2638 2639 this.init(); 2640 } 2641 2642 init() { 2643 // Bind the event listener once to avoid issues with multiple listeners 2644 this.toggle = this.toggle.bind(this); 2645 2646 this.isDesktop.addEventListener('change', () => this.onBreakpointChange()); 2647 this.onBreakpointChange(); 2648 } 2649 2650 onBreakpointChange() { 2651 if (this.isDesktop.matches) { 2652 this.content.hidden = false; 2653 this.button.setAttribute('aria-expanded', 'true'); 2654 this.container.classList.remove('is-open'); 2655 this.button.removeEventListener('click', this.toggle); 2656 } else { 2657 // Set initial state for mobile 2658 if(this.button.getAttribute('aria-expanded') !== 'true') { 2659 this.content.hidden = true; 2660 } 2661 this.button.addEventListener('click', this.toggle); 2662 } 2663 } 2664 2665 toggle() { 2666 const isExpanded = this.button.getAttribute('aria-expanded') === 'true'; 2667 this.content.hidden = !this.content.hidden; 2668 this.button.setAttribute('aria-expanded', !isExpanded); 2669 this.container.classList.toggle('is-open', !isExpanded); 2670 } 2671 } 2672 2673 document.querySelectorAll('.footer-accordion').forEach(accordion => { 2674 new FooterAccordion(accordion); 2675 }); 2676</script>
2676 2677 2678</footer> 2679<!-- END sections: footer-group --><style> 2680 .c-richtext-loyalty { 2681 margin-block-start: 50px !important; 2682 margin-block-end: 50px !important; 2683} 2684 .c-richtext-loyalty .container.container--sm { 2685 --container-max-width: 1200px; 2686} 2687.c-richtext-loyalty p.h1 { 2688 font-family: 'Oswald', sans-serif; 2689 letter-spacing: 0px; 2690 font-size: 26px; 2691} 2692 .c-richtext-loyalty p { 2693 font-size: 13px; 2694 font-family: 'Roboto', sans-serif; 2695} 2696 .c-multicolumn-loyalty { 2697 margin-block-start: 50px !important; 2698 margin-block-end: 50px !important; 2699 border: none !important; 2700 max-width: 1200px; 2701 margin: 0px auto; 2702} 2703 .c-multicolumn-loyalty .container { 2704 2705} 2706</style><link href="//ragenationapparel.com/cdn/shop/t/84/assets/rn-back-to-top.css?v=183840164112544328731768000107" rel="stylesheet" type="text/css" media="all" /> 2707 2708 <button 2709 type="button" 2710 class="rn-back-to-top " 2711 id="rn-back-to-top" 2712 aria-label="Back to top" 2713 tabindex="0" 2714 > 2715 <span class="rn-back-to-top__icon" aria-hidden="true"> 2716 <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> 2717 <polyline points="18 15 12 9 6 15"></polyline> 2718 </svg> 2719 </span> 2720 </button> 2721 2722
2722<script> 2723 (function() { 2724 var button = document.getElementById('rn-back-to-top'); 2725 if (!button) return; 2726 2727 var threshold = 25; 2728 var behavior = 'smooth'; 2729 var isVisible = false; 2730 2731 // Calculate scroll threshold in pixels 2732 function getThresholdPx() { 2733 var docHeight = document.documentElement.scrollHeight - window.innerHeight; 2734 return (threshold / 100) * docHeight; 2735 } 2736 2737 // Check scroll position and toggle visibility 2738 function checkScroll() { 2739 var scrollTop = window.pageYOffset || document.documentElement.scrollTop; 2740 var thresholdPx = getThresholdPx(); 2741 var shouldShow = scrollTop > thresholdPx; 2742 2743 if (shouldShow !== isVisible) { 2744 isVisible = shouldShow; 2745 button.classList.toggle('is-visible', isVisible); 2746 } 2747 } 2748 2749 // Scroll to top 2750 function scrollToTop() { 2751 window.scrollTo({ 2752 top: 0, 2753 behavior: behavior 2754 }); 2755 } 2756 2757 // Handle click 2758 button.addEventListener('click', function(e) { 2759 e.preventDefault(); 2760 scrollToTop(); 2761 }); 2762 2763 // Handle keyboard (Enter and Space) 2764 button.addEventListener('keydown', function(e) { 2765 if (e.key === 'Enter' || e.key === ' ' || e.keyCode === 13 || e.keyCode === 32) { 2766 e.preventDefault(); 2767 scrollToTop(); 2768 } 2769 }); 2770 2771 // Throttled scroll listener 2772 var scrollTimeout = null; 2773 function handleScroll() { 2774 if (scrollTimeout) return; 2775 scrollTimeout = setTimeout(function() { 2776 scrollTimeout = null; 2777 checkScroll(); 2778 }, 100); 2779 } 2780 2781 // Listen for scroll events 2782 window.addEventListener('scroll', handleScroll, { passive: true }); 2783 2784 // Initial check 2785 checkScroll(); 2786 })(); 2787 </script>
2787<style> </style> 2788<div id="shopify-block-AVElYbHJnemxjbVVrN__10840395464443086010" class="shopify-block shopify-app-block"> 2789 2790
2791<script> 2792 console.log("[Alia app extension] v1.0.5"); 2793 2794 const BACKEND_URL = "https://backend.alia-prod.com"; 2795 2796 window.ALIA_SHOPIFY_EXTENSION_INFO = { 2797 customerID: "", 2798 country: "US", 2799 market: "us", 2800 language: "en" 2801 } 2802 2803 if (document.readyState !== "loading") { 2804 initAlia(); 2805 } else { 2806 document.addEventListener("DOMContentLoaded", () => initAlia(), { once: true }); 2807 } 2808 2809 async function initAlia() { 2810 const url = BACKEND_URL + "/public/launcher.js?shopifyUrl=rage-nation-apparel.myshopify.com"; 2811 const script = document.createElement("script"); 2812 script.src = url; 2813 script.async = true; 2814 document.head.appendChild(script); 2815 } 2816</script>
2816 2817 2818</div><div id="shopify-block-Ad3lHck9Ccldkb2R1R__12526071353035850722" class="shopify-block shopify-app-block"> 2819
2819<script defer src="https://backinstock.useamp.com/widget/31898_1783060191.js?category=bis&v=6"></script>
2819 2820 2821
2822<script id="back-in-stock-helper-embedded"> 2823 var _BISConfig = _BISConfig || {}; 2824 2825 2826 2827 2828</script>
2828 2829
2830<script id="preorders-helper-embedded"> 2831 2832</script>
2832 2833
2834<script id="low-stock-helper-embedded"> 2835 2836</script>
2836 2837 2838 2839 2840
2841<script defer type="module" src="https://cdn.shopify.com/extensions/01a0ae82-28b0-715d-bb47-827eda8f44e3/back-in-stock-69/assets/wishlist.js"></script>
2841 2842 2843
2844<script defer type="module" src="https://cdn.shopify.com/extensions/01a0ae82-28b0-715d-bb47-827eda8f44e3/back-in-stock-69/assets/preorder-product-page-updater.js"></script>
2844 2845 2846 2847 2848 2849</div><div id="shopify-block-AQlpoaUpjbFBGTVEvb__13725594251442436114" class="shopify-block shopify-app-block"><div class="fabrikator__hidden-values" style="display: none"> 2850 <input type="hidden" id="fabrikator-add-to-cart-button-selector" value="form[action*='/cart/add'] button[type='submit']"> 2851 <input type="hidden" id="fabrikator-form-selector" value="form[action*='/cart/add']"> 2852 <input type="hidden" id="fabrikator-hidden-elements-selectors" value=".shopify-payment-button"> 2853 <input type="hidden" id="fabrikator-pre-order-text-selector" value="Pre-Order"> 2854 <input type="hidden" id="fabrikator-pre-order-bg-color-selector" value="#eaeaea"> 2855 <input type="hidden" id="fabrikator-pre-order-text-color-selector" value="#000000"> 2856</div> 2857 2858</div>
2858<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2858 2859</body> 2860</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.