PageSourceSearch

https://ragenationapparel.com/cart

html ragenationapparel.com collected 2026-10-09 01:50:31 UTC 403,719 bytes, 2,860 lines download raw bytes

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="[{&quot;supports_subs&quot;:true,&quot;supports_def_opts&quot;:false,&quot;name&quot;:&quot;shop_pay&quot;,&quot;wallet_params&quot;:{&quot;shopId&quot;:11852902,&quot;merchantName&quot;:&quot;Rage Nation Apparel&quot;,&quot;personalized&quot;:true}},{&quot;supports_subs&quot;:false,&quot;supports_def_opts&quot;:false,&quot;name&quot;:&quot;amazon_pay&quot;,&quot;wallet_params&quot;:{&quot;checkoutLanguage&quot;:&quot;en_US&quot;,&quot;ledgerCurrency&quot;:&quot;USD&quot;,&quot;placement&quot;:&quot;Cart&quot;,&quot;sandbox&quot;:false,&quot;merchantId&quot;:&quot;A32G1KHF3KJI97&quot;,&quot;productType&quot;:&quot;PayAndShip&quot;,&quot;design&quot;:&quot;C0002&quot;}},{&quot;supports_subs&quot;:true,&quot;supports_def_opts&quot;:false,&quot;name&quot;:&quot;paypal&quot;,&quot;wallet_params&quot;:{&quot;shopId&quot;:11852902,&quot;countryCode&quot;:&quot;US&quot;,&quot;merchantName&quot;:&quot;Rage Nation Apparel&quot;,&quot;phoneRequired&quot;:false,&quot;companyRequired&quot;:false,&quot;shippingType&quot;:&quot;shipping&quot;,&quot;shopifyPaymentsEnabled&quot;:true,&quot;hasManagedSellingPlanState&quot;:false,&quot;requiresBillingAgreement&quot;:false,&quot;gatewayType&quot;:&quot;CONNECTED&quot;,&quot;merchantId&quot;:&quot;4HHQWY7W74NYJ&quot;,&quot;sdkUrl&quot;:&quot;https://www.paypal.com/sdk/js?components=buttons\u0026commit=false\u0026currency=USD\u0026locale=en_US\u0026client-id=AexZEtAxk09Ncgj6FSWFFyGKbxxAZ_LTyJ2DPdJWl1YUlecinmc5AfIaRF2qYjWlusWahlzz6SVkY5Ci\u0026merchant-id=4HHQWY7W74NYJ\u0026intent=authorize&quot;,&quot;serviceableCountryCodes&quot;:[&quot;AC&quot;,&quot;AD&quot;,&quot;AE&quot;,&quot;AF&quot;,&quot;AG&quot;,&quot;AI&quot;,&quot;AL&quot;,&quot;AM&quot;,&quot;AO&quot;,&quot;AR&quot;,&quot;AT&quot;,&quot;AU&quot;,&quot;AW&quot;,&quot;AX&quot;,&quot;AZ&quot;,&quot;BA&quot;,&quot;BB&quot;,&quot;BD&quot;,&quot;BE&quot;,&quot;BF&quot;,&quot;BG&quot;,&quot;BH&quot;,&quot;BI&quot;,&quot;BJ&quot;,&quot;BL&quot;,&quot;BM&quot;,&quot;BN&quot;,&quot;BO&quot;,&quot;BQ&quot;,&quot;BR&quot;,&quot;BS&quot;,&quot;BT&quot;,&quot;BW&quot;,&quot;BY&quot;,&quot;BZ&quot;,&quot;CA&quot;,&quot;CC&quot;,&quot;CD&quot;,&quot;CF&quot;,&quot;CG&quot;,&quot;CH&quot;,&quot;CI&quot;,&quot;CK&quot;,&quot;CL&quot;,&quot;CM&quot;,&quot;CN&quot;,&quot;CO&quot;,&quot;CR&quot;,&quot;CV&quot;,&quot;CW&quot;,&quot;CX&quot;,&quot;CY&quot;,&quot;CZ&quot;,&quot;DE&quot;,&quot;DJ&quot;,&quot;DK&quot;,&quot;DM&quot;,&quot;DO&quot;,&quot;DZ&quot;,&quot;EC&quot;,&quot;EE&quot;,&quot;EG&quot;,&quot;EH&quot;,&quot;ER&quot;,&quot;ES&quot;,&quot;ET&quot;,&quot;FI&quot;,&quot;FJ&quot;,&quot;FK&quot;,&quot;FO&quot;,&quot;FR&quot;,&quot;GA&quot;,&quot;GB&quot;,&quot;GD&quot;,&quot;GE&quot;,&quot;GF&quot;,&quot;GG&quot;,&quot;GH&quot;,&quot;GI&quot;,&quot;GL&quot;,&quot;GM&quot;,&quot;GN&quot;,&quot;GP&quot;,&quot;GQ&quot;,&quot;GR&quot;,&quot;GS&quot;,&quot;GT&quot;,&quot;GW&quot;,&quot;GY&quot;,&quot;HK&quot;,&quot;HN&quot;,&quot;HR&quot;,&quot;HT&quot;,&quot;HU&quot;,&quot;ID&quot;,&quot;IE&quot;,&quot;IL&quot;,&quot;IM&quot;,&quot;IN&quot;,&quot;IO&quot;,&quot;IQ&quot;,&quot;IS&quot;,&quot;IT&quot;,&quot;JE&quot;,&quot;JM&quot;,&quot;JO&quot;,&quot;JP&quot;,&quot;KE&quot;,&quot;KG&quot;,&quot;KH&quot;,&quot;KI&quot;,&quot;KM&quot;,&quot;KN&quot;,&quot;KR&quot;,&quot;KW&quot;,&quot;KY&quot;,&quot;KZ&quot;,&quot;LA&quot;,&quot;LB&quot;,&quot;LC&quot;,&quot;LI&quot;,&quot;LK&quot;,&quot;LR&quot;,&quot;LS&quot;,&quot;LT&quot;,&quot;LU&quot;,&quot;LV&quot;,&quot;LY&quot;,&quot;MA&quot;,&quot;MC&quot;,&quot;MD&quot;,&quot;ME&quot;,&quot;MF&quot;,&quot;MG&quot;,&quot;MK&quot;,&quot;ML&quot;,&quot;MM&quot;,&quot;MN&quot;,&quot;MO&quot;,&quot;MQ&quot;,&quot;MR&quot;,&quot;MS&quot;,&quot;MT&quot;,&quot;MU&quot;,&quot;MV&quot;,&quot;MW&quot;,&quot;MX&quot;,&quot;MY&quot;,&quot;MZ&quot;,&quot;NA&quot;,&quot;NC&quot;,&quot;NE&quot;,&quot;NF&quot;,&quot;NG&quot;,&quot;NI&quot;,&quot;NL&quot;,&quot;NO&quot;,&quot;NP&quot;,&quot;NR&quot;,&quot;NU&quot;,&quot;NZ&quot;,&quot;OM&quot;,&quot;PA&quot;,&quot;PE&quot;,&quot;PF&quot;,&quot;PG&quot;,&quot;PH&quot;,&quot;PK&quot;,&quot;PL&quot;,&quot;PM&quot;,&quot;PN&quot;,&quot;PS&quot;,&quot;PT&quot;,&quot;PY&quot;,&quot;QA&quot;,&quot;RE&quot;,&quot;RO&quot;,&quot;RS&quot;,&quot;RU&quot;,&quot;RW&quot;,&quot;SA&quot;,&quot;SB&quot;,&quot;SC&quot;,&quot;SD&quot;,&quot;SE&quot;,&quot;SG&quot;,&quot;SH&quot;,&quot;SI&quot;,&quot;SJ&quot;,&quot;SK&quot;,&quot;SL&quot;,&quot;SM&quot;,&quot;SN&quot;,&quot;SO&quot;,&quot;SR&quot;,&quot;SS&quot;,&quot;ST&quot;,&quot;SV&quot;,&quot;SX&quot;,&quot;SZ&quot;,&quot;TA&quot;,&quot;TC&quot;,&quot;TD&quot;,&quot;TF&quot;,&quot;TG&quot;,&quot;TH&quot;,&quot;TJ&quot;,&quot;TK&quot;,&quot;TL&quot;,&quot;TM&quot;,&quot;TN&quot;,&quot;TO&quot;,&quot;TR&quot;,&quot;TT&quot;,&quot;TV&quot;,&quot;TW&quot;,&quot;TZ&quot;,&quot;UA&quot;,&quot;UG&quot;,&quot;UM&quot;,&quot;US&quot;,&quot;UY&quot;,&quot;UZ&quot;,&quot;VA&quot;,&quot;VC&quot;,&quot;VE&quot;,&quot;VG&quot;,&quot;VN&quot;,&quot;VU&quot;,&quot;WF&quot;,&quot;WS&quot;,&quot;XK&quot;,&quot;YE&quot;,&quot;YT&quot;,&quot;ZA&quot;,&quot;ZM&quot;,&quot;ZW&quot;]}}]" access-token="cf18bd454bd187a3a0ffed8015f46b1b" buyer-country="US" buyer-locale="en" buyer-currency="USD" shop-id="11852902" cart-id="2590b7f925f071f5a2892215da11d633" enabled-flags="[&quot;1172c16a&quot;,&quot;a1d1f9a1&quot;,&quot;f5afabb3&quot;,&quot;370070f3&quot;]" > <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'>&nbsp</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'>&nbsp</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'>&nbsp</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&amp;width=2776" alt="" srcset="//ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&amp;width=200 200w, //ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&amp;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&amp;width=2776" alt="" srcset="//ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&amp;width=200 200w, //ragenationapparel.com/cdn/shop/files/chrome-togo-scarab-site.png?v=1760999499&amp;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&amp;width=108" alt="" srcset="//ragenationapparel.com/cdn/shop/files/AR_Activated.png?v=1760909621&amp;width=40 40w, //ragenationapparel.com/cdn/shop/files/AR_Activated.png?v=1760909621&amp;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&amp;width=100" alt="" srcset="//ragenationapparel.com/cdn/shop/files/Hand-Drawn.png?v=1760908952&amp;width=40 40w, //ragenationapparel.com/cdn/shop/files/Hand-Drawn.png?v=1760908952&amp;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&amp;width=101" alt="" srcset="//ragenationapparel.com/cdn/shop/files/Premium.png?v=1760919907&amp;width=40 40w, //ragenationapparel.com/cdn/shop/files/Premium.png?v=1760919907&amp;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&amp;width=100" alt="" srcset="//ragenationapparel.com/cdn/shop/files/Lounge.png?v=1760920682&amp;width=32 32w, //ragenationapparel.com/cdn/shop/files/Lounge.png?v=1760920682&amp;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&amp;width=2421" alt="" srcset="//ragenationapparel.com/cdn/shop/files/rage-2021-logo.png?v=1761263279&amp;width=300 300w, //ragenationapparel.com/cdn/shop/files/rage-2021-logo.png?v=1761263279&amp;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.