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 <meta content="0.1.31" name="version" /> 8 <link rel="canonical" href="https://sparkandquillbooks.com/en-usd/cart" /> 9 10 <title>Your Shopping Cart | Spark and Quill</title> 11 12 13<meta name="description" content="The official website and shop of Spark and Quill. Find the latest content, buy merch, and support your favorite creator." /> 14<meta property="og:site_name" content="Spark and Quill" /> 15<meta property="og:url" content="https://sparkandquillbooks.com/en-usd/cart" /> 16<meta property="og:description" content="The official website and shop of Spark and Quill. Find the latest content, buy merch, and support your favorite creator." /> 17 18 19 20 21 22<meta property="og:title" content="Your Shopping Cart | Spark and Quill" /> 23<meta property="og:type" content="website" /> 24 25 26 <meta property="og:image" content="https://imgproxy.fourthwall.dev/NblJzDJCmmWm5Ui0L2xAAesgF7jgK1ehAhKIrn3NZBE/w:1200/sm:1/enc/OTqfFvB6ZZINig0f/UTPIeLo9XwZxxt7l/mHZUerxu-V8cDG4o/ayxw9JUMcKnSCMHO/8qcIe5hGFnp-MCta/RO7Rzv9aGetyOalZ/064OKfBaNKyV1tcC/wIoJ3YR5hhmo5WxZ/xaNeUraEylN6cEnJ/WYfnW_iFspMZc9SK/J45KsmcIKzfexPwc/znRbiJ8ccwI5QbTL/wq_Dex_8aWIWGS-S/gaPIeCxo-tj99MPA/urQdEu5EcmmJPjKU/F5z0E-qxbuOCmEQX.png" /> 27 <meta property="og:image:secure_url" content="https://imgproxy.fourthwall.dev/NblJzDJCmmWm5Ui0L2xAAesgF7jgK1ehAhKIrn3NZBE/w:1200/sm:1/enc/OTqfFvB6ZZINig0f/UTPIeLo9XwZxxt7l/mHZUerxu-V8cDG4o/ayxw9JUMcKnSCMHO/8qcIe5hGFnp-MCta/RO7Rzv9aGetyOalZ/064OKfBaNKyV1tcC/wIoJ3YR5hhmo5WxZ/xaNeUraEylN6cEnJ/WYfnW_iFspMZc9SK/J45KsmcIKzfexPwc/znRbiJ8ccwI5QbTL/wq_Dex_8aWIWGS-S/gaPIeCxo-tj99MPA/urQdEu5EcmmJPjKU/F5z0E-qxbuOCmEQX.png" /> 28 <meta property="twitter:image" content="https://imgproxy.fourthwall.dev/NblJzDJCmmWm5Ui0L2xAAesgF7jgK1ehAhKIrn3NZBE/w:1200/sm:1/enc/OTqfFvB6ZZINig0f/UTPIeLo9XwZxxt7l/mHZUerxu-V8cDG4o/ayxw9JUMcKnSCMHO/8qcIe5hGFnp-MCta/RO7Rzv9aGetyOalZ/064OKfBaNKyV1tcC/wIoJ3YR5hhmo5WxZ/xaNeUraEylN6cEnJ/WYfnW_iFspMZc9SK/J45KsmcIKzfexPwc/znRbiJ8ccwI5QbTL/wq_Dex_8aWIWGS-S/gaPIeCxo-tj99MPA/urQdEu5EcmmJPjKU/F5z0E-qxbuOCmEQX.png" /> 29 30<meta name="twitter:card" content="summary_large_image" /> 31<meta name="twitter:title" content="Your Shopping Cart | Spark and Quill" /> 32<meta name="twitter:description" content="The official website and shop of Spark and Quill. Find the latest content, buy merch, and support your favorite creator." /> 33 34 35 <link rel="shortcut icon" href="https://imgproxy.fourthwall.dev/06zIMvrvnjBAjZ4eMLV8xJkD076iNIXZdwfp3-vbM7I/rs:fill:192:192:0/bg:000000/sm:1/enc/ODCCsPE54pBk5hkE/ReHLm_Bs8DyV1-gf/Exd5J0sNfOPGMbdx/gM5_eFT2Tue2HeTi/9FFB83S53BxZl1Ut/rxo3v7EFakFXQ5Gh/10pMmGbHJOUbg43R/AovnPIr2KCO6V72g/KPR4wJX4Wp_BoS9Q/1cPa8PQLP-Ij4NiW/7YZicooW8e76yI4v/mi3GYyWeQ6ogyZjc.png" sizes="96x96" type="image/png" /> 36<link rel="shortcut icon" href="https://imgproxy.fourthwall.dev/06zIMvrvnjBAjZ4eMLV8xJkD076iNIXZdwfp3-vbM7I/rs:fill:192:192:0/bg:000000/sm:1/enc/ODCCsPE54pBk5hkE/ReHLm_Bs8DyV1-gf/Exd5J0sNfOPGMbdx/gM5_eFT2Tue2HeTi/9FFB83S53BxZl1Ut/rxo3v7EFakFXQ5Gh/10pMmGbHJOUbg43R/AovnPIr2KCO6V72g/KPR4wJX4Wp_BoS9Q/1cPa8PQLP-Ij4NiW/7YZicooW8e76yI4v/mi3GYyWeQ6ogyZjc.png" sizes="48x48" type="image/png" /> 37 38 39 <link rel="apple-touch-icon" href="https://imgproxy.fourthwall.dev/06zIMvrvnjBAjZ4eMLV8xJkD076iNIXZdwfp3-vbM7I/rs:fill:192:192:0/bg:000000/sm:1/enc/ODCCsPE54pBk5hkE/ReHLm_Bs8DyV1-gf/Exd5J0sNfOPGMbdx/gM5_eFT2Tue2HeTi/9FFB83S53BxZl1Ut/rxo3v7EFakFXQ5Gh/10pMmGbHJOUbg43R/AovnPIr2KCO6V72g/KPR4wJX4Wp_BoS9Q/1cPa8PQLP-Ij4NiW/7YZicooW8e76yI4v/mi3GYyWeQ6ogyZjc.png" sizes="180x180" type="image/png" /> 40 41 42<meta content="#ffffff" name="msapplication-TileColor" /> 43 44 45 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes-library/assets/c02a1994-70b3-456a-9c4a-ba9e6e0f1b4d/assets/vendor.css?v=b1b11eb5397f6f25bd27f727622a7b127d42cd4e0ede0f0b643a4ec082686d92" media="all" integrity="sha256-sbEetTl/byW9J/cnYip7En1CzU4O3g8LZDpOwIJobZI=" crossorigin="anonymous" /> 46 47 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/195b6c93-9ed9-43eb-9054-c8b0d1de666b/assets/styles/css-variables.scss.css?v=8a28c1915091af5f1df6aa40685e13b24d1ce1c1ac2a2f2e2f2a42e9db6a946f" media="all" integrity="sha256-iijBkVCRr18d9qpAaF4Tsk0c4cGsKi8uLypC6dtqlG8=" crossorigin="anonymous" /> 48 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/195b6c93-9ed9-43eb-9054-c8b0d1de666b/assets/styles/theme.scss.css?v=3ed5e266b89d89f571d29b7ef51087a7228311252ca6b4bdde91f1cdc2a13f43" media="all" integrity="sha256-PtXiZridifVx0pt+9RCHpyKDESUsprS93pHxzcKhP0M=" 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="/en-usd/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://sparkandquillbooks.com/cart" hreflang="x-default" /> 55<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-AQ" /> 56<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-AS" /> 57<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-BQ" /> 58<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-EC" /> 59<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-FM" /> 60<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-GU" /> 61<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-IO" /> 62<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-MH" /> 63<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-MP" /> 64<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-PR" /> 65<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-PW" /> 66<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-SV" /> 67<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-TC" /> 68<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-UM" /> 69<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-US" /> 70<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-VG" /> 71<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-VI" /> 72<link rel="alternate" href="https://sparkandquillbooks.com/en-usd/cart" hreflang="en-ZW" /> 73<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-AD" /> 74<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-AT" /> 75<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-AX" /> 76<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-BE" /> 77<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-BG" /> 78<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-BL" /> 79<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-CY" /> 80<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-DE" /> 81<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-EE" /> 82<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-ES" /> 83<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-FI" /> 84<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-FR" /> 85<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-GF" /> 86<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-GP" /> 87<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-GR" /> 88<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-HR" /> 89<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-IE" /> 90<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-IT" /> 91<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-LT" /> 92<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-LU" /> 93<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-LV" /> 94<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-MC" /> 95<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-ME" /> 96<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-MF" /> 97<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-MQ" /> 98<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-MT" /> 99<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-NL" /> 100<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-PM" /> 101<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-PT" /> 102<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-RE" /> 103<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-SI" /> 104<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-SK" /> 105<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-SM" /> 106<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-TF" /> 107<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-VA" /> 108<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-YT" /> 109<link rel="alternate" href="https://sparkandquillbooks.com/en-eur/cart" hreflang="en-XK" /> 110<link rel="alternate" href="https://sparkandquillbooks.com/en-cad/cart" hreflang="en-CA" /> 111<link rel="alternate" href="https://sparkandquillbooks.com/en-gbp/cart" hreflang="en-GB" /> 112<link rel="alternate" href="https://sparkandquillbooks.com/en-gbp/cart" hreflang="en-GG" /> 113<link rel="alternate" href="https://sparkandquillbooks.com/en-gbp/cart" hreflang="en-GS" /> 114<link rel="alternate" href="https://sparkandquillbooks.com/en-gbp/cart" hreflang="en-IM" /> 115<link rel="alternate" href="https://sparkandquillbooks.com/en-gbp/cart" hreflang="en-JE" /> 116<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-AU" /> 117<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-CC" /> 118<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-CX" /> 119<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-HM" /> 120<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-KI" /> 121<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-NF" /> 122<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-NR" /> 123<link rel="alternate" href="https://sparkandquillbooks.com/en-aud/cart" hreflang="en-TV" /> 124<link rel="alternate" href="https://sparkandquillbooks.com/en-nzd/cart" hreflang="en-CK" /> 125<link rel="alternate" href="https://sparkandquillbooks.com/en-nzd/cart" hreflang="en-NU" /> 126<link rel="alternate" href="https://sparkandquillbooks.com/en-nzd/cart" hreflang="en-NZ" /> 127<link rel="alternate" href="https://sparkandquillbooks.com/en-nzd/cart" hreflang="en-PN" /> 128<link rel="alternate" href="https://sparkandquillbooks.com/en-nzd/cart" hreflang="en-TK" /> 129<link rel="alternate" href="https://sparkandquillbooks.com/en-sek/cart" hreflang="en-SE" /> 130<link rel="alternate" href="https://sparkandquillbooks.com/en-nok/cart" hreflang="en-BV" /> 131<link rel="alternate" href="https://sparkandquillbooks.com/en-nok/cart" hreflang="en-NO" /> 132<link rel="alternate" href="https://sparkandquillbooks.com/en-nok/cart" hreflang="en-SJ" /> 133<link rel="alternate" href="https://sparkandquillbooks.com/en-dkk/cart" hreflang="en-DK" /> 134<link rel="alternate" href="https://sparkandquillbooks.com/en-dkk/cart" hreflang="en-FO" /> 135<link rel="alternate" href="https://sparkandquillbooks.com/en-dkk/cart" hreflang="en-GL" /> 136<link rel="alternate" href="https://sparkandquillbooks.com/en-pln/cart" hreflang="en-PL" /> 137<link rel="alternate" href="https://sparkandquillbooks.com/en-inr/cart" hreflang="en-IN" /> 138<link rel="alternate" href="https://sparkandquillbooks.com/en-jpy/cart" hreflang="en-JP" /> 139<link rel="alternate" href="https://sparkandquillbooks.com/en-myr/cart" hreflang="en-MY" /> 140<link rel="alternate" href="https://sparkandquillbooks.com/en-sgd/cart" hreflang="en-SG" /> 141<link rel="alternate" href="https://sparkandquillbooks.com/en-mxn/cart" hreflang="en-MX" /> 142<link rel="alternate" href="https://sparkandquillbooks.com/en-brl/cart" hreflang="en-BR" /> 143<link rel="alternate" href="https://sparkandquillbooks.com/en-chf/cart" hreflang="en-CH" /> 144<link rel="alternate" href="https://sparkandquillbooks.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 = 'Spark and Quill'; 153 window.shopId = 'sh_45d53efb-004d-45da-8d90-cef574d1990f'; 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-8NWH92688W'; window.creatorFbPixelId = ''; window.creatorTiktokAnalyticsId = ''; window.creatorKlaviyoAnalyticsId = ''; window.useServerAnalytics = false;</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<link rel="manifest" href="/manifest.json" /> 225<meta name='theme-color' content='#ffffff' /> 226<link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/195b6c93-9ed9-43eb-9054-c8b0d1de666b/assets/styles/custom_sections.css?v=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" media="all">
227<script> 228 (function() { 229 window.addEventListener('cart:updated', function(event) { 230 var cart = event.detail; 231 if (!cart || !cart.items || !cart.items.length) return; 232 var currency = 'USD'; 233 var isZeroDecimal = currency === 'JPY'; 234 var items = cart.items.map(function(item) { 235 var price = isZeroDecimal ? item.price : item.price / 100; 236 return { 237 item_id: item.id || item.offer_id, 238 item_name: item.title || item.name, 239 item_brand: `Spark and Quill`, 240 price: price, 241 quantity: item.quantity || 1 242 }; 243 }); 244 var value = isZeroDecimal ? cart.total_price : cart.total_price / 100; 245 dataLayer.push({ ecommerce: null }); 246 dataLayer.push({ 247 event: "view_cart", 248 ecommerce: { 249 currency: currency, 250 value: value, 251 items: items 252 }, 253 shopId: 'sh_45d53efb-004d-45da-8d90-cef574d1990f' 254 }); 255 }, { once: true }); 256 })(); 257</script>
vendor: 1 bytes, line 257
257
258<script type="text/javascript"> 259 var currentCart = {"id":null,"item_count":0,"unique_item_count":0,"items":[]}; 260</script>
vendor: 1 bytes, line 260
260
261<script type="module"> 262 function iframeReady(section, iframe, url, appId, settings) { 263 const baseIframeUrl = url; 264 265 function buildUrl(url, params) { 266 if (!params) return url; 267 var qs = Object.keys(params) 268 .map((k) => encodeURIComponent(k) + '=' + encodeURIComponent(params[k])) 269 .join('&'); 270 return url + (url.includes('?') ? '&' : '?') + qs + '&' + settings; 271 } 272 273 const params = { 274 hmac: window.appHmac[appId], 275 timestamp: window.hmacTimestamp, 276 tier_id: window.tierId, 277 supporter_id: window.supporterId, 278 shop_id: window.shopId, 279 }; 280 281 iframe.src = buildUrl(baseIframeUrl, window.appHmac[appId] ? params : null); 282 iframe.onload = null 283 284 // Extract origin from URL for security checking 285 let expectedOrigin; 286 try { 287 expectedOrigin = new URL(url).origin; 288 } catch (e) { 289 console.warn('Could not parse URL origin:', url); 290 } 291 292 // Listen for messages specifically from this iframe 293 const messageHandler = (event) => { 294 // Check if the message is from this specific iframe 295 if (event.source !== iframe.contentWindow) { 296 return; // Ignore messages from other iframes/windows 297 } 298 299 // Optional: Also verify the origin for security 300 if (expectedOrigin && event.origin !== expectedOrigin) { 301 console.warn('Message received from unexpected origin:', event.origin); 302 return; 303 } 304 305 if (event.data.type === 'RESIZE') { 306 iframe.style.height = event.data.data.height + 'px'; 307 } else if (event.data.type === 'CLOSE') { 308 section.style.height = '0px'; 309 } 310 }; 311 312 window.addEventListener('message', messageHandler); 313 314 // Store the handler for cleanup (optional) 315 iframe._messageHandler = messageHandler; 316 } 317 318 class Hmac extends HTMLElement { 319 constructor() { 320 super() 321 this.section = this.parentElement.parentElement; 322 this.iframe = this.querySelector('iframe') 323 this.url = this.getAttribute('url') 324 this.appId = this.getAttribute('app_id') 325 this.settings = this.getAttribute('settings') 326 } 327 328 connectedCallback() { 329 if (this.iframe && this.iframe.contentDocument && this.iframe.contentDocument.readyState === 'complete') { 330 iframeReady(this.section, this.iframe, this.url, this.appId, this.settings) 331 } else { 332 this.iframe.onload = () => iframeReady(this.section, this.iframe, this.url, this.appId, this.settings) 333 } 334 } 335 336 disconnectedCallback() { 337 if (this.iframe && this.iframe._messageHandler) { 338 window.removeEventListener('message', this.iframe._messageHandler); 339 delete this.iframe._messageHandler; 340 } 341 } 342 } 343 344 customElements.define('app-hmac-component', Hmac) 345</script>
345 346 347 </head> 348 349 350 351 352 353 354 <body class="body cart " > 355 <!-- Google Tag Manager (noscript) --> 356<noscript><iframe src='/_c/ns.html?id=GTM-PV2BBNN' 357height='0' width='0' style='display:none;visibility:hidden'></iframe></noscript> 358<!-- End Google Tag Manager (noscript) --> 359 360 <a href="#main-content" class="skip-link">Skip to content</a> 361 362 <div class="page"> 363 <div> 364 <div id="fw-section-header" class="fw-section"> 365 366 367 368 369 370<header data-testid="main.single.section" class="header"> 371 <div class="wrapper"> 372 <div class="header__grid header--left header__size--md"> 373 <div class="header__mobile-menu hidden@sm"> 374 <button data-drawer-trigger-primary="mobile-menu" class="header__icon" aria-label="Open menu"> 375 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 376 <path fill-rule="evenodd" clip-rule="evenodd" d="M16 3.75H0V2.25H16V3.75ZM16 8.75H0V7.25H16V8.75ZM16 13.75H0V12.25H16V13.75Z" fill="currentColor"/> 377</svg> 378 379 </button> 380 </div> 381 382 383 384 <div class="header__logo-container"><div class="header__logo"> 385 <a href="/en-usd/" class="header__logo-link"> 386 387 388 389 390 <img 391 src="https://imgproxy.fourthwall.dev/wdHX7U-6gFa9bsknuzMRJNt3qN-dZmxOyA83ICAghfE/w:320/sm:1/enc/iGUdgAjWnTlWH9Gm/XfEuWkGQltU-mLlk/32DOJAkgCkJdyorX/Ayd9zdf_btQZb-Qh/IvEJnvgAl3GIrytC/SKjIfDsxE1UtOSlq/6htAt2uoshRoxZMX/S2fpW7-XixGT2rgY/aeI56QMGjZQ6Y-im/4JrJ1w2U5b4Z79jt/FTf1ABKIR7IwxLpp/wCDganhTSjhI0wDB/0jxcutfIk7SEaH6-/dce-MUw32N5u5ENu/lf5GTpQ1ZTvmIfSD/QLVnAeYGoDXn_Eeu.jpg" 392 srcset="https://imgproxy.fourthwall.dev/wdHX7U-6gFa9bsknuzMRJNt3qN-dZmxOyA83ICAghfE/w:320/sm:1/enc/iGUdgAjWnTlWH9Gm/XfEuWkGQltU-mLlk/32DOJAkgCkJdyorX/Ayd9zdf_btQZb-Qh/IvEJnvgAl3GIrytC/SKjIfDsxE1UtOSlq/6htAt2uoshRoxZMX/S2fpW7-XixGT2rgY/aeI56QMGjZQ6Y-im/4JrJ1w2U5b4Z79jt/FTf1ABKIR7IwxLpp/wCDganhTSjhI0wDB/0jxcutfIk7SEaH6-/dce-MUw32N5u5ENu/lf5GTpQ1ZTvmIfSD/QLVnAeYGoDXn_Eeu.jpg 1x, https://imgproxy.fourthwall.dev/kD0uC2eS-SZdCyM-5gFzDkQjw4yvwGResPZ13c0OF3s/w:320/dpr:2/sm:1/enc/iGUdgAjWnTlWH9Gm/XfEuWkGQltU-mLlk/32DOJAkgCkJdyorX/Ayd9zdf_btQZb-Qh/IvEJnvgAl3GIrytC/SKjIfDsxE1UtOSlq/6htAt2uoshRoxZMX/S2fpW7-XixGT2rgY/aeI56QMGjZQ6Y-im/4JrJ1w2U5b4Z79jt/FTf1ABKIR7IwxLpp/wCDganhTSjhI0wDB/0jxcutfIk7SEaH6-/dce-MUw32N5u5ENu/lf5GTpQ1ZTvmIfSD/QLVnAeYGoDXn_Eeu.jpg 2x" 393 alt="Spark and Quill" 394 class="header__logo-image header__logo-image--md" 395 itemprop="logo" 396 > 397 398 399 </a> 400 </div> 401 </div> 402 403 404 <div class="header__nav-container visible@sm"> 405 <nav class="header__nav" aria-label="Primary"> 406 <ul class="header__list list--horizontal"> 407 408 <li class="header__list-item"> 409 <a 410 href="/en-usd" 411 class="header__link" 412 413 > 414 Home 415 416 417 </a> 418 419 420 </li> 421 422 <li class="header__list-item"> 423 <a 424 href="/en-usd/pages/about" 425 class="header__link" 426 427 > 428 About 429 430 431 </a> 432 433 434 </li> 435 436 <li class="header__list-item"> 437 <a 438 href="/en-usd/collections/all" 439 class="header__link" 440 441 > 442 All Products 443 444 445 </a> 446 447 448 </li> 449 450 <li class="header__list-item"> 451 <a 452 href="/en-usd/pages/submissions" 453 class="header__link" 454 455 > 456 Submissions 457 458 459 </a> 460 461 462 </li> 463 464 <li class="header__list-item"> 465 <a 466 href="/en-usd/pages/authors" 467 class="header__link" 468 469 > 470 Authors 471 472 473 </a> 474 475 476 </li> 477 478 <li class="header__list-item"> 479 <a 480 href="/en-usd/pages/contact" 481 class="header__link" 482 483 > 484 Readers 485 486 487 </a> 488 489 490 </li> 491 492 <li class="header__list-item"> 493 <a 494 href="/supporters" 495 class="header__link" 496 497 > 498 News 499 500 501 </a> 502 503 504 </li> 505 506 <li class="header__list-item"> 507 <a 508 href="/supporters" 509 class="header__link header__link--icon" 510 511 > 512 Members only 513 514 515 <span class="header__link-icon"> 516 <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"> 517 <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"/> 518</svg> 519 520 </span> 521 522 </a> 523 524 525 <div class="header__dropdown"> 526 <ul class="header__dropdown-inner"> 527 528 <li class="header__dropdown-item"> 529 <a class="header__dropdown-link" href="/supporters" > 530 Feed 531 </a> 532 </li> 533 534 <li class="header__dropdown-item"> 535 <a class="header__dropdown-link" href="/supporters/videos" > 536 Videos 537 </a> 538 </li> 539 540 <li class="header__dropdown-item"> 541 <a class="header__dropdown-link" href="/supporters/perks" > 542 Perks 543 </a> 544 </li> 545 546 </ul> 547 </div> 548 549 </li> 550 551 </ul> 552 </nav> 553 </div> 554 555 556 <div class="header__icons"> 557 <ul class="header__list list list--horizontal"> 558 559 560 561 562 563 564 565 566 567 568 <li class="header__list-item visible@sm"> 569 <a class="header__link header__link--icon" tabindex="0" role="button" aria-label="Currency selector, current: USD"> 570 USD 571 572
573 <span class="header__link-icon"> 574 <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"> 575 <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"/> 576</svg> 577 578 </span> 579 580 </a> 581 582 583 <div class="header__dropdown header__dropdown--content"> 584 <ul class="header__dropdown-inner"> 585 586 <li class="header__dropdown-item"> 587 <a class="header__dropdown-link" href="/localization?currency=USD&return_to=/en-usd/cart"> 588 USD 589 </a> 590 </li> 591 592 <li class="header__dropdown-item"> 593 <a class="header__dropdown-link" href="/localization?currency=EUR&return_to=/en-usd/cart"> 594 EUR 595 </a> 596 </li> 597 598 <li class="header__dropdown-item"> 599 <a class="header__dropdown-link" href="/localization?currency=CAD&return_to=/en-usd/cart"> 600 CAD 601 </a> 602 </li> 603 604 <li class="header__dropdown-item"> 605 <a class="header__dropdown-link" href="/localization?currency=GBP&return_to=/en-usd/cart"> 606 GBP 607 </a> 608 </li> 609 610 <li class="header__dropdown-item"> 611 <a class="header__dropdown-link" href="/localization?currency=AUD&return_to=/en-usd/cart"> 612 AUD 613 </a> 614 </li> 615 616 <li class="header__dropdown-item"> 617 <a class="header__dropdown-link" href="/localization?currency=NZD&return_to=/en-usd/cart"> 618 NZD 619 </a> 620 </li> 621 622 <li class="header__dropdown-item"> 623 <a class="header__dropdown-link" href="/localization?currency=SEK&return_to=/en-usd/cart"> 624 SEK 625 </a> 626 </li> 627 628 <li class="header__dropdown-item"> 629 <a class="header__dropdown-link" href="/localization?currency=NOK&return_to=/en-usd/cart"> 630 NOK 631 </a> 632 </li> 633 634 <li class="header__dropdown-item"> 635 <a class="header__dropdown-link" href="/localization?currency=DKK&return_to=/en-usd/cart"> 636 DKK 637 </a> 638 </li> 639 640 <li class="header__dropdown-item"> 641 <a class="header__dropdown-link" href="/localization?currency=PLN&return_to=/en-usd/cart"> 642 PLN 643 </a> 644 </li> 645 646 <li class="header__dropdown-item"> 647 <a class="header__dropdown-link" href="/localization?currency=INR&return_to=/en-usd/cart"> 648 INR 649 </a> 650 </li> 651 652 <li class="header__dropdown-item"> 653 <a class="header__dropdown-link" href="/localization?currency=JPY&return_to=/en-usd/cart"> 654 JPY 655 </a> 656 </li> 657 658 <li class="header__dropdown-item"> 659 <a class="header__dropdown-link" href="/localization?currency=MYR&return_to=/en-usd/cart"> 660 MYR 661 </a> 662 </li> 663 664 <li class="header__dropdown-item"> 665 <a class="header__dropdown-link" href="/localization?currency=SGD&return_to=/en-usd/cart"> 666 SGD 667 </a> 668 </li> 669 670 <li class="header__dropdown-item"> 671 <a class="header__dropdown-link" href="/localization?currency=MXN&return_to=/en-usd/cart"> 672 MXN 673 </a> 674 </li> 675 676 <li class="header__dropdown-item"> 677 <a class="header__dropdown-link" href="/localization?currency=BRL&return_to=/en-usd/cart"> 678 BRL 679 </a> 680 </li> 681 682 <li class="header__dropdown-item"> 683 <a class="header__dropdown-link" href="/localization?currency=CHF&return_to=/en-usd/cart"> 684 CHF 685 </a> 686 </li> 687 688 </ul> 689 </div> 690 691 </li> 692 693 694 695 696 697 <li class="header__list-item visible@sm"> 698 <a href="/supporters" class="header__icon" aria-label="Account"> 699
700 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 701 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.00001 1.5C6.12618 1.5 4.60715 3.01903 4.60715 4.89286C4.60715 6.76668 6.12618 8.28572 8.00001 8.28572C9.87383 8.28572 11.3929 6.76668 11.3929 4.89286C11.3929 3.01903 9.87383 1.5 8.00001 1.5ZM11.0301 8.73481C12.1647 7.83876 12.8929 6.45085 12.8929 4.89286C12.8929 2.19061 10.7023 0 8.00001 0C5.29776 0 3.10715 2.19061 3.10715 4.89286C3.10715 6.4509 3.83539 7.83886 4.97005 8.73491C2.45623 9.52559 0.500579 11.3512 0.0811315 14.1413C-0.0807331 15.218 0.820538 16 1.74999 16H14.25C15.1795 16 16.0807 15.218 15.9189 14.1413C15.4995 11.3511 13.5442 9.52544 11.0301 8.73481ZM8.00001 9.78572C4.59946 9.78572 1.99323 11.5122 1.56446 14.3643C1.56176 14.3823 1.56391 14.393 1.56646 14.4006C1.56947 14.4096 1.57619 14.4228 1.59068 14.438C1.62139 14.4701 1.67746 14.5 1.74999 14.5H14.25C14.3225 14.5 14.3786 14.4701 14.4093 14.438C14.4238 14.4228 14.4305 14.4096 14.4335 14.4006C14.4361 14.393 14.4382 14.3823 14.4355 14.3643C14.0069 11.5122 11.4015 9.78572 8.00001 9.78572Z" fill="currentColor"/> 702</svg> 703 704 705 </a> 706 </li> 707 708 709 <li class="header__list-item"> 710 <a href="/en-usd/cart" class="header__icon" aria-label="Cart"> 711 <div 712 data-cart-widget="widget" 713 data-testid="cart.icon" 714 class="cart-widget cart-widget--icons empty" 715> 716 717 <span data-cart-widget="quantity" class="cart-widget__items"></span> 718 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 719 <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"/> 720</svg> 721 722 723</div> 724 </a> 725 </li> 726 </ul> 727 728 <div data-cart-announcer aria-live="polite" aria-atomic="true" class="visually-hidden"></div> 729 730 </div> 731 </div> 732 733 734 </div> 735</header> 736 737 738<aside 739 data-drawer="mobile-menu" 740 class="drawer hidden@sm" 741> 742 <div class="drawer__background" data-drawer-trigger-primary="mobile-menu"></div> 743 <div class="drawer__content drawer__content--small mobile-menu"> 744 <div class="mobile-menu__section mobile-menu__section--header"> 745 <button type="button" class="mobile-menu__close" data-drawer-trigger-primary="mobile-menu" aria-label="Close menu"> 746 <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"> 747 <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"/> 748</svg> 749 750 </button> 751 </div> 752 <div class="mobile-menu__section mobile-menu__section--body"> 753 <div class="mobile-menu__nav"> 754 <ul class="mobile-menu__list"> 755 756 <li class="mobile-menu__list-item"> 757 758 <a 759 href="/en-usd" 760 class="mobile-menu__link" 761 > 762 Home 763 </a> 764 765 766 767 </li> 768 769 <li class="mobile-menu__list-item"> 770 771 <a 772 href="/en-usd/pages/about" 773 class="mobile-menu__link" 774 > 775 About 776 </a> 777 778 779 780 </li> 781 782 <li class="mobile-menu__list-item"> 783 784 <a 785 href="/en-usd/collections/all" 786 class="mobile-menu__link" 787 > 788 All Products 789 </a> 790 791 792 793 </li> 794 795 <li class="mobile-menu__list-item"> 796 797 <a 798 href="/en-usd/pages/submissions" 799 class="mobile-menu__link" 800 > 801 Submissions 802 </a> 803 804 805 806 </li> 807 808 <li class="mobile-menu__list-item"> 809 810 <a 811 href="/en-usd/pages/authors" 812 class="mobile-menu__link" 813 > 814 Authors 815 </a> 816 817 818 819 </li> 820 821 <li class="mobile-menu__list-item"> 822 823 <a 824 href="/en-usd/pages/contact" 825 class="mobile-menu__link" 826 > 827 Readers 828 </a> 829 830 831 832 </li> 833 834 <li class="mobile-menu__list-item"> 835 836 <a 837 href="/supporters" 838 class="mobile-menu__link" 839 > 840 News 841 </a> 842 843 844 845 </li> 846 847 <li class="mobile-menu__list-item"> 848 849 <label for="input-drawer-7" class="mobile-menu__link"> 850 Members only 851 852 <div class="mobile-menu__link-icon"> 853 <svg class="svg-fill-current-color" width="17" height="18" viewBox="0 0 17 18" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 854 <path d="M7 1.5L15 9L7 16.5" stroke="currentColor" vector-effect="non-scaling-stroke" fill="none" stroke-width="1.5"/> 855</svg> 856 857 </div> 858 </label> 859 860 861 862 <input type="checkbox" id="input-drawer-7" class="drawer__checkbox hidden" data-drawer-trigger-secondary> 863 <div class="drawer__content drawer__content--small"> 864 <div class="mobile-menu__section mobile-menu__section--header"> 865 <label href="#" class="mobile-menu__close" for="input-drawer-7"> 866 <svg class="svg-fill-current-color" width="17" height="18" viewBox="0 0 17 18" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 867 <path d="M10 16.5L2 9L10 1.5" fill="none" vector-effect="non-scaling-stroke" stroke="currentColor" stroke-width="1.5"/> 868</svg> 869 870 </label> 871 <div class="mobile-menu__label"> 872 Members only 873 </div> 874 <div class="mobile-menu__right"></div> 875 </div> 876 <div class="mobile-menu__section mobile-menu__section--body"> 877 <div class="mobile-menu__nav"> 878 <ul class="mobile-menu__list"> 879 880 <li class="mobile-menu__list-item"> 881 <a class="mobile-menu__link" href="/supporters"> 882 Feed 883 </a> 884 </li> 885 886 <li class="mobile-menu__list-item"> 887 <a class="mobile-menu__link" href="/supporters/videos"> 888 Videos 889 </a> 890 </li> 891 892 <li class="mobile-menu__list-item"> 893 <a class="mobile-menu__link" href="/supporters/perks"> 894 Perks 895 </a> 896 </li> 897 898 </ul> 899 </div> 900 </div> 901 </div> 902 903 </li> 904 905 906 907 <li class="mobile-menu__list-item"> 908 <a for="input-drawer" class="mobile-menu__link" data-accordion="trigger" role="button" tabindex="0"> 909 USD 910 911 912 <div class="mobile-menu__link-icon"> 913 <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"> 914 <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"/> 915</svg> 916 917 </div> 918 919 </a> 920 921 922 <div class="mobile-menu__dropdown mobile-menu__dropdown--content"> 923 <ul class="mobile-menu__dropdown-inner"> 924 925 <li class="mobile-menu__dropdown-item"> 926 <a class="mobile-menu__dropdown-link" href="/localization?currency=USD&return_to=/en-usd/cart"> 927 USD 928 </a> 929 </li> 930 931 <li class="mobile-menu__dropdown-item"> 932 <a class="mobile-menu__dropdown-link" href="/localization?currency=EUR&return_to=/en-usd/cart"> 933 EUR 934 </a> 935 </li> 936 937 <li class="mobile-menu__dropdown-item"> 938 <a class="mobile-menu__dropdown-link" href="/localization?currency=CAD&return_to=/en-usd/cart"> 939 CAD 940 </a> 941 </li> 942 943 <li class="mobile-menu__dropdown-item"> 944 <a class="mobile-menu__dropdown-link" href="/localization?currency=GBP&return_to=/en-usd/cart"> 945 GBP 946 </a> 947 </li> 948 949 <li class="mobile-menu__dropdown-item"> 950 <a class="mobile-menu__dropdown-link" href="/localization?currency=AUD&return_to=/en-usd/cart"> 951 AUD 952 </a> 953 </li> 954 955 <li class="mobile-menu__dropdown-item"> 956 <a class="mobile-menu__dropdown-link" href="/localization?currency=NZD&return_to=/en-usd/cart"> 957 NZD 958 </a> 959 </li> 960 961 <li class="mobile-menu__dropdown-item"> 962 <a class="mobile-menu__dropdown-link" href="/localization?currency=SEK&return_to=/en-usd/cart"> 963 SEK 964 </a> 965 </li> 966 967 <li class="mobile-menu__dropdown-item"> 968 <a class="mobile-menu__dropdown-link" href="/localization?currency=NOK&return_to=/en-usd/cart"> 969 NOK 970 </a> 971 </li> 972 973 <li class="mobile-menu__dropdown-item"> 974 <a class="mobile-menu__dropdown-link" href="/localization?currency=DKK&return_to=/en-usd/cart"> 975 DKK 976 </a> 977 </li> 978 979 <li class="mobile-menu__dropdown-item"> 980 <a class="mobile-menu__dropdown-link" href="/localization?currency=PLN&return_to=/en-usd/cart"> 981 PLN 982 </a> 983 </li> 984 985 <li class="mobile-menu__dropdown-item"> 986 <a class="mobile-menu__dropdown-link" href="/localization?currency=INR&return_to=/en-usd/cart"> 987 INR 988 </a> 989 </li> 990 991 <li class="mobile-menu__dropdown-item"> 992 <a class="mobile-menu__dropdown-link" href="/localization?currency=JPY&return_to=/en-usd/cart"> 993 JPY 994 </a> 995 </li> 996 997 <li class="mobile-menu__dropdown-item"> 998 <a class="mobile-menu__dropdown-link" href="/localization?currency=MYR&return_to=/en-usd/cart"> 999 MYR 1000 </a> 1001 </li> 1002 1003 <li class="mobile-menu__dropdown-item"> 1004 <a class="mobile-menu__dropdown-link" href="/localization?currency=SGD&return_to=/en-usd/cart"> 1005 SGD 1006 </a> 1007 </li> 1008 1009 <li class="mobile-menu__dropdown-item"> 1010 <a class="mobile-menu__dropdown-link" href="/localization?currency=MXN&return_to=/en-usd/cart"> 1011 MXN 1012 </a> 1013 </li> 1014 1015 <li class="mobile-menu__dropdown-item"> 1016 <a class="mobile-menu__dropdown-link" href="/localization?currency=BRL&return_to=/en-usd/cart"> 1017 BRL 1018 </a> 1019 </li> 1020 1021 <li class="mobile-menu__dropdown-item"> 1022 <a class="mobile-menu__dropdown-link" href="/localization?currency=CHF&return_to=/en-usd/cart"> 1023 CHF 1024 </a> 1025 </li> 1026 1027 </ul> 1028 </div> 1029 1030 </li> 1031 1032 </ul> 1033 </div> 1034 </div> 1035 <div class="mobile-menu__section mobile-menu__section--socials"> 1036 <div class="mobile-menu__list-social"> 1037 <ul class="mobile-menu__socials"> 1038 1039 1040 1041 1042 </ul> 1043 </div> 1044 </div> 1045 </div> 1046</aside> 1047
1048<script> 1049 const currencyData = { 1050 locale: "en-US", 1051 currency: "USD" 1052 } 1053</script>
1053 1054 1055 1056</div> 1057 </div> 1058 1059 <main id="main-content" class="page__main"> 1060 <div class="main main--cart"> 1061 <div data-testid="main.sections" class="main__sections main__sections--space"> 1062 <div id="fw-section-cart" class="fw-section"> 1063<section data-testid="main.single.section" class="cart-container" data-cart="cart"> 1064 <div class="container container--8 wrapper"> 1065 <div id="cart-component" class="cart-container__cart-component"></div> 1066 </div> 1067</section> 1068</div> 1069 1070 <div id="fw-section-cart-product-recommendations" class="fw-section"> 1071<section data-testid="main.single.section" class="cart-product-recommendations"> 1072 <cart-product-recommendations /> 1073</section> 1074 1075<template id="product-template"> 1076 <div> 1077 <div data-testid="product" class="product-tile" data-id="fw-section-cart-product-recommendations"> 1078 <a href="" class="tile"> 1079 <div class="tile__image"> 1080 <div class="image image--background-color"> 1081 <div class="image__object"> 1082 <img 1083 alt="" 1084 class="tile__item" 1085 > 1086 </div> 1087 </div> 1088 </div> 1089 1090 1091 <div class="tile__description tile__description--center"> 1092 <h3 class="tile__heading"> 1093 </h3> 1094 1095 1096 <p class="tile__prices"> 1097 <span class="tile__price tile__price--offer"> 1098 </span> 1099 1100 <span class="tile__price tile__price--original"> 1101 </span> 1102 </p> 1103 </div> 1104 1105 </a> 1106 </div> 1107 </div> 1108</template> 1109</div> 1110 </div> 1111</div> 1112 1113 </main> 1114 1115 <div class="page__footer"> 1116 <div id="fw-section-footer" class="fw-section"><style> 1117 .section-fw-section-footer-padding { 1118 padding-top: 33px; 1119 padding-bottom: 11px; 1120 } 1121 1122 @media screen and (min-width: 640px) { 1123 .section-fw-section-footer-padding { 1124 padding-top: 44px; 1125 padding-bottom: 14px; 1126 } 1127 } 1128</style> 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145<footer data-testid="main.single.section" class="footer section-fw-section-footer-padding"> 1146 <div class="wrapper "> 1147 1148 1149 <div class="footer__inner"> 1150 1151 <div class="footer__top"> 1152 <div class="col-grid col-grid--middle col-grid--4-8@md col-grid--reversed@md"> 1153 <div> 1154 1155 <div class="footer__socials"> 1156 <ul class="footer__list footer__list--socials"> 1157 1158 1159 1160 1161 </ul> 1162 </div> 1163 1164 </div> 1165 1166 <div> 1167 <nav class="footer__nav" aria-label="Footer"> 1168 <ul class="footer__list footer__list--menu"> 1169 1170 1171 <li class="footer__list-item"> 1172 <a class="footer__menu-link footer__menu-link--icon" tabindex="0" role="button" aria-label="Currency selector, current: USD"> 1173 USD 1174 1175 <span class="footer__link-icon"> 1176 <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"> 1177 <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"/> 1178</svg> 1179 1180 </span> 1181 1182 </a> 1183 1184 <div class="footer__dropdown footer__dropdown--content"> 1185 <ul class="footer__dropdown-inner"> 1186 1187 <li class="footer__dropdown-item"> 1188 <a class="footer__dropdown-link" href="/localization?currency=USD&return_to=/en-usd/cart"> 1189 USD 1190 </a> 1191 </li> 1192 1193 <li class="footer__dropdown-item"> 1194 <a class="footer__dropdown-link" href="/localization?currency=EUR&return_to=/en-usd/cart"> 1195 EUR 1196 </a> 1197 </li> 1198 1199 <li class="footer__dropdown-item"> 1200 <a class="footer__dropdown-link" href="/localization?currency=CAD&return_to=/en-usd/cart"> 1201 CAD 1202 </a> 1203 </li> 1204 1205 <li class="footer__dropdown-item"> 1206 <a class="footer__dropdown-link" href="/localization?currency=GBP&return_to=/en-usd/cart"> 1207 GBP 1208 </a> 1209 </li> 1210 1211 <li class="footer__dropdown-item"> 1212 <a class="footer__dropdown-link" href="/localization?currency=AUD&return_to=/en-usd/cart"> 1213 AUD 1214 </a> 1215 </li> 1216 1217 <li class="footer__dropdown-item"> 1218 <a class="footer__dropdown-link" href="/localization?currency=NZD&return_to=/en-usd/cart"> 1219 NZD 1220 </a> 1221 </li> 1222 1223 <li class="footer__dropdown-item"> 1224 <a class="footer__dropdown-link" href="/localization?currency=SEK&return_to=/en-usd/cart"> 1225 SEK 1226 </a> 1227 </li> 1228 1229 <li class="footer__dropdown-item"> 1230 <a class="footer__dropdown-link" href="/localization?currency=NOK&return_to=/en-usd/cart"> 1231 NOK 1232 </a> 1233 </li> 1234 1235 <li class="footer__dropdown-item"> 1236 <a class="footer__dropdown-link" href="/localization?currency=DKK&return_to=/en-usd/cart"> 1237 DKK 1238 </a> 1239 </li> 1240 1241 <li class="footer__dropdown-item"> 1242 <a class="footer__dropdown-link" href="/localization?currency=PLN&return_to=/en-usd/cart"> 1243 PLN 1244 </a> 1245 </li> 1246 1247 <li class="footer__dropdown-item"> 1248 <a class="footer__dropdown-link" href="/localization?currency=INR&return_to=/en-usd/cart"> 1249 INR 1250 </a> 1251 </li> 1252 1253 <li class="footer__dropdown-item"> 1254 <a class="footer__dropdown-link" href="/localization?currency=JPY&return_to=/en-usd/cart"> 1255 JPY 1256 </a> 1257 </li> 1258 1259 <li class="footer__dropdown-item"> 1260 <a class="footer__dropdown-link" href="/localization?currency=MYR&return_to=/en-usd/cart"> 1261 MYR 1262 </a> 1263 </li> 1264 1265 <li class="footer__dropdown-item"> 1266 <a class="footer__dropdown-link" href="/localization?currency=SGD&return_to=/en-usd/cart"> 1267 SGD 1268 </a> 1269 </li> 1270 1271 <li class="footer__dropdown-item"> 1272 <a class="footer__dropdown-link" href="/localization?currency=MXN&return_to=/en-usd/cart"> 1273 MXN 1274 </a> 1275 </li> 1276 1277 <li class="footer__dropdown-item"> 1278 <a class="footer__dropdown-link" href="/localization?currency=BRL&return_to=/en-usd/cart"> 1279 BRL 1280 </a> 1281 </li> 1282 1283 <li class="footer__dropdown-item"> 1284 <a class="footer__dropdown-link" href="/localization?currency=CHF&return_to=/en-usd/cart"> 1285 CHF 1286 </a> 1287 </li> 1288 1289 </ul> 1290 </div> 1291 1292 </li> 1293 1294 1295 1296 1297 <li class="footer__list-item"> 1298 <a href="/contact" class="footer__menu-link" >Contact</a> 1299 </li> 1300 1301 <li class="footer__list-item"> 1302 <a href="/en-usd/pages/terms-of-service" class="footer__menu-link" >Terms of Service</a> 1303 </li> 1304 1305 <li class="footer__list-item"> 1306 <a href="/en-usd/pages/privacy-policy" class="footer__menu-link" >Privacy Policy</a> 1307 </li> 1308 1309 <li class="footer__list-item"> 1310 <a href="/en-usd/pages/returns-faq" class="footer__menu-link" >Returns & FAQ</a> 1311 </li> 1312 1313 1314 </ul> 1315 </nav> 1316 </div> 1317 </div> 1318 </div> 1319 1320 <div class="footer__bottom"> 1321 <ul class="footer__list footer__list--bottom"> 1322 <li class="footer__list-item">
1322<div class="footer__copy">© 2026 Spark and Quill</div></li> 1323 1324 <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> 1325 1326 </ul> 1327 </div> 1328 1329 </div> 1330 </div> 1331</footer> 1332 1333 1334</div> 1335 </div> 1336 </div> 1337 1338
1338<script> 1339 var fourthwallTheme = { 1340 strings: { 1341 addToCart: "Add to Cart", 1342 redeemGift: "Redeem Your Gift", 1343 viewCart: "View Cart", 1344 checkout: "Checkout", 1345 outOfStock: "Out of Stock", 1346 unavailable: "Not Available", 1347 soldOut: "Sold Out", 1348 soldOutSuffix: " - Sold Out", 1349 missingQuantityError: "Please choose the quantity.", 1350 generalError: "An error occurred. Please try refreshing the page.", 1351 item: "item", 1352 items: "items", 1353 startShopping: "Start Shopping", 1354 subtotal: "Subtotal", 1355 backToShopping: "Back to Shopping", 1356 cart: { 1357 heading: "[item_count] [item_count_label] in your cart for [total]", 1358 emptyHeading: "Your Shopping Cart is Empty", 1359 tableHeader: { 1360 item: "Item", 1361 quantity: "Quantity", 1362 price: "Price" 1363 }, 1364 deleteModal: { 1365 heading: "Are you sure you want to remove [title] from your cart?", 1366 cancel: "Cancel", 1367 delete: "Delete" 1368 } 1369 }, 1370 newsletter: { 1371 missingEmailError: "Please enter your email.", 1372 invalidEmailError: "Please enter a valid email.", 1373 subscribeSuccess: "Thanks for subscribing!" 1374 }, 1375 donation: { 1376 missingAmountError: "Please select or enter the donation amount.", 1377 invalidAmountError: "Please enter a valid donation amount.", 1378 missingNameError: "Please enter your name.", 1379 missingMessageError: "Please enter the message." 1380 }, 1381 checkoutErrors: { 1382 default: "There was an issue with your checkout. Please review your cart and try again.", 1383 CHECKOUT_CART_ITEMS_CHANGED: "Your cart has changed since you started checkout. Please review your items and try again.", 1384 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." 1385 } 1386 }, 1387 urls: { 1388 cart: "/en-usd/cart", 1389 cartItemLocalizedPrefix: "/en-usd", 1390 cartAddUrl: "/en-usd/cart/add", 1391 cartChangeUrl: "/en-usd/cart/change", 1392 productsUrlPrefix: "/en-usd/products", 1393 allProductsCollection: "/en-usd/collections/all", 1394 } 1395 }; 1396</script>
1396 1397 1398 1399
1399<script src="https://themes.fourthwall.dev/themes-library/assets/c02a1994-70b3-456a-9c4a-ba9e6e0f1b4d/assets/theme.js?v=982c58050f3270bb75775b78116a1404b5321463a6bade99466e92a7e24a0867" rel="preload" integrity="sha256-mCxYBQ8ycLt1d1t4EWoUBLUyFGOmut6ZRm6Sp+JKCGc=" crossorigin="anonymous"></script>
1399 1400 1401 1402<div id="cookie-consent-banner-container" data-turbo-permanent="true"></div> 1403 1404 1405 <div class="admin-bar-container hidden"> 1406 <div id="admin-bar" class="admin-bar sticky hidden"> 1407 <div class="wrapper"> 1408 <div> 1409 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 1410 <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"/> 1411 </svg> 1412 </div> 1413 <div class="actions"> 1414 <div class='desktop'> 1415 <div class="dropdown"> 1416 <button class="dropdown-button desktop-switcher pill" data-target="desktop-switcher">View as: </button> 1417 <div class="dropdown-content" id="desktop-switcher"> 1418 <ul> 1419 <li class="dropdown-item" data-mode="creator">Admin</li> 1420 <li class="dropdown-item" data-mode="supporter">Supporter</li> 1421 </ul> 1422 </div> 1423 </div> 1424 1425 <a href="/admin/dashboard" rel="noopener noreferrer" class="pill dashboard-link">Go to dashboard</a> 1426 </div> 1427 1428 <div class='mobile'> 1429 <div class="dropdown"> 1430 <button class="dropdown-button pill mobile-switcher" data-target="mobile-switcher">View as</button> 1431 <div class="dropdown-content" id="mobile-switcher"> 1432 <ul> 1433 <li class="dropdown-item" data-mode="creator">Admin</li> 1434 <li class="dropdown-item" data-mode="supporter">Supporter</li> 1435 </ul> 1436 </div> 1437 </div> 1438 1439 <div class="dropdown mobile"> 1440 <button class="dropdown-button pill" data-target="mobile-links"> 1441 <svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 1442 <g id="Dots horizontal"> 1443 <g> 1444 <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"/> 1445 <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"/> 1446 <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"/> 1447 </g> 1448 </g> 1449 </svg> 1450 </button> 1451 <div class="dropdown-content" id="mobile-links"> 1452 <a href="/admin/dashboard" rel="noopener noreferrer" class="dropdown-item">Go to dashboard</a> 1453 </div> 1454 </div> 1455 </div> 1456 1457 <div class="pill close"> 1458 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 1459 <g> 1460 <path d="M0.875 13.125L13.125 0.875M13.125 13.125L0.875 0.875" stroke="#FDFCFB" stroke-width="1.5" stroke-linejoin="bevel"/> 1461 </g> 1462 </svg> 1463 </div> 1464 </div> 1465 </div> 1466 </div> 1467 1468 <div id="admin-bar-small" class="admin-bar-small sticky hidden"> 1469 <div class="wrapper"> 1470 <div> 1471 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 1472 <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"/> 1473 </svg> 1474 </div> 1475 </div> 1476 </div> 1477</div> 1478
1479<script> 1480 const cookieModule = { 1481 setCookie: function (name, value, days = 365, maxAge) { 1482 const expires = new Date(Date.now() + days * 24 * 60 * 60 * 1000).toUTCString(); 1483 let cookieString = `${name}=${value}; expires=${expires}; path=/`; 1484 1485 if (maxAge) { 1486 cookieString += `; max-age=${maxAge}`; 1487 } 1488 1489 document.cookie = cookieString; 1490 }, 1491 1492 getCookie: function (name) { 1493 const cookie = document.cookie.split(';').find(c => c.trim().startsWith(`${name}=`)); 1494 return cookie ? cookie.split('=')[1] : null; 1495 } 1496 }; 1497 1498 const AdminBar = { 1499 adminBar: document.getElementById("admin-bar"), 1500 adminBarContainer: document.querySelector(".admin-bar-container"), 1501 adminBarSmall: document.getElementById("admin-bar-small"), 1502 closeButton: document.querySelector('#admin-bar .close'), 1503 viewAsDesktopButton: document.querySelector(".desktop-switcher"), 1504 dropdownButtons: document.querySelectorAll(".dropdown-button"), 1505 dropdownContents: document.querySelectorAll(".dropdown-content"), 1506 inIframe: () => { 1507 try { 1508 return window.self !== window.top; 1509 } catch (e) { 1510 return true; 1511 } 1512 }, 1513 inThemeEditor: () => cookieModule.getCookie('view_as') === 'theme_editor' || AdminBar.inIframe(), 1514 viewAsCreator: () => cookieModule.getCookie('view_as') === 'creator', 1515 viewAsSupporter: () => cookieModule.getCookie('view_as') === 'supporter', 1516 verifyCreator: () => { 1517 document.cookie = 'return_to=' + window.location.href + '; path=/; max-age=30;'; 1518 window.location.href = '/platform/creators/handoff/start?return=' + encodeURIComponent(window.location.pathname + window.location.search); 1519 }, 1520 getSelectedView: () => (AdminBar.viewAsCreator() ? 'Admin' : 'Supporter'), 1521 toggleDropdown: (dropdownContent) => { 1522 dropdownContent.style.display = dropdownContent.style.display === 'none' || dropdownContent.style.display === '' ? 'block' : 'none'; 1523 }, 1524 init() { 1525 if ( 1526 !AdminBar.inThemeEditor() && 1527 cookieModule.getCookie('core_dashboard_visited') 1528 ) { 1529 AdminBar.viewAsDesktopButton.textContent = 'View as: ' + AdminBar.getSelectedView(); 1530 AdminBar.adminBarContainer.classList.toggle('hidden'); 1531 if (cookieModule.getCookie('admin_bar_mode') === 'condensed') { 1532 AdminBar.adminBarSmall.classList.toggle('hidden'); 1533 } else { 1534 AdminBar.adminBar.classList.toggle('hidden'); 1535 } 1536 } 1537 1538 AdminBar.closeButton.addEventListener('click', () => { 1539 cookieModule.setCookie('admin_bar_mode', 'condensed'); 1540 AdminBar.adminBar.classList.toggle('hidden'); 1541 AdminBar.adminBarSmall.classList.toggle('hidden'); 1542 }); 1543 1544 AdminBar.adminBarSmall.addEventListener('click', () => { 1545 cookieModule.setCookie('admin_bar_mode', 'expanded'); 1546 AdminBar.adminBar.classList.toggle('hidden'); 1547 AdminBar.adminBarSmall.classList.toggle('hidden'); 1548 }); 1549 1550 // Add event listeners to each dropdown button 1551 AdminBar.dropdownButtons.forEach((button) => { 1552 button.addEventListener("click", () => { 1553 const dropdownId = button.getAttribute("data-target"); 1554 const dropdownContent = document.getElementById(dropdownId); 1555 AdminBar.toggleDropdown(dropdownContent); 1556 }); 1557 }); 1558 1559 // Close the dropdowns when clicking outside 1560 document.addEventListener("click", (event) => { 1561 AdminBar.dropdownButtons.forEach((button) => { 1562 const dropdownId = button.getAttribute("data-target"); 1563 const dropdownContent = document.getElementById(dropdownId); 1564 if (event.target !== button && !button.contains(event.target) && event.target !== dropdownContent) { 1565 dropdownContent.style.display = "none"; 1566 } 1567 }); 1568 }); 1569 1570 document.querySelectorAll(".dropdown-content li").forEach((item) => { 1571 item.addEventListener("click", (event) => { 1572 const mode = event.target.getAttribute("data-mode"); 1573 if (mode === 'creator') { 1574 cookieModule.setCookie('view_as', 'creator'); 1575 AdminBar.verifyCreator(); 1576 } else { 1577 cookieModule.setCookie('view_as', 'supporter'); 1578 window.location.reload(); 1579 } 1580 }); 1581 }); 1582 }, 1583 }; 1584
1585 AdminBar.init(); 1586</script>
1586 1587 1588<style> 1589 .admin-bar-container { 1590 height: 56px; 1591 } 1592 1593 .hidden { 1594 display: none; 1595 } 1596 1597 .admin-bar, 1598 .admin-bar-small { 1599 z-index: 1000; 1600 background-color: rgba(0, 0, 0, 0.7); 1601 backdrop-filter: blur(15px); 1602 -webkit-backdrop-filter: blur(15px); 1603 height: 56px; 1604 width: 100%; 1605 } 1606 1607 .admin-bar-small { 1608 width: 73px; 1609 cursor: pointer; 1610 } 1611 1612 .sticky { 1613 position: fixed; 1614 bottom: 0; 1615 } 1616 1617 .admin-bar a { 1618 color: #FDFCFB; 1619 padding: 14px; 1620 font-size: 14px; 1621 text-decoration: none; 1622 } 1623 1624 .admin-bar button { 1625 padding: 14px; 1626 font-size: 14px; 1627 } 1628 1629 .admin-bar .wrapper, 1630 .admin-bar-small .wrapper { 1631 display: flex; 1632 justify-content: space-between; 1633 align-items: center; 1634 padding: 10px 20px; 1635 } 1636 1637 .admin-bar-small .wrapper { 1638 padding: 12px 20px; 1639 } 1640 1641 .admin-bar .pill { 1642 display: flex; 1643 justify-content: center; 1644 align-items: center; 1645 gap: 10px; 1646 text-transform: capitalize; 1647 1648 padding: 6px 14px; 1649 border-radius: 100px; 1650 background: rgba(253, 252, 251, 0.12); 1651 1652 cursor: pointer; 1653 } 1654 1655 .admin-bar .pill:hover { 1656 background: rgba(253, 252, 251, 0.22); 1657 } 1658 1659 .admin-bar .close { 1660 padding: 6px 11px; 1661 } 1662 1663 .admin-bar .actions, 1664 .admin-bar .actions .desktop, 1665 .admin-bar .actions .mobile { 1666 display: flex; 1667 gap: 10px; 1668 } 1669 1670 .admin-bar .actions .desktop, 1671 .admin-bar .actions .edit-page { 1672 display: none; 1673 } 1674 1675 @media (min-width: 768px) { 1676 .admin-bar a, 1677 .admin-bar button { 1678 font-size: 16px; 1679 } 1680 1681 .admin-bar .actions .desktop, 1682 .admin-bar .actions .edit-page { 1683 display: flex; 1684 gap: 10px; 1685 } 1686 1687 .admin-bar .actions .mobile { 1688 display: none; 1689 } 1690 } 1691 1692 .dropdown { 1693 position: relative; 1694 } 1695 1696 .dropdown-content { 1697 display: none; 1698 position: absolute; 1699 background-color: rgba(0,0,0,0.9); 1700 min-width: 130px; 1701 box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 1702 bottom: 100%; /* Position above the button */ 1703 border-radius: 10px; 1704 bottom: calc((100% + 8px) - 0px); 1705 right: 0; 1706 } 1707 1708 /* Style for each list item */ 1709 .dropdown-content .dropdown-item { 1710 color: white; 1711 padding: 12px 16px; 1712 text-decoration: none; 1713 white-space: nowrap; 1714 display: block; 1715 cursor: pointer; 1716 border-radius: 10px; 1717 } 1718 1719 .dropdown-content .dropdown-item:hover { 1720 background-color: rgba(255,255,255,0.2) 1721 } 1722 1723 /* Style for the button */ 1724 .dropdown-button { 1725 color: white; 1726 padding: 10px 20px; 1727 border: none; 1728 border-radius: 5px; 1729 cursor: pointer; 1730 line-height: 24px; 1731 } 1732</style> 1733 1734</body> 1735</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.