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://demonflyingfox.com/cart" /> 8 9 <title>Your Shopping Cart | demonflyingfox</title> 10 11 12<meta name="description" content="The official website and shop of demonflyingfox. " /> 13<meta property="og:site_name" content="demonflyingfox" /> 14<meta property="og:url" content="https://demonflyingfox.com/cart" /> 15<meta property="og:description" content="The official website and shop of demonflyingfox. " /> 16 17 18 19 20 21<meta property="og:title" content="Your Shopping Cart | demonflyingfox" /> 22<meta property="og:type" content="website" /> 23 24 25 <meta property="og:image" content="https://imgproxy.fourthwall.dev/zXDbFpef81je7ONNzZK_VVdbVE37qkJSJr2EeDtYzl8/w:1200/sm:1/enc/UOhFCjdSVVIe7jaQ/BhbE-v6TOAmJMQLE/EY9yRy7OikFGxn5m/rxugTz-XmHzH1_-j/Vy82NF4vuhKMRaC-/CZulE_Pnys53S2eM/y85Dzr78G2A5TMZO/Pf70qgNHYXN1-_Fd/rIPzJvi1AfMQ0MPT/cPk3G0Y-Vl311bKK/PW5TeEtvwlvXd4PD/nKQtBk_ZTK9ss4qX/vDe4aQ3epkXLnt9y/zCbryyLs90x3mrP3/82oECqPKEA6JJZLF/YmjzEj2yxm5Q2GHc.png" /> 26 <meta property="og:image:secure_url" content="https://imgproxy.fourthwall.dev/zXDbFpef81je7ONNzZK_VVdbVE37qkJSJr2EeDtYzl8/w:1200/sm:1/enc/UOhFCjdSVVIe7jaQ/BhbE-v6TOAmJMQLE/EY9yRy7OikFGxn5m/rxugTz-XmHzH1_-j/Vy82NF4vuhKMRaC-/CZulE_Pnys53S2eM/y85Dzr78G2A5TMZO/Pf70qgNHYXN1-_Fd/rIPzJvi1AfMQ0MPT/cPk3G0Y-Vl311bKK/PW5TeEtvwlvXd4PD/nKQtBk_ZTK9ss4qX/vDe4aQ3epkXLnt9y/zCbryyLs90x3mrP3/82oECqPKEA6JJZLF/YmjzEj2yxm5Q2GHc.png" /> 27 <meta property="twitter:image" content="https://imgproxy.fourthwall.dev/zXDbFpef81je7ONNzZK_VVdbVE37qkJSJr2EeDtYzl8/w:1200/sm:1/enc/UOhFCjdSVVIe7jaQ/BhbE-v6TOAmJMQLE/EY9yRy7OikFGxn5m/rxugTz-XmHzH1_-j/Vy82NF4vuhKMRaC-/CZulE_Pnys53S2eM/y85Dzr78G2A5TMZO/Pf70qgNHYXN1-_Fd/rIPzJvi1AfMQ0MPT/cPk3G0Y-Vl311bKK/PW5TeEtvwlvXd4PD/nKQtBk_ZTK9ss4qX/vDe4aQ3epkXLnt9y/zCbryyLs90x3mrP3/82oECqPKEA6JJZLF/YmjzEj2yxm5Q2GHc.png" /> 28 29<meta name="twitter:card" content="summary_large_image" /> 30<meta name="twitter:title" content="Your Shopping Cart | demonflyingfox" /> 31<meta name="twitter:description" content="The official website and shop of demonflyingfox. " /> 32 33 34 <link rel="shortcut icon" href="https://imgproxy.fourthwall.dev/YSqbwLeOZ13ybWvddUsnwtzPiBjAqQLDkxOX6c1qpBY/rs:fill:192:192:0/bg:000000/sm:1/enc/VkATUWOHwfvdZ_4q/Z7Vl9RiyAbH0fjNd/U0V1bvSAigmwMxIP/AgfqGCG-cqDGvR6V/MVu0nNj9O5V4ajNk/1d9mgC2aooTkVn9j/dOi0-PTpiGCqcSln/Zg8u4M2JImzeTegL/8wPfo7HHxGhq-Zht/x2HyqR2Fy0aiN3zK/SsTV1hUJtWWSibGo/0CZRuQHC4XSrB-JM.png" sizes="96x96" type="image/png" /> 35<link rel="shortcut icon" href="https://imgproxy.fourthwall.dev/YSqbwLeOZ13ybWvddUsnwtzPiBjAqQLDkxOX6c1qpBY/rs:fill:192:192:0/bg:000000/sm:1/enc/VkATUWOHwfvdZ_4q/Z7Vl9RiyAbH0fjNd/U0V1bvSAigmwMxIP/AgfqGCG-cqDGvR6V/MVu0nNj9O5V4ajNk/1d9mgC2aooTkVn9j/dOi0-PTpiGCqcSln/Zg8u4M2JImzeTegL/8wPfo7HHxGhq-Zht/x2HyqR2Fy0aiN3zK/SsTV1hUJtWWSibGo/0CZRuQHC4XSrB-JM.png" sizes="48x48" type="image/png" /> 36 37 38 <link rel="apple-touch-icon" href="https://imgproxy.fourthwall.dev/YSqbwLeOZ13ybWvddUsnwtzPiBjAqQLDkxOX6c1qpBY/rs:fill:192:192:0/bg:000000/sm:1/enc/VkATUWOHwfvdZ_4q/Z7Vl9RiyAbH0fjNd/U0V1bvSAigmwMxIP/AgfqGCG-cqDGvR6V/MVu0nNj9O5V4ajNk/1d9mgC2aooTkVn9j/dOi0-PTpiGCqcSln/Zg8u4M2JImzeTegL/8wPfo7HHxGhq-Zht/x2HyqR2Fy0aiN3zK/SsTV1hUJtWWSibGo/0CZRuQHC4XSrB-JM.png" 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/cnYip7En1CzU4O3g8LZDpOwIJobZI=" crossorigin="anonymous" /> 46 47 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/c475e7db-17a6-4ff5-a7b5-651bee115cf1/assets/styles/css-variables.scss.css?v=e641675d8a3a50725e1465bb4dea29c040da93eea8c4d37ed792f4fe7495d993" media="all" integrity="sha256-5kFnXYo6UHJeFGW7TeopwEDak+6oxNN+15L0/nSV2ZM=" crossorigin="anonymous" /> 48 <link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/c475e7db-17a6-4ff5-a7b5-651bee115cf1/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://demonflyingfox.com/cart" hreflang="x-default" /> 55<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-AQ" /> 56<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-AS" /> 57<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-BQ" /> 58<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-EC" /> 59<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-FM" /> 60<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-GU" /> 61<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-IO" /> 62<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-MH" /> 63<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-MP" /> 64<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-PR" /> 65<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-PW" /> 66<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-SV" /> 67<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-TC" /> 68<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-UM" /> 69<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-US" /> 70<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-VG" /> 71<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-VI" /> 72<link rel="alternate" href="https://demonflyingfox.com/en-usd/cart" hreflang="en-ZW" /> 73<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-AD" /> 74<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-AT" /> 75<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-AX" /> 76<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-BE" /> 77<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-BG" /> 78<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-BL" /> 79<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-CY" /> 80<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-DE" /> 81<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-EE" /> 82<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-ES" /> 83<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-FI" /> 84<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-FR" /> 85<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-GF" /> 86<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-GP" /> 87<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-GR" /> 88<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-HR" /> 89<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-IE" /> 90<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-IT" /> 91<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-LT" /> 92<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-LU" /> 93<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-LV" /> 94<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-MC" /> 95<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-ME" /> 96<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-MF" /> 97<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-MQ" /> 98<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-MT" /> 99<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-NL" /> 100<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-PM" /> 101<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-PT" /> 102<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-RE" /> 103<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-SI" /> 104<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-SK" /> 105<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-SM" /> 106<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-TF" /> 107<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-VA" /> 108<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-YT" /> 109<link rel="alternate" href="https://demonflyingfox.com/en-eur/cart" hreflang="en-XK" /> 110<link rel="alternate" href="https://demonflyingfox.com/en-cad/cart" hreflang="en-CA" /> 111<link rel="alternate" href="https://demonflyingfox.com/en-gbp/cart" hreflang="en-GB" /> 112<link rel="alternate" href="https://demonflyingfox.com/en-gbp/cart" hreflang="en-GG" /> 113<link rel="alternate" href="https://demonflyingfox.com/en-gbp/cart" hreflang="en-GS" /> 114<link rel="alternate" href="https://demonflyingfox.com/en-gbp/cart" hreflang="en-IM" /> 115<link rel="alternate" href="https://demonflyingfox.com/en-gbp/cart" hreflang="en-JE" /> 116<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-AU" /> 117<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-CC" /> 118<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-CX" /> 119<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-HM" /> 120<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-KI" /> 121<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-NF" /> 122<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-NR" /> 123<link rel="alternate" href="https://demonflyingfox.com/en-aud/cart" hreflang="en-TV" /> 124<link rel="alternate" href="https://demonflyingfox.com/en-nzd/cart" hreflang="en-CK" /> 125<link rel="alternate" href="https://demonflyingfox.com/en-nzd/cart" hreflang="en-NU" /> 126<link rel="alternate" href="https://demonflyingfox.com/en-nzd/cart" hreflang="en-NZ" /> 127<link rel="alternate" href="https://demonflyingfox.com/en-nzd/cart" hreflang="en-PN" /> 128<link rel="alternate" href="https://demonflyingfox.com/en-nzd/cart" hreflang="en-TK" /> 129<link rel="alternate" href="https://demonflyingfox.com/en-sek/cart" hreflang="en-SE" /> 130<link rel="alternate" href="https://demonflyingfox.com/en-nok/cart" hreflang="en-BV" /> 131<link rel="alternate" href="https://demonflyingfox.com/en-nok/cart" hreflang="en-NO" /> 132<link rel="alternate" href="https://demonflyingfox.com/en-nok/cart" hreflang="en-SJ" /> 133<link rel="alternate" href="https://demonflyingfox.com/en-dkk/cart" hreflang="en-DK" /> 134<link rel="alternate" href="https://demonflyingfox.com/en-dkk/cart" hreflang="en-FO" /> 135<link rel="alternate" href="https://demonflyingfox.com/en-dkk/cart" hreflang="en-GL" /> 136<link rel="alternate" href="https://demonflyingfox.com/en-pln/cart" hreflang="en-PL" /> 137<link rel="alternate" href="https://demonflyingfox.com/en-inr/cart" hreflang="en-IN" /> 138<link rel="alternate" href="https://demonflyingfox.com/en-jpy/cart" hreflang="en-JP" /> 139<link rel="alternate" href="https://demonflyingfox.com/en-myr/cart" hreflang="en-MY" /> 140<link rel="alternate" href="https://demonflyingfox.com/en-sgd/cart" hreflang="en-SG" /> 141<link rel="alternate" href="https://demonflyingfox.com/en-mxn/cart" hreflang="en-MX" /> 142<link rel="alternate" href="https://demonflyingfox.com/en-brl/cart" hreflang="en-BR" /> 143<link rel="alternate" href="https://demonflyingfox.com/en-chf/cart" hreflang="en-CH" /> 144<link rel="alternate" href="https://demonflyingfox.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 = 'demonflyingfox'; 153 window.shopId = 'sh_59784478-fa05-4e24-8b58-2d0dfb4c032c'; 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-G9DC0BF00M'; 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<meta name='theme-color' content='#FFFFFF' /> 225<link rel="stylesheet" type="text/css" href="https://themes.fourthwall.dev/themes/assets/c475e7db-17a6-4ff5-a7b5-651bee115cf1/assets/styles/custom_sections.css?v=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 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: `demonflyingfox`, 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_59784478-fa05-4e24-8b58-2d0dfb4c032c' 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-header" class="fw-section"> 364 365 366 367 368 369<header 370 data-testid='main.single.section' 371 class='header' 372> 373 <div class='wrapper'> 374 <div class='header__grid header__grid--search header--left header__size--md'> 375 <div class='header__mobile-menu hidden@sm'> 376 <button data-drawer-trigger-primary='mobile-menu' class='header__icon' aria-label='Open menu'> 377 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 378 <path fill-rule="evenodd" clip-rule="evenodd" d="M16 3.75H0V2.25H16V3.75ZM16 8.75H0V7.25H16V8.75ZM16 13.75H0V12.25H16V13.75Z" fill="currentColor"/> 379</svg> 380 381 </button> 382 </div> 383 384 385 386 <div class='header__logo-container'><div class='header__logo'> 387 <a href='/' class='header__logo-link'> 388 389 390 <div class="text-logo"> 391 demonflyingfox 392 </div> 393 394 395 </a> 396 </div> 397 </div> 398 399 400 <div class='header__nav-container visible@sm'> 401 <nav class='header__nav' aria-label='Primary'> 402 <ul class='header__list list--horizontal'> 403 404 <li class="header__list-item"> 405 <a 406 href="/" 407 class="header__link" 408 409 > 410 Home 411 412 413 </a> 414 415 416 </li> 417 418 <li class="header__list-item"> 419 <a 420 href="/collections/all" 421 class="header__link" 422 423 > 424 Browse all 425 426 427 </a> 428 429 430 </li> 431 432 </ul> 433 </nav> 434 </div> 435 436 437 <div class='header__icons'> 438 <ul class='header__list list list--horizontal'> 439 440 441 442 443 444 445 <li class='header__list-item visible@sm'> 446 <a class='header__link header__link--icon' tabindex='0' role='button' aria-label='Currency selector, current: USD'> 447 USD 448 449 450 <span class='header__link-icon'> 451 <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"> 452 <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"/> 453</svg> 454 455 </span> 456 457 </a> 458 459 460 <div class='header__dropdown header__dropdown--content'> 461 <ul class='header__dropdown-inner'> 462 463 <li class='header__dropdown-item'> 464 <a 465 class='header__dropdown-link' 466 href='/localization?currency=USD&return_to=/cart' 467 > 468 USD 469 </a> 470 </li> 471 472 <li class='header__dropdown-item'> 473 <a 474 class='header__dropdown-link' 475 href='/localization?currency=EUR&return_to=/cart' 476 > 477 EUR 478 </a> 479 </li> 480 481 <li class='header__dropdown-item'> 482 <a 483 class='header__dropdown-link' 484 href='/localization?currency=CAD&return_to=/cart' 485 > 486 CAD 487 </a> 488 </li> 489 490 <li class='header__dropdown-item'> 491 <a 492 class='header__dropdown-link' 493 href='/localization?currency=GBP&return_to=/cart' 494 > 495 GBP 496 </a> 497 </li> 498 499 <li class='header__dropdown-item'> 500 <a 501 class='header__dropdown-link' 502 href='/localization?currency=AUD&return_to=/cart' 503 > 504 AUD 505 </a> 506 </li> 507 508 <li class='header__dropdown-item'> 509 <a 510 class='header__dropdown-link' 511 href='/localization?currency=NZD&return_to=/cart' 512 > 513 NZD 514 </a> 515 </li> 516 517 <li class='header__dropdown-item'> 518 <a 519 class='header__dropdown-link' 520 href='/localization?currency=SEK&return_to=/cart' 521 > 522 SEK 523 </a> 524 </li> 525 526 <li class='header__dropdown-item'> 527 <a 528 class='header__dropdown-link' 529 href='/localization?currency=NOK&return_to=/cart' 530 > 531 NOK 532 </a> 533 </li> 534 535 <li class='header__dropdown-item'> 536 <a 537 class='header__dropdown-link' 538 href='/localization?currency=DKK&return_to=/cart' 539 > 540 DKK 541 </a> 542 </li> 543 544 <li class='header__dropdown-item'> 545 <a 546 class='header__dropdown-link' 547 href='/localization?currency=PLN&return_to=/cart' 548 > 549 PLN 550 </a> 551 </li> 552 553 <li class='header__dropdown-item'> 554 <a 555 class='header__dropdown-link' 556 href='/localization?currency=INR&return_to=/cart' 557 > 558 INR 559 </a> 560 </li> 561 562 <li class='header__dropdown-item'> 563 <a 564 class='header__dropdown-link' 565 href='/localization?currency=JPY&return_to=/cart' 566 > 567 JPY 568 </a> 569 </li> 570 571 <li class='header__dropdown-item'> 572 <a 573 class='header__dropdown-link' 574 href='/localization?currency=MYR&return_to=/cart' 575 > 576 MYR 577 </a> 578 </li> 579 580 <li class='header__dropdown-item'> 581 <a 582 class='header__dropdown-link' 583 href='/localization?currency=SGD&return_to=/cart' 584 > 585 SGD 586 </a> 587 </li> 588 589 <li class='header__dropdown-item'> 590 <a 591 class='header__dropdown-link' 592 href='/localization?currency=MXN&return_to=/cart' 593 > 594 MXN 595 </a> 596 </li> 597 598 <li class='header__dropdown-item'> 599 <a 600 class='header__dropdown-link' 601 href='/localization?currency=BRL&return_to=/cart' 602 > 603 BRL 604 </a> 605 </li> 606 607 <li class='header__dropdown-item'> 608 <a 609 class='header__dropdown-link' 610 href='/localization?currency=CHF&return_to=/cart' 611 > 612 CHF 613 </a> 614 </li> 615 616 </ul> 617 </div> 618 619 </li> 620 621 622 623 <li class='header__list-item'> 624 <button class='header__icon' aria-label='Search' type='button' data-search-toggle>
625 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 626<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"/> 627</svg> 628 629 </button> 630 </li> 631 632 633 634 635 <li class='header__list-item'> 636 <a 637 href='/cart' 638 class='header__icon' 639 aria-label='Cart' 640 > 641 <div 642 data-cart-widget="widget" 643 data-testid="cart.icon" 644 class="cart-widget cart-widget--icons empty" 645> 646 647 <span data-cart-widget="quantity" class="cart-widget__items"></span> 648 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 649 <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"/> 650</svg> 651 652 653</div> 654 </a> 655 </li> 656 </ul> 657 658 <div data-cart-announcer aria-live="polite" aria-atomic="true" class="visually-hidden"></div> 659 660 </div> 661 </div> 662 663 <search-header> 664 <div class='search-header'> 665 <div class='search-header__inner'> 666 <form class='search-header__form' action='/search' method='get'> 667 <button type='submit' class='search-header__button' aria-label='Search'> 668 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"> 669<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"/> 670</svg> 671 672 </button> 673 <input 674 type='search' 675 name='q' 676 class='search-header__input' 677 placeholder='Search' 678 aria-label='Search' 679 autocomplete='off' 680 > 681 <button class='search-header__button' type='button' aria-label='Close search'> 682 <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"> 683 <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"/> 684</svg> 685 686 </button> 687 </form> 688 </div> 689</div> 690 691 </search-header> 692 693 </div> 694</header> 695 696 697<aside 698 data-drawer="mobile-menu" 699 class="drawer hidden@sm" 700> 701 <div class="drawer__background" data-drawer-trigger-primary="mobile-menu"></div> 702 <div class="drawer__content drawer__content--small mobile-menu"> 703 <div class="mobile-menu__section mobile-menu__section--header"> 704 <button type="button" class="mobile-menu__close" data-drawer-trigger-primary="mobile-menu" aria-label="Close menu"> 705 <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"> 706 <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"/> 707</svg> 708 709 </button> 710 </div> 711 <div class="mobile-menu__section mobile-menu__section--body"> 712 <div class="mobile-menu__nav"> 713 <ul class="mobile-menu__list"> 714 715 <li class="mobile-menu__list-item"> 716 717 <a 718 href="/" 719 class="mobile-menu__link" 720 > 721 Home 722 </a> 723 724 725 726 </li> 727 728 <li class="mobile-menu__list-item"> 729 730 <a 731 href="/collections/all" 732 class="mobile-menu__link" 733 > 734 Browse all 735 </a> 736 737 738 739 </li> 740 741 742 743 <li class="mobile-menu__list-item"> 744 <a for="input-drawer" class="mobile-menu__link" data-accordion="trigger" role="button" tabindex="0"> 745 USD 746 747 748 <div class="mobile-menu__link-icon"> 749 <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"> 750 <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"/> 751</svg> 752 753 </div> 754 755 </a> 756 757 758 <div class="mobile-menu__dropdown mobile-menu__dropdown--content"> 759 <ul class="mobile-menu__dropdown-inner"> 760 761 <li class="mobile-menu__dropdown-item"> 762 <a class="mobile-menu__dropdown-link" href="/localization?currency=USD&return_to=/cart"> 763 USD 764 </a> 765 </li> 766 767 <li class="mobile-menu__dropdown-item"> 768 <a class="mobile-menu__dropdown-link" href="/localization?currency=EUR&return_to=/cart"> 769 EUR 770 </a> 771 </li> 772 773 <li class="mobile-menu__dropdown-item"> 774 <a class="mobile-menu__dropdown-link" href="/localization?currency=CAD&return_to=/cart"> 775 CAD 776 </a> 777 </li> 778 779 <li class="mobile-menu__dropdown-item"> 780 <a class="mobile-menu__dropdown-link" href="/localization?currency=GBP&return_to=/cart"> 781 GBP 782 </a> 783 </li> 784 785 <li class="mobile-menu__dropdown-item"> 786 <a class="mobile-menu__dropdown-link" href="/localization?currency=AUD&return_to=/cart"> 787 AUD 788 </a> 789 </li> 790 791 <li class="mobile-menu__dropdown-item"> 792 <a class="mobile-menu__dropdown-link" href="/localization?currency=NZD&return_to=/cart"> 793 NZD 794 </a> 795 </li> 796 797 <li class="mobile-menu__dropdown-item"> 798 <a class="mobile-menu__dropdown-link" href="/localization?currency=SEK&return_to=/cart"> 799 SEK 800 </a> 801 </li> 802 803 <li class="mobile-menu__dropdown-item"> 804 <a class="mobile-menu__dropdown-link" href="/localization?currency=NOK&return_to=/cart"> 805 NOK 806 </a> 807 </li> 808 809 <li class="mobile-menu__dropdown-item"> 810 <a class="mobile-menu__dropdown-link" href="/localization?currency=DKK&return_to=/cart"> 811 DKK 812 </a> 813 </li> 814 815 <li class="mobile-menu__dropdown-item"> 816 <a class="mobile-menu__dropdown-link" href="/localization?currency=PLN&return_to=/cart"> 817 PLN 818 </a> 819 </li> 820 821 <li class="mobile-menu__dropdown-item"> 822 <a class="mobile-menu__dropdown-link" href="/localization?currency=INR&return_to=/cart"> 823 INR 824 </a> 825 </li> 826 827 <li class="mobile-menu__dropdown-item"> 828 <a class="mobile-menu__dropdown-link" href="/localization?currency=JPY&return_to=/cart"> 829 JPY 830 </a> 831 </li> 832 833 <li class="mobile-menu__dropdown-item"> 834 <a class="mobile-menu__dropdown-link" href="/localization?currency=MYR&return_to=/cart"> 835 MYR 836 </a> 837 </li> 838 839 <li class="mobile-menu__dropdown-item"> 840 <a class="mobile-menu__dropdown-link" href="/localization?currency=SGD&return_to=/cart"> 841 SGD 842 </a> 843 </li> 844 845 <li class="mobile-menu__dropdown-item"> 846 <a class="mobile-menu__dropdown-link" href="/localization?currency=MXN&return_to=/cart"> 847 MXN 848 </a> 849 </li> 850 851 <li class="mobile-menu__dropdown-item"> 852 <a class="mobile-menu__dropdown-link" href="/localization?currency=BRL&return_to=/cart"> 853 BRL 854 </a> 855 </li> 856 857 <li class="mobile-menu__dropdown-item"> 858 <a class="mobile-menu__dropdown-link" href="/localization?currency=CHF&return_to=/cart"> 859 CHF 860 </a> 861 </li> 862 863 </ul> 864 </div> 865 866 </li> 867 868 </ul> 869 </div> 870 </div> 871 <div class="mobile-menu__section mobile-menu__section--socials"> 872 <div class="mobile-menu__list-social"> 873 <ul class="mobile-menu__socials"> 874 875 876 877 878 879 <li class="mobile-menu__social"> 880 <a 881 882 href="https://youtube.com/channel/UCvdUBO1nKje-SqOqBQm1Rmw" 883 884 target="_blank" 885 class="mobile-menu__social-link" 886 aria-label="Youtube (opens in a new tab)" 887 > 888 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 889<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
8897 10.1575 13.7817 10.2342Z" fill="currentColor"/> 890</svg> 891 892 893 </a> 894 </li> 895 896 897 898 </ul> 899 </div> 900 </div> 901 </div> 902</aside> 903
904<script> 905 const currencyData = { 906 locale: 'en-US', 907 currency: 'USD', 908 } 909</script>
909 910 911 912 913</div> 914 </div> 915 916 <main id="main-content" class="page__main"> 917 <div class="main main--cart"> 918 <div class="main__sections main__sections--space" data-testid="main.sections"> 919 <div id="fw-section-cart" class="fw-section"> 920<section class="cart-container" data-cart="cart" data-testid="main.single.section"> 921 <div class="container container--10 wrapper"> 922 <div id="cart-component" class="cart-container__cart-component"></div> 923 </div> 924</section> 925</div> 926 927 <div id="fw-section-cart-product-recommendations" class="fw-section"> 928<section data-testid="main.single.section" class="cart-product-recommendations"> 929 <cart-product-recommendations /> 930</section> 931 932<template id="product-template"> 933 <div> 934 <div data-testid="product" class="product-tile" data-id="fw-section-cart-product-recommendations"> 935 <a href="" class="tile"> 936 <div class="tile__image"> 937 <div class="image image--background-color"> 938 <div class="image__object"> 939 <img 940 alt="" 941 class="tile__item" 942 > 943 </div> 944 </div> 945 </div> 946 947 948 <div class="tile__description tile__description--center"> 949 <h3 class="tile__heading"> 950 </h3> 951 952 953 <p class="tile__prices"> 954 <span class="tile__price tile__price--offer"> 955 </span> 956 957 <span class="tile__price tile__price--original"> 958 </span> 959 </p> 960 </div> 961 962 </a> 963 </div> 964 </div> 965</template> 966</div> 967 </div> 968</div> 969 970 </main> 971 972 <div class="page__footer"> 973 <div id="fw-section-footer" class="fw-section"><style> 974 .section-fw-section-footer-padding { 975 padding-top: 15px; 976 padding-bottom: 15px; 977 } 978 979 @media screen and (min-width: 640px) { 980 .section-fw-section-footer-padding { 981 padding-top: 20px; 982 padding-bottom: 20px; 983 } 984 } 985</style> 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002<footer data-testid="main.single.section" class="footer section-fw-section-footer-padding"> 1003 1004 <div class="wrapper "> 1005 <div class="footer__inner"> 1006 1007 <div class="footer__top"> 1008 <div class="col-grid col-grid--middle col-grid--4-8@md col-grid--reversed@md"> 1009 <div> 1010 1011 <div class="footer__socials"> 1012 <ul class="footer__list footer__list--socials"> 1013 1014 1015 1016 1017 1018 <li class="footer__list-item footer__list-item--social"> 1019 <a 1020 1021 href="https://youtube.com/channel/UCvdUBO1nKje-SqOqBQm1Rmw" 1022 1023 target="_blank" 1024 class="footer__social-link" 1025 aria-label="Youtube (opens in a new tab)" 1026 > 1027 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1028<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"/> 1029</svg> 1030 1031 1032 </a> 1033 </li> 1034 1035 1036 1037 </ul> 1038 </div> 1039 1040 </div> 1041 1042 <div> 1043 <nav class="footer__nav" aria-label="Footer"> 1044 <ul class="footer__list footer__list--menu"> 1045 1046 1047 <li class="footer__list-item"> 1048 <a class="footer__menu-link footer__menu-link--icon" tabindex="0" role="button" aria-label="Currency selector, current: USD"> 1049 USD 1050 1051 <span class="footer__link-icon"> 1052 <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"> 1053 <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"/> 1054</svg> 1055 1056 </span> 1057 1058 </a> 1059 1060 <div class="footer__dropdown footer__dropdown--content"> 1061 <ul class="footer__dropdown-inner"> 1062 1063 <li class="footer__dropdown-item"> 1064 <a class="footer__dropdown-link" href="/localization?currency=USD&return_to=/cart"> 1065 USD 1066 </a> 1067 </li> 1068 1069 <li class="footer__dropdown-item"> 1070 <a class="footer__dropdown-link" href="/localization?currency=EUR&return_to=/cart"> 1071 EUR 1072 </a> 1073 </li> 1074 1075 <li class="footer__dropdown-item"> 1076 <a class="footer__dropdown-link" href="/localization?currency=CAD&return_to=/cart"> 1077 CAD 1078 </a> 1079 </li> 1080 1081 <li class="footer__dropdown-item"> 1082 <a class="footer__dropdown-link" href="/localization?currency=GBP&return_to=/cart"> 1083 GBP 1084 </a> 1085 </li> 1086 1087 <li class="footer__dropdown-item"> 1088 <a class="footer__dropdown-link" href="/localization?currency=AUD&return_to=/cart"> 1089 AUD 1090 </a> 1091 </li> 1092 1093 <li class="footer__dropdown-item"> 1094 <a class="footer__dropdown-link" href="/localization?currency=NZD&return_to=/cart"> 1095 NZD 1096 </a> 1097 </li> 1098 1099 <li class="footer__dropdown-item"> 1100 <a class="footer__dropdown-link" href="/localization?currency=SEK&return_to=/cart"> 1101 SEK 1102 </a> 1103 </li> 1104 1105 <li class="footer__dropdown-item"> 1106 <a class="footer__dropdown-link" href="/localization?currency=NOK&return_to=/cart"> 1107 NOK 1108 </a> 1109 </li> 1110 1111 <li class="footer__dropdown-item"> 1112 <a class="footer__dropdown-link" href="/localization?currency=DKK&return_to=/cart"> 1113 DKK 1114 </a> 1115 </li> 1116 1117 <li class="footer__dropdown-item"> 1118 <a class="footer__dropdown-link" href="/localization?currency=PLN&return_to=/cart"> 1119 PLN 1120 </a> 1121 </li> 1122 1123 <li class="footer__dropdown-item"> 1124 <a class="footer__dropdown-link" href="/localization?currency=INR&return_to=/cart"> 1125 INR 1126 </a> 1127 </li> 1128 1129 <li class="footer__dropdown-item"> 1130 <a class="footer__dropdown-link" href="/localization?currency=JPY&return_to=/cart"> 1131 JPY 1132 </a> 1133 </li> 1134 1135 <li class="footer__dropdown-item"> 1136 <a class="footer__dropdown-link" href="/localization?currency=MYR&return_to=/cart"> 1137 MYR 1138 </a> 1139 </li> 1140 1141 <li class="footer__dropdown-item"> 1142 <a class="footer__dropdown-link" href="/localization?currency=SGD&return_to=/cart"> 1143 SGD 1144 </a> 1145 </li> 1146 1147 <li class="footer__dropdown-item"> 1148 <a class="footer__dropdown-link" href="/localization?currency=MXN&return_to=/cart"> 1149 MXN 1150 </a> 1151 </li> 1152 1153 <li class="footer__dropdown-item"> 1154 <a class="footer__dropdown-link" href="/localization?currency=BRL&return_to=/cart"> 1155 BRL 1156 </a> 1157 </li> 1158 1159 <li class="footer__dropdown-item"> 1160 <a class="footer__dropdown-link" href="/localization?currency=CHF&return_to=/cart"> 1161 CHF 1162 </a> 1163 </li> 1164 1165 </ul> 1166 </div> 1167 1168 </li> 1169 1170 1171 1172 1173 <li class="footer__list-item"> 1174 <a href="/contact" class="footer__menu-link" >Contact Support</a> 1175 </li> 1176 1177 <li class="footer__list-item"> 1178 <a href="/pages/terms-of-service" class="footer__menu-link" >Terms of Service</a> 1179 </li> 1180 1181 <li class="footer__list-item"> 1182 <a href="/pages/privacy-policy" class="footer__menu-link" >Privacy Policy</a> 1183 </li> 1184 1185 <li class="footer__list-item"> 1186 <a href="/pages/returns-faq" class="footer__menu-link" >Returns & FAQ</a> 1187 </li> 1188 1189 1190 </ul> 1191 </nav> 1192 </div> 1193 </div> 1194 </div> 1195 1196 <div class="footer__bottom"> 1197 <ul class="footer__list footer__list--bottom"> 1198 <li class="footer__list-item">
1198<div class="footer__copy">© 2026 demonflyingfox</div></li> 1199 1200 <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> 1201 1202 </ul> 1203 </div> 1204 1205 </div> 1206 </div> 1207</footer> 1208 1209 1210</div> 1211 </div> 1212 </div> 1213 1214
1214<script> 1215 var fourthwallTheme = { 1216 strings: { 1217 addToCart: "Add to Cart", 1218 redeemGift: "Redeem Your Gift", 1219 viewCart: "View Cart", 1220 checkout: "Checkout", 1221 outOfStock: "Out of Stock", 1222 unavailable: "Not Available", 1223 soldOut: "Sold Out", 1224 soldOutSuffix: " - Sold Out", 1225 missingQuantityError: "Please choose the quantity.", 1226 generalError: "An error occurred. Please try refreshing the page.", 1227 item: "item", 1228 items: "items", 1229 startShopping: "Start Shopping", 1230 subtotal: "Subtotal", 1231 backToShopping: "Back to Shopping", 1232 cart: { 1233 heading: "[item_count] [item_count_label] in your cart for [total]", 1234 emptyHeading: "Your Shopping Cart is Empty", 1235 tableHeader: { 1236 item: "Item", 1237 quantity: "Quantity", 1238 price: "Price" 1239 }, 1240 deleteModal: { 1241 heading: "Are you sure you want to remove [title] from your cart?", 1242 cancel: "Cancel", 1243 delete: "Delete" 1244 } 1245 }, 1246 newsletter: { 1247 missingEmailError: 'Please enter your email.', 1248 invalidEmailError: 'Please enter a valid email.', 1249 subscribeSuccess: 'Thanks for subscribing!' 1250 }, 1251 donation: { 1252 missingAmountError: 'Please select or enter the donation amount.', 1253 invalidAmountError: 'Please enter a valid donation amount.', 1254 missingNameError: 'Please enter your name.', 1255 missingMessageError: 'Please enter the message.' 1256 }, 1257 checkoutErrors: { 1258 default: "There was an issue with your checkout. Please review your cart and try again.", 1259 CHECKOUT_CART_ITEMS_CHANGED: "Your cart has changed since you started checkout. Please review your items and try again.", 1260 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." 1261 } 1262 }, 1263 urls: { 1264 cart: "/cart", 1265 cartItemLocalizedPrefix: "", 1266 cartAddUrl: "/cart/add", 1267 cartChangeUrl: "/cart/change", 1268 productsUrlPrefix: "/products", 1269 allProductsCollection: "/collections/all", 1270 } 1271 }; 1272</script>
1272 1273 1274 1275
1275<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>
1275 1276 1277 1278<div id="cookie-consent-banner-container" data-turbo-permanent="true"></div> 1279 1280 1281 <div class="admin-bar-container hidden"> 1282 <div id="admin-bar" class="admin-bar sticky hidden"> 1283 <div class="wrapper"> 1284 <div> 1285 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 1286 <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"/> 1287 </svg> 1288 </div> 1289 <div class="actions"> 1290 <div class='desktop'> 1291 <div class="dropdown"> 1292 <button class="dropdown-button desktop-switcher pill" data-target="desktop-switcher">View as: </button> 1293 <div class="dropdown-content" id="desktop-switcher"> 1294 <ul> 1295 <li class="dropdown-item" data-mode="creator">Admin</li> 1296 <li class="dropdown-item" data-mode="supporter">Supporter</li> 1297 </ul> 1298 </div> 1299 </div> 1300 1301 <a href="/admin/dashboard" rel="noopener noreferrer" class="pill dashboard-link">Go to dashboard</a> 1302 </div> 1303 1304 <div class='mobile'> 1305 <div class="dropdown"> 1306 <button class="dropdown-button pill mobile-switcher" data-target="mobile-switcher">View as</button> 1307 <div class="dropdown-content" id="mobile-switcher"> 1308 <ul> 1309 <li class="dropdown-item" data-mode="creator">Admin</li> 1310 <li class="dropdown-item" data-mode="supporter">Supporter</li> 1311 </ul> 1312 </div> 1313 </div> 1314 1315 <div class="dropdown mobile"> 1316 <button class="dropdown-button pill" data-target="mobile-links"> 1317 <svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 1318 <g id="Dots horizontal"> 1319 <g> 1320 <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"/> 1321 <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"/> 1322 <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"/> 1323 </g> 1324 </g> 1325 </svg> 1326 </button> 1327 <div class="dropdown-content" id="mobile-links"> 1328 <a href="/admin/dashboard" rel="noopener noreferrer" class="dropdown-item">Go to dashboard</a> 1329 </div> 1330 </div> 1331 </div> 1332 1333 <div class="pill close"> 1334 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 1335 <g> 1336 <path d="M0.875 13.125L13.125 0.875M13.125 13.125L0.875 0.875" stroke="#FDFCFB" stroke-width="1.5" stroke-linejoin="bevel"/> 1337 </g> 1338 </svg> 1339 </div> 1340 </div> 1341 </div> 1342 </div> 1343 1344 <div id="admin-bar-small" class="admin-bar-small sticky hidden"> 1345 <div class="wrapper"> 1346 <div> 1347 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> 1348 <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"/> 1349 </svg> 1350 </div> 1351 </div> 1352 </div> 1353</div> 1354
1355<script> 1356 const cookieModule = { 1357 setCookie: function (name, value, days = 365, maxAge) { 1358 const expires = new Date(Date.now() + days * 24 * 60 * 60 * 1000).toUTCString(); 1359 let cookieString = `${name}=${value}; expires=${expires}; path=/`; 1360 1361 if (maxAge) { 1362 cookieString += `; max-age=${maxAge}`; 1363 } 1364 1365 document.cookie = cookieString; 1366 }, 1367 1368 getCookie: function (name) { 1369 const cookie = document.cookie.split(';').find(c => c.trim().startsWith(`${name}=`)); 1370 return cookie ? cookie.split('=')[1] : null; 1371 } 1372 }; 1373 1374 const AdminBar = { 1375 adminBar: document.getElementById("admin-bar"), 1376 adminBarContainer: document.querySelector(".admin-bar-container"), 1377 adminBarSmall: document.getElementById("admin-bar-small"), 1378 closeButton: document.querySelector('#admin-bar .close'), 1379 viewAsDesktopButton: document.querySelector(".desktop-switcher"), 1380 dropdownButtons: document.querySelectorAll(".dropdown-button"), 1381 dropdownContents: document.querySelectorAll(".dropdown-content"), 1382 inIframe: () => { 1383 try { 1384 return window.self !== window.top; 1385 } catch (e) { 1386 return true; 1387 } 1388 }, 1389 inThemeEditor: () => cookieModule.getCookie('view_as') === 'theme_editor' || AdminBar.inIframe(), 1390 viewAsCreator: () => cookieModule.getCookie('view_as') === 'creator', 1391 viewAsSupporter: () => cookieModule.getCookie('view_as') === 'supporter', 1392 verifyCreator: () => { 1393 document.cookie = 'return_to=' + window.location.href + '; path=/; max-age=30;'; 1394 window.location.href = '/platform/creators/handoff/start?return=' + encodeURIComponent(window.location.pathname + window.location.search); 1395 }, 1396 getSelectedView: () => (AdminBar.viewAsCreator() ? 'Admin' : 'Supporter'), 1397 toggleDropdown: (dropdownContent) => { 1398 dropdownContent.style.display = dropdownContent.style.display === 'none' || dropdownContent.style.display === '' ? 'block' : 'none'; 1399 }, 1400 init() { 1401 if ( 1402 !AdminBar.inThemeEditor() && 1403 cookieModule.getCookie('core_dashboard_visited') 1404 ) { 1405 AdminBar.viewAsDesktopButton.textContent = 'View as: ' + AdminBar.getSelectedView(); 1406 AdminBar.adminBarContainer.classList.toggle('hidden'); 1407 if (cookieModule.getCookie('admin_bar_mode') === 'condensed') { 1408 AdminBar.adminBarSmall.classList.toggle('hidden'); 1409 } else { 1410 AdminBar.adminBar.classList.toggle('hidden'); 1411 } 1412 } 1413 1414 AdminBar.closeButton.addEventListener('click', () => { 1415 cookieModule.setCookie('admin_bar_mode', 'condensed'); 1416 AdminBar.adminBar.classList.toggle('hidden'); 1417 AdminBar.adminBarSmall.classList.toggle('hidden'); 1418 }); 1419 1420 AdminBar.adminBarSmall.addEventListener('click', () => { 1421 cookieModule.setCookie('admin_bar_mode', 'expanded'); 1422 AdminBar.adminBar.classList.toggle('hidden'); 1423 AdminBar.adminBarSmall.classList.toggle('hidden'); 1424 }); 1425 1426 // Add event listeners to each dropdown button 1427 AdminBar.dropdownButtons.forEach((button) => { 1428 button.addEventListener("click", () => { 1429 const dropdownId = button.getAttribute("data-target"); 1430 const dropdownContent = document.getElementById(dropdownId); 1431 AdminBar.toggleDropdown(dropdownContent); 1432 }); 1433 }); 1434 1435 // Close the dropdowns when clicking outside 1436 document.addEventListener("click", (event) => { 1437 AdminBar.dropdownButtons.forEach((button) => { 1438 const dropdownId = button.getAttribute("data-target"); 1439 const dropdownContent = document.getElementById(dropdownId); 1440 if (event.target !== button && !button.contains(event.target) && event.target !== dropdownContent) { 1441 dropdownContent.style.display = "none"; 1442 } 1443 }); 1444 }); 1445 1446 document.querySelectorAll(".dropdown-content li").forEach((item) => { 1447 item.addEventListener("click", (event) => { 1448 const mode = event.target.getAttribute("data-mode"); 1449 if (mode === 'creator') { 1450 cookieModule.setCookie('view_as', 'creator'); 1451 AdminBar.verifyCreator(); 1452 } else { 1453 cookieModule.setCookie('view_as', 'supporter'); 1454 window.location.reload(); 1455 } 1456 }); 1457 }); 1458 }, 1459 }; 1460
1461 AdminBar.init(); 1462</script>
1462 1463 1464<style> 1465 .admin-bar-container { 1466 height: 56px; 1467 } 1468 1469 .hidden { 1470 display: none; 1471 } 1472 1473 .admin-bar, 1474 .admin-bar-small { 1475 z-index: 1000; 1476 background-color: rgba(0, 0, 0, 0.7); 1477 backdrop-filter: blur(15px); 1478 -webkit-backdrop-filter: blur(15px); 1479 height: 56px; 1480 width: 100%; 1481 } 1482 1483 .admin-bar-small { 1484 width: 73px; 1485 cursor: pointer; 1486 } 1487 1488 .sticky { 1489 position: fixed; 1490 bottom: 0; 1491 } 1492 1493 .admin-bar a { 1494 color: #FDFCFB; 1495 padding: 14px; 1496 font-size: 14px; 1497 text-decoration: none; 1498 } 1499 1500 .admin-bar button { 1501 padding: 14px; 1502 font-size: 14px; 1503 } 1504 1505 .admin-bar .wrapper, 1506 .admin-bar-small .wrapper { 1507 display: flex; 1508 justify-content: space-between; 1509 align-items: center; 1510 padding: 10px 20px; 1511 } 1512 1513 .admin-bar-small .wrapper { 1514 padding: 12px 20px; 1515 } 1516 1517 .admin-bar .pill { 1518 display: flex; 1519 justify-content: center; 1520 align-items: center; 1521 gap: 10px; 1522 text-transform: capitalize; 1523 1524 padding: 6px 14px; 1525 border-radius: 100px; 1526 background: rgba(253, 252, 251, 0.12); 1527 1528 cursor: pointer; 1529 } 1530 1531 .admin-bar .pill:hover { 1532 background: rgba(253, 252, 251, 0.22); 1533 } 1534 1535 .admin-bar .close { 1536 padding: 6px 11px; 1537 } 1538 1539 .admin-bar .actions, 1540 .admin-bar .actions .desktop, 1541 .admin-bar .actions .mobile { 1542 display: flex; 1543 gap: 10px; 1544 } 1545 1546 .admin-bar .actions .desktop, 1547 .admin-bar .actions .edit-page { 1548 display: none; 1549 } 1550 1551 @media (min-width: 768px) { 1552 .admin-bar a, 1553 .admin-bar button { 1554 font-size: 16px; 1555 } 1556 1557 .admin-bar .actions .desktop, 1558 .admin-bar .actions .edit-page { 1559 display: flex; 1560 gap: 10px; 1561 } 1562 1563 .admin-bar .actions .mobile { 1564 display: none; 1565 } 1566 } 1567 1568 .dropdown { 1569 position: relative; 1570 } 1571 1572 .dropdown-content { 1573 display: none; 1574 position: absolute; 1575 background-color: rgba(0,0,0,0.9); 1576 min-width: 130px; 1577 box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 1578 bottom: 100%; /* Position above the button */ 1579 border-radius: 10px; 1580 bottom: calc((100% + 8px) - 0px); 1581 right: 0; 1582 } 1583 1584 /* Style for each list item */ 1585 .dropdown-content .dropdown-item { 1586 color: white; 1587 padding: 12px 16px; 1588 text-decoration: none; 1589 white-space: nowrap; 1590 display: block; 1591 cursor: pointer; 1592 border-radius: 10px; 1593 } 1594 1595 .dropdown-content .dropdown-item:hover { 1596 background-color: rgba(255,255,255,0.2) 1597 } 1598 1599 /* Style for the button */ 1600 .dropdown-button { 1601 color: white; 1602 padding: 10px 20px; 1603 border: none; 1604 border-radius: 5px; 1605 cursor: pointer; 1606 line-height: 24px; 1607 } 1608</style> 1609 1610</body> 1611</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.