1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <meta content="IE=edge" http-equiv="X-UA-Compatible" /> 6 <meta content="width=device-width,initial-scale=1" name="viewport" /> 7 <link rel="canonical" href="https://rosemackie.com/cart" /> 8 9 <title>Your Shopping Cart | RoseMackie</title> 10 11 12<meta name="description" content="The official website and shop of Rose Mackie. Find the latest content, buy merch, and support your favorite creator." /> 13<meta property="og:site_name" content="RoseMackie" /> 14<meta property="og:url" content="https://rosemackie.com/cart" /> 15<meta property="og:description" content="The official website and shop of Rose Mackie. Find the latest content, buy merch, and support your favorite creator." /> 16 17 18 19 20 21<meta property="og:title" content="Your Shopping Cart | RoseMackie" /> 22<meta property="og:type" content="website" /> 23 24 25 <meta property="og:image" content="https://imgproxy.fourthwall.dev/Zsd_ryJEwXQD0J-Op03NtWYtcajt-zCApB7ttAPGrcg/w:1200/sm:1/enc/W7DgHxN3Uvk67dOZ/8_spiB8s2uHG1VYz/1d1hdwA1g8Tw_JNM/0hwjwkBhvC-Aerg0/1XF4uYdFT4a787OK/6KZSudQwshINMWna/ZOIp0FUwZ3jOFZh5/UgEvdlxcNdl5sXX2/SmXro4ae4S6WuPsd/SW5P19w8JSlBJ6bJ/M7HTcRsGGjE-Vzz-/evxqel4_yQUXWur_/CSC4o64N5GRES019/rm8gBY_dw26O2y5W/9qQCdUx4YdiEmbR7/r97NBwBY-Jj3zIMi.png" /> 26 <meta property="og:image:secure_url" content="https://imgproxy.fourthwall.dev/Zsd_ryJEwXQD0J-Op03NtWYtcajt-zCApB7ttAPGrcg/w:1200/sm:1/enc/W7DgHxN3Uvk67dOZ/8_spiB8s2uHG1VYz/1d1hdwA1g8Tw_JNM/0hwjwkBhvC-Aerg0/1XF4uYdFT4a787OK/6KZSudQwshINMWna/ZOIp0FUwZ3jOFZh5/UgEvdlxcNdl5sXX2/SmXro4ae4S6WuPsd/SW5P19w8JSlBJ6bJ/M7HTcRsGGjE-Vzz-/evxqel4_yQUXWur_/CSC4o64N5GRES019/rm8gBY_dw26O2y5W/9qQCdUx4YdiEmbR7/r97NBwBY-Jj3zIMi.png" /> 27 <meta property="twitter:image" content="https://imgproxy.fourthwall.dev/Zsd_ryJEwXQD0J-Op03NtWYtcajt-zCApB7ttAPGrcg/w:1200/sm:1/enc/W7DgHxN3Uvk67dOZ/8_spiB8s2uHG1VYz/1d1hdwA1g8Tw_JNM/0hwjwkBhvC-Aerg0/1XF4uYdFT4a787OK/6KZSudQwshINMWna/ZOIp0FUwZ3jOFZh5/UgEvdlxcNdl5sXX2/SmXro4ae4S6WuPsd/SW5P19w8JSlBJ6bJ/M7HTcRsGGjE-Vzz-/evxqel4_yQUXWur_/CSC4o64N5GRES019/rm8gBY_dw26O2y5W/9qQCdUx4YdiEmbR7/r97NBwBY-Jj3zIMi.png" /> 28 29<meta name="twitter:card" content="summary_large_image" /> 30<meta name="twitter:title" content="Your Shopping Cart | RoseMackie" /> 31<meta name="twitter:description" content="The official website and shop of Rose Mackie. Find the latest content, buy merch, and support your favorite creator." /> 32 33 34 <link rel="shortcut icon" href="https://imgproxy.fourthwall.dev/NA4j1N0PhlQlLnJM8FL-mG1kHgPJy6Fugrlu10NZP7M/s:96:96/sm:1/enc/E8ck9tUfM7_Xrz6F/Ce6M2TFVuW4LL-Z5/H4k8lFNFqyjHhfl6/Qpa-5gfp8LL2l0d0/PtXakyS0mUpFqdDm/SW93fF1viJ5_nCJC/Al2RFOQ-k82M8NE1/azBIcIDriym0G3Vf/enQx8G6DndBz-ep2/KEgPtUOv2QyZYfxV/7QlOTL-n_MJCq71k/qLOIdcOZtGbB8yVj/PhR0802Pu5nD5yKG/Re4wpzxfIUJXu3HO/s1oF8oXAUN-SBliD/5c8vDSlyOIZHstmW.webp" sizes="96x96" type="image/png" /> 35<link rel="shortcut icon" href="https://imgproxy.fourthwall.dev/_RCDJOQ5TYOzJP-se6I7aCJSgDwDHV2VM_tNE-K8PpY/s:48:48/sm:1/enc/E8ck9tUfM7_Xrz6F/Ce6M2TFVuW4LL-Z5/H4k8lFNFqyjHhfl6/Qpa-5gfp8LL2l0d0/PtXakyS0mUpFqdDm/SW93fF1viJ5_nCJC/Al2RFOQ-k82M8NE1/azBIcIDriym0G3Vf/enQx8G6DndBz-ep2/KEgPtUOv2QyZYfxV/7QlOTL-n_MJCq71k/qLOIdcOZtGbB8yVj/PhR0802Pu5nD5yKG/Re4wpzxfIUJXu3HO/s1oF8oXAUN-SBliD/5c8vDSlyOIZHstmW.webp" sizes="48x48" type="image/png" /> 36 37 38 <link rel="apple-touch-icon" href="https://imgproxy.fourthwall.dev/RAh13HNJ0M_gGswZBefKB3JyEmJl2-auABCW7BSfmW8/s:180:180/sm:1/enc/E8ck9tUfM7_Xrz6F/Ce6M2TFVuW4LL-Z5/H4k8lFNFqyjHhfl6/Qpa-5gfp8LL2l0d0/PtXakyS0mUpFqdDm/SW93fF1viJ5_nCJC/Al2RFOQ-k82M8NE1/azBIcIDriym0G3Vf/enQx8G6DndBz-ep2/KEgPtUOv2QyZYfxV/7QlOTL-n_MJCq71k/qLOIdcOZtGbB8yVj/PhR0802Pu5nD5yKG/Re4wpzxfIUJXu3HO/s1oF8oXAUN-SBliD/5c8vDSlyOIZHstmW.webp" sizes="180x180" type="image/png" /> 39 40 41<meta content="#ffffff" name="msapplication-TileColor" /> 42<meta content="1.0.0" name="version" /> 43 44 45 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes-library/assets/c97a08c2-fa31-4bff-93d5-c7aad9121754/assets/vendor.css?v=b1b11eb5397f6f25bd27f727622a7b127d42cd4e0ede0f0b643a4ec082686d92" media="all" integrity="sha256-sbEetTl/byW9J/cnYip7En1CzU4O3g8LZDpOw
45IJobZI=" crossorigin="anonymous" /> 46 47 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/1ac0478f-37a1-41fa-8c6f-6ad72af86699/assets/styles/css-variables.scss.css?v=c9adf795aebebebdedb72c80e29f2ee608eed7015d0fd212116d25f3351a4df8" media="all" integrity="sha256-ya33la6+vr3ttyyA4p8u5gju1wFdD9ISEW0l8zUaTfg=" crossorigin="anonymous" /> 48 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/1ac0478f-37a1-41fa-8c6f-6ad72af86699/assets/styles/theme.scss.css?v=c4e0faae7235a7742a2a1b71a174e644abe153cf42479c37edcb8ec7ac718554" media="all" integrity="sha256-xOD6rnI1p3QqKhtxoXTmRKvhU89CR5w37cuOx6xxhVQ=" crossorigin="anonymous" /> 49 50 <link rel="preconnect" href="https://imgproxy.fourthwall.com" crossorigin> 51<link rel="preconnect" href="https://storage.googleapis.com" crossorigin>
52<script src="/platform/geo/redirect.js"></script>
vendor: 1 bytes, line 52
52
53<script src="https://js.stripe.com/v3/" async></script>
53 54<link rel="alternate" href="https://rosemackie.com/cart" hreflang="x-default" /> 55<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-AQ" /> 56<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-AS" /> 57<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-BQ" /> 58<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-EC" /> 59<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-FM" /> 60<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-GU" /> 61<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-IO" /> 62<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-MH" /> 63<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-MP" /> 64<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-PR" /> 65<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-PW" /> 66<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-SV" /> 67<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-TC" /> 68<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-UM" /> 69<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-US" /> 70<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-VG" /> 71<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-VI" /> 72<link rel="alternate" href="https://rosemackie.com/en-usd/cart" hreflang="en-ZW" /> 73<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-AD" /> 74<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-AT" /> 75<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-AX" /> 76<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-BE" /> 77<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-BG" /> 78<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-BL" /> 79<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-CY" /> 80<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-DE" /> 81<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-EE" /> 82<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-ES" /> 83<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-FI" /> 84<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-FR" /> 85<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-GF" /> 86<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-GP" /> 87<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-GR" /> 88<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-HR" /> 89<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-IE" /> 90<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-IT" /> 91<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-LT" /> 92<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-LU" /> 93<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-LV" /> 94<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-MC" /> 95<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-ME" /> 96<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-MF" /> 97<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-MQ" /> 98<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-MT" /> 99<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-NL" /> 100<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-PM" /> 101<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-PT" /> 102<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-RE" /> 103<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-SI" /> 104<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-SK" /> 105<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-SM" /> 106<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-TF" /> 107<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-VA" /> 108<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-YT" /> 109<link rel="alternate" href="https://rosemackie.com/en-eur/cart" hreflang="en-XK" /> 110<link rel="alternate" href="https://rosemackie.com/en-cad/cart" hreflang="en-CA" /> 111<link rel="alternate" href="https://rosemackie.com/en-gbp/cart" hreflang="en-GB" /> 112<link rel="alternate" href="https://rosemackie.com/en-gbp/cart" hreflang="en-GG" /> 113<link rel="alternate" href="https://rosemackie.com/en-gbp/cart" hreflang="en-GS" /> 114<link rel="alternate" href="https://rosemackie.com/en-gbp/cart" hreflang="en-IM" /> 115<link rel="alternate" href="https://rosemackie.com/en-gbp/cart" hreflang="en-JE" /> 116<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-AU" /> 117<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-CC" /> 118<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-CX" /> 119<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-HM" /> 120<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-KI" /> 121<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-NF" /> 122<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-NR" /> 123<link rel="alternate" href="https://rosemackie.com/en-aud/cart" hreflang="en-TV" /> 124<link rel="alternate" href="https://rosemackie.com/en-nzd/cart" hreflang="en-CK" /> 125<link rel="alternate" href="https://rosemackie.com/en-nzd/cart" hreflang="en-NU" /> 126<link rel="alternate" href="https://rosemackie.com/en-nzd/cart" hreflang="en-NZ" /> 127<link rel="alternate" href="https://rosemackie.com/en-nzd/cart" hreflang="en-PN" /> 128<link rel="alternate" href="https://rosemackie.com/en-nzd/cart" hreflang="en-TK" /> 129<link rel="alternate" href="https://rosemackie.com/en-sek/cart" hreflang="en-SE" /> 130<link rel="alternate" href="https://rosemackie.com/en-nok/cart" hreflang="en-BV" /> 131<link rel="alternate" href="https://rosemackie.com/en-nok/cart" hreflang="en-NO" /> 132<link rel="alternate" href="https://rosemackie.com/en-nok/cart" hreflang="en-SJ" /> 133<link rel="alternate" href="https://rosemackie.com/en-dkk/cart" hreflang="en-DK" /> 134<link rel="alternate" href="https://rosemackie.com/en-dkk/cart" hreflang="en-FO" /> 135<link rel="alternate" href="https://rosemackie.com/en-dkk/cart" hreflang="en-GL" /> 136<link rel="alternate" href="https://rosemackie.com/en-pln/cart" hreflang="en-PL" /> 137<link rel="alternate" href="https://rosemackie.com/en-inr/cart" hreflang="en-IN" /> 138<link rel="alternate" href="https://rosemackie.com/en-jpy/cart" hreflang="en-JP" /> 139<link rel="alternate" href="https://rosemackie.com/en-myr/cart" hreflang="en-MY" /> 140<link rel="alternate" href="https://rosemackie.com/en-sgd/cart" hreflang="en-SG" /> 141<link rel="alternate" href="https://rosemackie.com/en-mxn/cart" hreflang="en-MX" /> 142<link rel="alternate" href="https://rosemackie.com/en-brl/cart" hreflang="en-BR" /> 143<link rel="alternate" href="https://rosemackie.com/en-chf/cart" hreflang="en-CH" /> 144<link rel="alternate" href="https://rosemackie.com/en-chf/cart" hreflang="en-LI" />
vendor: 68 bytes, lines 144-145
144 145<script src="https://www.google.com/recaptcha/enterprise.js?render=
1456LcUIoYlAAAAALE9OrjdIcUfeYTpTq5RlXh5HuZt
vendor: 18 bytes, line 145
145" async></script>
146<script>window.recaptchaSiteKey = '6LcUIoYlAAAAALE9OrjdIcUfeYTpTq5RlXh5HuZt';</script>
146 147<style> 148 .grecaptcha-badge { display: none !important; } 149</style>
150<script type='module' src="https://cdn.fourthwall.dev/web-perf/instant.js" defer></script>
vendor: 1 bytes, line 150
150
151<script> 152 window.shopName = 'RoseMackie'; 153 window.shopId = 'sh_6fa713c7-6a12-4abe-8f2a-6f11177e14cc'; 154 window.cookie_policy = 'ShowInEu'; 155</script>
155 156<!-- Google Tag Manager -->
157<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 158new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 159j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 160'/_c/mtg.js?id='+i+dl;f.parentNode.insertBefore(j,f); 161})(window,document,'script','dataLayer','GTM-PV2BBNN');</script>
161 162<!-- End Google Tag Manager -->
163<script>window.creatorGa4Id = 'G-WE16P9VCDR'; window.creatorFbPixelId = '759037843540887'; window.creatorTiktokAnalyticsId = ''; window.creatorKlaviyoAnalyticsId = ''; window.useServerAnalytics = true;</script>
vendor: 1 bytes, line 163
163
164<script> 165 (function () { 166 function setCookie(name, value, days) { 167 if (typeof days === 'undefined') days = 90; 168 var expires = new Date(Date.now() + days * 86400000).toUTCString(); 169 document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value.substring(0, 200)) + '; expires=' + expires + '; path=/'; 170 } 171 172 function getCookie(name) { 173 var cookies = document.cookie.split('; '); 174 for (var i = 0; i < cookies.length; i++) { 175 if (cookies[i].indexOf(name + '=') === 0) { 176 return cookies[i].split('=')[1]; 177 } 178 } 179 return null; 180 } 181 182 function handleTrackingParams() { 183 var params = window.location.search.substring(1).split('&'); 184 var paramMap = {}; 185 186 for (var i = 0; i < params.length; i++) { 187 var kv = params[i].split('='); 188 if (kv.length === 2) { 189 paramMap[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1]); 190 } 191 } 192 193 if (!getCookie('_fbp')) { 194 var randomPart = Math.floor(Math.random() * 10000000000); 195 var fbp = 'fb.1.' + Date.now() + '.' + randomPart; 196 setCookie('_fbp', fbp); 197 } 198 199 for (var key in paramMap) { 200 if (paramMap.hasOwnProperty(key)) { 201 var value = paramMap[key]; 202 var isUTM = key.indexOf('utm_') === 0; 203 204 if(key === 'utm_source' && getCookie('utm_source') === 'fourthwall_ads') { 205 continue; 206 } 207 208 if (isUTM || key === 'gclid' || key === 'fbclid') { 209 setCookie(key, value); 210 } 211 212 if (key === 'fbclid' && !getCookie('_fbc')) { 213 var fbc = 'fb.1.' + Date.now() + '.' + value; 214 setCookie('_fbc', fbc); 215 } 216 } 217 } 218 } 219 220 handleTrackingParams(); 221 })(); 222</script>
vendor: 1 bytes, line 222
222
223<script type='text/javascript'>var eventsListenerScript = document.createElement('script');eventsListenerScript.async = true;eventsListenerScript.src = "https://cdn.fourthwall.dev/shop-event-listener/shop-events-listener.js";document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);</script>
223 224<meta name='theme-color' content='#F6EDFB' /> 225<link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/1ac0478f-37a1-41fa-8c6f-6ad72af86699/assets/styles/custom_sections.css?v=c49528a1f22de45ea37696242f074e4457c8b7c0ce5fbd3e9a71576a86943fc9" media="all">
226<script> 227 (function() { 228 window.addEventListener('cart:updated', function(event) { 229 var cart = event.detail; 230 if (!cart || !cart.items || !cart.items.length) return; 231 var currency = 'USD'; 232 var isZeroDecimal = currency === 'JPY'; 233 var items = cart.items.map(function(item) { 234 var price = isZeroDecimal ? item.price : item.price / 100; 235 return { 236 item_id: item.id || item.offer_id, 237 item_name: item.title || item.name, 238 item_brand: `RoseMackie`, 239 price: price, 240 quantity: item.quantity || 1 241 }; 242 }); 243 var value = isZeroDecimal ? cart.total_price : cart.total_price / 100; 244 dataLayer.push({ ecommerce: null }); 245 dataLayer.push({ 246 event: "view_cart", 247 ecommerce: { 248 currency: currency, 249 value: value, 250 items: items 251 }, 252 shopId: 'sh_6fa713c7-6a12-4abe-8f2a-6f11177e14cc' 253 }); 254 }, { once: true }); 255 })(); 256</script>
vendor: 1 bytes, line 256
256
257<script type="text/javascript"> 258 var currentCart = {"id":null,"item_count":0,"unique_item_count":0,"items":[]}; 259</script>
vendor: 1 bytes, line 259
259
260<script type="module"> 261 function iframeReady(section, iframe, url, appId, settings) { 262 const baseIframeUrl = url; 263 264 function buildUrl(url, params) { 265 if (!params) return url; 266 var qs = Object.keys(params) 267 .map((k) => encodeURIComponent(k) + '=' + encodeURIComponent(params[k])) 268 .join('&'); 269 return url + (url.includes('?') ? '&' : '?') + qs + '&' + settings; 270 } 271 272 const params = { 273 hmac: window.appHmac[appId], 274 timestamp: window.hmacTimestamp, 275 tier_id: window.tierId, 276 supporter_id: window.supporterId, 277 shop_id: window.shopId, 278 }; 279 280 iframe.src = buildUrl(baseIframeUrl, window.appHmac[appId] ? params : null); 281 iframe.onload = null 282 283 // Extract origin from URL for security checking 284 let expectedOrigin; 285 try { 286 expectedOrigin = new URL(url).origin; 287 } catch (e) { 288 console.warn('Could not parse URL origin:', url); 289 } 290 291 // Listen for messages specifically from this iframe 292 const messageHandler = (event) => { 293 // Check if the message is from this specific iframe 294 if (event.source !== iframe.contentWindow) { 295 return; // Ignore messages from other iframes/windows 296 } 297 298 // Optional: Also verify the origin for security 299 if (expectedOrigin && event.origin !== expectedOrigin) { 300 console.warn('Message received from unexpected origin:', event.origin); 301 return; 302 } 303 304 if (event.data.type === 'RESIZE') { 305 iframe.style.height = event.data.data.height + 'px'; 306 } else if (event.data.type === 'CLOSE') { 307 section.style.height = '0px'; 308 } 309 }; 310 311 window.addEventListener('message', messageHandler); 312 313 // Store the handler for cleanup (optional) 314 iframe._messageHandler = messageHandler; 315 } 316 317 class Hmac extends HTMLElement { 318 constructor() { 319 super() 320 this.section = this.parentElement.parentElement; 321 this.iframe = this.querySelector('iframe') 322 this.url = this.getAttribute('url') 323 this.appId = this.getAttribute('app_id') 324 this.settings = this.getAttribute('settings') 325 } 326 327 connectedCallback() { 328 if (this.iframe && this.iframe.contentDocument && this.iframe.contentDocument.readyState === 'complete') { 329 iframeReady(this.section, this.iframe, this.url, this.appId, this.settings) 330 } else { 331 this.iframe.onload = () => iframeReady(this.section, this.iframe, this.url, this.appId, this.settings) 332 } 333 } 334 335 disconnectedCallback() { 336 if (this.iframe && this.iframe._messageHandler) { 337 window.removeEventListener('message', this.iframe._messageHandler); 338 delete this.iframe._messageHandler; 339 } 340 } 341 } 342 343 customElements.define('app-hmac-component', Hmac) 344</script>
344 345 346 </head> 347 348 349 350 351 352 353 <body class="body cart " > 354 <!-- Google Tag Manager (noscript) --> 355<noscript><iframe src='/_c/ns.html?id=GTM-PV2BBNN' 356height='0' width='0' style='display:none;visibility:hidden'></iframe></noscript> 357<!-- End Google Tag Manager (noscript) --> 358 359 <a href="#main-content" class="skip-link">Skip to content</a> 360 361 <div class="page"> 362 <div> 363 <div id="fw-section-announcement-bar-bf015522-db3f-48a7-8df1-f61adcf4688a" class="fw-section"><section class="announcement-bar"> 364 <div class="wrapper"> 365 366 367 368 369 370 371 372 <a href="https://mybook.to/AStormofFuries" target="_blank" class="announcement-bar__inner"> 373 374 375 376 <div class="announcement-bar__label"> 377 New Release - A Storm of Furies - A post-apocalyptic romantasy set in Australia 378 </div> 379 380 381 382 </a> 383 384 </div> 385</section> 386 387 388</div><div id="fw-section-header" class="fw-section"> 389 390 391 392 393 394<header 395 data-testid='main.single.section' 396 class='header' 397> 398 <div class='wrapper'> 399 <div class='header__grid header__grid--search header--left header__size--sm'> 400 <div class='header__mobile-menu hidden@sm'> 401 <button data-drawer-trigger-primary='mobile-menu' class='header__icon' aria-label='Open menu'> 402 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 403 <path fill-rule="evenodd" clip-rule="evenodd" d="M16 3.75H0V2.25H16V3.75ZM16 8.75H0V7.25H16V8.75ZM16 13.75H0V12.25H16V13.75Z" fill="currentColor"/> 404</svg> 405 406 </button> 407 </div> 408 409 410 411 <div class='header__logo-container'><div class='header__logo'> 412 <a href='/' class='header__logo-link'> 413 414 415 416 417 <img 418 src="https://imgproxy.fourthwall.dev/PwxDL1U_irf_s8GYMjKhyy7UZ091KAX8s3ZV8JoYOwU/w:320/sm:1/enc/gFEFKhsb3Cey1G_V/vHZHVlrvWNrUxAmg/silJh5FUXOzcBeg8/Z_TuiL2mmHT7VzQe/awis5RUiI5BIXGlJ/r0uH1zLab3VEeCMM/Ek76z91AfuA6bZgq/IKPiUBdeQ8VngLZ_/T8S_CyRuvXYNLKz3/dl4D0oWnxSITqCtL/6bF-KPRM_a3B1lSL/vL98-9zxCQQQxPFD/QA64D4DBMOIFxTs8/_y0MorU39-j3fIiz/IYiNNqIpW4xk5pnZ/OVXIKldjbWGS7pWc.webp" 419 srcset="https://imgproxy.fourthwall.dev/PwxDL1U_irf_s8GYMjKhyy7UZ091KAX8s3ZV8JoYOwU/w:320/sm:1/enc/gFEFKhsb3Cey1G_V/vHZHVlrvWNrUxAmg/silJh5FUXOzcBeg8/Z_TuiL2mmHT7VzQe/awis5RUiI5BIXGlJ/r0uH1zLab3VEeCMM/Ek76z91AfuA6bZgq/IKPiUBdeQ8VngLZ_/T8S_CyRuvXYNLKz3/dl4D0oWnxSITqCtL/6bF-KPRM_a3B1lSL/vL98-9zxCQQQxPFD/QA64D4DBMOIFxTs8/_y0MorU39-j3fIiz/IYiNNqIpW4xk5pnZ/OVXIKldjbWGS7pWc.webp 1x, https://imgproxy.fourthwall.dev/oEbaUyVnNN7iyJrXjttAf9IbHEJvxfimd4uztV3fRHg/w:320/dpr:2/sm:1/enc/gFEFKhsb3Cey1G_V/vHZHVlrvWNrUxAmg/silJh5FUXOzcBeg8/Z_TuiL2mmHT7VzQe/awis5RUiI5BIXGlJ/r0uH1zLab3VEeCMM/Ek76z91AfuA6bZgq/IKPiUBdeQ8VngLZ_/T8S_CyRuvXYNLKz3/dl4D0oWnxSITqCtL/6bF-KPRM_a3B1lSL/vL98-9zxCQQQxPFD/QA64D4DBMOIFxTs8/_y0MorU39-j3fIiz/IYiNNqIpW4xk5pnZ/OVXIKldjbWGS7pWc.webp 2x" 420 alt="RoseMackie" 421 class="header__logo-image header__logo-image--sm" 422 itemprop="logo" 423 > 424 425 426 </a> 427 </div> 428 </div> 429 430 431 <div class='header__nav-container visible@sm'> 432 <nav class='header__nav' aria-label='Primary'> 433 <ul class='header__list list--horizontal'> 434 435 <li class="header__list-item"> 436 <a 437 href="/" 438 class="header__link" 439 440 > 441 Home 442 443 444 </a> 445 446 447 </li> 448 449 <li class="header__list-item"> 450 <a 451 href="/pages/about" 452 class="header__link" 453 454 > 455 About 456 457 458 </a> 459 460 461 </li> 462 463 <li class="header__list-item"> 464 <a 465 href="/pages/books" 466 class="header__link" 467 468 > 469 Books 470 471 472 </a> 473 474 475 </li> 476 477 <li class="header__list-item"> 478 <a 479 href="/collections/audiobooks" 480 class="header__link" 481 482 > 483 Audiobooks 484 485 486 </a> 487 488 489 </li> 490 491 <li class="header__list-item"> 492 <a 493 href="/collections/bookish-merch" 494 class="header__link" 495 496 > 497 Merch 498 499 500 </a> 501 502 503 </li> 504 505 <li class="header__list-item"> 506 <a 507 href="/pages/newsletter" 508 class="header__link" 509 510 > 511 Newsletter 512 513 514 </a> 515 516 517 </li> 518 519 <li class="header__list-item"> 520 <a 521 href="/collections/all" 522 class="header__link" 523 524 > 525 Browse all 526 527 528 </a> 529 530 531 </li> 532 533 </ul> 534 </nav> 535 </div> 536 537 538 <div class='header__icons'> 539 <ul class='header__list list list--horizontal'> 540 541 542 543 544 545 546 <li class="header__list-item visible@sm"> 547 <a 548 549 href="https://tiktok.com/@rosemackieauthor" 550 551 target="_blank" 552 class="header__icon" 553 aria-label="Tiktok (opens in a new tab)" 554 > 555 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 556<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7329 0C14.0629 2.83809 15.6469 4.53015 18.401 4.71015V7.90226C16.805 8.05826 15.4069 7.53624 13.7809 6.55221V12.5224C13.7809 20.1067 5.51259 22.4767 2.18848 17.0406C0.0524123 13.5424 1.36045 7.40424 8.21268 7.15823V10.5243C7.69066 10.6083 7.13264 10.7403 6.62263 10.9144C5.09858 11.4304 4.23455 12.3964 4.47456 14.1005C4.93657 17.3646 10.9248 18.3306 10.4267 11.9524V0.00600019H13.7329V0Z" fill="currentColor"/> 557</svg> 558 559 560 </a> 561 </li> 562 563 564 565 566 <li class="header__list-item visible@sm"> 567 <a 568 569 href="https://instagram.com/rosemackieauthor" 570 571 target="_blank" 572 class="header__icon" 573 aria-label="Instagram (opens in a new tab)" 574 > 575 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 576<path fill-rule="evenodd" clip-rule="evenodd" d="M4.99525 0H15.0047C17.7635 0 20 2.23604 20 4.99525V15.0047C20 17.7635 17.764 20 15.0047 20H4.99525C2.23645 20 0 17.764 0 15.0047V4.99525C0 2.23645 2.23604 0 4.99525 0ZM2 15.0047C2 16.6592 3.34085 18 4.99525 18H15.0047C16.6592 18 18 16.6591 18 15.0047V4.99525C18 3.34078 16.6591 2 15.0047 2H4.99525C3.34078 2 2 3.34085 2 4.99525V15.0047ZM5 10C5 7.23858 7.23858 5 10 5C12.7614 5 15 7.23858 15 10C15 12.7614 12.7614 15 10 15C7.23858 15 5 12.7614 5 10ZM13 10C13 8.34315 11.6569 7 10 7C8.34315 7 7 8.34315 7 10C7 11.6569 8.34315 13 10 13C11.6569 13 13 11.6569 13 10ZM15 6C15.5523 6 16 5.55228 16 5C16 4.44772 15.5523 4 15 4C14.4477 4 14 4.44772 14 5C14 5.55228 14.4477 6 15 6Z" fill="currentColor"/> 577</svg> 578 579 580 </a> 581 </li> 582 583 584 585 586 <li class="header__list-item visible@sm"> 587 <a 588 589 href="https://open.spotify.com/show/1DUrD988r6Ka5UnFosm5vf" 590 591 target="_blank" 592 class="header__icon" 593 aria-label="Spotify (opens in a new tab)" 594 > 595 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 596<path d="M10.0006 0.150391C4.56099 0.150391 0.151703 4.55968 0.151703 9.99926C0.151703 15.4388 4.56099 19.8481 10.0006 19.8481C15.4401 19.8481 19.8494 15.4388 19.8494 9.99926C19.8494 4.55968 15.4401 0.150391 10.0006 0.150391ZM14.5169 14.3568C14.3405 14.6473 13.9618 14.7379 13.6724 14.5614C11.359 13.1477 8.44808 12.829 5.01968 13.6123C4.68919 13.6876 4.35988 13.4806 4.2846 13.1513C4.20933 12.8208 4.41515 12.4915 4.74682 12.4162C8.49866 11.5588 11.7165 11.9281 14.3134 13.5135C14.6027 13.6888 14.6945 14.0675 14.5169 14.3568ZM15.7224 11.6752C15.5001 12.0363 15.0273 12.1504 14.6663 11.9281C12.02 10.3015 7.98352 9.8299 4.8515 10.7802C4.44573 10.9025 4.01645 10.6744 3.89295 10.2686C3.77064 9.86283 3.99998 9.43472 4.40457 9.31123C7.98234 8.22566 12.4293 8.75139 15.4684 10.6203C15.8306 10.8414 15.9435 11.3142 15.7224 11.6752ZM15.8259 8.88194C12.6516 6.99661 7.41427 6.82372 4.3834 7.74345C3.89648 7.89164 3.38252 7.61643 3.23433 7.12951C3.08731 6.6426 3.36135 6.12863 3.84826 5.98044C7.32724 4.92428 13.1114 5.12893 16.7656 7.2977C17.2032 7.55762 17.3466 8.12334 17.0879 8.5
5965968C16.8291 8.9972 16.2623 9.14186 15.8259 8.88194Z" fill="currentColor"/> 597</svg> 598 599 600 </a> 601 </li> 602 603 604 605 606 <li class="header__list-item visible@sm"> 607 <a 608 609 href="https://youtube.com/channel/UC6Zx5GV86iuU_0azPcI0g8A" 610 611 target="_blank" 612 class="header__icon" 613 aria-label="Youtube (opens in a new tab)" 614 > 615 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 616<path d="M16.7183 3.125H3.28167C1.4725 3.125 0 4.59833 0 6.4075V14.0083C0 15.8183 1.4725 17.2917 3.28167 17.2917H16.7192C18.5275 17.2917 20 15.8183 20 14.0083V6.4075C20 4.59833 18.5275 3.125 16.7183 3.125ZM13.7817 10.2342L8.14083 13.8433C8.0725 13.8867 7.99417 13.9092 7.91667 13.9092C7.8475 13.9092 7.77917 13.8917 7.71667 13.8575C7.58333 13.785 7.5 13.6442 7.5 13.4925V6.27417C7.5 6.12083 7.58333 5.98083 7.71667 5.9075C7.85083 5.835 8.01333 5.84083 8.14167 5.9225L13.7825 9.5325C13.9025 9.60917 13.975 9.74083 13.975 9.88333C13.9742 10.0258 13.9017 10.1575 13.7817 10.2342Z" fill="currentColor"/> 617</svg> 618 619 620 </a> 621 </li> 622 623 624 625 626 627 628 629 630 631 <li class='header__list-item visible@sm'> 632 <a class='header__link header__link--icon' tabindex='0' role='button' aria-label='Currency selector, current: USD'> 633 USD 634 635 636 <span class='header__link-icon'> 637 <svg class="svg-fill-current-color" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 638 <path d="M0 7.33l2.829-2.83 9.175 9.339 9.167-9.339 2.829 2.83-11.996 12.17z" vector-effect="non-scaling-stroke"/> 639</svg> 640 641 </span> 642 643 </a> 644 645 646 <div class='header__dropdown header__dropdown--content'> 647 <ul class='header__dropdown-inner'> 648 649 <li class='header__dropdown-item'> 650 <a 651 class='header__dropdown-link' 652 href='/localization?currency=USD&return_to=/cart' 653 > 654 USD 655 </a> 656 </li> 657 658 <li class='header__dropdown-item'> 659 <a 660 class='header__dropdown-link' 661 href='/localization?currency=EUR&return_to=/cart' 662 > 663 EUR 664 </a> 665 </li> 666 667 <li class='header__dropdown-item'> 668 <a 669 class='header__dropdown-link' 670 href='/localization?currency=CAD&return_to=/cart' 671 > 672 CAD 673 </a> 674 </li> 675 676 <li class='header__dropdown-item'> 677 <a 678 class='header__dropdown-link' 679 href='/localization?currency=GBP&return_to=/cart' 680 > 681 GBP 682 </a> 683 </li> 684 685 <li class='header__dropdown-item'> 686 <a 687 class='header__dropdown-link' 688 href='/localization?currency=AUD&return_to=/cart' 689 > 690 AUD 691 </a> 692 </li> 693 694 <li class='header__dropdown-item'> 695 <a 696 class='header__dropdown-link' 697 href='/localization?currency=NZD&return_to=/cart' 698 > 699 NZD 700 </a> 701 </li> 702 703 <li class='header__dropdown-item'> 704 <a 705 class='header__dropdown-link' 706 href='/localization?currency=SEK&return_to=/cart' 707 > 708 SEK 709 </a> 710 </li> 711 712 <li class='header__dropdown-item'> 713 <a 714 class='header__dropdown-link' 715 href='/localization?currency=NOK&return_to=/cart' 716 > 717 NOK 718 </a> 719 </li> 720 721 <li class='header__dropdown-item'> 722 <a 723 class='header__dropdown-link' 724 href='/localization?currency=DKK&return_to=/cart' 725 > 726 DKK 727 </a> 728 </li> 729 730 <li class='header__dropdown-item'> 731 <a 732 class='header__dropdown-link' 733 href='/localization?currency=PLN&return_to=/cart' 734 > 735 PLN 736 </a> 737 </li> 738 739 <li class='header__dropdown-item'> 740 <a 741 class='header__dropdown-link' 742 href='/localization?currency=INR&return_to=/cart' 743 > 744 INR 745 </a> 746 </li> 747 748 <li class='header__dropdown-item'> 749 <a 750 class='header__dropdown-link' 751 href='/localization?currency=JPY&return_to=/cart' 752 > 753 JPY 754 </a> 755 </li> 756 757 <li class='header__dropdown-item'> 758 <a 759 class='header__dropdown-link' 760 href='/localization?currency=MYR&return_to=/cart' 761 > 762 MYR 763 </a> 764 </li> 765 766 <li class='header__dropdown-item'> 767 <a 768 class='header__dropdown-link' 769 href='/localization?currency=SGD&return_to=/cart' 770 > 771 SGD 772 </a> 773 </li> 774 775 <li class='header__dropdown-item'> 776 <a 777 class='header__dropdown-link' 778 href='/localization?currency=MXN&return_to=/cart' 779 > 780 MXN 781 </a> 782 </li> 783 784 <li class='header__dropdown-item'> 785 <a 786 class='header__dropdown-link' 787 href='/localization?currency=BRL&return_to=/cart' 788 > 789 BRL 790 </a> 791 </li> 792 793 <li class='header__dropdown-item'> 794 <a 795 class='header__dropdown-link' 796 href='/localization?currency=CHF&return_to=/cart' 797 > 798 CHF 799 </a> 800 </li> 801 802 </ul> 803 </div> 804 805 </li> 806 807 808 809 <li class='header__list-item'> 810 <button class='header__icon' aria-label='Search' type='button' data-search-toggle>
811 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 812<path fill-rule="evenodd" clip-rule="evenodd" d="M0 6.37079C0 2.8523 2.8523 0 6.37079 0C9.88927 0 12.7416 2.8523 12.7416 6.37079C12.7416 7.85977 12.2308 9.22945 11.3748 10.3141L15.7803 14.7197L14.7197 15.7803L10.3141 11.3748C9.22945 12.2308 7.85977 12.7416 6.37079 12.7416C2.8523 12.7416 0 9.88927 0 6.37079ZM6.37079 1.5C3.68073 1.5 1.5 3.68073 1.5 6.37079C1.5 9.06085 3.68073 11.2416 6.37079 11.2416C9.06085 11.2416 11.2416 9.06085 11.2416 6.37079C11.2416 3.68073 9.06085 1.5 6.37079 1.5Z" fill="currentColor"/> 813</svg> 814 815 </button> 816 </li> 817 818 819 820 821 <li class='header__list-item'> 822 <a 823 href='/cart' 824 class='header__icon' 825 aria-label='Cart' 826 > 827 <div 828 data-cart-widget="widget" 829 data-testid="cart.icon" 830 class="cart-widget cart-widget--icons empty" 831> 832 833 <span data-cart-widget="quantity" class="cart-widget__items"></span> 834 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 835 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.99999 1.5C7.40211 1.5 6.83677 1.72464 6.4264 2.11207C6.0175 2.49812 5.79646 3.0122 5.79646 3.53846V4.46154H10.2035V3.53846C10.2035 3.0122 9.98249 2.49812 9.57359 2.11207C9.16322 1.72464 8.59788 1.5 7.99999 1.5ZM11.7035 4.46154V3.53846C11.7035 2.58564 11.3022 1.68119 10.6033 1.02137C9.90591 0.362928 8.96875 0 7.99999 0C7.03123 0 6.09408 0.362928 5.39666 1.02137C4.69777 1.68119 4.29646 2.58564 4.29646 3.53846V4.46154H2.96808C2.09126 4.46154 1.34979 5.11042 1.23353 5.97949L0.15814 14.018C0.0177587 15.0673 0.833995 16 1.89269 16H14.1073C15.166 16 15.9822 15.0673 15.8419 14.018L14.7665 5.97949C14.6502 5.11042 13.9087 4.46154 13.0319 4.46154H11.7035ZM2.96808 5.96154C2.84282 5.96154 2.73689 6.05424 2.72028 6.17839L1.64489 14.2169C1.62484 14.3668 1.74145 14.5 1.89269 14.5H14.1073C14.2586 14.5 14.3752 14.3668 14.3551 14.2169L13.2797 6.17839C13.2631 6.05424 13.1572 5.96154 13.0319 5.96154H2.96808Z" fill="currentColor"/> 836</svg> 837 838 839</div> 840 </a> 841 </li> 842 </ul> 843 844 <div data-cart-announcer aria-live="polite" aria-atomic="true" class="visually-hidden"></div> 845 846 </div> 847 </div> 848 849 <search-header> 850 <div class='search-header'> 851 <div class='search-header__inner'> 852 <form class='search-header__form' action='/search' method='get'> 853 <button type='submit' class='search-header__button' aria-label='Search'> 854 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 855<path fill-rule="evenodd" clip-rule="evenodd" d="M0 6.37079C0 2.8523 2.8523 0 6.37079 0C9.88927 0 12.7416 2.8523 12.7416 6.37079C12.7416 7.85977 12.2308 9.22945 11.3748 10.3141L15.7803 14.7197L14.7197 15.7803L10.3141 11.3748C9.22945 12.2308 7.85977 12.7416 6.37079 12.7416C2.8523 12.7416 0 9.88927 0 6.37079ZM6.37079 1.5C3.68073 1.5 1.5 3.68073 1.5 6.37079C1.5 9.06085 3.68073 11.2416 6.37079 11.2416C9.06085 11.2416 11.2416 9.06085 11.2416 6.37079C11.2416 3.68073 9.06085 1.5 6.37079 1.5Z" fill="currentColor"/> 856</svg> 857 858 </button> 859 <input 860 type='search' 861 name='q' 862 class='search-header__input' 863 placeholder='Search' 864 aria-label='Search' 865 autocomplete='off' 866 > 867 <button class='search-header__button' type='button' aria-label='Close search'> 868 <svg class="svg-fill-current-color" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 869 <path d="M1.25 18.75L18.75 1.25M18.75 18.75L1.25 1.25" vector-effect="non-scaling-stroke" stroke="currentColor" stroke-width="1.5" stroke-linejoin="bevel"/> 870</svg> 871 872 </button> 873 </form> 874 </div> 875</div> 876 877 </search-header> 878 879 </div> 880</header> 881 882 883<aside 884 data-drawer="mobile-menu" 885 class="drawer hidden@sm" 886> 887 <div class="drawer__background" data-drawer-trigger-primary="mobile-menu"></div> 888 <div class="drawer__content drawer__content--small mobile-menu"> 889 <div class="mobile-menu__section mobile-menu__section--header"> 890 <button type="button" class="mobile-menu__close" data-drawer-trigger-primary="mobile-menu" aria-label="Close menu"> 891 <svg class="svg-fill-current-color" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 892 <path d="M1.25 18.75L18.75 1.25M18.75 18.75L1.25 1.25" vector-effect="non-scaling-stroke" stroke="currentColor" stroke-width="1.5" stroke-linejoin="bevel"/> 893</svg> 894 895 </button> 896 </div> 897 <div class="mobile-menu__section mobile-menu__section--body"> 898 <div class="mobile-menu__nav"> 899 <ul class="mobile-menu__list"> 900 901 <li class="mobile-menu__list-item"> 902 903 <a 904 href="/" 905 class="mobile-menu__link" 906 > 907 Home 908 </a> 909 910 911 912 </li> 913 914 <li class="mobile-menu__list-item"> 915 916 <a 917 href="/pages/about" 918 class="mobile-menu__link" 919 > 920 About 921 </a> 922 923 924 925 </li> 926 927 <li class="mobile-menu__list-item"> 928 929 <a 930 href="/pages/books" 931 class="mobile-menu__link" 932 > 933 Books 934 </a> 935 936 937 938 </li> 939 940 <li class="mobile-menu__list-item"> 941 942 <a 943 href="/collections/audiobooks" 944 class="mobile-menu__link" 945 > 946 Audiobooks 947 </a> 948 949 950 951 </li> 952 953 <li class="mobile-menu__list-item"> 954 955 <a 956 href="/collections/bookish-merch" 957 class="mobile-menu__link" 958 > 959 Merch 960 </a> 961 962 963 964 </li> 965 966 <li class="mobile-menu__list-item"> 967 968 <a 969 href="/pages/newsletter" 970 class="mobile-menu__link" 971 > 972 Newsletter 973 </a> 974 975 976 977 </li> 978 979 <li class="mobile-menu__list-item"> 980 981 <a 982 href="/collections/all" 983 class="mobile-menu__link" 984 > 985 Browse all 986 </a> 987 988 989 990 </li> 991 992 993 994 <li class="mobile-menu__list-item"> 995 <a for="input-drawer" class="mobile-menu__link" data-accordion="trigger" role="button" tabindex="0"> 996 USD 997 998 999 <div class="mobile-menu__link-icon"> 1000 <svg class="svg-fill-current-color" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 1001 <path d="M0 7.33l2.829-2.83 9.175 9.339 9.167-9.339 2.829 2.83-11.996 12.17z" vector-effect="non-scaling-stroke"/> 1002</svg> 1003 1004 </div> 1005 1006 </a> 1007 1008 1009 <div class="mobile-menu__dropdown mobile-menu__dropdown--content"> 1010 <ul class="mobile-menu__dropdown-inner"> 1011 1012 <li class="mobile-menu__dropdown-item"> 1013 <a class="mobile-menu__dropdown-link" href="/localization?currency=USD&return_to=/cart"> 1014 USD 1015 </a> 1016 </li> 1017 1018 <li class="mobile-menu__dropdown-item"> 1019 <a class="mobile-menu__dropdown-link" href="/localization?currency=EUR&return_to=/cart"> 1020 EUR 1021 </a> 1022 </li> 1023 1024 <li class="mobile-menu__dropdown-item"> 1025 <a class="mobile-menu__dropdown-link" href="/localization?currency=CAD&return_to=/cart"> 1026 CAD 1027 </a> 1028 </li> 1029 1030 <li class="mobile-menu__dropdown-item"> 1031 <a class="mobile-menu__dropdown-link" href="/localization?currency=GBP&return_to=/cart"> 1032 GBP 1033 </a> 1034 </li> 1035 1036 <li class="mobile-menu__dropdown-item"> 1037 <a class="mobile-menu__dropdown-link" href="/localization?currency=AUD&return_to=/cart"> 1038 AUD 1039 </a> 1040 </li> 1041 1042 <li class="mobile-menu__dropdown-item"> 1043 <a class="mobile-menu__dropdown-link" href="/localization?currency=NZD&return_to=/cart"> 1044 NZD 1045 </a> 1046 </li> 1047 1048 <li class="mobile-menu__dropdown-item"> 1049 <a class="mobile-menu__dropdown-link" href="/localization?currency=SEK&return_to=/cart"> 1050 SEK 1051 </a> 1052 </li> 1053 1054 <li class="mobile-menu__dropdown-item"> 1055 <a class="mobile-menu__dropdown-link" href="/localization?currency=NOK&return_to=/cart"> 1056 NOK 1057 </a> 1058 </li> 1059 1060 <li class="mobile-menu__dropdown-item"> 1061 <a class="mobile-menu__dropdown-link" href="/localization?currency=DKK&return_to=/cart"> 1062 DKK 1063 </a> 1064 </li> 1065 1066 <li class="mobile-menu__dropdown-item"> 1067 <a class="mobile-menu__dropdown-link" href="/localization?currency=PLN&return_to=/cart"> 1068 PLN 1069 </a> 1070 </li> 1071 1072 <li class="mobile-menu__dropdown-item"> 1073 <a class="mobile-menu__dropdown-link" href="/localization?currency=INR&return_to=/cart"> 1074 INR 1075 </a> 1076 </li> 1077 1078 <li class="mobile-menu__dropdown-item"> 1079 <a class="mobile-menu__dropdown-link" href="/localization?currency=JPY&return_to=/cart"> 1080 JPY 1081 </a> 1082 </li> 1083 1084 <li class="mobile-menu__dropdown-item"> 1085 <a class="mobile-menu__dropdown-link" href="/localization?currency=MYR&return_to=/cart"> 1086 MYR 1087 </a> 1088 </li> 1089 1090 <li class="mobile-menu__dropdown-item"> 1091 <a class="mobile-menu__dropdown-link" href="/localization?currency=SGD&return_to=/cart"> 1092 SGD 1093 </a> 1094 </li> 1095 1096 <li class="mobile-menu__dropdown-item"> 1097 <a class="mobile-menu__dropdown-link" href="/localization?currency=MXN&return_to=/cart"> 1098 MXN 1099 </a> 1100 </li> 1101 1102 <li class="mobile-menu__dropdown-item"> 1103 <a class="mobile-menu__dropdown-link" href="/localization?currency=BRL&return_to=/cart"> 1104 BRL 1105 </a> 1106 </li> 1107 1108 <li class="mobile-menu__dropdown-item"> 1109 <a class="mobile-menu__dropdown-link" href="/localization?currency=CHF&return_to=/cart"> 1110 CHF 1111 </a> 1112 </li> 1113 1114 </ul> 1115 </div> 1116 1117 </li> 1118 1119 </ul> 1120 </div> 1121 </div> 1122 <div class="mobile-menu__section mobile-menu__section--socials"> 1123 <div class="mobile-menu__list-social"> 1124 <ul class="mobile-menu__socials"> 1125 1126 1127 1128 1129 1130 <li class="mobile-menu__social"> 1131 <a 1132 1133 href="https://tiktok.com/@rosemackieauthor" 1134 1135 target="_blank" 1136 class="mobile-menu__social-link" 1137 aria-label="Tiktok (opens in a new tab)" 1138 > 1139 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1140<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7329 0C14.0629 2.83809 15.6469 4.53015 18.401 4.71015V7.90226C16.805 8.05826 15.4069 7.53624 13.7809 6.55221V12.5224C13.7809 20.1067 5.51259 22.4767 2.18848 17.0406C0.0524123 13.5424 1.36045 7.40424 8.21268 7.15823V10.5243C7.69066 10.6083 7.13264 10.7403 6.62263 10.9144C5.09858 11.4304 4.23455 12.3964 4.47456 14.1005C4.93657 17.3646 10.9248 18.3306 10.4267 11.9524V0.00600019H13.7329V0Z" fill="currentColor"/> 1141</svg> 1142 1143 1144 </a> 1145 </li> 1146 1147 1148 1149 1150 <li class="mobile-menu__social"> 1151 <a 1152 1153 href="https://instagram.com/rosemackieauthor" 1154 1155 target="_blank" 1156 class="mobile-menu__social-link" 1157 aria-label="Instagram (opens in a new tab)" 1158 > 1159 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1160<path fill-rule="evenodd" clip-rule="evenodd" d="M4.99525 0H15.0047C17.7635 0 20 2.23604 20 4.99525V15.0047C20 17.7635 17.764 20 15.0047 20H4.99525C2.23645 20 0 17.764 0 15.0047V4.99525C0 2.23645 2.23604 0 4.99525 0ZM2 15.0047C2 16.6592 3.34085 18 4.99525 18H15.0047C16.6592 18 18 16.6591 18 15.0047V4.99525C18 3.34078 16.6591 2 15.0047 2H4.99525C3.34078 2 2 3.34085 2 4.99525V15.0047ZM5 10C5 7.23858 7.23858 5 10 5C12.7614 5 15 7.23858 15 10C15 12.7614 12.7614 15 10 15C7.23858 15 5 12.7614 5 10ZM13 10C13 8.34315 11.6569 7 10 7C8.34315 7 7 8.34315 7 10C7 11.6569 8.34315 13 10 13C11.6569 13 13 11.6569 13 10ZM15 6C15.5523 6 16 5.55228 16 5C16 4.44772 15.5523 4 15 4C14.4477 4 14 4.44772 14 5C14 5.55228 14.4477 6 15 6Z" fill="currentColor"/> 1161</svg> 1162 1163 1164 </a> 1165 </li> 1166 1167 1168 1169 1170 <li class="mobile-menu__social"> 1171 <a 1172 1173 href="https://open.spotify.com/show/1DUrD988r6Ka5UnFosm5vf" 1174 1175 target="_blank" 1176 class="mobile-menu__social-link" 1177 aria-label="Spotify (opens in a new tab)" 1178 > 1179 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1180<path d="M10.0006 0.150391C4.56099 0.150391 0.151703 4.55968 0.151703 9.99926C0.151703 15.4388 4.56099 19.8481 10.0006 19.8481C15.4401 19.8481 19.8494 15.4388 19.8494 9.99926C19.8494 4.55968 15.4401 0.150391 10.0006 0.150391ZM14.5169 14.3568C14.3405 14.6473 13.9618 14.7379 13.6724 14.5614C11.359 13.1477 8.44808 12.829 5.01968 13.6123C4.68919 13.6876 4.35988 13.4806 4.2846 13.1513C4.20933 12.8208 4.41515 12.4915 4.74682 12.4162C8.49866 11.5588 11.7165 11.9281 14.3134 13.5135C14.6027 13.6888 14.6945 14.0675 14.5169 14.3568ZM15.7224 11.6752C15.5001 12.0363 15.0273 12.1504 14.6663 11.9281C12.02 10.3015 7.98352 9.8299 4.8515 10.7802C4.44573 10.9025 4.01645 10.6744 3.89295 10.2686C3.77064 9.86283 3.99998 9.43472 4.40457 9.31123C7.98234 8.22566 12.4293 8.75139 15.4684 10.6203C15.8306 10.8414 15.9435 11.3142 15.7224 11.6752ZM15.8259 8.88194C12.6516 6.99661 7.41427 6.82372 4.3834 7.74345C3.89648 7.89164 3.38252 7.61643 3.23433 7.12951C3.08731 6.6426 3.36135 6.12863 3.84826 5.98044C7.32724 4.92428 13.1114 5.12893 16.7656 7.2977C17.2032 7.55762 17.3466 8.12334 17.0879 8.5
11805968C16.8291 8.9972 16.2623 9.14186 15.8259 8.88194Z" fill="currentColor"/> 1181</svg> 1182 1183 1184 </a> 1185 </li> 1186 1187 1188 1189 1190 <li class="mobile-menu__social"> 1191 <a 1192 1193 href="https://youtube.com/channel/UC6Zx5GV86iuU_0azPcI0g8A" 1194 1195 target="_blank" 1196 class="mobile-menu__social-link" 1197 aria-label="Youtube (opens in a new tab)" 1198 > 1199 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1200<path d="M16.7183 3.125H3.28167C1.4725 3.125 0 4.59833 0 6.4075V14.0083C0 15.8183 1.4725 17.2917 3.28167 17.2917H16.7192C18.5275 17.2917 20 15.8183 20 14.0083V6.4075C20 4.59833 18.5275 3.125 16.7183 3.125ZM13.7817 10.2342L8.14083 13.8433C8.0725 13.8867 7.99417 13.9092 7.91667 13.9092C7.8475 13.9092 7.77917 13.8917 7.71667 13.8575C7.58333 13.785 7.5 13.6442 7.5 13.4925V6.27417C7.5 6.12083 7.58333 5.98083 7.71667 5.9075C7.85083 5.835 8.01333 5.84083 8.14167 5.9225L13.7825 9.5325C13.9025 9.60917 13.975 9.74083 13.975 9.88333C13.9742 10.0258 13.901
12007 10.1575 13.7817 10.2342Z" fill="currentColor"/> 1201</svg> 1202 1203 1204 </a> 1205 </li> 1206 1207 1208 1209 </ul> 1210 </div> 1211 </div> 1212 </div> 1213</aside> 1214
1215<script> 1216 const currencyData = { 1217 locale: 'en-US', 1218 currency: 'USD', 1219 } 1220</script>
1220 1221 1222 1223 1224</div> 1225 </div> 1226 1227 <main id="main-content" class="page__main"> 1228 <div class="main main--cart"> 1229 <div class="main__sections main__sections--space" data-testid="main.sections"> 1230 <div id="fw-section-cart" class="fw-section"> 1231<section class="cart-container" data-cart="cart" data-testid="main.single.section"> 1232 <div class="container container--10 wrapper"> 1233 <div id="cart-component" class="cart-container__cart-component"></div> 1234 </div> 1235</section> 1236</div> 1237 1238 <div id="fw-section-cart-product-recommendations" class="fw-section"> 1239<section data-testid="main.single.section" class="cart-product-recommendations"> 1240 <cart-product-recommendations /> 1241</section> 1242 1243<template id="product-template"> 1244 <div> 1245 <div data-testid="product" class="product-tile" data-id="fw-section-cart-product-recommendations"> 1246 <a href="" class="tile"> 1247 <div class="tile__image"> 1248 <div class="image image--background-color"> 1249 <div class="image__object"> 1250 <img 1251 alt="" 1252 class="tile__item" 1253 > 1254 </div> 1255 </div> 1256 </div> 1257 1258 1259 <div class="tile__description tile__description--center"> 1260 <h3 class="tile__heading"> 1261 </h3> 1262 1263 1264 <p class="tile__prices"> 1265 <span class="tile__price tile__price--offer"> 1266 </span> 1267 1268 <span class="tile__price tile__price--original"> 1269 </span> 1270 </p> 1271 </div> 1272 1273 </a> 1274 </div> 1275 </div> 1276</template> 1277</div> 1278 </div> 1279</div> 1280 1281 </main> 1282 1283 <div class="page__footer"> 1284 <div id="fw-section-footer" class="fw-section"><style> 1285 .section-fw-section-footer-padding { 1286 padding-top: 15px; 1287 padding-bottom: 15px; 1288 } 1289 1290 @media screen and (min-width: 640px) { 1291 .section-fw-section-footer-padding { 1292 padding-top: 20px; 1293 padding-bottom: 20px; 1294 } 1295 } 1296</style> 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313<footer data-testid="main.single.section" class="footer section-fw-section-footer-padding"> 1314 1315 <div class="wrapper "> 1316 <div class="footer__inner"> 1317 1318 <div class="footer__top"> 1319 <div class="col-grid col-grid--middle col-grid--4-8@md col-grid--reversed@md"> 1320 <div> 1321 1322 <div class="footer__socials"> 1323 <ul class="footer__list footer__list--socials"> 1324 1325 1326 1327 1328 1329 <li class="footer__list-item footer__list-item--social"> 1330 <a 1331 1332 href="https://tiktok.com/@rosemackieauthor" 1333 1334 target="_blank" 1335 class="footer__social-link" 1336 aria-label="Tiktok (opens in a new tab)" 1337 > 1338 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1339<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7329 0C14.0629 2.83809 15.6469 4.53015 18.401 4.71015V7.90226C16.805 8.05826 15.4069 7.53624 13.7809 6.55221V12.5224C13.7809 20.1067 5.51259 22.4767 2.18848 17.0406C0.0524123 13.5424 1.36045 7.40424 8.21268 7.15823V10.5243C7.69066 10.6083 7.13264 10.7403 6.62263 10.9144C5.09858 11.4304 4.23455 12.3964 4.47456 14.1005C4.93657 17.3646 10.9248 18.3306 10.4267 11.9524V0.00600019H13.7329V0Z" fill="currentColor"/> 1340</svg> 1341 1342 1343 </a> 1344 </li> 1345 1346 1347 1348 1349 <li class="footer__list-item footer__list-item--social"> 1350 <a 1351 1352 href="https://instagram.com/rosemackieauthor" 1353 1354 target="_blank" 1355 class="footer__social-link" 1356 aria-label="Instagram (opens in a new tab)" 1357 > 1358 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1359<path fill-rule="evenodd" clip-rule="evenodd" d="M4.99525 0H15.0047C17.7635 0 20 2.23604 20 4.99525V15.0047C20 17.7635 17.764 20 15.0047 20H4.99525C2.23645 20 0 17.764 0 15.0047V4.99525C0 2.23645 2.23604 0 4.99525 0ZM2 15.0047C2 16.6592 3.34085 18 4.99525 18H15.0047C16.6592 18 18 16.6591 18 15.0047V4.99525C18 3.34078 16.6591 2 15.0047 2H4.99525C3.34078 2 2 3.34085 2 4.99525V15.0047ZM5 10C5 7.23858 7.23858 5 10 5C12.7614 5 15 7.23858 15 10C15 12.7614 12.7614 15 10 15C7.23858 15 5 12.7614 5 10ZM13 10C13 8.34315 11.6569 7 10 7C8.34315 7 7 8.34315 7 10C7 11.6569 8.34315 13 10 13C11.6569 13 13 11.6569 13 10ZM15 6C15.5523 6 16 5.55228 16 5C16 4.44772 15.5523 4 15 4C14.4477 4 14 4.44772 14 5C14 5.55228 14.4477 6 15 6Z" fill="currentColor"/> 1360</svg> 1361 1362 1363 </a> 1364 </li> 1365 1366 1367 1368 1369 <li class="footer__list-item footer__list-item--social"> 1370 <a 1371 1372 href="https://open.spotify.com/show/1DUrD988r6Ka5UnFosm5vf" 1373 1374 target="_blank" 1375 class="footer__social-link" 1376 aria-label="Spotify (opens in a new tab)" 1377 > 1378 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1379<path d="M10.0006 0.150391C4.56099 0.150391 0.151703 4.55968 0.151703 9.99926C0.151703 15.4388 4.56099 19.8481 10.0006 19.8481C15.4401 19.8481 19.8494 15.4388 19.8494 9.99926C19.8494 4.55968 15.4401 0.150391 10.0006 0.150391ZM14.5169 14.3568C14.3405 14.6473 13.9618 14.7379 13.6724 14.5614C11.359 13.1477 8.44808 12.829 5.01968 13.6123C4.68919 13.6876 4.35988 13.4806 4.2846 13.1513C4.20933 12.8208 4.41515 12.4915 4.74682 12.4162C8.49866 11.5588 11.7165 11.9281 14.3134 13.5135C14.6027 13.6888 14.6945 14.0675 14.5169 14.3568ZM15.7224 11.6752C15.5001 12.0363 15.0273 12.1504 14.6663 11.9281C12.02 10.3015 7.98352 9.8299 4.8515 10.7802C4.44573 10.9025 4.01645 10.6744 3.89295 10.2686C3.77064 9.86283 3.99998 9.43472 4.40457 9.31123C7.98234 8.22566 12.4293 8.75139 15.4684 10.6203C15.8306 10.8414 15.9435 11.3142 15.7224 11.6752ZM15.8259 8.88194C12.6516 6.99661 7.41427 6.82372 4.3834 7.74345C3.89648 7.89164 3.38252 7.61643 3.23433 7.12951C3.08731 6.6426 3.36135 6.12863 3.84826 5.98044C7.32724 4.92428 13.1114 5.12893 16.7656 7.2977C17.2032 7.55762 17.3466 8.12334 17.0879 8.5
13795968C16.8291 8.9972 16.2623 9.14186 15.8259 8.88194Z" fill="currentColor"/> 1380</svg> 1381 1382 1383 </a> 1384 </li> 1385 1386 1387 1388 1389 <li class="footer__list-item footer__list-item--social"> 1390 <a 1391 1392 href="https://youtube.com/channel/UC6Zx5GV86iuU_0azPcI0g8A" 1393 1394 target="_blank" 1395 class="footer__social-link" 1396 aria-label="Youtube (opens in a new tab)" 1397 > 1398 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1399<path d="M16.7183 3.125H3.28167C1.4725 3.125 0 4.59833 0 6.4075V14.0083C0 15.8183 1.4725 17.2917 3.28167 17.2917H16.7192C18.5275 17.2917 20 15.8183 20 14.0083V6.4075C20 4.59833 18.5275 3.125 16.7183 3.125ZM13.7817 10.2342L8.14083 13.8433C8.0725 13.8867 7.99417 13.9092 7.91667 13.9092C7.8475 13.9092 7.77917 13.8917 7.71667 13.8575C7.58333 13.785 7.5 13.6442 7.5 13.4925V6.27417C7.5 6.12083 7.58333 5.98083 7.71667 5.9075C7.85083 5.835 8.01333 5.84083 8.14167 5.9225L13.7825 9.5325C13.9025 9.60917 13.975 9.74083 13.975 9.88333C13.9742 10.0258 13.9017 10.1575 13.7817 10.2342Z" fill="currentColor"/> 1400</svg> 1401 1402 1403 </a> 1404 </li> 1405 1406 1407 1408 </ul> 1409 </div> 1410 1411 </div> 1412 1413 <div> 1414 <nav class="footer__nav" aria-label="Footer"> 1415 <ul class="footer__list footer__list--menu"> 1416 1417 1418 <li class="footer__list-item"> 1419 <a class="footer__menu-link footer__menu-link--icon" tabindex="0" role="button" aria-label="Currency selector, current: USD"> 1420 USD 1421 1422 <span class="footer__link-icon"> 1423 <svg class="svg-fill-current-color" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 1424 <path d="M0 7.33l2.829-2.83 9.175 9.339 9.167-9.339 2.829 2.83-11.996 12.17z" vector-effect="non-scaling-stroke"/> 1425</svg> 1426 1427 </span> 1428 1429 </a> 1430 1431 <div class="footer__dropdown footer__dropdown--content"> 1432 <ul class="footer__dropdown-inner"> 1433 1434 <li class="footer__dropdown-item"> 1435 <a class="footer__dropdown-link" href="/localization?currency=USD&return_to=/cart"> 1436 USD 1437 </a> 1438 </li> 1439 1440 <li class="footer__dropdown-item"> 1441 <a class="footer__dropdown-link" href="/localization?currency=EUR&return_to=/cart"> 1442 EUR 1443 </a> 1444 </li> 1445 1446 <li class="footer__dropdown-item"> 1447 <a class="footer__dropdown-link" href="/localization?currency=CAD&return_to=/cart"> 1448 CAD 1449 </a> 1450 </li> 1451 1452 <li class="footer__dropdown-item"> 1453 <a class="footer__dropdown-link" href="/localization?currency=GBP&return_to=/cart"> 1454 GBP 1455 </a> 1456 </li> 1457 1458 <li class="footer__dropdown-item"> 1459 <a class="footer__dropdown-link" href="/localization?currency=AUD&return_to=/cart"> 1460 AUD 1461 </a> 1462 </li> 1463 1464 <li class="footer__dropdown-item"> 1465 <a class="footer__dropdown-link" href="/localization?currency=NZD&return_to=/cart"> 1466 NZD 1467 </a> 1468 </li> 1469 1470 <li class="footer__dropdown-item"> 1471 <a class="footer__dropdown-link" href="/localization?currency=SEK&return_to=/cart"> 1472 SEK 1473 </a> 1474 </li> 1475 1476 <li class="footer__dropdown-item"> 1477 <a class="footer__dropdown-link" href="/localization?currency=NOK&return_to=/cart"> 1478 NOK 1479 </a> 1480 </li> 1481 1482 <li class="footer__dropdown-item"> 1483 <a class="footer__dropdown-link" href="/localization?currency=DKK&return_to=/cart"> 1484 DKK 1485 </a> 1486 </li> 1487 1488 <li class="footer__dropdown-item"> 1489 <a class="footer__dropdown-link" href="/localization?currency=PLN&return_to=/cart"> 1490 PLN 1491 </a> 1492 </li> 1493 1494 <li class="footer__dropdown-item"> 1495 <a class="footer__dropdown-link" href="/localization?currency=INR&return_to=/cart"> 1496 INR 1497 </a> 1498 </li> 1499 1500 <li class="footer__dropdown-item"> 1501 <a class="footer__dropdown-link" href="/localization?currency=JPY&return_to=/cart"> 1502 JPY 1503 </a> 1504 </li> 1505 1506 <li class="footer__dropdown-item"> 1507 <a class="footer__dropdown-link" href="/localization?currency=MYR&return_to=/cart"> 1508 MYR 1509 </a> 1510 </li> 1511 1512 <li class="footer__dropdown-item"> 1513 <a class="footer__dropdown-link" href="/localization?currency=SGD&return_to=/cart"> 1514 SGD 1515 </a> 1516 </li> 1517 1518 <li class="footer__dropdown-item"> 1519 <a class="footer__dropdown-link" href="/localization?currency=MXN&return_to=/cart"> 1520 MXN 1521 </a> 1522 </li> 1523 1524 <li class="footer__dropdown-item"> 1525 <a class="footer__dropdown-link" href="/localization?currency=BRL&return_to=/cart"> 1526 BRL 1527 </a> 1528 </li> 1529 1530 <li class="footer__dropdown-item"> 1531 <a class="footer__dropdown-link" href="/localization?currency=CHF&return_to=/cart"> 1532 CHF 1533 </a> 1534 </li> 1535 1536 </ul> 1537 </div> 1538 1539 </li> 1540 1541 1542 1543 1544 <li class="footer__list-item"> 1545 <a href="/contact" class="footer__menu-link" >Contact Support</a> 1546 </li> 1547 1548 <li class="footer__list-item"> 1549 <a href="/pages/terms-of-service" class="footer__menu-link" >Terms of Service</a> 1550 </li> 1551 1552 <li class="footer__list-item"> 1553 <a href="/pages/privacy-policy" class="footer__menu-link" >Privacy Policy</a> 1554 </li> 1555 1556 <li class="footer__list-item"> 1557 <a href="/pages/returns-faq" class="footer__menu-link" >Returns & FAQ</a> 1558 </li> 1559 1560 1561 </ul> 1562 </nav> 1563 </div> 1564 </div> 1565 </div> 1566 1567 <div class="footer__bottom"> 1568 <ul class="footer__list footer__list--bottom"> 1569 <li class="footer__list-item">
1569<div class="footer__copy">© 2026 RoseMackie</div></li> 1570 1571 <li class="footer__list-item"><div class="footer__powered-by">Powered by <a href="https://fourthwall.com/?utm_source=footer&utm_medium=fourthwall&utm_campaign=poweredby" style="padding-left: 0;" target="_blank" rel="noopener">Fourthwall</a></div></li> 1572 1573 </ul> 1574 </div> 1575 1576 </div> 1577 </div> 1578</footer> 1579 1580 1581</div> 1582 </div> 1583 </div> 1584 1585
1585<script> 1586 var fourthwallTheme = { 1587 strings: { 1588 addToCart: "Add to Cart", 1589 redeemGift: "Redeem Your Gift", 1590 viewCart: "View Cart", 1591 checkout: "Checkout", 1592 outOfStock: "Out of Stock", 1593 unavailable: "Not Available", 1594 soldOut: "Sold Out", 1595 soldOutSuffix: " - Sold Out", 1596 missingQuantityError: "Please choose the quantity.", 1597 generalError: "An error occurred. Please try refreshing the page.", 1598 item: "item", 1599 items: "items", 1600 startShopping: "Start Shopping", 1601 subtotal: "Subtotal", 1602 backToShopping: "Back to Shopping", 1603 cart: { 1604 heading: "[item_count] [item_count_label] in your cart for [total]", 1605 emptyHeading: "Your Shopping Cart is Empty", 1606 tableHeader: { 1607 item: "Item", 1608 quantity: "Quantity", 1609 price: "Price" 1610 }, 1611 deleteModal: { 1612 heading: "Are you sure you want to remove [title] from your cart?", 1613 cancel: "Cancel", 1614 delete: "Delete" 1615 } 1616 }, 1617 newsletter: { 1618 missingEmailError: 'Please enter your email.', 1619 invalidEmailError: 'Please enter a valid email.', 1620 subscribeSuccess: 'Thanks for subscribing!' 1621 }, 1622 donation: { 1623 missingAmountError: 'Please select or enter the donation amount.', 1624 invalidAmountError: 'Please enter a valid donation amount.', 1625 missingNameError: 'Please enter your name.', 1626 missingMessageError: 'Please enter the message.' 1627 }, 1628 checkoutErrors: { 1629 default: "There was an issue with your checkout. Please review your cart and try again.", 1630 CHECKOUT_CART_ITEMS_CHANGED: "Your cart has changed since you started checkout. Please review your items and try again.", 1631 CHECKOUT_STOCK_NOT_ENOUGH_QUANTITY: "Some items in your cart are no longer available in the requested quantity. Please update your cart and try again." 1632 } 1633 }, 1634 urls: { 1635 cart: "/cart", 1636 cartItemLocalizedPrefix: "", 1637 cartAddUrl: "/cart/add", 1638 cartChangeUrl: "/cart/change", 1639 productsUrlPrefix: "/products", 1640 allProductsCollection: "/collections/all", 1641 } 1642 }; 1643</script>
1643 1644 1645 1646
1646<script src="https://themes.fourthwall.dev/themes-library/assets/c97a08c2-fa31-4bff-93d5-c7aad9121754/assets/theme.js?v=0f65449d1e112719f88bf7fc40bdfe6de3f7838a6b512445ac45a069382e2fe4" rel="preload" integrity="sha256-D2VEnR4RJxn4i/f8QL3+beP3g4prUSRFrEWgaTguL+Q=" crossorigin="anonymous"></script>
1646 1647 1648 1649<div id="cookie-consent-banner-container" data-turbo-permanent="true"></div> 1650 1651 1652 <div class="admin-bar-container hidden"> 1653 <div id="admin-bar" class="admin-bar sticky hidden"> 1654 <div class="wrapper"> 1655 <div> 1656 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 1657 <path fill="#FDFCFB" d="m11.947 6-.682 3.151H9.983c-1.61 0-1.964.081-2.237 1.195l-.136.733h3.246l-.683 3.178H6.928L4.5 25.692H0l2.428-11.435H.409l.682-3.178h1.991l.219-.923C4.01 6.706 5.7 6 9.628 6h2.319Zm3.525 5.08 1.936 9.913 1.718-9.914h4.637l1.69 9.914 1.938-9.914H32l-3.382 14.613h-5.21L21.446 14.91 19.48 25.692h-5.237L10.862 11.08h4.61Z"/> 1658 </svg> 1659 </div> 1660 <div class="actions"> 1661 <div class='desktop'> 1662 <div class="dropdown"> 1663 <button class="dropdown-button desktop-switcher pill" data-target="desktop-switcher">View as: </button> 1664 <div class="dropdown-content" id="desktop-switcher"> 1665 <ul> 1666 <li class="dropdown-item" data-mode="creator">Admin</li> 1667 <li class="dropdown-item" data-mode="supporter">Supporter</li> 1668 </ul> 1669 </div> 1670 </div> 1671 1672 <a href="/admin/dashboard" rel="noopener noreferrer" class="pill dashboard-link">Go to dashboard</a> 1673 </div> 1674 1675 <div class='mobile'> 1676 <div class="dropdown"> 1677 <button class="dropdown-button pill mobile-switcher" data-target="mobile-switcher">View as</button> 1678 <div class="dropdown-content" id="mobile-switcher"> 1679 <ul> 1680 <li class="dropdown-item" data-mode="creator">Admin</li> 1681 <li class="dropdown-item" data-mode="supporter">Supporter</li> 1682 </ul> 1683 </div> 1684 </div> 1685 1686 <div class="dropdown mobile"> 1687 <button class="dropdown-button pill" data-target="mobile-links"> 1688 <svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 1689 <g id="Dots horizontal"> 1690 <g> 1691 <path d="M2.96875 7C2.96875 7.42284 2.62597 7.76562 2.20312 7.76562C1.78028 7.76562 1.4375 7.42284 1.4375 7C1.4375 6.57716 1.78028 6.23438 2.20312 6.23438C2.62597 6.23438 2.96875 6.57716 2.96875 7Z" stroke="#FDFCFB" stroke-width="1.5"/> 1692 <path d="M8.76562 7C8.76562 7.42284 8.42284 7.76562 8 7.76562C7.57716 7.76562 7.23438 7.42284 7.23438 7C7.23438 6.57716 7.57716 6.23438 8 6.23438C8.42284 6.23438 8.76562 6.57716 8.76562 7Z" stroke="#FDFCFB" stroke-width="1.5"/> 1693 <path d="M14.5625 7C14.5625 7.42284 14.2197 7.76562 13.7969 7.76562C13.374 7.76562 13.0312 7.42284 13.0312 7C13.0312 6.57716 13.374 6.23438 13.7969 6.23438C14.2197 6.23438 14.5625 6.57716 14.5625 7Z" stroke="#FDFCFB" stroke-width="1.5"/> 1694 </g> 1695 </g> 1696 </svg> 1697 </button> 1698 <div class="dropdown-content" id="mobile-links"> 1699 <a href="/admin/dashboard" rel="noopener noreferrer" class="dropdown-item">Go to dashboard</a> 1700 </div> 1701 </div> 1702 </div> 1703 1704 <div class="pill close"> 1705 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 1706 <g> 1707 <path d="M0.875 13.125L13.125 0.875M13.125 13.125L0.875 0.875" stroke="#FDFCFB" stroke-width="1.5" stroke-linejoin="bevel"/> 1708 </g> 1709 </svg> 1710 </div> 1711 </div> 1712 </div> 1713 </div> 1714 1715 <div id="admin-bar-small" class="admin-bar-small sticky hidden"> 1716 <div class="wrapper"> 1717 <div> 1718 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 1719 <path fill="#FDFCFB" d="m11.947 6-.682 3.151H9.983c-1.61 0-1.964.081-2.237 1.195l-.136.733h3.246l-.683 3.178H6.928L4.5 25.692H0l2.428-11.435H.409l.682-3.178h1.991l.219-.923C4.01 6.706 5.7 6 9.628 6h2.319Zm3.525 5.08 1.936 9.913 1.718-9.914h4.637l1.69 9.914 1.938-9.914H32l-3.382 14.613h-5.21L21.446 14.91 19.48 25.692h-5.237L10.862 11.08h4.61Z"/> 1720 </svg> 1721 </div> 1722 </div> 1723 </div> 1724</div> 1725
1726<script> 1727 const cookieModule = { 1728 setCookie: function (name, value, days = 365, maxAge) { 1729 const expires = new Date(Date.now() + days * 24 * 60 * 60 * 1000).toUTCString(); 1730 let cookieString = `${name}=${value}; expires=${expires}; path=/`; 1731 1732 if (maxAge) { 1733 cookieString += `; max-age=${maxAge}`; 1734 } 1735 1736 document.cookie = cookieString; 1737 }, 1738 1739 getCookie: function (name) { 1740 const cookie = document.cookie.split(';').find(c => c.trim().startsWith(`${name}=`)); 1741 return cookie ? cookie.split('=')[1] : null; 1742 } 1743 }; 1744 1745 const AdminBar = { 1746 adminBar: document.getElementById("admin-bar"), 1747 adminBarContainer: document.querySelector(".admin-bar-container"), 1748 adminBarSmall: document.getElementById("admin-bar-small"), 1749 closeButton: document.querySelector('#admin-bar .close'), 1750 viewAsDesktopButton: document.querySelector(".desktop-switcher"), 1751 dropdownButtons: document.querySelectorAll(".dropdown-button"), 1752 dropdownContents: document.querySelectorAll(".dropdown-content"), 1753 inIframe: () => { 1754 try { 1755 return window.self !== window.top; 1756 } catch (e) { 1757 return true; 1758 } 1759 }, 1760 inThemeEditor: () => cookieModule.getCookie('view_as') === 'theme_editor' || AdminBar.inIframe(), 1761 viewAsCreator: () => cookieModule.getCookie('view_as') === 'creator', 1762 viewAsSupporter: () => cookieModule.getCookie('view_as') === 'supporter', 1763 verifyCreator: () => { 1764 document.cookie = 'return_to=' + window.location.href + '; path=/; max-age=30;'; 1765 window.location.href = '/platform/creators/handoff/start?return=' + encodeURIComponent(window.location.pathname + window.location.search); 1766 }, 1767 getSelectedView: () => (AdminBar.viewAsCreator() ? 'Admin' : 'Supporter'), 1768 toggleDropdown: (dropdownContent) => { 1769 dropdownContent.style.display = dropdownContent.style.display === 'none' || dropdownContent.style.display === '' ? 'block' : 'none'; 1770 }, 1771 init() { 1772 if ( 1773 !AdminBar.inThemeEditor() && 1774 cookieModule.getCookie('core_dashboard_visited') 1775 ) { 1776 AdminBar.viewAsDesktopButton.textContent = 'View as: ' + AdminBar.getSelectedView(); 1777 AdminBar.adminBarContainer.classList.toggle('hidden'); 1778 if (cookieModule.getCookie('admin_bar_mode') === 'condensed') { 1779 AdminBar.adminBarSmall.classList.toggle('hidden'); 1780 } else { 1781 AdminBar.adminBar.classList.toggle('hidden'); 1782 } 1783 } 1784 1785 AdminBar.closeButton.addEventListener('click', () => { 1786 cookieModule.setCookie('admin_bar_mode', 'condensed'); 1787 AdminBar.adminBar.classList.toggle('hidden'); 1788 AdminBar.adminBarSmall.classList.toggle('hidden'); 1789 }); 1790 1791 AdminBar.adminBarSmall.addEventListener('click', () => { 1792 cookieModule.setCookie('admin_bar_mode', 'expanded'); 1793 AdminBar.adminBar.classList.toggle('hidden'); 1794 AdminBar.adminBarSmall.classList.toggle('hidden'); 1795 }); 1796 1797 // Add event listeners to each dropdown button 1798 AdminBar.dropdownButtons.forEach((button) => { 1799 button.addEventListener("click", () => { 1800 const dropdownId = button.getAttribute("data-target"); 1801 const dropdownContent = document.getElementById(dropdownId); 1802 AdminBar.toggleDropdown(dropdownContent); 1803 }); 1804 }); 1805 1806 // Close the dropdowns when clicking outside 1807 document.addEventListener("click", (event) => { 1808 AdminBar.dropdownButtons.forEach((button) => { 1809 const dropdownId = button.getAttribute("data-target"); 1810 const dropdownContent = document.getElementById(dropdownId); 1811 if (event.target !== button && !button.contains(event.target) && event.target !== dropdownContent) { 1812 dropdownContent.style.display = "none"; 1813 } 1814 }); 1815 }); 1816 1817 document.querySelectorAll(".dropdown-content li").forEach((item) => { 1818 item.addEventListener("click", (event) => { 1819 const mode = event.target.getAttribute("data-mode"); 1820 if (mode === 'creator') { 1821 cookieModule.setCookie('view_as', 'creator'); 1822 AdminBar.verifyCreator(); 1823 } else { 1824 cookieModule.setCookie('view_as', 'supporter'); 1825 window.location.reload(); 1826 } 1827 }); 1828 }); 1829 }, 1830 }; 1831
1832 AdminBar.init(); 1833</script>
1833 1834 1835<style> 1836 .admin-bar-container { 1837 height: 56px; 1838 } 1839 1840 .hidden { 1841 display: none; 1842 } 1843 1844 .admin-bar, 1845 .admin-bar-small { 1846 z-index: 1000; 1847 background-color: rgba(0, 0, 0, 0.7); 1848 backdrop-filter: blur(15px); 1849 -webkit-backdrop-filter: blur(15px); 1850 height: 56px; 1851 width: 100%; 1852 } 1853 1854 .admin-bar-small { 1855 width: 73px; 1856 cursor: pointer; 1857 } 1858 1859 .sticky { 1860 position: fixed; 1861 bottom: 0; 1862 } 1863 1864 .admin-bar a { 1865 color: #FDFCFB; 1866 padding: 14px; 1867 font-size: 14px; 1868 text-decoration: none; 1869 } 1870 1871 .admin-bar button { 1872 padding: 14px; 1873 font-size: 14px; 1874 } 1875 1876 .admin-bar .wrapper, 1877 .admin-bar-small .wrapper { 1878 display: flex; 1879 justify-content: space-between; 1880 align-items: center; 1881 padding: 10px 20px; 1882 } 1883 1884 .admin-bar-small .wrapper { 1885 padding: 12px 20px; 1886 } 1887 1888 .admin-bar .pill { 1889 display: flex; 1890 justify-content: center; 1891 align-items: center; 1892 gap: 10px; 1893 text-transform: capitalize; 1894 1895 padding: 6px 14px; 1896 border-radius: 100px; 1897 background: rgba(253, 252, 251, 0.12); 1898 1899 cursor: pointer; 1900 } 1901 1902 .admin-bar .pill:hover { 1903 background: rgba(253, 252, 251, 0.22); 1904 } 1905 1906 .admin-bar .close { 1907 padding: 6px 11px; 1908 } 1909 1910 .admin-bar .actions, 1911 .admin-bar .actions .desktop, 1912 .admin-bar .actions .mobile { 1913 display: flex; 1914 gap: 10px; 1915 } 1916 1917 .admin-bar .actions .desktop, 1918 .admin-bar .actions .edit-page { 1919 display: none; 1920 } 1921 1922 @media (min-width: 768px) { 1923 .admin-bar a, 1924 .admin-bar button { 1925 font-size: 16px; 1926 } 1927 1928 .admin-bar .actions .desktop, 1929 .admin-bar .actions .edit-page { 1930 display: flex; 1931 gap: 10px; 1932 } 1933 1934 .admin-bar .actions .mobile { 1935 display: none; 1936 } 1937 } 1938 1939 .dropdown { 1940 position: relative; 1941 } 1942 1943 .dropdown-content { 1944 display: none; 1945 position: absolute; 1946 background-color: rgba(0,0,0,0.9); 1947 min-width: 130px; 1948 box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 1949 bottom: 100%; /* Position above the button */ 1950 border-radius: 10px; 1951 bottom: calc((100% + 8px) - 0px); 1952 right: 0; 1953 } 1954 1955 /* Style for each list item */ 1956 .dropdown-content .dropdown-item { 1957 color: white; 1958 padding: 12px 16px; 1959 text-decoration: none; 1960 white-space: nowrap; 1961 display: block; 1962 cursor: pointer; 1963 border-radius: 10px; 1964 } 1965 1966 .dropdown-content .dropdown-item:hover { 1967 background-color: rgba(255,255,255,0.2) 1968 } 1969 1970 /* Style for the button */ 1971 .dropdown-button { 1972 color: white; 1973 padding: 10px 20px; 1974 border: none; 1975 border-radius: 5px; 1976 cursor: pointer; 1977 line-height: 24px; 1978 } 1979</style> 1980 1981</body> 1982</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.