PageSourceSearch

https://relentlessbeats.com/

html relentlessbeats.com collected 2026-09-24 10:05:15 UTC 333,298 bytes, 2,333 lines download raw bytes

1<!DOCTYPE html><html lang="en" data-astro-cid-5hce7sga> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Relentless Beats — Arizona EDM Events, Concerts &amp; Festivals</title><meta name="description" content="Arizona's flagship EDM promoter — events, festivals, and after-hours bookings across Phoenix, Tucson, Flagstaff, Seattle, and Albuquerque."><link rel="canonical" href="https://relentlessbeats.com/"><link rel="icon" type="image/png" href="/favicon.png"><link rel="apple-touch-icon" href="/favicon.png">
1<script>(function(){const analyticsGranted = false;
2const adGranted = false;
3
4          window.dataLayer = window.dataLayer || [];
5          function gtag(){dataLayer.push(arguments);}
6          gtag('consent', 'default', {
7            ad_storage:         adGranted        ? 'granted' : 'denied',
8            ad_user_data:       adGranted        ? 'granted' : 'denied',
9            ad_personalization: adGranted        ? 'granted' : 'denied',
10            analytics_storage:  analyticsGranted ? 'granted' : 'denied',
11            functionality_storage: 'granted',
12            security_storage:      'granted',
13            wait_for_update: 500
14          });
15          // Expose for the cookie banner to call on Accept/Decline.
16          window.__rbUpdateConsent = function (cookieValue) {
17            var accept = cookieValue === 'accept';
18            var cats = String(cookieValue || '').split(',').map(function(s){return s.trim();});
19            var analytics = accept || cats.indexOf('analytics') !== -1;
20            var ad        = accept || cats.indexOf('marketing') !== -1;
21            gtag('consent', 'update', {
22              ad_storage:         ad        ? 'granted' : 'denied',
23              ad_user_data:       ad        ? 'granted' : 'denied',
24              ad_personalization: ad        ? 'granted' : 'denied',
25              analytics_storage:  analytics ? 'granted' : 'denied'
26            });
27          };
28        })();</script>
28<script>(function(){const GTM_ID = "GTM-KGXJZW";
29
30          (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s);j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer',GTM_ID);
31        })();</script>
31<!-- Open Graph (Facebook / iMessage / Slack / LinkedIn / etc.) --><meta property="og:site_name" content="Relentless Beats"><meta property="og:title" content="Relentless Beats — Arizona EDM Events, Concerts &#38; Festivals"><meta property="og:description" content="Arizona's flagship EDM promoter — events, festivals, and after-hours bookings across Phoenix, Tucson, Flagstaff, Seattle, and Albuquerque."><meta property="og:url" content="https://relentlessbeats.com/"><meta property="og:type" content="website"><meta property="og:image" content="https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser-1200x400.jpg"><meta property="og:image:alt" content="Relentless Beats — Arizona EDM Events, Concerts &#38; Festivals"><!-- Twitter / X --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Relentless Beats — Arizona EDM Events, Concerts &#38; Festivals"><meta name="twitter:description" content="Arizona's flagship EDM promoter — events, festivals, and after-hours bookings across Phoenix, Tucson, Flagstaff, Seattle, and Albuquerque."><meta name="twitter:image" content="https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser-1200x400.jpg"><!-- Theme color (Safari nav bar tint / Android Chrome) --><meta name="theme-color" content="#08080a"><style type="text/css">@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:400;src:url(/cf-fonts/v/space-grotesk/5.2.10/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:400;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:400;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:500;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:500;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:500;src:url(/cf-fonts/v/space-grotesk/5.2.10/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:600;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:600;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:600;src:url(/cf-fonts/v/space-grotesk/5.2.10/vietnamese/wght/normal.woff2);
31unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:700;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:700;src:url(/cf-fonts/v/space-grotesk/5.2.10/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Space Grotesk';font-style:normal;font-weight:700;src:url(/cf-fonts/v/space-grotesk/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin-ext/400/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic/400/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic-ext/400/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/vietnamese/400/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic-ext/500/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic/500/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin-ext/500/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/vietnamese/500/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin/500/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:600;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin/600/normal.woff2);
31unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:600;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic/600/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:600;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin-ext/600/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:600;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic-ext/600/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:600;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/vietnamese/600/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:700;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:700;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/vietnamese/700/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:700;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:700;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic/700/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'IBM Plex Mono';font-style:normal;font-weight:700;src:url(/cf-fonts/s/ibm-plex-mono/5.2.7/cyrillic-ext/700/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Newsreader';font-style:normal;font-weight:400;src:url(/cf-fonts/v/newsreader/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Newsreader';font-style:normal;font-weight:400;src:url(/cf-fonts/v/newsreader/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Newsreader';font-style:normal;font-weight:400;src:url(/cf-fonts/v/newsreader/5.2.10/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Newsreader';font-style:normal;font-weight:500;src:url(/cf-fonts/v/newsreader/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Newsreader';font-style:normal;font-weight:500;src:url(/cf-fonts/v/newsreader/5.2.10/vietnamese/wght/normal.woff2);
31unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Newsreader';font-style:normal;font-weight:500;src:url(/cf-fonts/v/newsreader/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Newsreader';font-style:italic;font-weight:400;src:url(/cf-fonts/v/newsreader/5.2.10/latin/wght/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Newsreader';font-style:italic;font-weight:400;src:url(/cf-fonts/v/newsreader/5.2.10/vietnamese/wght/italic.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Newsreader';font-style:italic;font-weight:400;src:url(/cf-fonts/v/newsreader/5.2.10/latin-ext/wght/italic.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}</style> 
31<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://relentlessbeats.com#organization","name":"Relentless Beats","alternateName":"RB","url":"https://relentlessbeats.com","logo":"https://relentlessbeats.com/wp-content/uploads/2020/01/RB-Logo.png","sameAs":["https://instagram.com/relentlessbeats","https://tiktok.com/@relentlessbeats","https://x.com/relentlessbeats","https://facebook.com/relentlessbeats","https://youtube.com/@relentlessbeats"],"foundingDate":"1996","description":"Arizona's flagship EDM promoter. Bangin' Beats since '96."}</script>
31 
31<script>(function(){const HIVE_BRAND_ID = "125378";
32
33        (function(h,i,v,e,s,d,k){h.HiveSDKObject=s;h[s]=h[s]||function(){(h[s].q=h[s].q||[]).push(arguments)};d=i.createElement(v);k=i.getElementsByTagName(v)[0];d.async=1;d.id=s;d.src=e+'?r='+parseInt(new Date()/60000);k.parentNode.insertBefore(d,k)})(window,document,'script','https://cdn-prod.hive.co/static/js/sdk-loader.js','HIVE_SDK');
34        window.HIVE_SDK('init', HIVE_BRAND_ID, function (data) {
35          window.__rbHiveUser = (data && data.user) || null;
36        });
37      })();</script>
37<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
37<link rel="stylesheet" href="/_astro/_slug_.iBTUcqyw.css">
38<link rel="stylesheet" href="/_astro/_slug_.7W99McTz.css">
39<link rel="stylesheet" href="/_astro/_slug_.Dbh8Per0.css">
40<style>.rb-save[data-astro-cid-dcq6ic5g][aria-pressed=true]{color:var(--rb-hot)}.rb-save[data-astro-cid-dcq6ic5g][aria-pressed=true] svg[data-astro-cid-dcq6ic5g] path[data-astro-cid-dcq6ic5g]{fill:currentColor}.rb-save[data-astro-cid-dcq6ic5g]:hover{color:var(--rb-silver-warm)}.rb-save[data-astro-cid-dcq6ic5g][aria-pressed=true]:hover{color:var(--rb-hot)}
41.rb-author-link[data-astro-cid-2yvawtqt]{cursor:pointer}.rb-author-link[data-astro-cid-2yvawtqt]:hover,.rb-author-link[data-astro-cid-2yvawtqt]:focus-visible{text-decoration:underline;text-underline-offset:2px;outline:none}
42.rb-hero-track[data-astro-cid-456vviwh]::-webkit-scrollbar{display:none}.rb-hero-chip[data-astro-cid-456vviwh]{display:inline-flex;align-items:center;padding:7px 11px;font-family:var(--rb-font-mono);font-size:12px;font-weight:700;letter-spacing:.14em;line-height:1;background:#08080ab8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);color:var(--rb-ink);text-transform:uppercase;white-space:nowrap}.rb-hero-chip-date[data-astro-cid-456vviwh]{color:var(--rb-silver-warm)}.rb-hero-eyebrow-pill[data-astro-cid-456vviwh]{display:inline-block;padding:5px 10px;font-size:10.5px;font-weight:700;letter-spacing:.18em;line-height:1;background:#08080ab3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.14)}.rb-progress-seg[data-astro-cid-456vviwh]{flex:1;height:2px;padding:0;border:none;background:#f4f3ef29;overflow:hidden;cursor:pointer;position:relative;border-radius:1px}.rb-progress-seg[data-astro-cid-456vviwh]:focus-visible{outline:1px solid var(--rb-silver-warm);outline-offset:2px}.rb-progress-fill[data-astro-cid-456vviwh]{display:block;width:100%;height:100%;background:var(--rb-silver-warm);transform:scaleX(0);transform-origin:left center;border-radius:1px}.rb-progress-seg[data-astro-cid-456vviwh][data-state=done] .rb-progress-fill[data-astro-cid-456vviwh]{transform:scaleX(1)}.rb-progress-seg[data-astro-cid-456vviwh][data-state=active] .rb-progress-fill[data-astro-cid-456vviwh]{transform:scaleX(.04)}@media(prefers-reduced-motion:reduce){.rb-progress-seg[data-astro-cid-456vviwh][data-state=active] .rb-progress-fill[data-astro-cid-456vviwh]{transform:scaleX(1)}}
43.rb-ad-body[data-astro-cid-mcamehu4]{display:flex;justify-content:center}.rb-ad-body[data-astro-cid-mcamehu4] img{max-width:100%;height:auto;display:block;margin:0 auto}.rb-ad-body[data-astro-cid-mcamehu4] a{display:block;margin:0 auto}
44</style></head> <body class="bg-rb text-rb min-h-screen " data-astro-cid-5hce7sga>
vendor: 69 bytes, line 44
44  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
44GTM-KGXJZW
vendor: 85 bytes, line 44
44" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>   
44<header class="rb-header" data-rb-sticky-nav data-scrolled="false" data-astro-cid-3ef6ksr2> <div class="rb-header-inner" data-astro-cid-3ef6ksr2> <a href="/" aria-label="Relentless Beats home" class="rb-header-logo" data-astro-cid-3ef6ksr2>  <img src="/assets/rb-mark.png" alt="" class="rb-header-mark" style="filter:brightness(0) invert(0.96);" data-astro-cid-3ef6ksr2> <img src="/assets/rb-logo.png" alt="Relentless Beats" class="rb-header-wordmark" style="filter:brightness(0) invert(0.96);" data-astro-cid-3ef6ksr2> </a>  <nav class="rb-header-nav" aria-label="Primary" data-astro-cid-3ef6ksr2> <details class="rb-dd" data-rb-dd data-astro-cid-3ef6ksr2> <summary class="rb-nav-link rb-nav-summary" data-active="false" data-rb-href="/events?m=all" aria-haspopup="menu" data-astro-cid-3ef6ksr2><span data-astro-cid-3ef6ksr2>Events</span><span class="rb-dd-caret" aria-hidden="true" data-astro-cid-3ef6ksr2>▾</span></summary> <ul class="rb-dd-menu" role="menu" data-astro-cid-3ef6ksr2> <li data-astro-cid-3ef6ksr2> <a href="/events?m=all" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>All Markets</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/events?m=abq" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Albuquerque</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/events?m=flg" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Flagstaff</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/events?m=hnl" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Honolulu</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/events?m=nyc" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>New York City</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/events?m=phx" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Phoenix</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/events?m=tuc" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Tucson</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/events/saved" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Saved</span> </a> </li> </ul> </details><a href="/gallery" data-active="false" class="rb-nav-link no-underline" data-astro-cid-3ef6ksr2>Gallery</a><a href="/rbnews" data-active="false" class="rb-nav-link no-underline" data-astro-cid-3ef6ksr2>News</a><a href="https://www.hellomerch.com/collections/relentless-beats" data-active="false" target="_blank" rel="noopener noreferrer" class="rb-nav-link no-underline" data-astro-cid-3ef6ksr2>Merch ↗</a><details class="rb-dd" data-rb-dd data-astro-cid-3ef6ksr2> <summary class="rb-nav-link rb-nav-summary" data-active="false" data-rb-href="/" aria-haspopup="menu" data-astro-cid-3ef6ksr2><span data-astro-cid-3ef6ksr2>Connect</span><span class="rb-dd-caret" aria-hidden="true" data-astro-cid-3ef6ksr2>▾</span></summary> <ul class="rb-dd-menu" role="menu" data-astro-cid-3ef6ksr2> <li data-astro-cid-3ef6ksr2> <a href="/contact" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Contact Us</span> </a> </li><li data-astro-cid-3ef6ksr2> <a href="/about" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>About</span> </a> </li> </ul> </details><details class="rb-dd" data-rb-dd data-astro-cid-3ef6ksr2> <summary class="rb-nav-link rb-nav-summary" data-active="false" data-rb-href="/" aria-haspopup="menu" data-astro-cid-3ef6ksr2><span data-astro-cid-3ef6ksr2>Opportunities</span><span class="rb-dd-caret" aria-hidden="true" data-astro-cid-3ef6ksr2>▾</span></summary> <ul class="rb-dd-menu" role="menu" data-astro-cid-3ef6ksr2> <li data-astro-cid-3ef6ksr2> <a href="/jobs" role="menuitem" class="astro-3ef6ksr2" data-astro-cid-3ef6ksr2> <span class="rb-dd-name" data-astro-cid-3ef6ksr2>Job Opportunities</span> </a> </li> </ul> </details><div class="rb-follow-inline" data-astro-cid-3ef6ksr2> <span class="rb-nav-link rb-follow-label" data-active="false" data-astro-cid-3ef6ksr2> Follow </span> <span class="rb-follow-icons" role="group" aria-label="Follow" data-astro-cid-3ef6ksr2> <a href="https://www.instagram.com/relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="Instagram" title="Instagram" class="rb-social-icon" data-astro-cid-3ef6ksr2> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-3ef6ksr2> <path d="M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41a3.7 3.7 0 0 1-1.38-.9 3.7 3.7 0 0 1-.9-1.38c-.16-.42-.36-1.06-.41-2.23C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.17 8.8 2.16 12 2.16zm0 1.8c-3.14 0-3.51.01-4.75.07-1.07.05-1.65.23-2.04.38a3.5 3.5 0 0 0-1.27.83 3.5 3.5 0 0 0-.83 1.27c-.15.39-.33.97-.38 2.04-.06 1.24-.07 1.61-.07 4.75s.01 3.51.07 4.75c.05 1.07.23 1.65.38 2.04.18.46.41.79.83 1.27.42.42.81.65 1.27.83.39.15.97.33 2.04.38 1.24.06 1.61.07 4.75.07s3.51-.01 4.75-.07c1.07-.05 1.65-.23 2.04-.38.46-.18.85-.41 1.27-.83.42-.42.65-.81.83-1.27.15-.39.33-.97.38-2.04.06-1.24.07-1.61.07-4.75s-.
4401-3.51-.07-4.75c-.05-1.07-.23-1.65-.38-2.04a3.5 3.5 0 0 0-.83-1.27 3.5 3.5 0 0 0-1.27-.83c-.39-.15-.97-.33-2.04-.38C15.51 3.97 15.14 3.96 12 3.96zm0 3.06a4.98 4.98 0 1 1 0 9.96 4.98 4.98 0 0 1 0-9.96zm0 8.22a3.24 3.24 0 1 0 0-6.48 3.24 3.24 0 0 0 0 6.48zm6.34-8.42a1.16 1.16 0 1 1-2.32 0 1.16 1.16 0 0 1 2.32 0z" data-astro-cid-3ef6ksr2></path> </svg> </a><a href="https://www.tiktok.com/@relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="TikTok" title="TikTok" class="rb-social-icon" data-astro-cid-3ef6ksr2> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-3ef6ksr2> <path d="M19.6 8.3a6.4 6.4 0 0 1-3.74-1.21v8.55a5.92 5.92 0 1 1-5.92-5.92c.31 0 .61.03.9.08v3.04a2.93 2.93 0 1 0 2 2.78V2h2.87a3.43 3.43 0 0 0 3.89 3.43V8.3z" data-astro-cid-3ef6ksr2></path> </svg> </a><a href="https://x.com/relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="X" title="X" class="rb-social-icon" data-astro-cid-3ef6ksr2> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-3ef6ksr2> <path d="M18.24 2.25h3.31l-7.23 8.26 8.5 11.24h-6.66l-5.21-6.82-5.97 6.82H1.67l7.73-8.84L1.25 2.25h6.83l4.71 6.23 5.45-6.23zm-1.16 17.52h1.83L7.08 4.12H5.12L17.08 19.77z" data-astro-cid-3ef6ksr2></path> </svg> </a><a href="https://www.facebook.com/relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="Facebook" title="Facebook" class="rb-social-icon" data-astro-cid-3ef6ksr2> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-3ef6ksr2> <path d="M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.89 3.77-3.89 1.1 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.78l-.45 2.89h-2.33v6.99A10 10 0 0 0 22 12z" data-astro-cid-3ef6ksr2></path> </svg> </a><a href="https://www.youtube.com/relentlessbeatstv" target="_blank" rel="noopener noreferrer" aria-label="YouTube" title="YouTube" class="rb-social-icon" data-astro-cid-3ef6ksr2> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-3ef6ksr2> <path d="M21.58 7.2a2.51 2.51 0 0 0-1.77-1.77C18.25 5 12 5 12 5s-6.25 0-7.81.43a2.51 2.51 0 0 0-1.77 1.77C2 8.75 2 12 2 12s0 3.25.42 4.8a2.51 2.51 0 0 0 1.77 1.77C5.75 19 12 19 12 19s6.25 0 7.81-.43a2.51 2.51 0 0 0 1.77-1.77C22 15.25 22 12 22 12s0-3.25-.42-4.8zM10 15V9l5.2 3-5.2 3z" data-astro-cid-3ef6ksr2></path> </svg> </a><a href="https://open.spotify.com/user/or5hfa0szgokhzhbqvhvdajtp?si=8bcb92a3a0514848" target="_blank" rel="noopener noreferrer" aria-label="Spotify" title="Spotify" class="rb-social-icon" data-astro-cid-3ef6ksr2> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-3ef6ksr2> <path d="M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm5.52 17.3a.75.75 0 0 1-1.03.25c-2.82-1.72-6.36-2.11-10.53-1.16a.75.75 0 0 1-.33-1.46c4.55-1.04 8.47-.59 11.64 1.34.36.22.47.69.25 1.03zm1.47-3.27a.94.94 0 0 1-1.29.31c-3.22-1.98-8.13-2.55-11.95-1.4a.94.94 0 1 1-.54-1.8c4.36-1.32 9.77-.68 13.47 1.6.44.27.58.85.31 1.29zm.13-3.4c-3.86-2.3-10.24-2.5-13.93-1.39a1.13 1.13 0 1 1-.65-2.16c4.23-1.28 11.27-1.04 15.72 1.6a1.13 1.13 0 0 1-1.14 1.95z" data-astro-cid-3ef6ksr2></path> </svg> </a> </span> </div> </nav>  <div class="rb-header-right" data-astro-cid-3ef6ksr2> <span class="rb-market-chip" aria-label="Viewing RB" data-astro-cid-3ef6ksr2> <span class="rounded-full inline-block rb-pulse-dot" style="width:6px; height:6px; background:var(--rb-live); box-shadow:0 0 6px var(--rb-live);" data-astro-cid-3ef6ksr2></span> RB </span>  <form class="rb-search" action="/search" method="get" role="search" data-astro-cid-3ef6ksr2> <input type="search" name="q" placeholder="Search events, artists…" aria-label="Search" autocomplete="off" data-rb-header-search data-astro-cid-3ef6ksr2> <button type="button" class="rb-search-toggle" aria-label="Search" data-rb-search-toggle data-astro-cid-3ef6ksr2>
44 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="display:block;" data-astro-cid-3ef6ksr2> <circle cx="11" cy="11" r="7" data-astro-cid-3ef6ksr2></circle> <line x1="20" y1="20" x2="16.65" y2="16.65" data-astro-cid-3ef6ksr2></line> </svg> </button> </form> <button type="button" data-rb-menu-open class="font-display text-rb cursor-pointer rb-menu-btn" aria-label="Open menu" aria-expanded="false" aria-controls="rb-menu" style="background:transparent; border:none; padding:10px; margin:-10px; font-size:24px; font-weight:600; line-height:1; min-width:44px; min-height:44px;" data-astro-cid-3ef6ksr2>≡</button> </div> </div> </header>  
44<script>
45  (function () {
46    // Toggle data-scrolled on the sticky header so its background fades
47    // in once the user has scrolled past the very top. Lets pages with
48    // hero imagery (event detail) keep a recessive nav on first paint.
49    const header = document.querySelector('[data-rb-sticky-nav]');
50    if (header) {
51      const updateScrolled = () => {
52        header.dataset.scrolled = window.scrollY > 8 ? 'true' : 'false';
53      };
54      updateScrolled();
55      window.addEventListener('scroll', updateScrolled, { passive: true });
56    }
57
58    // Search icon → expand the inline input on click. Focus drives the
59    // CSS via :focus-within so we don't need to track open state in JS
60    // beyond the click handler itself.
61    var searchToggle = document.querySelector('[data-rb-search-toggle]');
62    var searchInput = document.querySelector('[data-rb-header-search]');
63    if (searchToggle && searchInput instanceof HTMLInputElement) {
64      searchToggle.addEventListener('click', function (e) {
65        // If input already has focus, treat the icon click as submit so
66        // the user can mouse-only their query.
67        if (document.activeElement === searchInput && searchInput.value.trim()) {
68          var form = searchInput.closest('form');
69          if (form) form.submit();
70          return;
71        }
72        e.preventDefault();
73        // Force-expand before focusing: the collapsed input is
74        // visibility:hidden, and browsers refuse focus on a hidden element,
75        // so :focus-within never fires and the field never opens (dead icon
76        // on touch, where there's no ⌘K). Mirror the ⌘K path.
77        var sf = searchInput.closest('.rb-search');
78        if (sf) sf.setAttribute('data-expanded', 'true');
79        searchInput.focus();
80        searchInput.select();
81      });
82    }
83
84    // ⌘K (macOS) / Ctrl+K (everything else) focuses the search input
85    // for power users — no visible hint, implied by the icon. The
86    // modifier is platform-strict: ⌘K on Windows would mean nothing
87    // (no Cmd key), and Ctrl+K on macOS already collides with
88    // browser-level search bindings + emacs-style kill-line, so we
89    // route to the right modifier per platform instead of accepting
90    // either one.
91    var isMac = (function () {
92      var nav = navigator;
93      var plat = (nav && nav.userAgentData && nav.userAgentData.platform)
94        || (nav && nav.platform)
95        || '';
96      return /mac|iphone|ipad|ipod/i.test(String(plat));
97    })();
98    document.addEventListener('keydown', function (e) {
99      if (!(searchInput instanceof HTMLInputElement)) return;
100      var hit = isMac ? (e.metaKey && !e.ctrlKey) : (e.ctrlKey && !e.metaKey);
101      if (hit && (e.key === 'k' || e.key === 'K')) {
102        e.preventDefault();
103        // Force-expand the collapsed search before focusing — :focus-within
104        // alone can race the focus on some browsers, leaving the (width:0)
105        // input focused but invisible.
106        var sf = searchInput.closest('.rb-search');
107        if (sf) sf.setAttribute('data-expanded', 'true');
108        searchInput.focus();
109        searchInput.select();
110      }
111      if (e.key === 'Escape' && document.activeElement === searchInput) {
112        searchInput.blur();
113      }
114    });
115    // Collapse again when focus leaves (the manual data-expanded would
116    // otherwise keep it open after :focus-within drops). Guarded like
117    // every other searchInput use — an unguarded addEventListener on a
118    // missing node would throw and kill the rest of this IIFE (dropdown
119    // close, Escape, hover-open would never bind).
120    if (searchInput instanceof HTMLInputElement) {
121      searchInput.addEventListener('blur', function () {
122        var sf = searchInput.closest('.rb-search');
123        if (sf) sf.removeAttribute('data-expanded');
124      });
125    }
126
127    // Close any open <details> dropdown when clicking outside or on Escape.
128    document.addEventListener('click', function (e) {
129      document.querySelectorAll('details.rb-dd[open]').forEach(function (dd) {
130        if (!(e.target instanceof Node) || !dd.contains(e.target)) {
131          dd.removeAttribute('open');
132        }
133      });
134      // Follow dropdown (not a <details>) — close any that the click
135      // happened outside of, so the icon strip can be tap-toggled on
136      // touch devices that don't fire :hover.
137      document.querySelectorAll('.rb-follow-dd[data-rb-open="true"]').forEach(function (dd) {
138        if (!(e.target instanceof Node) || !dd.contains(e.target)) {
139          dd.removeAttribute('data-rb-open');
140        }
141      });
142    });
143    document.addEventListener('keydown', function (e) {
144      if (e.key === 'Escape') {
145        document.querySelectorAll('details.rb-dd[open]').forEach(function (dd) {
146          dd.removeAttribute('open');
147        });
148        document.querySelectorAll('.rb-follow-dd[data-rb-open="true"]').forEach(function (dd) {
149          dd.removeAttribute('data-rb-open');
150        });
151      }
152    });
153
154    // Tap/click toggles the Follow icon strip on touch devices that
155    // don't reliably honor hover. Pointer events: ignore secondary
156    // pointers (right-click) and let inner anchor clicks pass through.
157    document.querySelectorAll('.rb-follow-dd .rb-follow-trigger').forEach(function (trigger) {
158      trigger.addEventListener('click', function (e) {
159        var dd = trigger.closest('.rb-follow-dd');
160        if (!dd) return;
161        var open = dd.getAttribute('data-rb-open') === 'true';
162        if (open) dd.removeAttribute('data-rb-open');
163        else dd.setAttribute('data-rb-open', 'true');
164        e.stopPropagation();
165      });
166    });
167
168    // Hover-to-open for <details> dropdowns (Events, Connect,
169    // Opportunities). Click on the summary navigates to the parent's
170    // URL instead of toggling the menu, so "click Events" lands you on
171    // /events. The hover gesture handles the submenu reveal on desktop;
172    // a short close delay keeps the menu open while the cursor crosses
173    // the gap between the summary and the menu panel.
174    function goSoft(href) {
175      // ClientRouter is disabled for launch — every nav is now a
176      // normal full document load. Kept the function name so the
177      // call sites below don't need to change when soft nav comes
178      // back in a future release.
179      window.location.href = href;
180    }
181    // Events parent honors an explicit market cookie: with rb_market set,
182    // "click Events" goes to that market's view instead of all-markets.
183    // Resolved client-side so it survives edge-cached (market-flattened) HTML.
184    function rbMarketCookie() {
185      var m = document.cookie.match(/(?:^|;\s*)rb_market=([^;]+)/);
186      return m ? decodeURIComponent(m[1]).trim().toLowerCase() : '';
187    }
188    function resolveNavHref(href) {
189      if (href === '/events?m=all') {
190        var mk = rbMarketCookie();
191        if (mk && mk !== 'all') return '/events?m=' + encodeURIComponent(mk);
192      }
193      return href;
194    }
195    document.querySelectorAll('summary.rb-nav-summary[data-rb-href]').forEach(function (s) {
196      s.addEventListener('click', function (e) {
197        // A click on the caret stays a pure toggle — this is the only
198        // way touch devices at desktop widths (iPad landscape) can open
199        // the submenu, since hover-to-open only binds under
200        // matchMedia('(hover: hover)').
201        if (e.target && e.target.closest && e.target.closest('.rb-dd-caret')) return;
202        var href = s.getAttribute('data-rb-href') || '';
203        if (!href) return; // No URL → fall through to native <details> toggle.
204        // stopImmediatePropagation in addition to preventDefault so the
205        // native <summary> toggle and any other bubble-phase listeners
206        // don't open the menu while we're navigating away.
207        e.preventDefault();
208        e.stopImmediatePropagation();
209        goSoft(resolveNavHref(href));
210      });
211      s.addEventListener('keydown', function (e) {
212        if (e.key !== 'Enter' && e.key !== ' ') return;
213        var href = s.getAttribute('data-rb-href') || '';
214        if (!href) return;
215        e.preventDefault();
216        e.stopImmediatePropagation();
217        goSoft(resolveNavHref(href));
218      });
219    });
220
221    if (window.matchMedia && window.matchMedia('(hover: hover)').matches) {
222      document.querySelectorAll('details.rb-dd').forEach(function (dd) {
223        var closeTimer = null;
224        var cancelClose = function () {
225          if (closeTimer) { clearTimeout(closeTimer); closeTimer = null; }
226        };
227        dd.addEventListener('mouseenter', function () {
228          cancelClose();
229          // Close peers first so we don't end up with two open at once.
230          document.querySelectorAll('details.rb-dd[open]').forEach(function (other) {
231            if (other !== dd) other.removeAttribute('open');
232          });
233          dd.setAttribute('open', '');
234        });
235        dd.addEventListener('mouseleave', function () {
236          cancelClose();
237          closeTimer = setTimeout(function () {
238            dd.removeAttribute('open');
239          }, 180);
240        });
241        // Cancel the pending close if focus comes back into the menu.
242        dd.addEventListener('focusin', cancelClose);
243      });
244    }
245  })();
246</script>
246 <div class="bg-rb-raised border-rb relative overflow-hidden whitespace-nowrap" style="border-top:1px solid var(--rb-rule); border-bottom:1px solid var(--rb-rule); padding:8px 0;" aria-hidden="true"> <div class="inline-block"> <span class="mr-6">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-silver-warm)">97 UPCOMING SHOWS</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">6 FESTIVALS</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">FLG · ABQ · PHX · TUC</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-live)">DANCE LIVES HERE</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">BANGIN&#39; BEATS SINCE &#39;96</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  </span><span class="mr-6">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-silver-warm)">97 UPCOMING SHOWS</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">6 FESTIVALS</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">FLG · ABQ · PHX · TUC</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-live)">DANCE LIVES HERE</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">BANGIN&#39; BEATS SINCE &#39;96</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  </span><span class="mr-6">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-silver-warm)">97 UPCOMING SHOWS</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">6 FESTIVALS</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">FLG · ABQ · PHX · TUC</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-live)">DANCE LIVES HERE</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto;
246 opacity:0.45; filter:brightness(0) invert(1);">  <span class="font-mono uppercase" style="font-size:11px; letter-spacing:0.14em; color:var(--rb-ink)">BANGIN&#39; BEATS SINCE &#39;96</span> <img src="/assets/rb-mark.png" alt="" class="inline-block align-middle mx-3" style="height:11px; width:auto; opacity:0.45; filter:brightness(0) invert(1);">  </span> </div> </div> <div class="rb-hero-shell"> <div class="rb-hero-carousel" data-rb-carousel style="position:relative;" data-astro-cid-456vviwh> <div class="rb-progress" data-rb-carousel-progress style="display:flex; gap:3px; padding:8px 16px 4px;" data-astro-cid-456vviwh> <button type="button" class="rb-progress-seg" data-rb-progress-seg data-idx="0" data-state="active" aria-label="Show slide 1 of 5" data-astro-cid-456vviwh> <span class="rb-progress-fill" aria-hidden="true" data-astro-cid-456vviwh></span> </button><button type="button" class="rb-progress-seg" data-rb-progress-seg data-idx="1" data-state="pending" aria-label="Show slide 2 of 5" data-astro-cid-456vviwh> <span class="rb-progress-fill" aria-hidden="true" data-astro-cid-456vviwh></span> </button><button type="button" class="rb-progress-seg" data-rb-progress-seg data-idx="2" data-state="pending" aria-label="Show slide 3 of 5" data-astro-cid-456vviwh> <span class="rb-progress-fill" aria-hidden="true" data-astro-cid-456vviwh></span> </button><button type="button" class="rb-progress-seg" data-rb-progress-seg data-idx="3" data-state="pending" aria-label="Show slide 4 of 5" data-astro-cid-456vviwh> <span class="rb-progress-fill" aria-hidden="true" data-astro-cid-456vviwh></span> </button><button type="button" class="rb-progress-seg" data-rb-progress-seg data-idx="4" data-state="pending" aria-label="Show slide 5 of 5" data-astro-cid-456vviwh> <span class="rb-progress-fill" aria-hidden="true" data-astro-cid-456vviwh></span> </button> </div> <div class="rb-hero-track" data-rb-carousel-track style="display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none;" data-astro-cid-456vviwh> <div class="rb-hero-slide" data-rb-carousel-slide data-idx="0" style="flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always;" data-astro-cid-456vviwh> <div class="rb-hero-poster" style="position:relative; margin:14px 16px 0;" data-astro-cid-456vviwh> <div class="relative overflow-hidden border-rb" style="border:1px solid var(--rb-rule); height:520px;"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser.jpg 1600w" sizes="100vw" alt class="w-full h-full object-cover" loading="eager" fetchpriority="high"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.18"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0) 25%, rgba(0,0,0,0.20) 50%, rgba(255, 122, 44, 0.18) 65%, rgba(8,8,10,0.85) 90%, rgba(8,8,10,0.96) 100%);"></div> <a href="/events/hex-2026-rawhide-event-center-103026" aria-label="Open event details" style="position:absolute; inset:0; z-index:1; text-decoration:none;" data-astro-cid-456vviwh></a> <div class="rb-hero-overlay-top" style="position:absolute; top:0; left:0; right:0; z-index:2; padding:14px 14px 28px; background:linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%); pointer-events:none; display:flex; justify-content:space-between; align-items:flex-start; gap:12px;" data-astro-cid-456vviwh> <span class="rb-hero-chip rb-hero-chip-date" data-astro-cid-456vviwh>OCT 30–31 · 2 DAYS</span> <span class="rb-hero-chip rb-hero-chip-type" style="color:#ff7a2c; border-color:#ff7a2c; box-shadow:0 0 18px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>FESTIVAL</span> </div> <div class="rb-hero-overlay-bot" style="position:absolute; bottom:0; left:0; right:0; z-index:2; padding:80px 16px 18px; pointer-events:none; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(8,8,10,0.55) 38%, rgba(8,8,10,0.94) 100%);" data-astro-cid-456vviwh> <span class="font-mono uppercase rb-hero-eyebrow-pill" style="color:var(--rb-live);" data-astro-cid-456vviwh>ON SALE</span> <span class="font-display block" style="font-size:54px; line-height:0.88; font-weight:700; letter-spacing:-2.2px; margin-top:10px; color:#ff7a2c; text-shadow: 0 2px 14px rgba(0,0,0,0.95), 0 0 32px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>HEX 2026</span> <span class="font-mono uppercase block" style="font-size:11px; letter-spacing:0.16em; margin-top:10px; color:var(--rb-ink-mute); text-shadow:0 1px 6px rgba(0,0,0,0.9);" data-astro-cid-456vviwh>Rawhide Western Town &amp; Event Center · Chandler</span> <div style="margin-top:18px; max-width:260px; pointer-events:auto; position:relative; z-index:3;" data-astro-cid-456vviwh> <a href="https://tixr.com/e/185888" target="_blank" rel="noopener noreferrer" class="bg-chrome text-silver-ink relative flex w-full overflow-hidden border-none cursor-pointer no-underline" style="box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), inset 0 -1px 0 rgba(0,0,0,0.18);">
246 <span class="flex-1 px-4 py-[15px] flex items-center justify-between font-display font-bold text-[15px] tracking-[0.04em]"> 
247BUY TICKETS
248 <span class="font-mono text-[11px]" style="color: rgba(10,10,12,0.62)">VIA TIXR ↗</span> </span> <span class="w-1.5" style="background:#ff7a2c"></span></a> </div> </div>  </div> </div> </div><div class="rb-hero-slide" data-rb-carousel-slide data-idx="1" style="flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always;" data-astro-cid-456vviwh> <div class="rb-hero-poster" style="position:relative; margin:14px 16px 0;" data-astro-cid-456vviwh> <div class="relative overflow-hidden border-rb" style="border:1px solid var(--rb-rule); height:520px;"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819.jpg 1600w" sizes="100vw" alt class="w-full h-full object-cover" loading="lazy" fetchpriority="auto"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.18"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0) 25%, rgba(0,0,0,0.20) 50%, rgba(255, 122, 44, 0.18) 65%, rgba(8,8,10,0.85) 90%, rgba(8,8,10,0.96) 100%);"></div> <a href="/events/chris-stassy-halloween-rawhide-event-center-103026" aria-label="Open event details" style="position:absolute; inset:0; z-index:1; text-decoration:none;" data-astro-cid-456vviwh></a> <div class="rb-hero-overlay-top" style="position:absolute; top:0; left:0; right:0; z-index:2; padding:14px 14px 28px; background:linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%); pointer-events:none; display:flex; justify-content:space-between; align-items:flex-start; gap:12px;" data-astro-cid-456vviwh> <span class="rb-hero-chip rb-hero-chip-date" data-astro-cid-456vviwh>FRI, OCT 30</span> <span class="rb-hero-chip rb-hero-chip-type" style="color:#ff7a2c; border-color:#ff7a2c; box-shadow:0 0 18px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>FESTIVAL</span> </div> <div class="rb-hero-overlay-bot" style="position:absolute; bottom:0; left:0; right:0; z-index:2; padding:80px 16px 18px; pointer-events:none; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(8,8,10,0.55) 38%, rgba(8,8,10,0.94) 100%);" data-astro-cid-456vviwh> <span class="font-mono uppercase rb-hero-eyebrow-pill" style="color:var(--rb-live);" data-astro-cid-456vviwh>ON SALE</span> <span class="font-display block" style="font-size:54px; line-height:0.88; font-weight:700; letter-spacing:-2.2px; margin-top:10px; color:#ff7a2c; text-shadow: 0 2px 14px rgba(0,0,0,0.95), 0 0 32px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>Chris Stassy Halloween</span> <span class="font-mono uppercase block" style="font-size:11px; letter-spacing:0.16em; margin-top:10px; color:var(--rb-ink-mute); text-shadow:0 1px 6px rgba(0,0,0,0.9);" data-astro-cid-456vviwh>Rawhide Western Town &amp; Event Center · Chandler</span> <div style="margin-top:18px; max-width:260px; pointer-events:auto; position:relative; z-index:3;" data-astro-cid-456vviwh> <a href="https://tixr.com/e/186128" target="_blank" rel="noopener noreferrer" class="bg-chrome text-silver-ink relative flex w-full overflow-hidden border-none cursor-pointer no-underline" style="box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), inset 0 -1px 0 rgba(0,0,0,0.18);">
248 <span class="flex-1 px-4 py-[15px] flex items-center justify-between font-display font-bold text-[15px] tracking-[0.04em]"> 
249BUY TICKETS
250 <span class="font-mono text-[11px]" style="color: rgba(10,10,12,0.62)">VIA TIXR ↗</span> </span> <span class="w-1.5" style="background:#ff7a2c"></span></a> </div> </div>  </div> </div> </div><div class="rb-hero-slide" data-rb-carousel-slide data-idx="2" style="flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always;" data-astro-cid-456vviwh> <div class="rb-hero-poster" style="position:relative; margin:14px 16px 0;" data-astro-cid-456vviwh> <div class="relative overflow-hidden border-rb" style="border:1px solid var(--rb-rule); height:520px;"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_.jpg 1600w" sizes="100vw" alt class="w-full h-full object-cover" loading="lazy" fetchpriority="auto"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.18"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0) 25%, rgba(0,0,0,0.20) 50%, rgba(255, 122, 44, 0.18) 65%, rgba(8,8,10,0.85) 90%, rgba(8,8,10,0.96) 100%);"></div> <a href="/events/obsidian-2026-eastlake-park-110626" aria-label="Open event details" style="position:absolute; inset:0; z-index:1; text-decoration:none;" data-astro-cid-456vviwh></a> <div class="rb-hero-overlay-top" style="position:absolute; top:0; left:0; right:0; z-index:2; padding:14px 14px 28px; background:linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%); pointer-events:none; display:flex; justify-content:space-between; align-items:flex-start; gap:12px;" data-astro-cid-456vviwh> <span class="rb-hero-chip rb-hero-chip-date" data-astro-cid-456vviwh>NOV 6–7 · 2 DAYS</span> <span class="rb-hero-chip rb-hero-chip-type" style="color:#ff7a2c; border-color:#ff7a2c; box-shadow:0 0 18px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>FESTIVAL</span> </div> <div class="rb-hero-overlay-bot" style="position:absolute; bottom:0; left:0; right:0; z-index:2; padding:80px 16px 18px; pointer-events:none; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(8,8,10,0.55) 38%, rgba(8,8,10,0.94) 100%);" data-astro-cid-456vviwh> <span class="font-mono uppercase rb-hero-eyebrow-pill" style="color:var(--rb-live);" data-astro-cid-456vviwh>ON SALE</span> <span class="font-display block" style="font-size:54px; line-height:0.88; font-weight:700; letter-spacing:-2.2px; margin-top:10px; color:#ff7a2c; text-shadow: 0 2px 14px rgba(0,0,0,0.95), 0 0 32px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>Obsidian 2026</span> <span class="font-mono uppercase block" style="font-size:11px; letter-spacing:0.16em; margin-top:10px; color:var(--rb-ink-mute); text-shadow:0 1px 6px rgba(0,0,0,0.9);" data-astro-cid-456vviwh>Eastlake Park · Phoenix</span> <div style="margin-top:18px; max-width:260px; pointer-events:auto; position:relative; z-index:3;" data-astro-cid-456vviwh> <a href="https://tixr.com/e/194704" target="_blank" rel="noopener noreferrer" class="bg-chrome text-silver-ink relative flex w-full overflow-hidden border-none cursor-pointer no-underline" style="box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), inset 0 -1px 0 rgba(0,0,0,0.18);">
250 <span class="flex-1 px-4 py-[15px] flex items-center justify-between font-display font-bold text-[15px] tracking-[0.04em]"> 
251BUY TICKETS
252 <span class="font-mono text-[11px]" style="color: rgba(10,10,12,0.62)">VIA TIXR ↗</span> </span> <span class="w-1.5" style="background:#ff7a2c"></span></a> </div> </div>  </div> </div> </div><div class="rb-hero-slide" data-rb-carousel-slide data-idx="3" style="flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always;" data-astro-cid-456vviwh> <div class="rb-hero-poster" style="position:relative; margin:14px 16px 0;" data-astro-cid-456vviwh> <div class="relative overflow-hidden border-rb" style="border:1px solid var(--rb-rule); height:520px;"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-scaled.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-scaled.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-scaled.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-scaled.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-scaled.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-scaled.jpg 1600w" sizes="100vw" alt class="w-full h-full object-cover" loading="lazy" fetchpriority="auto"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.18"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0) 25%, rgba(0,0,0,0.20) 50%, rgba(255, 122, 44, 0.18) 65%, rgba(8,8,10,0.85) 90%, rgba(8,8,10,0.96) 100%);"></div> <a href="/events/dusk-music-festival-2026-jacome-plaza-111326" aria-label="Open event details" style="position:absolute; inset:0; z-index:1; text-decoration:none;" data-astro-cid-456vviwh></a> <div class="rb-hero-overlay-top" style="position:absolute; top:0; left:0; right:0; z-index:2; padding:14px 14px 28px; background:linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%); pointer-events:none; display:flex; justify-content:space-between; align-items:flex-start; gap:12px;" data-astro-cid-456vviwh> <span class="rb-hero-chip rb-hero-chip-date" data-astro-cid-456vviwh>NOV 13–14 · 2 DAYS</span> <span class="rb-hero-chip rb-hero-chip-type" style="color:#ff7a2c; border-color:#ff7a2c; box-shadow:0 0 18px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>FESTIVAL</span> </div> <div class="rb-hero-overlay-bot" style="position:absolute; bottom:0; left:0; right:0; z-index:2; padding:80px 16px 18px; pointer-events:none; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(8,8,10,0.55) 38%, rgba(8,8,10,0.94) 100%);" data-astro-cid-456vviwh> <span class="font-mono uppercase rb-hero-eyebrow-pill" style="color:var(--rb-live);" data-astro-cid-456vviwh>ON SALE</span> <span class="font-display block" style="font-size:54px; line-height:0.88; font-weight:700; letter-spacing:-2.2px; margin-top:10px; color:#ff7a2c; text-shadow: 0 2px 14px rgba(0,0,0,0.95), 0 0 32px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>DUSK Music Festival 2026</span> <span class="font-mono uppercase block" style="font-size:11px; letter-spacing:0.16em; margin-top:10px; color:var(--rb-ink-mute); text-shadow:0 1px 6px rgba(0,0,0,0.9);" data-astro-cid-456vviwh>Jacome Plaza · Tucson</span> <div style="margin-top:18px; max-width:260px; pointer-events:auto; position:relative; z-index:3;" data-astro-cid-456vviwh> <a href="https://www.tixr.com/groups/rbfestivals/events/dusk-music-festival-2026-188696?utm_source=dusk_website&utm_medium=homepage_button&utm_campaign=2026_tickets&utm_content=homepage" target="_blank" rel="noopener noreferrer" class="bg-chrome text-silver-ink relative flex w-full overflow-hidden border-none cursor-pointer no-underline" style="box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), inset 0 -1px 0 rgba(0,0,0,0.18);">
252 <span class="flex-1 px-4 py-[15px] flex items-center justify-between font-display font-bold text-[15px] tracking-[0.04em]"> 
253BUY TICKETS
254 <span class="font-mono text-[11px]" style="color: rgba(10,10,12,0.62)">VIA TIXR ↗</span> </span> <span class="w-1.5" style="background:#ff7a2c"></span></a> </div> </div>  </div> </div> </div><div class="rb-hero-slide" data-rb-carousel-slide data-idx="4" style="flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always;" data-astro-cid-456vviwh> <div class="rb-hero-poster" style="position:relative; margin:14px 16px 0;" data-astro-cid-456vviwh> <div class="relative overflow-hidden border-rb" style="border:1px solid var(--rb-rule); height:520px;"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1.jpg 1600w" sizes="100vw" alt class="w-full h-full object-cover" loading="lazy" fetchpriority="auto"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.18"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0) 25%, rgba(0,0,0,0.20) 50%, rgba(255, 122, 44, 0.18) 65%, rgba(8,8,10,0.85) 90%, rgba(8,8,10,0.96) 100%);"></div> <a href="/events/decadence-arizona-2026-phoenix-raceway-123026" aria-label="Open event details" style="position:absolute; inset:0; z-index:1; text-decoration:none;" data-astro-cid-456vviwh></a> <div class="rb-hero-overlay-top" style="position:absolute; top:0; left:0; right:0; z-index:2; padding:14px 14px 28px; background:linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%); pointer-events:none; display:flex; justify-content:space-between; align-items:flex-start; gap:12px;" data-astro-cid-456vviwh> <span class="rb-hero-chip rb-hero-chip-date" data-astro-cid-456vviwh>DEC 30–31 · 2 DAYS</span> <span class="rb-hero-chip rb-hero-chip-type" style="color:#ff7a2c; border-color:#ff7a2c; box-shadow:0 0 18px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>FESTIVAL</span> </div> <div class="rb-hero-overlay-bot" style="position:absolute; bottom:0; left:0; right:0; z-index:2; padding:80px 16px 18px; pointer-events:none; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(8,8,10,0.55) 38%, rgba(8,8,10,0.94) 100%);" data-astro-cid-456vviwh> <span class="font-mono uppercase rb-hero-eyebrow-pill" style="color:var(--rb-live);" data-astro-cid-456vviwh>ON SALE</span> <span class="font-display block" style="font-size:54px; line-height:0.88; font-weight:700; letter-spacing:-2.2px; margin-top:10px; color:#ff7a2c; text-shadow: 0 2px 14px rgba(0,0,0,0.95), 0 0 32px rgba(255, 122, 44, 0.18);" data-astro-cid-456vviwh>Decadence Arizona 2026</span> <span class="font-mono uppercase block" style="font-size:11px; letter-spacing:0.16em; margin-top:10px; color:var(--rb-ink-mute); text-shadow:0 1px 6px rgba(0,0,0,0.9);" data-astro-cid-456vviwh>Phoenix Raceway · Avondale</span> <div style="margin-top:18px; max-width:260px; pointer-events:auto; position:relative; z-index:3;" data-astro-cid-456vviwh> <a href="https://tixr.com/e/182815" target="_blank" rel="noopener noreferrer" class="bg-chrome text-silver-ink relative flex w-full overflow-hidden border-none cursor-pointer no-underline" style="box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), inset 0 -1px 0 rgba(0,0,0,0.18);">
254 <span class="flex-1 px-4 py-[15px] flex items-center justify-between font-display font-bold text-[15px] tracking-[0.04em]"> 
255BUY TICKETS
256 <span class="font-mono text-[11px]" style="color: rgba(10,10,12,0.62)">VIA TIXR ↗</span> </span> <span class="w-1.5" style="background:#ff7a2c"></span></a> </div> </div>  </div> </div> </div> </div> </div>  
256<script>
257  (function () {
258    const root = document.querySelector('[data-rb-carousel]');
259    if (!root || root.dataset.bound === '1') return;
260    root.dataset.bound = '1';
261
262    const track = root.querySelector('[data-rb-carousel-track]');
263    const slides = Array.from(root.querySelectorAll('[data-rb-carousel-slide]'));
264    const segments = Array.from(root.querySelectorAll('[data-rb-progress-seg]'));
265    if (!track || slides.length <= 1) return;
266
267    let current = 0;
268    let timer = null;
269    const INTERVAL = 6000;
270    const reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
271
272    function setSegmentStates(activeIdx) {
273      segments.forEach((s, i) => {
274        if (i < activeIdx) s.dataset.state = 'done';
275        else if (i === activeIdx) s.dataset.state = 'active';
276        else s.dataset.state = 'pending';
277      });
278    }
279    function clearAnimations() {
280      segments.forEach((s) => {
281        const fill = s.querySelector('.rb-progress-fill');
282        if (!fill || !fill.getAnimations) return;
283        fill.getAnimations().forEach((a) => a.cancel());
284      });
285    }
286    function animateActiveFill(activeIdx) {
287      if (reduce) return;
288      const seg = segments[activeIdx];
289      if (!seg) return;
290      const fill = seg.querySelector('.rb-progress-fill');
291      if (!fill || !fill.animate) return;
292      fill.animate(
293        [{ transform: 'scaleX(0)' }, { transform: 'scaleX(1)' }],
294        { duration: INTERVAL, easing: 'linear', fill: 'forwards' }
295      );
296    }
297    function setActive(i) {
298      current = i;
299      setSegmentStates(i);
300      clearAnimations();
301      animateActiveFill(i);
302    }
303    function go(i) {
304      const target = (i + slides.length) % slides.length;
305      const slide = slides[target];
306      if (!slide) return;
307      track.scrollTo({ left: slide.offsetLeft, behavior: 'smooth' });
308      setActive(target);
309    }
310    function start() {
311      stop();
312      timer = setInterval(() => go(current + 1), INTERVAL);
313      animateActiveFill(current);
314    }
315    function stop() {
316      if (timer) { clearInterval(timer); timer = null; }
317      // Pause the running fill animation so the progress bar visibly halts
318      segments.forEach((s) => {
319        const fill = s.querySelector('.rb-progress-fill');
320        if (!fill || !fill.getAnimations) return;
321        fill.getAnimations().forEach((a) => a.pause());
322      });
323    }
324
325    // Click a segment → jump to that slide
326    segments.forEach((seg, i) => {
327      seg.addEventListener('click', () => { stop(); go(i); start(); });
328    });
329
330    // Sync active segment to whichever slide is most in view (handles swipe)
331    let scrollTimer = null;
332    track.addEventListener('scroll', () => {
333      if (scrollTimer) clearTimeout(scrollTimer);
334      scrollTimer = setTimeout(() => {
335        const scrollLeft = track.scrollLeft;
336        let best = 0;
337        let bestDist = Infinity;
338        slides.forEach((s, i) => {
339          const d = Math.abs(s.offsetLeft - scrollLeft);
340          if (d < bestDist) { bestDist = d; best = i; }
341        });
342        if (best !== current) setActive(best);
343      }, 100);
344    });
345
346    // Reduced motion: no autoplay, ever. The early-return must come
347    // BEFORE the pause/resume listeners — binding them first meant the
348    // first touch/mouseleave called start() and re-enabled autoplay for
349    // exactly the users who asked it off.
350    if (reduce) {
351      setSegmentStates(0);
352      return;
353    }
354
355    // Pause while the user is interacting
356    ['pointerdown', 'touchstart', 'mouseenter'].forEach((ev) =>
357      track.addEventListener(ev, stop, { passive: true })
358    );
359    ['pointerup', 'touchend', 'mouseleave'].forEach((ev) =>
360      track.addEventListener(ev, start, { passive: true })
361    );
362
363    start();
364  })();
365</script>
365 </div><div class="rb-container"><div class="rb-ad" data-rb-ad-slot="top" data-rb-ad-variant="chrome" style="padding:18px 16px; border-top:1px solid var(--rb-rule); border-bottom:1px solid var(--rb-rule);" data-astro-cid-mcamehu4><div class="font-mono text-rb-faint uppercase" style="font-size:9.5px; letter-spacing:0.18em; margin-bottom:10px;" data-astro-cid-mcamehu4>SPONSORED</div><div class="rb-ad-body" data-astro-cid-mcamehu4><div class="a-single a-12"><a class="gofollow" data-track="MTIsMCwxMA==" href="https://decadencearizona.com/"><img src="https://media.relentlessbeats.com/wp-content/uploads/2026/03/261230-31-Decadence-728x90_Presale.jpg" /></a></div></div></div></div> <div class="rb-container"> <div class="rb-pad-x" style="padding-top:40px;"> <div class="flex items-end gap-3"> <div class="flex-1"> <div class="label-mono text-rb-faint">NEXT 6 FESTIVALS</div> <div class="font-display rb-section-h" style="font-size:22px; font-weight:700; line-height:1; letter-spacing:-0.8px; margin-top:4px;"> What&#39;s next </div> </div> <a href="/events?m=fest" class="font-mono uppercase text-silver-warm no-underline" style="font-size:10.5px; letter-spacing:0.1em;">
366VIEW ALL →
367</a> </div> </div> <div class="rb-event-grid" style="margin-top:14px;"> <div class="rb-event-row relative" data-rb-event-row data-market="phx" data-type="festival" data-festival="true" style="border-bottom:1px solid var(--rb-rule);"> <div class="absolute" style="left:0; top:0; bottom:0; width:3px; background:#ff7a2c; z-index:1;"></div> <a href="/events/hex-2026-rawhide-event-center-103026" class="block text-rb no-underline" style="padding:16px 60px 16px 16px;"> <div class="flex gap-3.5"> <div style="width:62px; flex-shrink:0;"> <div class="font-mono text-rb-faint" style="font-size:9px; letter-spacing:0.14em;"> FRI </div> <div class="font-display" style="font-size:46px; font-weight:700; line-height:0.92; letter-spacing:-1.8px; margin-top:2px;">30</div> <div class="font-display" style="font-size:14px; font-weight:600; color:#ff7a2c; letter-spacing:0.12em; margin-top:4px;">OCT</div> </div> <div class="flex-1 min-w-0"> <div class="font-mono text-rb-faint uppercase" style="font-size:9.5px; letter-spacing:0.14em;"> Festival </div>  <div class="font-display" style="font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.5px; margin-top:0;">HEX 2026</div> <div class="font-mono text-rb-mute" style="font-size:10px; margin-top:8px;"> Rawhide Western Town &amp; Event Center · Festival Grounds · Chandler </div> <div class="font-mono uppercase text-rb-faint" style="font-size:9.5px; letter-spacing:0.14em; margin-top:6px;"> 18+ </div> <div style="margin-top:10px;"> <span class="font-mono uppercase" style="padding:2px 6px; font-size:9px; letter-spacing:0.14em; border:1px solid var(--rb-rule); color:var(--rb-live);">ON SALE</span> </div> </div>  <div class="flex-shrink-0 relative self-stretch overflow-hidden" style="width:60px; min-height:92px;">  <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser-600x200.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser.jpg 1500w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser-600x200.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser-1200x400.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser-768x256.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261030-31-HEX-Website_Teaser-300x100.jpg 300w" sizes="60px" alt class="absolute inset-0 w-full h-full object-cover" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.14"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, transparent 50%, rgba(255, 122, 44, 0.18) 100%);"></div> </div> </div> </a> <a href="https://tixr.com/e/185888" target="_blank" rel="noopener noreferrer" aria-label="Buy tickets — opens in a new tab" class="absolute flex items-center justify-center text-rb no-underline" style="top:0; right:0; bottom:0; width:48px; border-left:1px solid var(--rb-rule); background:rgba(255, 122, 44, 0.18);"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="color:#ff7a2c;"> <path d="M2 9V7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z"></path> <path d="M13 5v2M13 11v2M13 17v2"></path> </svg> </a>  <div class="absolute" style="top:6px; right:52px; z-index:2;"> <button type="button" data-rb-save data-rb-save-slug="hex-2026-rawhide-event-center-103026" aria-pressed="false" aria-label="Save" title="Save event" 
367class="rb-save cursor-pointer inline-flex items-center justify-center" style="background:transparent; border:none; color:inherit; padding:10px; min-width:44px; min-height:44px;" data-astro-cid-dcq6ic5g> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="display:block;" data-astro-cid-dcq6ic5g> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" data-astro-cid-dcq6ic5g></path> </svg> </button>  </div> </div><div class="rb-event-row relative" data-rb-event-row data-market="phx" data-type="festival" data-festival="true" style="border-bottom:1px solid var(--rb-rule);"> <div class="absolute" style="left:0; top:0; bottom:0; width:3px; background:#ff7a2c; z-index:1;"></div> <a href="/events/chris-stassy-halloween-rawhide-event-center-103026" class="block text-rb no-underline" style="padding:16px 60px 16px 16px;"> <div class="flex gap-3.5"> <div style="width:62px; flex-shrink:0;"> <div class="font-mono text-rb-faint" style="font-size:9px; letter-spacing:0.14em;"> FRI </div> <div class="font-display" style="font-size:46px; font-weight:700; line-height:0.92; letter-spacing:-1.8px; margin-top:2px;">30</div> <div class="font-display" style="font-size:14px; font-weight:600; color:#ff7a2c; letter-spacing:0.12em; margin-top:4px;">OCT</div> </div> <div class="flex-1 min-w-0"> <div class="font-mono text-rb-faint uppercase" style="font-size:9.5px; letter-spacing:0.14em;"> Festival </div>  <div class="font-display" style="font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.5px; margin-top:0;">Chris Stassy Halloween</div> <div class="font-mono text-rb-mute" style="font-size:10px; margin-top:8px;"> Rawhide Western Town &amp; Event Center · Chandler </div> <div class="font-mono uppercase text-rb-faint" style="font-size:9.5px; letter-spacing:0.14em; margin-top:6px;"> 18+ </div> <div style="margin-top:10px;"> <span class="font-mono uppercase" style="padding:2px 6px; font-size:9px; letter-spacing:0.14em; border:1px solid var(--rb-rule); color:var(--rb-live);">ON SALE</span> </div> </div>  <div class="flex-shrink-0 relative self-stretch overflow-hidden" style="width:60px; min-height:92px;">  <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819-600x199.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819.jpg 704w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819-600x199.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/Chris-Stussy-with-Relentless-Beats_VERTICAL-1-e1784739743819-300x100.jpg 300w" sizes="60px" alt class="absolute inset-0 w-full h-full object-cover" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.14"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, transparent 50%, rgba(255, 122, 44, 0.18) 100%);"></div> </div> </div> </a> <a href="https://tixr.com/e/186128" target="_blank" rel="noopener noreferrer" aria-label="Buy tickets — opens in a new tab" class="absolute flex items-center justify-center text-rb no-underline" style="top:0; right:0; bottom:0; width:48px; border-left:1px solid var(--rb-rule); background:rgba(255, 122, 44, 0.18);"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="color:#ff7a2c;"> <path d="M2 9V7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z"></path> <path d="M13 5v2M13 11v2M13 17v2"></path> </svg> </a>  <div class="absolute" style="top:6px; right:52px; z-index:2;"> <button type="button" data-rb-save data-rb-save-slug="chris-stassy-halloween-rawhide-event-center-103026" aria-pressed="false" aria-label="Save" title="Save event" 
367class="rb-save cursor-pointer inline-flex items-center justify-center" style="background:transparent; border:none; color:inherit; padding:10px; min-width:44px; min-height:44px;" data-astro-cid-dcq6ic5g> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="display:block;" data-astro-cid-dcq6ic5g> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" data-astro-cid-dcq6ic5g></path> </svg> </button>  </div> </div><div class="rb-event-row relative" data-rb-event-row data-market="phx" data-type="festival" data-festival="true" style="border-bottom:1px solid var(--rb-rule);"> <div class="absolute" style="left:0; top:0; bottom:0; width:3px; background:#ff7a2c; z-index:1;"></div> <a href="/events/obsidian-2026-eastlake-park-110626" class="block text-rb no-underline" style="padding:16px 60px 16px 16px;"> <div class="flex gap-3.5"> <div style="width:62px; flex-shrink:0;"> <div class="font-mono text-rb-faint" style="font-size:9px; letter-spacing:0.14em;"> FRI </div> <div class="font-display" style="font-size:46px; font-weight:700; line-height:0.92; letter-spacing:-1.8px; margin-top:2px;">06</div> <div class="font-display" style="font-size:14px; font-weight:600; color:#ff7a2c; letter-spacing:0.12em; margin-top:4px;">NOV</div> </div> <div class="flex-1 min-w-0"> <div class="font-mono text-rb-faint uppercase" style="font-size:9.5px; letter-spacing:0.14em;"> Festival </div>  <div class="font-display" style="font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.5px; margin-top:0;">Obsidian 2026</div> <div class="font-mono text-rb-mute" style="font-size:10px; margin-top:8px;"> Eastlake Park · Phoenix </div> <div class="font-mono uppercase text-rb-faint" style="font-size:9.5px; letter-spacing:0.14em; margin-top:6px;"> 18+ </div> <div style="margin-top:10px;"> <span class="font-mono uppercase" style="padding:2px 6px; font-size:9px; letter-spacing:0.14em; border:1px solid var(--rb-rule); color:var(--rb-live);">ON SALE</span> </div> </div>  <div class="flex-shrink-0 relative self-stretch overflow-hidden" style="width:60px; min-height:92px;">  <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_-600x200.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_.jpg 1500w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_-600x200.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_-1200x400.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_-768x256.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/261106-07-Obsidian-1500x500_-300x100.jpg 300w" sizes="60px" alt class="absolute inset-0 w-full h-full object-cover" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.14"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, transparent 50%, rgba(255, 122, 44, 0.18) 100%);"></div> </div> </div> </a> <a href="https://tixr.com/e/194704" target="_blank" rel="noopener noreferrer" aria-label="Buy tickets — opens in a new tab" class="absolute flex items-center justify-center text-rb no-underline" style="top:0; right:0; bottom:0; width:48px; border-left:1px solid var(--rb-rule); background:rgba(255, 122, 44, 0.18);"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="color:#ff7a2c;"> <path d="M2 9V7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z"></path> <path d="M13 5v2M13 11v2M13 17v2"></path> </svg> </a>  <div class="absolute" style="top:6px; right:52px; z-index:2;"> <button type="button" data-rb-save data-rb-save-slug="obsidian-2026-eastlake-park-110626" aria-pressed="false" aria-label="Save" title="Save event" 
367class="rb-save cursor-pointer inline-flex items-center justify-center" style="background:transparent; border:none; color:inherit; padding:10px; min-width:44px; min-height:44px;" data-astro-cid-dcq6ic5g> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="display:block;" data-astro-cid-dcq6ic5g> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" data-astro-cid-dcq6ic5g></path> </svg> </button>  </div> </div><div class="rb-event-row relative" data-rb-event-row data-market="tuc" data-type="festival" data-festival="true" style="border-bottom:1px solid var(--rb-rule);"> <div class="absolute" style="left:0; top:0; bottom:0; width:3px; background:#ff7a2c; z-index:1;"></div> <a href="/events/dusk-music-festival-2026-jacome-plaza-111326" class="block text-rb no-underline" style="padding:16px 60px 16px 16px;"> <div class="flex gap-3.5"> <div style="width:62px; flex-shrink:0;"> <div class="font-mono text-rb-faint" style="font-size:9px; letter-spacing:0.14em;"> FRI </div> <div class="font-display" style="font-size:46px; font-weight:700; line-height:0.92; letter-spacing:-1.8px; margin-top:2px;">13</div> <div class="font-display" style="font-size:14px; font-weight:600; color:#ff7a2c; letter-spacing:0.12em; margin-top:4px;">NOV</div> </div> <div class="flex-1 min-w-0"> <div class="font-mono text-rb-faint uppercase" style="font-size:9.5px; letter-spacing:0.14em;"> Festival </div>  <div class="font-display" style="font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.5px; margin-top:0;">DUSK Music Festival 2026</div> <div class="font-mono text-rb-mute" style="font-size:10px; margin-top:8px;"> Jacome Plaza · Tucson </div> <div class="font-mono uppercase text-rb-faint" style="font-size:9.5px; letter-spacing:0.14em; margin-top:6px;"> All Ages </div> <div style="margin-top:10px;"> <span class="font-mono uppercase" style="padding:2px 6px; font-size:9px; letter-spacing:0.14em; border:1px solid var(--rb-rule); color:var(--rb-live);">ON SALE</span> </div> </div>  <div class="flex-shrink-0 relative self-stretch overflow-hidden" style="width:60px; min-height:92px;">  <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-600x337.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-scaled.jpg 2560w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-600x337.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-1200x675.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-768x432.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-1536x864.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-2048x1152.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/DUSK2026_Website_Lineup-300x169.jpg 300w" sizes="60px" alt class="absolute inset-0 w-full h-full object-cover" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.14"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, transparent 50%, rgba(255, 122, 44, 0.18) 100%);"></div> </div> </div> </a> <a href="https://www.tixr.com/groups/rbfestivals/events/dusk-music-festival-2026-188696?utm_source=dusk_website&utm_medium=homepage_button&utm_campaign=2026_tickets&utm_content=homepage" target="_blank" rel="noopener noreferrer" aria-label="Buy tickets — opens in a new tab" class="absolute flex items-center justify-center text-rb no-underline" style="top:0; right:0; bottom:0; width:48px; border-left:1px solid var(--rb-rule); background:rgba(255, 122, 44, 0.18);"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="color:#ff7a2c;"> <path d="M2 9V7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z"></path> <path d="M13 5v2M13 11v2M13 17v2"></path> </svg> </a>  <div class="absolute" style="top:6px; right:52px; z-index:2;"> <button type="button" data-rb-save data-rb-save-slug="dusk-music-festival-2026-jacome-plaza-111326" aria-pressed="false" aria-label="Save" title="Save event" 
367class="rb-save cursor-pointer inline-flex items-center justify-center" style="background:transparent; border:none; color:inherit; padding:10px; min-width:44px; min-height:44px;" data-astro-cid-dcq6ic5g> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="display:block;" data-astro-cid-dcq6ic5g> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" data-astro-cid-dcq6ic5g></path> </svg> </button>  </div> </div><div class="rb-event-row relative" data-rb-event-row data-market="phx" data-type="festival" data-festival="true" style="border-bottom:1px solid var(--rb-rule);"> <div class="absolute" style="left:0; top:0; bottom:0; width:3px; background:#ff7a2c; z-index:1;"></div> <a href="/events/decadence-arizona-2026-phoenix-raceway-123026" class="block text-rb no-underline" style="padding:16px 60px 16px 16px;"> <div class="flex gap-3.5"> <div style="width:62px; flex-shrink:0;"> <div class="font-mono text-rb-faint" style="font-size:9px; letter-spacing:0.14em;"> WED </div> <div class="font-display" style="font-size:46px; font-weight:700; line-height:0.92; letter-spacing:-1.8px; margin-top:2px;">30</div> <div class="font-display" style="font-size:14px; font-weight:600; color:#ff7a2c; letter-spacing:0.12em; margin-top:4px;">DEC</div> </div> <div class="flex-1 min-w-0"> <div class="font-mono text-rb-faint uppercase" style="font-size:9.5px; letter-spacing:0.14em;"> Festival </div>  <div class="font-display" style="font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.5px; margin-top:0;">Decadence Arizona 2026</div> <div class="font-mono text-rb-mute" style="font-size:10px; margin-top:8px;"> Phoenix Raceway · Avondale </div> <div class="font-mono uppercase text-rb-faint" style="font-size:9.5px; letter-spacing:0.14em; margin-top:6px;"> 18+ </div> <div style="margin-top:10px;"> <span class="font-mono uppercase" style="padding:2px 6px; font-size:9px; letter-spacing:0.14em; border:1px solid var(--rb-rule); color:var(--rb-live);">ON SALE</span> </div> </div>  <div class="flex-shrink-0 relative self-stretch overflow-hidden" style="width:60px; min-height:92px;">  <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1-600x200.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1.jpg 1500w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1-600x200.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1-1200x400.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1-768x256.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/261230-31-Decadence-1500x500-1-300x100.jpg 300w" sizes="60px" alt class="absolute inset-0 w-full h-full object-cover" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.14"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, transparent 50%, rgba(255, 122, 44, 0.18) 100%);"></div> </div> </div> </a> <a href="https://tixr.com/e/182815" target="_blank" rel="noopener noreferrer" aria-label="Buy tickets — opens in a new tab" class="absolute flex items-center justify-center text-rb no-underline" style="top:0; right:0; bottom:0; width:48px; border-left:1px solid var(--rb-rule); background:rgba(255, 122, 44, 0.18);"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="color:#ff7a2c;"> <path d="M2 9V7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z"></path> <path d="M13 5v2M13 11v2M13 17v2"></path> </svg> </a>  <div class="absolute" style="top:6px; right:52px; z-index:2;"> <button type="button" data-rb-save data-rb-save-slug="decadence-arizona-2026-phoenix-raceway-123026" aria-pressed="false" aria-label="Save" title="Save event" 
367class="rb-save cursor-pointer inline-flex items-center justify-center" style="background:transparent; border:none; color:inherit; padding:10px; min-width:44px; min-height:44px;" data-astro-cid-dcq6ic5g> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="display:block;" data-astro-cid-dcq6ic5g> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" data-astro-cid-dcq6ic5g></path> </svg> </button>  </div> </div><div class="rb-event-row relative" data-rb-event-row data-market="tuc" data-type="festival" data-festival="true" style="border-bottom:1px solid var(--rb-rule);"> <div class="absolute" style="left:0; top:0; bottom:0; width:3px; background:#ff7a2c; z-index:1;"></div> <a href="/events/gem-jam-2027-pima-county-fairgrounds-020527" class="block text-rb no-underline" style="padding:16px 60px 16px 16px;"> <div class="flex gap-3.5"> <div style="width:62px; flex-shrink:0;"> <div class="font-mono text-rb-faint" style="font-size:9px; letter-spacing:0.14em;"> FRI </div> <div class="font-display" style="font-size:46px; font-weight:700; line-height:0.92; letter-spacing:-1.8px; margin-top:2px;">05</div> <div class="font-display" style="font-size:14px; font-weight:600; color:#ff7a2c; letter-spacing:0.12em; margin-top:4px;">FEB</div> </div> <div class="flex-1 min-w-0"> <div class="font-mono text-rb-faint uppercase" style="font-size:9.5px; letter-spacing:0.14em;"> Festival </div>  <div class="font-display" style="font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.5px; margin-top:0;">Gem & Jam 2027</div> <div class="font-mono text-rb-mute" style="font-size:10px; margin-top:8px;"> Pima County Fairgrounds · Tucson </div> <div class="font-mono uppercase text-rb-faint" style="font-size:9.5px; letter-spacing:0.14em; margin-top:6px;"> All Ages </div> <div style="margin-top:10px;"> <span class="font-mono uppercase" style="padding:2px 6px; font-size:9px; letter-spacing:0.14em; border:1px solid var(--rb-rule); color:var(--rb-silver-warm);">COMING SOON</span> </div> </div>  <div class="flex-shrink-0 relative self-stretch overflow-hidden" style="width:60px; min-height:92px;">  <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/02/270205-07-Gem-and-Jam_1500x500_Announce-600x200.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/02/270205-07-Gem-and-Jam_1500x500_Announce.jpg 1500w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/270205-07-Gem-and-Jam_1500x500_Announce-600x200.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/270205-07-Gem-and-Jam_1500x500_Announce-1200x400.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/270205-07-Gem-and-Jam_1500x500_Announce-768x256.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/02/270205-07-Gem-and-Jam_1500x500_Announce-300x100.jpg 300w" sizes="60px" alt class="absolute inset-0 w-full h-full object-cover" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.14"></div> <div class="absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, transparent 50%, rgba(255, 122, 44, 0.18) 100%);"></div> </div> </div> </a> <a href="https://wl.eventim.us/event/tickets/682516?afflky=GemandJam" target="_blank" rel="noopener noreferrer" aria-label="Buy tickets — opens in a new tab" class="absolute flex items-center justify-center text-rb no-underline" style="top:0; right:0; bottom:0; width:48px; border-left:1px solid var(--rb-rule); background:rgba(255, 122, 44, 0.18);"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="color:#ff7a2c;"> <path d="M2 9V7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z"></path> <path d="M13 5v2M13 11v2M13 17v2"></path> </svg> </a>  <div class="absolute" style="top:6px; right:52px; z-index:2;"> <button type="button" data-rb-save data-rb-save-slug="gem-jam-2027-pima-county-fairgrounds-020527" aria-pressed="false" aria-label="Save" title="Save event" 
367class="rb-save cursor-pointer inline-flex items-center justify-center" style="background:transparent; border:none; color:inherit; padding:10px; min-width:44px; min-height:44px;" data-astro-cid-dcq6ic5g> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="display:block;" data-astro-cid-dcq6ic5g> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" data-astro-cid-dcq6ic5g></path> </svg> </button>  </div> </div> </div> </div><div class="rb-container"> <div class="rb-pad-x" style="padding-top:40px;"> <div class="flex items-end gap-3"> <div class="flex-1"> <div class="label-mono text-rb-faint">editorial · stories</div> <div class="font-display rb-section-h" style="font-size:22px; font-weight:700; line-height:1; letter-spacing:-0.8px; margin-top:4px;">
368RB News
369</div> </div> <a href="/rbnews" class="font-mono uppercase text-silver-warm no-underline" style="font-size:10.5px; letter-spacing:0.1em;">
370VIEW ALL →
371</a> </div> </div> <div class="rb-news-rail rb-pad-x" style="margin-top:14px;" data-hscroll> <a href="/2026/09/pheel-artist-spotlight-a-spotify-downtempo-discovery" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/655829454_26291133057189649_3513997628090303249_n.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/655829454_26291133057189649_3513997628090303249_n.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/655829454_26291133057189649_3513997628090303249_n.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/655829454_26291133057189649_3513997628090303249_n.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/655829454_26291133057189649_3513997628090303249_n.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/655829454_26291133057189649_3513997628090303249_n.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Pheel. Artist Spotlight: A Spotify Downtempo Discovery</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/5cc0112ebf4581cb606995b693da17265f647cb542b24db67acf1be9b5b2e2ba?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="151" role="link" tabindex="0" data-astro-cid-2yvawtqt>Chase Courtney</span> · YESTERDAY </span> </div>  
371<script>
372  // Delegated once per document: an author byline can render inside a card
373  // <a>, so intercept the click, cancel the card's navigation, and route to
374  // the author archive instead.
375  (function () {
376    if (document.documentElement.dataset.rbAuthorBound === '1') return;
377    document.documentElement.dataset.rbAuthorBound = '1';
378    function go(e) {
379      var t = e.target;
380      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
381      if (!el) return;
382      e.preventDefault();
383      e.stopPropagation();
384      window.location.href = '/author/' + el.getAttribute('data-rb-author');
385    }
386    document.addEventListener('click', go);
387    document.addEventListener('keydown', function (e) {
388      if (e.key === 'Enter' || e.key === ' ') go(e);
389    });
390  })();
391</script>
391 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">A friend recently put me on their Spotify Duo. As an Apple Music user, I was thrilled! My Apple Music library has gotten over crowded and disorganized, so having a second platform available to me is a game changer. This …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
392READ →
393</div> </div> </a><a href="/2026/09/choose-your-fighter-phoenix-has-six-ways-to-rave-november-6-through-8" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0017-scaled.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0017-scaled.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0017-scaled.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0017-scaled.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0017-scaled.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0017-scaled.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Choose Your Fighter: Phoenix Has Six Ways to Rave November 6 Through 8</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/56002a0e8a7e5846d5376a99150681c262e9a8b20f4d0c4ae04023d9e22f4fe1?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="167" role="link" tabindex="0" data-astro-cid-2yvawtqt>Amra Alic</span> · YESTERDAY </span> </div>  
393<script>
394  // Delegated once per document: an author byline can render inside a card
395  // <a>, so intercept the click, cancel the card's navigation, and route to
396  // the author archive instead.
397  (function () {
398    if (document.documentElement.dataset.rbAuthorBound === '1') return;
399    document.documentElement.dataset.rbAuthorBound = '1';
400    function go(e) {
401      var t = e.target;
402      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
403      if (!el) return;
404      e.preventDefault();
405      e.stopPropagation();
406      window.location.href = '/author/' + el.getAttribute('data-rb-author');
407    }
408    document.addEventListener('click', go);
409    document.addEventListener('keydown', function (e) {
410      if (e.key === 'Enter' || e.key === ' ') go(e);
411    });
412  })();
413</script>
413 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">AZ rave fam, we have a problem. Actually, we have six of them. The weekend of November 6 through November 8 is shaping up to be one of those weekends where you could have six completely different nights out depending …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
414READ →
415</div> </div> </a><a href="/2026/09/afrojack-at-warehouse-215-10-reasons-you-need-to-be-there" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2020/03/afrojack.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2020/03/afrojack.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2020/03/afrojack.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2020/03/afrojack.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2020/03/afrojack.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2020/03/afrojack.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Afrojack at Warehouse 215: 10 Reasons You Need to Be There</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/c2cbba863797dc717005c699c2a824c086da394ad9aa0f67d982b50d55b4e97a?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="152" role="link" tabindex="0" data-astro-cid-2yvawtqt>Dayne Harris</span> · 3 DAYS AGO </span> </div>  
415<script>
416  // Delegated once per document: an author byline can render inside a card
417  // <a>, so intercept the click, cancel the card's navigation, and route to
418  // the author archive instead.
419  (function () {
420    if (document.documentElement.dataset.rbAuthorBound === '1') return;
421    document.documentElement.dataset.rbAuthorBound = '1';
422    function go(e) {
423      var t = e.target;
424      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
425      if (!el) return;
426      e.preventDefault();
427      e.stopPropagation();
428      window.location.href = '/author/' + el.getAttribute('data-rb-author');
429    }
430    document.addEventListener('click', go);
431    document.addEventListener('keydown', function (e) {
432      if (e.key === 'Enter' || e.key === ' ') go(e);
433    });
434  })();
435</script>
435 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Afrojack is bringing his massive sound to an intimate space, and this is not a show you want to miss. Here are 10 reasons why this night stands out. The 10 Reasons Why 1. He is a Grammy-winning producer with …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
436READ →
437</div> </div> </a><a href="/2026/09/theres-a-drama-song-for-that-the-soundtrack-to-every-mood-moment-bad-decision" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/drama.png" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/drama.png 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/drama.png 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/drama.png 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/drama.png 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/drama.png 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">There’s a DRAMA Song For That: The Soundtrack to Every Mood, Moment, & Bad Decision</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/56002a0e8a7e5846d5376a99150681c262e9a8b20f4d0c4ae04023d9e22f4fe1?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="167" role="link" tabindex="0" data-astro-cid-2yvawtqt>Amra Alic</span> · 6 DAYS AGO </span> </div>  
437<script>
438  // Delegated once per document: an author byline can render inside a card
439  // <a>, so intercept the click, cancel the card's navigation, and route to
440  // the author archive instead.
441  (function () {
442    if (document.documentElement.dataset.rbAuthorBound === '1') return;
443    document.documentElement.dataset.rbAuthorBound = '1';
444    function go(e) {
445      var t = e.target;
446      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
447      if (!el) return;
448      e.preventDefault();
449      e.stopPropagation();
450      window.location.href = '/author/' + el.getAttribute('data-rb-author');
451    }
452    document.addEventListener('click', go);
453    document.addEventListener('keydown', function (e) {
454      if (e.key === 'Enter' || e.key === ' ') go(e);
455    });
456  })();
457</script>
457 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Some artists make music for a specific mood. DRAMA makes music for the entire day. The Chicago duo’s dreamy blend of dance, R&amp;B, and electronic soul has a way of fitting into those oddly specific moments that deserve their own …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
458READ →
459</div> </div> </a><a href="/2026/09/2024-flashback-ignition-by-levity" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/07/levityy-scaled.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/07/levityy-scaled.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/07/levityy-scaled.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/07/levityy-scaled.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/07/levityy-scaled.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/07/levityy-scaled.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">2024 Flashback: ‘Ignition’ by Levity</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/5cc0112ebf4581cb606995b693da17265f647cb542b24db67acf1be9b5b2e2ba?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="151" role="link" tabindex="0" data-astro-cid-2yvawtqt>Chase Courtney</span> · 6 DAYS AGO </span> </div>  
459<script>
460  // Delegated once per document: an author byline can render inside a card
461  // <a>, so intercept the click, cancel the card's navigation, and route to
462  // the author archive instead.
463  (function () {
464    if (document.documentElement.dataset.rbAuthorBound === '1') return;
465    document.documentElement.dataset.rbAuthorBound = '1';
466    function go(e) {
467      var t = e.target;
468      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
469      if (!el) return;
470      e.preventDefault();
471      e.stopPropagation();
472      window.location.href = '/author/' + el.getAttribute('data-rb-author');
473    }
474    document.addEventListener('click', go);
475    document.addEventListener('keydown', function (e) {
476      if (e.key === 'Enter' || e.key === ' ') go(e);
477    });
478  })();
479</script>
479 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Levity is a trio out of Chicago, Illinois that has been making some SERIOUS headway in the scene in a short period of time. Their first original album, Escapism, Vol. 1, dropped on September 25th, 2024. Despite enjoying the big …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
480READ →
481</div> </div> </a><a href="/2026/09/space-laces-x-phrva-are-bringing-wubs-lasers-to-new-mexico-this-fall" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2017/08/ff0d5206_SpaceLaces_Aragon_Yoder-26-of-29.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2017/08/ff0d5206_SpaceLaces_Aragon_Yoder-26-of-29.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2017/08/ff0d5206_SpaceLaces_Aragon_Yoder-26-of-29.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2017/08/ff0d5206_SpaceLaces_Aragon_Yoder-26-of-29.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2017/08/ff0d5206_SpaceLaces_Aragon_Yoder-26-of-29.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2017/08/ff0d5206_SpaceLaces_Aragon_Yoder-26-of-29.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Space Laces x PHRVA Are Bringing Wubs & Lasers to New Mexico this Fall</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/5cc0112ebf4581cb606995b693da17265f647cb542b24db67acf1be9b5b2e2ba?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="151" role="link" tabindex="0" data-astro-cid-2yvawtqt>Chase Courtney</span> · SEP 17, 2026 </span> </div>  
481<script>
482  // Delegated once per document: an author byline can render inside a card
483  // <a>, so intercept the click, cancel the card's navigation, and route to
484  // the author archive instead.
485  (function () {
486    if (document.documentElement.dataset.rbAuthorBound === '1') return;
487    document.documentElement.dataset.rbAuthorBound = '1';
488    function go(e) {
489      var t = e.target;
490      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
491      if (!el) return;
492      e.preventDefault();
493      e.stopPropagation();
494      window.location.href = '/author/' + el.getAttribute('data-rb-author');
495    }
496    document.addEventListener('click', go);
497    document.addEventListener('keydown', function (e) {
498      if (e.key === 'Enter' || e.key === ' ') go(e);
499    });
500  })();
501</script>
501 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Space Laces and PHRVA are scheduled to bring a massive bass-filled night to Revel on October 2nd. Revel Albuquerque is one of my all-time favorite venues. The vibes are immaculate. The layout is awesome. And the amenities cannot be beat. …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
502READ →
503</div> </div> </a><a href="/2026/09/revisiting-ganja-white-night-2017-to-2026" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/02/GWN.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/02/GWN.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/02/GWN.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/02/GWN.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/02/GWN.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2024/02/GWN.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Revisiting Ganja White Night: 2017 to 2026</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/5cc0112ebf4581cb606995b693da17265f647cb542b24db67acf1be9b5b2e2ba?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="151" role="link" tabindex="0" data-astro-cid-2yvawtqt>Chase Courtney</span> · SEP 17, 2026 </span> </div>  
503<script>
504  // Delegated once per document: an author byline can render inside a card
505  // <a>, so intercept the click, cancel the card's navigation, and route to
506  // the author archive instead.
507  (function () {
508    if (document.documentElement.dataset.rbAuthorBound === '1') return;
509    document.documentElement.dataset.rbAuthorBound = '1';
510    function go(e) {
511      var t = e.target;
512      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
513      if (!el) return;
514      e.preventDefault();
515      e.stopPropagation();
516      window.location.href = '/author/' + el.getAttribute('data-rb-author');
517    }
518    document.addEventListener('click', go);
519    document.addEventListener('keydown', function (e) {
520      if (e.key === 'Enter' || e.key === ' ') go(e);
521    });
522  })();
523</script>
523 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Visible soundwaves, lumbering bass, and rattling speakers only begin to describe my first experience with Ganja White Night. Their set at Countdown 2017 was mind-blowing and broke several decibels along the way. GWN gifted me with the loudest set of …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
524READ →
525</div> </div> </a><a href="/2026/09/zingara-subdocta-eligh-unleash-unexpected-collaboration-birds-eye-view" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2019/12/subdocta__50210.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2019/12/subdocta__50210.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2019/12/subdocta__50210.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2019/12/subdocta__50210.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2019/12/subdocta__50210.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2019/12/subdocta__50210.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Zingara, SubDocta, & Eligh Unleash Unexpected Collaboration, ‘Birds Eye View’</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/5cc0112ebf4581cb606995b693da17265f647cb542b24db67acf1be9b5b2e2ba?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="151" role="link" tabindex="0" data-astro-cid-2yvawtqt>Chase Courtney</span> · SEP 16, 2026 </span> </div>  
525<script>
526  // Delegated once per document: an author byline can render inside a card
527  // <a>, so intercept the click, cancel the card's navigation, and route to
528  // the author archive instead.
529  (function () {
530    if (document.documentElement.dataset.rbAuthorBound === '1') return;
531    document.documentElement.dataset.rbAuthorBound = '1';
532    function go(e) {
533      var t = e.target;
534      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
535      if (!el) return;
536      e.preventDefault();
537      e.stopPropagation();
538      window.location.href = '/author/' + el.getAttribute('data-rb-author');
539    }
540    document.addEventListener('click', go);
541    document.addEventListener('keydown', function (e) {
542      if (e.key === 'Enter' || e.key === ' ') go(e);
543    });
544  })();
545</script>
545 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Zingara and SubDocta are two incredible DJs who have a different production style. Zingara blends cerebral melodies with dark wubs and bass, as well as adding in some atmospheric elements. SubDocta is an industry veteran who has been around for …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
546READ →
547</div> </div> </a><a href="/2026/09/daily-breads-vanishing-point-is-a-journey-through-memory-movement-bass" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/[email protected]" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/[email protected] 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/[email protected] 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/[email protected] 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/[email protected] 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/[email protected] 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Daily Bread’s ‘Vanishing Point’ Is a Journey Through Memory, Movement, & Bass </div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/56002a0e8a7e5846d5376a99150681c262e9a8b20f4d0c4ae04023d9e22f4fe1?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="167" role="link" tabindex="0" data-astro-cid-2yvawtqt>Amra Alic</span> · SEP 16, 2026 </span> </div>  
547<script>
548  // Delegated once per document: an author byline can render inside a card
549  // <a>, so intercept the click, cancel the card's navigation, and route to
550  // the author archive instead.
551  (function () {
552    if (document.documentElement.dataset.rbAuthorBound === '1') return;
553    document.documentElement.dataset.rbAuthorBound = '1';
554    function go(e) {
555      var t = e.target;
556      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
557      if (!el) return;
558      e.preventDefault();
559      e.stopPropagation();
560      window.location.href = '/author/' + el.getAttribute('data-rb-author');
561    }
562    document.addEventListener('click', go);
563    document.addEventListener('keydown', function (e) {
564      if (e.key === 'Enter' || e.key === ' ') go(e);
565    });
566  })();
567</script>
567 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Daily Bread is back, and somehow, he has managed to make his already unmistakable sound feel even more personal. For over a decade, the Atlanta producer has carved out a world somewhere between wobbly bass, hip hop, funk, soul, glitch, …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
568READ →
569</div> </div> </a><a href="/2026/09/atali-makes-a-splash-with-new-drop-mo-mo" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-15-at-9.30.43-AM.png" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-15-at-9.30.43-AM.png 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-15-at-9.30.43-AM.png 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-15-at-9.30.43-AM.png 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-15-at-9.30.43-AM.png 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-15-at-9.30.43-AM.png 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">ATALI Makes a SPLASH with New Drop, ‘MO MO’</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/5cc0112ebf4581cb606995b693da17265f647cb542b24db67acf1be9b5b2e2ba?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="151" role="link" tabindex="0" data-astro-cid-2yvawtqt>Chase Courtney</span> · SEP 15, 2026 </span> </div>  
569<script>
570  // Delegated once per document: an author byline can render inside a card
571  // <a>, so intercept the click, cancel the card's navigation, and route to
572  // the author archive instead.
573  (function () {
574    if (document.documentElement.dataset.rbAuthorBound === '1') return;
575    document.documentElement.dataset.rbAuthorBound = '1';
576    function go(e) {
577      var t = e.target;
578      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
579      if (!el) return;
580      e.preventDefault();
581      e.stopPropagation();
582      window.location.href = '/author/' + el.getAttribute('data-rb-author');
583    }
584    document.addEventListener('click', go);
585    document.addEventListener('keydown', function (e) {
586      if (e.key === 'Enter' || e.key === ' ') go(e);
587    });
588  })();
589</script>
589 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">ATALI recently came up on my radar through a SoundCloud recommendation. The track in question was his newest release, &#8220;MO MO.&#8221; This song features a very unique energy with vocals and instrumentals that catch you off guard. This song is …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
590READ →
591</div> </div> </a><a href="/2026/09/your-zodiac-sign-your-zeds-dead-track" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/562995839_18527330467017947_7471263069506263487_n.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/562995839_18527330467017947_7471263069506263487_n.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/562995839_18527330467017947_7471263069506263487_n.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/562995839_18527330467017947_7471263069506263487_n.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/562995839_18527330467017947_7471263069506263487_n.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/562995839_18527330467017947_7471263069506263487_n.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Your Zodiac Sign, Your Zeds Dead Track</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/a37900928e7ac9a6530f51d176e1185751a8eea452fa49123846bd2f406e92a1?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="130" role="link" tabindex="0" data-astro-cid-2yvawtqt>Hana Hamdan</span> · SEP 15, 2026 </span> </div>  
591<script>
592  // Delegated once per document: an author byline can render inside a card
593  // <a>, so intercept the click, cancel the card's navigation, and route to
594  // the author archive instead.
595  (function () {
596    if (document.documentElement.dataset.rbAuthorBound === '1') return;
597    document.documentElement.dataset.rbAuthorBound = '1';
598    function go(e) {
599      var t = e.target;
600      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
601      if (!el) return;
602      e.preventDefault();
603      e.stopPropagation();
604      window.location.href = '/author/' + el.getAttribute('data-rb-author');
605    }
606    document.addEventListener('click', go);
607    document.addEventListener('keydown', function (e) {
608      if (e.key === 'Enter' || e.key === ' ') go(e);
609    });
610  })();
611</script>
611 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Some people check their horoscope. Others wait for a Zeds Dead set to tell them how they’re really feeling. One minute, you’re grabbing your best friend because your song just came on. The next, you’re standing completely still, being flooded …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
612READ →
613</div> </div> </a><a href="/2026/09/where-to-thrift-your-fall-festival-fits-in-tempe-phoenix-scottsdale" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/JS_EOFEST2025_GREENVELVETLAYTONGIORDANI_@COLEWARNER_1-scaled.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/JS_EOFEST2025_GREENVELVETLAYTONGIORDANI_@COLEWARNER_1-scaled.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/JS_EOFEST2025_GREENVELVETLAYTONGIORDANI_@COLEWARNER_1-scaled.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/JS_EOFEST2025_GREENVELVETLAYTONGIORDANI_@COLEWARNER_1-scaled.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/JS_EOFEST2025_GREENVELVETLAYTONGIORDANI_@COLEWARNER_1-scaled.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/JS_EOFEST2025_GREENVELVETLAYTONGIORDANI_@COLEWARNER_1-scaled.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Where to Thrift Your Fall Festival Fits in Tempe, Phoenix, & Scottsdale</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/56002a0e8a7e5846d5376a99150681c262e9a8b20f4d0c4ae04023d9e22f4fe1?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="167" role="link" tabindex="0" data-astro-cid-2yvawtqt>Amra Alic</span> · SEP 14, 2026 </span> </div>  
613<script>
614  // Delegated once per document: an author byline can render inside a card
615  // <a>, so intercept the click, cancel the card's navigation, and route to
616  // the author archive instead.
617  (function () {
618    if (document.documentElement.dataset.rbAuthorBound === '1') return;
619    document.documentElement.dataset.rbAuthorBound = '1';
620    function go(e) {
621      var t = e.target;
622      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
623      if (!el) return;
624      e.preventDefault();
625      e.stopPropagation();
626      window.location.href = '/author/' + el.getAttribute('data-rb-author');
627    }
628    document.addEventListener('click', go);
629    document.addEventListener('keydown', function (e) {
630      if (e.key === 'Enter' || e.key === ' ') go(e);
631    });
632  })();
633</script>
633 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Fall festival season is here, which means it is officially time to retire the idea that your festival outfit needs to come in a matching two-piece set with 14,000 reviews and free shipping. I love a good festival fit, but …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
634READ →
635</div> </div> </a><a href="/2026/09/zhu-found-his-way-back-to-the-dance-floor-heres-what-changed" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/04/zhu2.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/04/zhu2.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/04/zhu2.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/04/zhu2.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/04/zhu2.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/04/zhu2.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">ZHU Found His Way Back to the Dance Floor. Here’s What Changed</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/c2cbba863797dc717005c699c2a824c086da394ad9aa0f67d982b50d55b4e97a?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="152" role="link" tabindex="0" data-astro-cid-2yvawtqt>Dayne Harris</span> · SEP 14, 2026 </span> </div>  
635<script>
636  // Delegated once per document: an author byline can render inside a card
637  // <a>, so intercept the click, cancel the card's navigation, and route to
638  // the author archive instead.
639  (function () {
640    if (document.documentElement.dataset.rbAuthorBound === '1') return;
641    document.documentElement.dataset.rbAuthorBound = '1';
642    function go(e) {
643      var t = e.target;
644      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
645      if (!el) return;
646      e.preventDefault();
647      e.stopPropagation();
648      window.location.href = '/author/' + el.getAttribute('data-rb-author');
649    }
650    document.addEventListener('click', go);
651    document.addEventListener('keydown', function (e) {
652      if (e.key === 'Enter' || e.key === ' ') go(e);
653    });
654  })();
655</script>
655 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">ZHU has always been an artist who follows his own instincts. After years of commanding massive festival stages with his cinematic, unique sound design, he has made a deliberate choice to strip things back. His 2026 Black Midas era marks …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
656READ →
657</div> </div> </a><a href="/2026/09/north-coast-music-festival-wraps-16th-edition-with-sold-out-weekend" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/NCMF26-SKY-scaled.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/NCMF26-SKY-scaled.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/NCMF26-SKY-scaled.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/NCMF26-SKY-scaled.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/NCMF26-SKY-scaled.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/NCMF26-SKY-scaled.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">North Coast Music Festival Wraps 16th Edition with Sold-Out Weekend</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/c2cbba863797dc717005c699c2a824c086da394ad9aa0f67d982b50d55b4e97a?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="152" role="link" tabindex="0" data-astro-cid-2yvawtqt>Dayne Harris</span> · SEP 11, 2026 </span> </div>  
657<script>
658  // Delegated once per document: an author byline can render inside a card
659  // <a>, so intercept the click, cancel the card's navigation, and route to
660  // the author archive instead.
661  (function () {
662    if (document.documentElement.dataset.rbAuthorBound === '1') return;
663    document.documentElement.dataset.rbAuthorBound = '1';
664    function go(e) {
665      var t = e.target;
666      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
667      if (!el) return;
668      e.preventDefault();
669      e.stopPropagation();
670      window.location.href = '/author/' + el.getAttribute('data-rb-author');
671    }
672    document.addEventListener('click', go);
673    document.addEventListener('keydown', function (e) {
674      if (e.key === 'Enter' || e.key === ' ') go(e);
675    });
676  })();
677</script>
677 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">North Coast Music Festival has officially closed the books on its 16th edition. The festival took over SeatGeek Stadium in Bridgeview, Illinois from September 4-6, drawing thousands of fans for three days of electronic music, immersive production, and community. Both …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
678READ →
679</div> </div> </a><a href="/2026/09/from-the-van-buren-to-decadence-nye-a-look-back-at-btsms-arizona-eras" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2023/09/btsm.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2023/09/btsm.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2023/09/btsm.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2023/09/btsm.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2023/09/btsm.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2023/09/btsm.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">From The Van Buren to Decadence NYE: A Look Back at BTSM’s Arizona Eras</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/c2cbba863797dc717005c699c2a824c086da394ad9aa0f67d982b50d55b4e97a?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="152" role="link" tabindex="0" data-astro-cid-2yvawtqt>Dayne Harris</span> · SEP 11, 2026 </span> </div>  
679<script>
680  // Delegated once per document: an author byline can render inside a card
681  // <a>, so intercept the click, cancel the card's navigation, and route to
682  // the author archive instead.
683  (function () {
684    if (document.documentElement.dataset.rbAuthorBound === '1') return;
685    document.documentElement.dataset.rbAuthorBound = '1';
686    function go(e) {
687      var t = e.target;
688      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
689      if (!el) return;
690      e.preventDefault();
691      e.stopPropagation();
692      window.location.href = '/author/' + el.getAttribute('data-rb-author');
693    }
694    document.addEventListener('click', go);
695    document.addEventListener('keydown', function (e) {
696      if (e.key === 'Enter' || e.key === ' ') go(e);
697    });
698  })();
699</script>
699 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Black Tiger Sex Machine has been a fixture in Arizona&#8217;s electronic music scene for nearly a decade. From early festival appearances to intimate club shows and now a massive outdoor production, the Montreal trio&#8217;s journey through the Grand Canyon State …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
700READ →
701</div> </div> </a><a href="/2026/09/zeds-dead-a-journey-of-a-lifetime" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Zeds-Dead-2026-press-shot.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Zeds-Dead-2026-press-shot.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Zeds-Dead-2026-press-shot.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Zeds-Dead-2026-press-shot.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Zeds-Dead-2026-press-shot.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/08/Zeds-Dead-2026-press-shot.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Zeds Dead: A Journey of a Lifetime</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/25ef32cb47d38ce25877814518b712559f7522080575ce143a5d602e20132d6b?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="149" role="link" tabindex="0" data-astro-cid-2yvawtqt>Jake Kwapiszeski</span> · SEP 10, 2026 </span> </div>  
701<script>
702  // Delegated once per document: an author byline can render inside a card
703  // <a>, so intercept the click, cancel the card's navigation, and route to
704  // the author archive instead.
705  (function () {
706    if (document.documentElement.dataset.rbAuthorBound === '1') return;
707    document.documentElement.dataset.rbAuthorBound = '1';
708    function go(e) {
709      var t = e.target;
710      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
711      if (!el) return;
712      e.preventDefault();
713      e.stopPropagation();
714      window.location.href = '/author/' + el.getAttribute('data-rb-author');
715    }
716    document.addEventListener('click', go);
717    document.addEventListener('keydown', function (e) {
718      if (e.key === 'Enter' || e.key === ' ') go(e);
719    });
720  })();
721</script>
721 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Before Zeds Dead became one of the biggest names in bass music, DC and Hooks (the iconic duo) were two producers digging through records and trading samples in Toronto. The pair began working together in the late 2000s before officially …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
722READ →
723</div> </div> </a><a href="/2026/09/three-completely-different-nights-are-taking-over-warehouse-215-this-october" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/CHASESTATUS_WAREHOUSE215_6.21.25_HSMITHMEDIA-078.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/CHASESTATUS_WAREHOUSE215_6.21.25_HSMITHMEDIA-078.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/CHASESTATUS_WAREHOUSE215_6.21.25_HSMITHMEDIA-078.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/CHASESTATUS_WAREHOUSE215_6.21.25_HSMITHMEDIA-078.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/CHASESTATUS_WAREHOUSE215_6.21.25_HSMITHMEDIA-078.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/05/CHASESTATUS_WAREHOUSE215_6.21.25_HSMITHMEDIA-078.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Three Completely Different Nights Are Taking Over Warehouse 215 This October</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/56002a0e8a7e5846d5376a99150681c262e9a8b20f4d0c4ae04023d9e22f4fe1?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="167" role="link" tabindex="0" data-astro-cid-2yvawtqt>Amra Alic</span> · SEP 10, 2026 </span> </div>  
723<script>
724  // Delegated once per document: an author byline can render inside a card
725  // <a>, so intercept the click, cancel the card's navigation, and route to
726  // the author archive instead.
727  (function () {
728    if (document.documentElement.dataset.rbAuthorBound === '1') return;
729    document.documentElement.dataset.rbAuthorBound = '1';
730    function go(e) {
731      var t = e.target;
732      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
733      if (!el) return;
734      e.preventDefault();
735      e.stopPropagation();
736      window.location.href = '/author/' + el.getAttribute('data-rb-author');
737    }
738    document.addEventListener('click', go);
739    document.addEventListener('keydown', function (e) {
740      if (e.key === 'Enter' || e.key === ' ') go(e);
741    });
742  })();
743</script>
743 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">October is about to get very interesting at Warehouse 215. Three nights, three completely different corners of electronic music, and three very different reasons to walk through those doors. You could spend one night buried somewhere deep in the underground …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
744READ →
745</div> </div> </a><a href="/2026/09/can-your-horror-match-vktms-unmatched" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/RB-VKTM_Unmatched.jpeg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/R
745B-VKTM_Unmatched.jpeg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/RB-VKTM_Unmatched.jpeg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/RB-VKTM_Unmatched.jpeg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/RB-VKTM_Unmatched.jpeg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/RB-VKTM_Unmatched.jpeg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Can Your Horror Match VKTM’s ‘UNMATCHED’?</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/6a844eb7583b35e79e3ad77b24aa50b05c29854b083bf6a3bd98d84ac4de112a?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="148" role="link" tabindex="0" data-astro-cid-2yvawtqt>Marcus Arrieta</span> · SEP 9, 2026 </span> </div>  
745<script>
746  // Delegated once per document: an author byline can render inside a card
747  // <a>, so intercept the click, cancel the card's navigation, and route to
748  // the author archive instead.
749  (function () {
750    if (document.documentElement.dataset.rbAuthorBound === '1') return;
751    document.documentElement.dataset.rbAuthorBound = '1';
752    function go(e) {
753      var t = e.target;
754      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
755      if (!el) return;
756      e.preventDefault();
757      e.stopPropagation();
758      window.location.href = '/author/' + el.getAttribute('data-rb-author');
759    }
760    document.addEventListener('click', go);
761    document.addEventListener('keydown', function (e) {
762      if (e.key === 'Enter' || e.key === ' ') go(e);
763    });
764  })();
765</script>
765 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">“Can your horror match mine?” an iconic line from VKTM’s highly-anticipated track “UNMATCHED.” Dubbed “THE lost lands track,” VKTM’s new banger had fans absolutely mind-blown when he first debuted the track as his intro at Lost Lands Festival in 2025. …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
766READ →
767</div> </div> </a><a href="/2026/09/goldrush-collabs-the-pairings-hiding-in-the-2026-lineup" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2025/10/GOLDRUSH25_DAY1_FB_HSMITHMEDIA-022.jpg" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2025/10/GOLDRUSH25_DAY1_FB_HSMITHMEDIA-022.jpg 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2025/10/GOLDRUSH25_DAY1_FB_HSMITHMEDIA-022.jpg 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2025/10/GOLDRUSH25_DAY1_FB_HSMITHMEDIA-022.jpg 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2025/10/GOLDRUSH25_DAY1_FB_HSMITHMEDIA-022.jpg 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2025/10/GOLDRUSH25_DAY1_FB_HSMITHMEDIA-022.jpg 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Goldrush Collabs: The Pairings Hiding in the 2026 Lineup</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/ff7cb0dcc122d89e78efe1966e3ba178cab152deced3be2e1266973a1a9bbcf2?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="188" role="link" tabindex="0" data-astro-cid-2yvawtqt>Wyatt Schubargo</span> · SEP 9, 2026 </span> </div>  
767<script>
768  // Delegated once per document: an author byline can render inside a card
769  // <a>, so intercept the click, cancel the card's navigation, and route to
770  // the author archive instead.
771  (function () {
772    if (document.documentElement.dataset.rbAuthorBound === '1') return;
773    document.documentElement.dataset.rbAuthorBound = '1';
774    function go(e) {
775      var t = e.target;
776      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
777      if (!el) return;
778      e.preventDefault();
779      e.stopPropagation();
780      window.location.href = '/author/' + el.getAttribute('data-rb-author');
781    }
782    document.addEventListener('click', go);
783    document.addEventListener('keydown', function (e) {
784      if (e.key === 'Enter' || e.key === ' ') go(e);
785    });
786  })();
787</script>
787 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Look at the Goldrush: Midnight Riders lineup close enough and you will spot names that have been in the studio together. Four pairs on this year&#8217;s bill have already made music with each other, and those tracks are worth queuing …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
788READ →
789</div> </div> </a><a href="/2026/09/cowboy-boots-cats-its-murph" class="rb-news-card block text-rb no-underline"> <div class="relative overflow-hidden" style="aspect-ratio:16/9; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-09-at-10.35.12-AM.png" srcset="https://media.relentlessbeats.com/cdn-cgi/image/width=320,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-09-at-10.35.12-AM.png 320w, https://media.relentlessbeats.com/cdn-cgi/image/width=480,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-09-at-10.35.12-AM.png 480w, https://media.relentlessbeats.com/cdn-cgi/image/width=768,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-09-at-10.35.12-AM.png 768w, https://media.relentlessbeats.com/cdn-cgi/image/width=1080,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-09-at-10.35.12-AM.png 1080w, https://media.relentlessbeats.com/cdn-cgi/image/width=1600,fit=scale-down,format=auto,quality=auto,metadata=none/wp-content/uploads/2026/09/Screenshot-2026-09-09-at-10.35.12-AM.png 1600w" sizes="(min-width:1024px) 360px, 100vw" alt="" style="width:100%; height:100%; object-fit:cover; display:block;" loading="lazy"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </div> <div style="margin-top:14px;"> <div class="font-serif" style="font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-0.4px;">Cowboy Boots & Cats: it’s murph</div> <div style="margin-top:10px;"> <div class="font-mono uppercase flex items-center gap-2" style="font-size:10.5px; letter-spacing:0.14em; color:var(--rb-silver-warm);" data-astro-cid-2yvawtqt> <img src="https://secure.gravatar.com/avatar/5cc0112ebf4581cb606995b693da17265f647cb542b24db67acf1be9b5b2e2ba?s=96&d=mm&r=g" alt="" width="22" height="22" loading="lazy" style="width:22px; height:22px; border-radius:50%; object-fit:cover; background:var(--rb-bg-panel); flex-shrink:0;" data-astro-cid-2yvawtqt> <span data-astro-cid-2yvawtqt>  <span class="rb-author-link" data-rb-author="151" role="link" tabindex="0" data-astro-cid-2yvawtqt>Chase Courtney</span> · SEP 8, 2026 </span> </div>  
789<script>
790  // Delegated once per document: an author byline can render inside a card
791  // <a>, so intercept the click, cancel the card's navigation, and route to
792  // the author archive instead.
793  (function () {
794    if (document.documentElement.dataset.rbAuthorBound === '1') return;
795    document.documentElement.dataset.rbAuthorBound = '1';
796    function go(e) {
797      var t = e.target;
798      var el = t && t.closest ? t.closest('[data-rb-author]') : null;
799      if (!el) return;
800      e.preventDefault();
801      e.stopPropagation();
802      window.location.href = '/author/' + el.getAttribute('data-rb-author');
803    }
804    document.addEventListener('click', go);
805    document.addEventListener('keydown', function (e) {
806      if (e.key === 'Enter' || e.key === ' ') go(e);
807    });
808  })();
809</script>
809 </div> <div class="font-serif text-rb-mute" style="font-size:14px; font-style:italic; line-height:1.5; margin-top:10px;">Goldrush 2025 was a truly epic event. The lineup and vendors were top-notch. Goldrush 2025 was also the first time that I attended a Rawhide festival that opened the replica Wild West Town. There were house stages hidden inside the …</div> <div class="font-mono uppercase" style="font-size:10px; letter-spacing:0.16em; margin-top:12px; color:var(--rb-silver-warm);">
810READ →
811</div> </div> </a> </div> </div><div class="rb-container"> <div class="rb-pad-x" style="padding-top:40px;"> <div class="flex items-end gap-3"> <div class="flex-1"> <div class="label-mono text-rb-faint">candid · from the floor</div> <div class="font-display rb-section-h" style="font-size:22px; font-weight:700; line-height:1; letter-spacing:-0.8px; margin-top:4px;">
812Recent moments
813</div> </div> <a href="/gallery" class="font-mono uppercase text-silver-warm no-underline" style="font-size:10.5px; letter-spacing:0.1em;">
814VIEW ALL →
815</a> </div> </div> <section style="margin-top:18px;"> <div class="rb-pad-x"> <div class="flex items-baseline gap-2.5" style="flex-wrap:wrap;"> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.16em;">
816/01 </span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;"> SEP 5, 2026 </span> </div> <div style="margin-top:6px;"> <a href="/events/airod-warehouse-215-090526" class="font-display text-rb no-underline" style="font-size:22px; font-weight:700; line-height:1.05; letter-spacing:-0.8px;">AIROD</a> </div> <div class="font-mono text-rb-mute" style="font-size:10.5px; margin-top:4px;">
817@ WAREHOUSE 215 <span class="text-rb-faint"> · 57 PHOTOS</span> </div> </div> <div class="rb-photo-strip" style="display:flex; gap:6px; padding:10px 16px 0; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;"> <a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0001-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0002-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0004-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0005-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-800x1200.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-1366x2048.jpg 1366w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0006-scaled.jpg 1707w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0007-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0008-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0009-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-1200x800.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-
817768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-2048x1366.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0010-300x200.jpg 300w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-800x1200.jpg" data-rb-lightbox-alt="AIROD" data-rb-lightbox-group="home-gallery-airod-warehouse-215-090526" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-1366x2048.jpg 1366w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/08/Airod-WH215-Grotto-260905-0011-scaled.jpg 1707w" sizes="160px" alt="AIROD" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a> <a href="/events/airod-warehouse-215-090526" class="flex-shrink-0 inline-flex flex-col items-center justify-center no-underline" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel); border:1px solid var(--rb-rule);"> <span class="font-display" style="font-size:28px; font-weight:700; letter-spacing:-1px; line-height:1; color:var(--rb-ink);">
818+47 </span> <span class="font-mono uppercase" style="font-size:10px; letter-spacing:0.14em; color:var(--rb-silver-warm); margin-top:6px;">
819MORE →
820</span> </a> </div> </section><section style="margin-top:28px;"> <div class="rb-pad-x"> <div class="flex items-baseline gap-2.5" style="flex-wrap:wrap;"> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.16em;">
821/02 </span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;"> AUG 14, 2026 </span> </div> <div style="margin-top:6px;"> <a href="/events/gravedgr-sunbar-081426" class="font-display text-rb no-underline" style="font-size:22px; font-weight:700; line-height:1.05; letter-spacing:-0.8px;">Gravedgr</a> </div> <div class="font-mono text-rb-mute" style="font-size:10.5px; margin-top:4px;">
822@ SUNBAR <span class="text-rb-faint"> · 31 PHOTOS</span> </div> </div> <div class="rb-photo-strip" style="display:flex; gap:6px; padding:10px 16px 0; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;"> <a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-1200x800.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-2048x1365.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-13-300x200.jpg 300w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-1200x800.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-2048x1365.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-14-300x200.jpg 300w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-800x1200.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-1365x2048.jpg 1365w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-15-scaled.jpg 1707w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-800x1200.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-1365x2048.jpg 1365w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-16-scaled.jpg 1707w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-800x1200.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-1365x2048.jpg 1365w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-17-scaled.jpg 1707w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-800x1200.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-1365x2048.jpg 1365w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-18-scaled.jpg 1707w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-800x1200.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-1365x2048.jpg 1365w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-20-scaled.jpg 1707w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-1200x800.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-2048x1365.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-21-300x200.jpg 300w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:10
8220%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-1200x800.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-1200x800.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-1200x800.jpg 1200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-600x400.jpg 600w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-768x512.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-1536x1024.jpg 1536w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-2048x1365.jpg 2048w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-22-300x200.jpg 300w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a><a href="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-800x1200.jpg" data-rb-lightbox="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-800x1200.jpg" data-rb-lightbox-alt="Gravedgr" data-rb-lightbox-group="home-gallery-gravedgr-sunbar-081426" class="relative block flex-shrink-0 overflow-hidden" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel);"> <img src="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-150x150.jpg" srcset="https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-800x1200.jpg 800w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-400x600.jpg 400w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-768x1152.jpg 768w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-1024x1536.jpg 1024w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-1365x2048.jpg 1365w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-200x300.jpg 200w, https://media.relentlessbeats.com/wp-content/uploads/2026/06/GRAVEDGR_SUNBAR_8.14.26_HSMITHMEDIA-23-scaled.jpg 1707w" sizes="160px" alt="Gravedgr" loading="lazy" style="width:100%; height:100%; object-fit:cover; display:block;"> <div class="rb-scanlines pointer-events-none absolute inset-0" style="opacity:0.1"></div> </a> <a href="/events/gravedgr-sunbar-081426" class="flex-shrink-0 inline-flex flex-col items-center justify-center no-underline" style="width:160px; aspect-ratio:1; scroll-snap-align:start; background:var(--rb-bg-panel); border:1px solid var(--rb-rule);"> <span class="font-display" style="font-size:28px; font-weight:700; letter-spacing:-1px; line-height:1; color:var(--rb-ink);">
823+21 </span> <span class="font-mono uppercase" style="font-size:10px; letter-spacing:0.14em; color:var(--rb-silver-warm); margin-top:6px;">
824MORE →
825</span> </a> </div> </section> </div><div class="rb-container"><section class="bg-rb-raised" style="margin-top:40px; padding:32px 16px; border-top:1px solid var(--rb-rule); border-bottom:1px solid var(--rb-rule); position:relative; overflow:hidden;"><div class="absolute pointer-events-none" style="inset:0; background: radial-gradient(60% 80% at 80% 20%, rgba(255,58,107,0.06), transparent 60%);"></div><div style="position:relative; max-width:640px; margin:0 auto;"><div class="font-mono uppercase" style="font-size:10.5px; letter-spacing:0.18em; color:var(--rb-hot);">
826Get on the list
827</div><div class="font-display" style="font-size:34px; font-weight:700; line-height:1.05; letter-spacing:-1px; margin-top:10px;">
828Don't miss a beat.
829</div><p class="font-serif text-rb-mute" style="font-size:15px; line-height:1.55; margin-top:14px; max-width:520px;">
830Texts and emails when shows go on sale, presales drop, and seats run low. Free, no spam — unsubscribe any time.
831</p><div style="margin-top:20px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;"><a href="/signup" data-rb-hive-open class="bg-chrome text-silver-ink no-underline inline-flex items-center" style="padding:13px 22px; font-family:var(--rb-font-display); font-weight:700; font-size:15px; letter-spacing:0.04em; box-shadow: inset 0 1px 0 rgba(255,255,255,0.5), inset 0 -1px 0 rgba(0,0,0,0.18); gap:10px;">
832SIGN ME UP
833<span class="font-mono" style="font-size:11px; letter-spacing:0.14em; color:rgba(10,10,12,0.62);">→</span></a><span class="font-mono text-rb-faint uppercase" style="font-size:10px; letter-spacing:0.16em;">
834Or text RB to 96000
835</span></div></div></section></div>  <footer class="font-mono text-rb-faint rb-footer" style="padding:36px 16px 40px; border-top:1px solid var(--rb-rule); font-size:10px; letter-spacing:0.08em; background:var(--rb-bg);" data-astro-cid-sz7xmlte> <div class="rb-container" style="max-width:1280px; margin:0 auto;" data-astro-cid-sz7xmlte>  <div class="rb-footer-top" data-astro-cid-sz7xmlte> <div class="rb-footer-brand flex items-start gap-3.5" data-astro-cid-sz7xmlte> <img src="/assets/rb-mark.png" alt="" style="height:40px; width:auto; filter:brightness(0) invert(0.85); flex-shrink:0;" data-astro-cid-sz7xmlte> <div class="flex-1" data-astro-cid-sz7xmlte> <div class="font-display text-silver-warm" style="font-size:22px; font-weight:600; letter-spacing:-0.5px; line-height:1;" data-astro-cid-sz7xmlte>
836Dance Lives Here<span class="text-live" data-astro-cid-sz7xmlte>.</span> </div> <div class="text-rb-faint" style="margin-top:6px; font-size:10px; letter-spacing:0.12em;" data-astro-cid-sz7xmlte>
837BANGIN' BEATS SINCE '96
838</div> </div> </div> <div class="rb-footer-nav" data-astro-cid-sz7xmlte>  <div class="rb-footer-nav-main" data-astro-cid-sz7xmlte> <div class="rb-footer-nav-stack" data-astro-cid-sz7xmlte> <div class="rb-footer-section" data-astro-cid-sz7xmlte> <div class="text-silver-warm uppercase" style="font-size:10px; letter-spacing:0.18em; margin-bottom:10px; font-weight:700;" data-astro-cid-sz7xmlte>Explore</div> <ul style="list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/events" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Events</a> </li><li data-astro-cid-sz7xmlte> <a href="/gallery" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Gallery</a> </li><li data-astro-cid-sz7xmlte> <a href="https://www.hellomerch.com/collections/relentless-beats" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Merch Store ↗</a> </li><li data-astro-cid-sz7xmlte> <a href="/saved" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Saved</a> </li> </ul> </div><div class="rb-footer-section" data-astro-cid-sz7xmlte> <div class="text-silver-warm uppercase" style="font-size:10px; letter-spacing:0.18em; margin-bottom:10px; font-weight:700;" data-astro-cid-sz7xmlte>Roster</div> <ul style="list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/artists" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Artists</a> </li><li data-astro-cid-sz7xmlte> <a href="/venues" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Venues</a> </li> </ul> </div><div class="rb-footer-section" data-astro-cid-sz7xmlte> <div class="text-silver-warm uppercase" style="font-size:10px; letter-spacing:0.18em; margin-bottom:10px; font-weight:700;" data-astro-cid-sz7xmlte>Editorial</div> <ul style="list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/rbnews" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>RB News</a> </li> </ul> </div> </div><div class="rb-footer-nav-stack" data-astro-cid-sz7xmlte> <div class="rb-footer-section" data-astro-cid-sz7xmlte> <div class="text-silver-warm uppercase" style="font-size:10px; letter-spacing:0.18em; margin-bottom:10px; font-weight:700;" data-astro-cid-sz7xmlte>Connect</div> <ul style="list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/about" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>About RB</a> </li><li data-astro-cid-sz7xmlte> <a href="/contact" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Contact</a> </li> </ul> </div><div class="rb-footer-section" data-astro-cid-sz7xmlte> <div class="text-silver-warm uppercase" style="font-size:10px; letter-spacing:0.18em; margin-bottom:10px; font-weight:700;" data-astro-cid-sz7xmlte>Opportunities</div> <ul style="list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="/jobs" class="text-rb-mute no-underline font-display" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2;" data-astro-cid-sz7xmlte>Job Opportunities</a> </li> </ul> </div> </div> </div> <div class="rb-footer-section rb-footer-section-follow" data-astro-cid-sz7xmlte> <div class="text-silver-warm uppercase" style="font-size:10px; letter-spacing:0.18em; margin-bottom:10px; font-weight:700;" data-astro-cid-sz7xmlte>Follow</div> <ul style="list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;" data-astro-cid-sz7xmlte> <li data-astro-cid-sz7xmlte> <a href="https://www.instagram.com/relentlessbeats" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte>
838 <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="flex-shrink:0;" data-astro-cid-sz7xmlte> <path d="M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41a3.7 3.7 0 0 1-1.38-.9 3.7 3.7 0 0 1-.9-1.38c-.16-.42-.36-1.06-.41-2.23C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.17 8.8 2.16 12 2.16zm0 1.8c-3.14 0-3.51.01-4.75.07-1.07.05-1.65.23-2.04.38a3.5 3.5 0 0 0-1.27.83 3.5 3.5 0 0 0-.83 1.27c-.15.39-.33.97-.38 2.04-.06 1.24-.07 1.61-.07 4.75s.01 3.51.07 4.75c.05 1.07.23 1.65.38 2.04.18.46.41.79.83 1.27.42.42.81.65 1.27.83.39.15.97.33 2.04.38 1.24.06 1.61.07 4.75.07s3.51-.01 4.75-.07c1.07-.05 1.65-.23 2.04-.38.46-.18.85-.41 1.27-.83.42-.42.65-.81.83-1.27.15-.39.33-.97.38-2.04.06-1.24.07-1.61.07-4.75s-.01-3.51-.07-4.75c-.05-1.07-.23-1.65-.38-2.04a3.5 3.5 0 0 0-.83-1.27 3.5 3.5 0 0 0-1.27-.83c-.39-.15-.97-.33-2.04-.38C15.51 3.97 15.14 3.96 12 3.96zm0 3.06a4.98 4.98 0 1 1 0 9.96 4.98 4.98 0 0 1 0-9.96zm0 8.22a3.24 3.24 0 1 0 0-6.48 3.24 3.24 0 0 0 0 6.48zm6.34-8.42a1.16 1.16 0 1 1-2.32 0 1.16 1.16 0 0 1 2.32 0z" data-astro-cid-sz7xmlte></path> </svg>  <span data-astro-cid-sz7xmlte>Instagram ↗</span> </a> </li><li data-astro-cid-sz7xmlte> <a href="https://www.tiktok.com/@relentlessbeats" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="flex-shrink:0;" data-astro-cid-sz7xmlte> <path d="M19.6 8.3a6.4 6.4 0 0 1-3.74-1.21v8.55a5.92 5.92 0 1 1-5.92-5.92c.31 0 .61.03.9.08v3.04a2.93 2.93 0 1 0 2 2.78V2h2.87a3.43 3.43 0 0 0 3.89 3.43V8.3z" data-astro-cid-sz7xmlte></path> </svg>  <span data-astro-cid-sz7xmlte>TikTok ↗</span> </a> </li><li data-astro-cid-sz7xmlte> <a href="https://x.com/relentlessbeats" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="flex-shrink:0;" data-astro-cid-sz7xmlte> <path d="M18.24 2.25h3.31l-7.23 8.26 8.5 11.24h-6.66l-5.21-6.82-5.97 6.82H1.67l7.73-8.84L1.25 2.25h6.83l4.71 6.23 5.45-6.23zm-1.16 17.52h1.83L7.08 4.12H5.12L17.08 19.77z" data-astro-cid-sz7xmlte></path> </svg>  <span data-astro-cid-sz7xmlte>X ↗</span> </a> </li><li data-astro-cid-sz7xmlte> <a href="https://www.facebook.com/relentlessbeats" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="flex-shrink:0;" data-astro-cid-sz7xmlte> <path d="M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.89 3.77-3.89 1.1 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.78l-.45 2.89h-2.33v6.99A10 10 0 0 0 22 12z" data-astro-cid-sz7xmlte></path> </svg>  <span data-astro-cid-sz7xmlte>Facebook ↗</span> </a> </li><li data-astro-cid-sz7xmlte> <a href="https://www.youtube.com/relentlessbeatstv" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="flex-shrink:0;" data-astro-cid-sz7xmlte> <path d="M21.58 7.2a2.51 2.51 0 0 0-1.77-1.77C18.25 5 12 5 12 5s-6.25 0-7.81.43a2.51 2.51 0 0 0-1.77 1.77C2 8.75 2 12 2 12s0 3.25.42 4.8a2.51 2.51 0 0 0 1.77 1.77C5.75 19 12 19 12 19s6.25 0 7.81-.43a2.51 2.51 0 0 0 1.77-1.77C22 15.25 22 12 22 12s0-3.25-.42-4.8zM10 15V9l5.2 3-5.2 3z" data-astro-cid-sz7xmlte></path> </svg>  <span data-astro-cid-sz7xmlte>YouTube ↗</span> </a> </li><li data-astro-cid-sz7xmlte> <a href="https://open.spotify.com/user/or5hfa0szgokhzhbqvhvdajtp?si=8bcb92a3a0514848" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte>
838 <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="flex-shrink:0;" data-astro-cid-sz7xmlte> <path d="M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm5.52 17.3a.75.75 0 0 1-1.03.25c-2.82-1.72-6.36-2.11-10.53-1.16a.75.75 0 0 1-.33-1.46c4.55-1.04 8.47-.59 11.64 1.34.36.22.47.69.25 1.03zm1.47-3.27a.94.94 0 0 1-1.29.31c-3.22-1.98-8.13-2.55-11.95-1.4a.94.94 0 1 1-.54-1.8c4.36-1.32 9.77-.68 13.47 1.6.44.27.58.85.31 1.29zm.13-3.4c-3.86-2.3-10.24-2.5-13.93-1.39a1.13 1.13 0 1 1-.65-2.16c4.23-1.28 11.27-1.04 15.72 1.6a1.13 1.13 0 0 1-1.14 1.95z" data-astro-cid-sz7xmlte></path> </svg>  <span data-astro-cid-sz7xmlte>Spotify ↗</span> </a> </li><li data-astro-cid-sz7xmlte> <a href="https://ra.co/promoters/22594" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte>  <img src="/assets/social-icons/ra.png" alt="" width="16" height="16" loading="lazy" referrerpolicy="no-referrer" style="flex-shrink:0; width:16px; height:16px; object-fit:contain;" data-astro-cid-sz7xmlte> <span data-astro-cid-sz7xmlte>Resident Advisor ↗</span> </a> </li><li data-astro-cid-sz7xmlte> <a href="https://www.tixr.com/groups/relentlessbeats" target="_blank" rel="noopener noreferrer" class="text-rb-mute no-underline font-display inline-flex items-center" style="font-size:14px; font-weight:500; letter-spacing:-0.2px; line-height:1.2; gap:10px;" data-astro-cid-sz7xmlte>  <img src="/assets/social-icons/tixr.png" alt="" width="16" height="16" loading="lazy" referrerpolicy="no-referrer" style="flex-shrink:0; width:16px; height:16px; object-fit:contain;" data-astro-cid-sz7xmlte> <span data-astro-cid-sz7xmlte>Tixr ↗</span> </a> </li> </ul> </div> </div> </div> <div class="flex flex-wrap items-center" style="gap:18px; margin-top:28px; padding-top:18px; border-top:1px solid var(--rb-rule); font-size:12px; letter-spacing:0.1em;" data-astro-cid-sz7xmlte> <a href="/privacy-policy/" class="text-rb-faint no-underline" style="font-size:12px; letter-spacing:0.1em;" data-astro-cid-sz7xmlte> Privacy Policy </a><a href="/terms-and-conditions/" class="text-rb-faint no-underline" style="font-size:12px; letter-spacing:0.1em;" data-astro-cid-sz7xmlte> Terms and Conditions </a><a href="/accessibility/" class="text-rb-faint no-underline" style="font-size:12px; letter-spacing:0.1em;" data-astro-cid-sz7xmlte> Accessibility </a> <span style="flex:1;" data-astro-cid-sz7xmlte></span> <span class="text-rb-faint" style="font-size:12px;" data-astro-cid-sz7xmlte>© 2026</span> </div> </div> </footer>  <nav id="rb-menu" class="rb-menu" aria-hidden="true" aria-label="Site navigation" data-rb-menu-source="api:Mobile Nav v4:6" data-astro-cid-wbxrrwi2> <div class="rb-menu-backdrop" data-astro-cid-wbxrrwi2></div> <div class="rb-menu-panel" data-astro-cid-wbxrrwi2> <div class="rb-menu-head" data-astro-cid-wbxrrwi2> <img src="/assets/rb-logo.png" alt="Relentless Beats" style="height:28px; width:auto; display:block; filter:brightness(0) invert(0.96); opacity:0.95;" data-astro-cid-wbxrrwi2> <button type="button" class="rb-menu-close font-display cursor-pointer" aria-label="Close menu" style="background:transparent; border:none; padding:10px; margin:-10px; font-size:24px; font-weight:400; line-height:1; color:var(--rb-ink); min-width:44px; min-height:44px;" data-astro-cid-wbxrrwi2>×</button> </div> <div class="rb-menu-scroll" data-astro-cid-wbxrrwi2>  <div style="padding:18px 24px 0;" data-astro-cid-wbxrrwi2> <a href="/signup" data-rb-hive-open class="block no-underline" style="padding:14px 16px; background:var(--rb-bg-raised); border:1px solid var(--rb-rule-strong); color:var(--rb-ink); margin-bottom:18px;" data-astro-cid-wbxrrwi2> <div class="font-mono uppercase text-hot" style="font-size:9.5px; letter-spacing:0.18em;" data-astro-cid-wbxrrwi2>
839Get on the list
840</div> <div class="font-display" style="font-size:18px; font-weight:700; letter-spacing:-0.4px; line-height:1.1; margin-top:6px;" data-astro-cid-wbxrrwi2>Don't miss a beat.</div> <div class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em; margin-top:6px;" data-astro-cid-wbxrrwi2>
841TEXTS · EMAIL · SIGN UP →
842</div> </a> </div> <div class="rb-menu-grid" style="display:grid; grid-template-columns:1fr 1fr; column-gap:16px; row-gap:18px; padding:0 24px 4px;" data-astro-cid-wbxrrwi2> <section data-astro-cid-wbxrrwi2> <div class="flex items-baseline gap-2" style="padding-bottom:8px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span class="font-mono text-rb-faint" style="font-size:9.5px; letter-spacing:0.16em;" data-astro-cid-wbxrrwi2>/01</span> <span class="font-mono uppercase text-silver-warm" style="font-size:10px; letter-spacing:0.18em; font-weight:700;" data-astro-cid-wbxrrwi2>Explore</span> </div> <ul style="list-style:none; padding:0; margin:0;" data-astro-cid-wbxrrwi2> <li data-astro-cid-wbxrrwi2> <a href="/events" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Events</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li><li data-astro-cid-wbxrrwi2> <a href="/gallery" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Gallery</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li><li data-astro-cid-wbxrrwi2> <a href="https://www.hellomerch.com/collections/relentless-beats" target="_blank" rel="noopener noreferrer" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Merch Store</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>↗</span> </a> </li><li data-astro-cid-wbxrrwi2> <a href="/saved" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Saved</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li> </ul> </section><section data-astro-cid-wbxrrwi2> <div class="flex items-baseline gap-2" style="padding-bottom:8px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span class="font-mono text-rb-faint" style="font-size:9.5px; letter-spacing:0.16em;" data-astro-cid-wbxrrwi2>/02</span> <span class="font-mono uppercase text-silver-warm" style="font-size:10px; letter-spacing:0.18em; font-weight:700;" data-astro-cid-wbxrrwi2>Roster</span> </div> <ul style="list-style:none; padding:0; margin:0;" data-astro-cid-wbxrrwi2> <li data-astro-cid-wbxrrwi2> <a href="/artists" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Artists</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li><li data-astro-cid-wbxrrwi2> <a href="/venues" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Venues</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li> </ul> </section><section data-astro-cid-wbxrrwi2> <div class="flex items-baseline gap-2" style="padding-bottom:8px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span class="font-mono text-rb-faint" style="font-size:9.5px; letter-spacing:0.16em;" data-astro-cid-wbxrrwi2>/03</span> <span class="font-mono uppercase text-silver-warm" style="font-size:10px; letter-spacing:0.18em; font-weight:700;" data-astro-cid-wbxrrwi2>Editorial</span> </div> <ul style="list-style:none; padding:0; margin:0;" data-astro-cid-wbxrrwi2> <li data-astro-cid-wbxrrwi2> <a href="/rbnews" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>RB News</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li> </ul> </section><section data-astro-cid-wbxrrwi2> <div class="flex items-baseline gap-2" style="padding-bottom:8px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span class="font-mono text-rb-faint" style="font-size:9.5px; letter-spacing:0.16em;" data-astro-cid-wbxrrwi2>/04</span> <span class="font-mono uppercase text-silver-warm" style="font-size:10px; letter-spacing:0.18em; font-weight:700;" data-astro-cid-wbxrrwi2>Connect</span> </div> <ul style="list-style:none; padding:0; margin:0;" data-astro-cid-wbxrrwi2> <li data-astro-cid-wbxrrwi2> <a href="/about" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>About RB</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li><li data-astro-cid-wbxrrwi2> <a href="/contact" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Contact</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li> </ul> </section><section data-astro-cid-wbxrrwi2> <div class="flex items-baseline gap-2" style="padding-bottom:8px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span class="font-mono text-rb-faint" style="font-size:9.5px; letter-spacing:0.16em;" data-astro-cid-wbxrrwi2>/05</span> <span class="font-mono uppercase text-silver-warm" style="font-size:10px; letter-spacing:0.18em; font-weight:700;" data-astro-cid-wbxrrwi2>Opportunities</span> </div> <ul style="list-style:none; padding:0; margin:0;" data-astro-cid-wbxrrwi2> <li data-astro-cid-wbxrrwi2> <a href="/jobs" class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:var(--rb-ink); text-decoration:none; font-family:var(--rb-font-display); font-size:17px; font-weight:600; letter-spacing:-0.3px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Job Opportunities</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>→</span> </a> </li> </ul> </section><section style="grid-column:1 / -1;" data-astro-cid-wbxrrwi2> <div class="flex items-baseline gap-2" style="padding-bottom:8px; border-bottom:1px solid var(--rb-rule);" data-astro-cid-wbxrrwi2> <span class="font-mono text-rb-faint" style="font-size:9.5px; letter-spacing:0.16em;" data-astro-cid-wbxrrwi2>/06</span> <span class="font-mono uppercase text-silver-warm" style="font-size:10px; letter-spacing:0.18em; font-weight:700;" data-astro-cid-wbxrrwi2>Follow</span> </div> <ul class="flex items-center" style="list-style:none; padding:0; margin:14px 0 4px; gap:22px;" data-astro-cid-wbxrrwi2> <li data-astro-cid-wbxrrwi2> <a href="https://www.instagram.com/relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="Instagram" title="Instagram" class="rb-social inl
842ine-flex items-center justify-center no-underline" style="width:32px; height:32px; color:var(--rb-silver-warm);" data-astro-cid-wbxrrwi2> <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-wbxrrwi2> <path d="M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41a3.7 3.7 0 0 1-1.38-.9 3.7 3.7 0 0 1-.9-1.38c-.16-.42-.36-1.06-.41-2.23C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.17 8.8 2.16 12 2.16zm0 1.8c-3.14 0-3.51.01-4.75.07-1.07.05-1.65.23-2.04.38a3.5 3.5 0 0 0-1.27.83 3.5 3.5 0 0 0-.83 1.27c-.15.39-.33.97-.38 2.04-.06 1.24-.07 1.61-.07 4.75s.01 3.51.07 4.75c.05 1.07.23 1.65.38 2.04.18.46.41.79.83 1.27.42.42.81.65 1.27.83.39.15.97.33 2.04.38 1.24.06 1.61.07 4.75.07s3.51-.01 4.75-.07c1.07-.05 1.65-.23 2.04-.38.46-.18.85-.41 1.27-.83.42-.42.65-.81.83-1.27.15-.39.33-.97.38-2.04.06-1.24.07-1.61.07-4.75s-.01-3.51-.07-4.75c-.05-1.07-.23-1.65-.38-2.04a3.5 3.5 0 0 0-.83-1.27 3.5 3.5 0 0 0-1.27-.83c-.39-.15-.97-.33-2.04-.38C15.51 3.97 15.14 3.96 12 3.96zm0 3.06a4.98 4.98 0 1 1 0 9.96 4.98 4.98 0 0 1 0-9.96zm0 8.22a3.24 3.24 0 1 0 0-6.48 3.24 3.24 0 0 0 0 6.48zm6.34-8.42a1.16 1.16 0 1 1-2.32 0 1.16 1.16 0 0 1 2.32 0z" data-astro-cid-wbxrrwi2></path> </svg> </a> </li><li data-astro-cid-wbxrrwi2> <a href="https://www.tiktok.com/@relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="TikTok" title="TikTok" class="rb-social inline-flex items-center justify-center no-underline" style="width:32px; height:32px; color:var(--rb-silver-warm);" data-astro-cid-wbxrrwi2> <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-wbxrrwi2> <path d="M19.6 8.3a6.4 6.4 0 0 1-3.74-1.21v8.55a5.92 5.92 0 1 1-5.92-5.92c.31 0 .61.03.9.08v3.04a2.93 2.93 0 1 0 2 2.78V2h2.87a3.43 3.43 0 0 0 3.89 3.43V8.3z" data-astro-cid-wbxrrwi2></path> </svg> </a> </li><li data-astro-cid-wbxrrwi2> <a href="https://x.com/relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="X" title="X" class="rb-social inline-flex items-center justify-center no-underline" style="width:32px; height:32px; color:var(--rb-silver-warm);" data-astro-cid-wbxrrwi2> <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-wbxrrwi2> <path d="M18.24 2.25h3.31l-7.23 8.26 8.5 11.24h-6.66l-5.21-6.82-5.97 6.82H1.67l7.73-8.84L1.25 2.25h6.83l4.71 6.23 5.45-6.23zm-1.16 17.52h1.83L7.08 4.12H5.12L17.08 19.77z" data-astro-cid-wbxrrwi2></path> </svg> </a> </li><li data-astro-cid-wbxrrwi2> <a href="https://www.facebook.com/relentlessbeats" target="_blank" rel="noopener noreferrer" aria-label="Facebook" title="Facebook" class="rb-social inline-flex items-center justify-center no-underline" style="width:32px; height:32px; color:var(--rb-silver-warm);" data-astro-cid-wbxrrwi2> <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-wbxrrwi2> <path d="M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.89 3.77-3.89 1.1 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.78l-.45 2.89h-2.33v6.99A10 10 0 0 0 22 12z" data-astro-cid-wbxrrwi2></path> </svg> </a> </li><li data-astro-cid-wbxrrwi2> <a href="https://www.youtube.com/relentlessbeatstv" target="_blank" rel="noopener noreferrer" aria-label="YouTube" title="YouTube" class="rb-social inline-flex items-center justify-center no-underline" style="width:32px; height:32px; color:var(--rb-silver-warm);" data-astro-cid-wbxrrwi2> <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-wbxrrwi2> <path d="M21.58 7.2a2.51 2.51 0 0 0-1.77-1.77C18.25 5 12 5 12 5s-6.25 0-7.81.43a2.51 2.51 0 0 0-1.77 1.77C2 8.75 2 12 2 12s0 3.25.42 4.8a2.51 2.51 0 0 0 1.77 1.77C5.75 19 12 19 12 19s6.25 0 7.81-.43a2.51 2.51 0 0 0 1.77-1.77C22 15.25 22 12 22 12s0-3.25-.42-4.8zM10 15V9l5.2 3-5.2 3z" data-astro-cid-wbxrrwi2></path> </svg> </a> </li><li data-astro-cid-wbxrrwi2> <a href="https://open.spotify.com/user/or5hfa0szgokhzhbqvhvdajtp?si=8bcb92a3a0514848" target="_blank" rel="noopener noreferrer" aria-label="Spotify" title="Spotify" class="rb-social inl
842ine-flex items-center justify-center no-underline" style="width:32px; height:32px; color:var(--rb-silver-warm);" data-astro-cid-wbxrrwi2> <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="display:block;" data-astro-cid-wbxrrwi2> <path d="M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm5.52 17.3a.75.75 0 0 1-1.03.25c-2.82-1.72-6.36-2.11-10.53-1.16a.75.75 0 0 1-.33-1.46c4.55-1.04 8.47-.59 11.64 1.34.36.22.47.69.25 1.03zm1.47-3.27a.94.94 0 0 1-1.29.31c-3.22-1.98-8.13-2.55-11.95-1.4a.94.94 0 1 1-.54-1.8c4.36-1.32 9.77-.68 13.47 1.6.44.27.58.85.31 1.29zm.13-3.4c-3.86-2.3-10.24-2.5-13.93-1.39a1.13 1.13 0 1 1-.65-2.16c4.23-1.28 11.27-1.04 15.72 1.6a1.13 1.13 0 0 1-1.14 1.95z" data-astro-cid-wbxrrwi2></path> </svg> </a> </li> </ul> </section> </div> </div>  <button type="button" data-rb-feedback-open data-rb-menu-feedback class="rb-menu-link" style="display:flex; align-items:center; justify-content:space-between; width:100%; margin-top:auto; padding:14px 24px; background:transparent; border:none; border-top:1px solid var(--rb-rule); color:var(--rb-ink); cursor:pointer; font-family:var(--rb-font-display); font-size:15px; font-weight:600; letter-spacing:-0.3px; text-align:left;" data-astro-cid-wbxrrwi2> <span data-astro-cid-wbxrrwi2>Send feedback</span> <span class="font-mono text-rb-faint" style="font-size:10px; letter-spacing:0.14em;" data-astro-cid-wbxrrwi2>✎</span> </button> <div class="rb-menu-foot" style="padding:20px 24px 24px; border-top:1px solid var(--rb-rule); display:flex; align-items:flex-end; gap:14px; background:var(--rb-bg-raised);" data-astro-cid-wbxrrwi2> <img src="/assets/rb-mark.png" alt="" style="height:40px; width:auto; filter:brightness(0) invert(0.85);" data-astro-cid-wbxrrwi2> <div class="flex-1" data-astro-cid-wbxrrwi2> <div class="font-display text-silver-warm" style="font-size:20px; font-weight:600; letter-spacing:-0.5px; line-height:1;" data-astro-cid-wbxrrwi2>
843Dance Lives Here<span class="text-live" data-astro-cid-wbxrrwi2>.</span> </div> <div class="font-mono text-rb-faint" style="margin-top:6px; font-size:10px; letter-spacing:0.12em;" data-astro-cid-wbxrrwi2>BANGIN' BEATS SINCE '96</div> </div> </div> </div> </nav>   
843<script>
844  // Scroll-aware sticky nav: hide on scroll down past a threshold,
845  // reveal on any upward scroll. Always visible near page top.
846  (function () {
847    if (document.documentElement.dataset.rbNavBound === '1') return;
848    document.documentElement.dataset.rbNavBound = '1';
849    let lastY = window.scrollY;
850    let ticking = false;
851    const THRESHOLD = 80;
852    const DELTA = 6;
853
854    function update() {
855      const y = window.scrollY;
856      const navs = document.querySelectorAll('[data-rb-sticky-nav]');
857      if (y < THRESHOLD) {
858        navs.forEach(n => n.removeAttribute('data-rb-nav-hidden'));
859      } else if (y > lastY + DELTA) {
860        navs.forEach(n => n.setAttribute('data-rb-nav-hidden', 'true'));
861      } else if (y < lastY - DELTA) {
862        navs.forEach(n => n.removeAttribute('data-rb-nav-hidden'));
863      }
864      lastY = y;
865      ticking = false;
866    }
867
868    window.addEventListener('scroll', () => {
869      if (!ticking) { requestAnimationFrame(update); ticking = true; }
870    }, { passive: true });
871  })();
872
873  (function () {
874    const root = document.getElementById('rb-menu');
875    if (!root || root.dataset.bound === '1') return;
876    root.dataset.bound = '1';
877
878    const toggles = document.querySelectorAll('[data-rb-menu-open]');
879    const closeBtn = root.querySelector('.rb-menu-close');
880    const backdrop = root.querySelector('.rb-menu-backdrop');
881
882    function open() {
883      root.setAttribute('aria-hidden', 'false');
884      toggles.forEach((t) => t.setAttribute('aria-expanded', 'true'));
885      document.body.style.overflow = 'hidden';
886    }
887    function close() {
888      root.setAttribute('aria-hidden', 'true');
889      toggles.forEach((t) => t.setAttribute('aria-expanded', 'false'));
890      document.body.style.overflow = '';
891    }
892
893    toggles.forEach((t) => t.addEventListener('click', open));
894    closeBtn && closeBtn.addEventListener('click', close);
895    backdrop && backdrop.addEventListener('click', close);
896    // Feedback opens the global popup (z above the drawer); close the drawer
897    // so the modal isn't stacked over an open menu.
898    root.querySelector('[data-rb-menu-feedback]') && root.querySelector('[data-rb-menu-feedback]').addEventListener('click', close);
899    document.addEventListener('keydown', (e) => {
900      if (e.key === 'Escape' && root.getAttribute('aria-hidden') === 'false') close();
901    });
902  })();
903
904  // Share with a robust fallback chain:
905  //   1. Web Share API (HTTPS-only on mobile)
906  //   2. Clipboard API (HTTPS-only)
907  //   3. Legacy execCommand('copy') via a transient textarea (works on HTTP)
908  function showRbToast(text) {
909    const el = document.createElement('div');
910    el.textContent = text;
911    el.setAttribute('role', 'status');
912    el.style.cssText = 'position:fixed; left:50%; bottom:32px; transform:translate(-50%, 8px); background:var(--rb-silver-warm); color:var(--rb-silver-ink); padding:11px 18px; font-family:var(--rb-font-mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; z-index:60; opacity:0; transition:opacity 180ms ease, transform 220ms ease; box-shadow:0 8px 24px rgba(0,0,0,0.4);';
913    document.body.appendChild(el);
914    requestAnimationFrame(() => {
915      el.style.opacity = '1';
916      el.style.transform = 'translate(-50%, 0)';
917    });
918    setTimeout(() => {
919      el.style.opacity = '0';
920      el.style.transform = 'translate(-50%, 8px)';
921      setTimeout(() => el.remove(), 250);
922    }, 1700);
923  }
924  function legacyCopy(text) {
925    try {
926      const ta = document.createElement('textarea');
927      ta.value = text;
928      ta.setAttribute('readonly', '');
929      ta.style.cssText = 'position:fixed; top:0; left:0; opacity:0; pointer-events:none;';
930      document.body.appendChild(ta);
931      ta.select();
932      ta.setSelectionRange(0, text.length);
933      const ok = document.execCommand('copy');
934      document.body.removeChild(ta);
935      return ok;
936    } catch {
937      return false;
938    }
939  }
940  async function rbShare(url, title) {
941    if (navigator.share) {
942      try { await navigator.share({ title, url }); return 'shared'; }
943      catch (e) { if (e && e.name === 'AbortError') return 'aborted'; }
944    }
945    if (navigator.clipboard && window.isSecureContext) {
946      try { await navigator.clipboard.writeText(url); return 'copied'; } catch {}
947    }
948    return legacyCopy(url) ? 'copied' : 'failed';
949  }
950  (function () {
951    document.querySelectorAll('[data-rb-share]').forEach((btn) => {
952      if (btn.dataset.bound === '1') return;
953      btn.dataset.bound = '1';
954      btn.addEventListener('click', async (e) => {
955        e.preventDefault();
956        const url = btn.getAttribute('data-rb-share-url') || location.href;
957        const title = btn.getAttribute('data-rb-share-title') || document.title;
958        const result = await rbShare(url, title);
959        if (result === 'copied') showRbToast('Link copied');
960        else if (result === 'failed') showRbToast('Couldn’t share — copy the URL bar');
961      });
962    });
963  })();
964
965  // Cookie-based saved events. Document-level delegation so newly
966  // injected save buttons (calendar popups, infinite-scroll appended
967  // rows, etc.) just work — no per-element binding needed. Also keeps
968  // every save button on the page in sync: toggling one updates the
969  // visual state of every other button bound to the same slug.
970  (function () {
971    function readSaved() {
972      const m = document.cookie.match(/(?:^|;\s*)rb_saved=([^;]*)/);
973      if (!m) return [];
974      try { return decodeURIComponent(m[1]).split(',').filter(Boolean); } catch { return []; }
975    }
976    function writeSaved(list) {
977      const v = encodeURIComponent(list.join(','));
978      document.cookie = 'rb_saved=' + v + '; max-age=31536000; path=/; samesite=lax';
979    }
980    function syncMatching(slug, nowSaved) {
981      var sel = '[data-rb-save][data-rb-save-slug="' + (window.CSS && CSS.escape ? CSS.escape(slug) : slug) + '"]';
982      document.querySelectorAll(sel).forEach(function (b) {
983        b.setAttribute('aria-pressed', nowSaved ? 'true' : 'false');
984        b.setAttribute('aria-label', nowSaved ? 'Remove from saved' : 'Save');
985      });
986    }
987    document.addEventListener('click', function (e) {
988      var btn = e.target && e.target.closest && e.target.closest('[data-rb-save]');
989      if (!btn) return;
990      var slug = btn.getAttribute('data-rb-save-slug');
991      if (!slug) return;
992      // The button sits inside <a> tags in some surfaces (e.g. event
993      // list rows that wrap the whole row in a link). Stop the click
994      // from bubbling so it doesn't navigate.
995      e.preventDefault();
996      e.stopPropagation();
997      var list = readSaved();
998      var i = list.indexOf(slug);
999      if (i >= 0) list.splice(i, 1);
1000      else list.push(slug);
1001      writeSaved(list);
1002      syncMatching(slug, i < 0);
1003    });
1004  })();
1005</script>
1005 <div id="rb-lightbox" class="rb-lightbox" aria-hidden="true" role="dialog" aria-label="Image viewer" data-astro-cid-gixpweiw> <button type="button" class="rb-lightbox-backdrop" aria-label="Close image viewer" tabindex="-1" data-astro-cid-gixpweiw></button> <button type="button" class="rb-lightbox-close" aria-label="Close image viewer" data-astro-cid-gixpweiw>×</button> <button type="button" class="rb-lightbox-nav rb-lightbox-prev" aria-label="Previous image" data-astro-cid-gixpweiw>‹</button> <button type="button" class="rb-lightbox-nav rb-lightbox-next" aria-label="Next image" data-astro-cid-gixpweiw>›</button> <img class="rb-lightbox-img" alt="" data-astro-cid-gixpweiw>  <a class="rb-lightbox-end" data-rb-lightbox-end-card hidden href="#" data-astro-cid-gixpweiw> <span class="rb-lightbox-end-plus" data-rb-lightbox-end-count data-astro-cid-gixpweiw>+0</span> <span class="font-mono uppercase rb-lightbox-end-label" data-rb-lightbox-end-label data-astro-cid-gixpweiw>MORE →</span> <span class="font-mono uppercase rb-lightbox-end-sub" data-rb-lightbox-end-sub data-astro-cid-gixpweiw>View event</span> </a> <div class="rb-lightbox-counter font-mono" aria-live="polite" data-astro-cid-gixpweiw></div> </div>  
1005<script>
1006  (function () {
1007    const root = document.getElementById('rb-lightbox');
1008    if (!root || root.dataset.bound === '1') return;
1009    root.dataset.bound = '1';
1010    const img = root.querySelector('.rb-lightbox-img');
1011    const closeBtn = root.querySelector('.rb-lightbox-close');
1012    const backdrop = root.querySelector('.rb-lightbox-backdrop');
1013    const prevBtn = root.querySelector('.rb-lightbox-prev');
1014    const nextBtn = root.querySelector('.rb-lightbox-next');
1015    const counter = root.querySelector('.rb-lightbox-counter');
1016    const endCard = root.querySelector('[data-rb-lightbox-end-card]');
1017    const endCount = root.querySelector('[data-rb-lightbox-end-count]');
1018    const endSub = root.querySelector('[data-rb-lightbox-end-sub]');
1019
1020    // Set entries are either `{ kind: 'image', url, alt }` or
1021    // `{ kind: 'end', href, count, label }`. End slides come from a
1022    // sibling element with [data-rb-lightbox-end-href] in the same
1023    // group — typically the "+N MORE →" tile at the strip's tail.
1024    let set = [];
1025    let idx = 0;
1026    // Live preload cache. Holding Image refs in a Map keeps the fetch
1027    // alive across renders — a fire-and-forget `new Image(); n.src = …`
1028    // can get garbage-collected before the request completes, especially
1029    // under memory pressure. We keep a small window (±2 around the
1030    // current image) so prev/next/skip-2 all feel instant and the cache
1031    // doesn't balloon on a 200-photo set.
1032    const preloads = new Map();
1033    const PRELOAD_RADIUS = 2;
1034
1035    function preload(url) {
1036      if (!url || preloads.has(url)) return;
1037      const im = new Image();
1038      // Low fetchpriority so neighbor preloads don't compete with the
1039      // visible image's request — that one stays default priority.
1040      try { im.fetchPriority = 'low'; } catch (_) {}
1041      im.decoding = 'async';
1042      im.src = url;
1043      preloads.set(url, im);
1044    }
1045
1046    function pruneCache(activeIdx) {
1047      if (!set.length) return;
1048      const keep = new Set();
1049      for (let off = -PRELOAD_RADIUS; off <= PRELOAD_RADIUS; off++) {
1050        const i = ((activeIdx + off) % set.length + set.length) % set.length;
1051        const it = set[i];
1052        if (it && it.kind === 'image' && it.url) keep.add(it.url);
1053      }
1054      // Drop anything outside the window so we don't leak refs on big sets.
1055      for (const url of preloads.keys()) {
1056        if (!keep.has(url)) preloads.delete(url);
1057      }
1058    }
1059
1060    function render() {
1061      const item = set[idx];
1062      if (!item) return;
1063
1064      if (item.kind === 'end') {
1065        // Swap the image out for the end-card. Lightbox stays open;
1066        // clicking the card itself navigates to the event detail page.
1067        if (img) {
1068          img.removeAttribute('src');
1069          img.style.display = 'none';
1070        }
1071        if (endCard) {
1072          endCard.setAttribute('href', item.href || '#');
1073          if (endCount) endCount.textContent = '+' + (item.count || 0);
1074          if (endSub) endSub.textContent = item.label || 'View event';
1075          endCard.hidden = false;
1076        }
1077      } else if (img) {
1078        if (endCard) endCard.hidden = true;
1079        img.style.display = '';
1080        // Fade swap. The current image takes the network priority; we
1081        // preload neighbors immediately so the *next* nav click finds
1082        // the image already in the cache.
1083        img.classList.add('rb-fading');
1084        const tmp = new Image();
1085        tmp.onload = () => {
1086          img.src = item.url;
1087          img.alt = item.alt || '';
1088          requestAnimationFrame(() => img.classList.remove('rb-fading'));
1089        };
1090        tmp.onerror = () => {
1091          img.src = item.url;
1092          img.classList.remove('rb-fading');
1093        };
1094        tmp.src = item.url;
1095        // Cache the current frame so reopening lands instantly.
1096        preloads.set(item.url, tmp);
1097      }
1098
1099      if (set.length > 1) {
1100        root.setAttribute('data-rb-multi', 'true');
1101        root.setAttribute('data-rb-has-prev', 'true');
1102        root.setAttribute('data-rb-has-next', 'true');
1103        if (counter) counter.textContent = `${idx + 1} / ${set.length}`;
1104      } else {
1105        root.removeAttribute('data-rb-multi');
1106        root.removeAttribute('data-rb-has-prev');
1107        root.removeAttribute('data-rb-has-next');
1108      }
1109
1110      // Anticipatory preload: ±PRELOAD_RADIUS around the current index.
1111      // Skip non-image entries — the end card doesn't need a fetch.
1112      for (let off = 1; off <= PRELOAD_RADIUS; off++) {
1113        const next = (idx + off) % set.length;
1114        const prev = ((idx - off) % set.length + set.length) % set.length;
1115        if (next !== idx && set[next].kind === 'image') preload(set[next].url);
1116        if (prev !== idx && prev !== next && set[prev].kind === 'image') preload(set[prev].url);
1117      }
1118      pruneCache(idx);
1119    }
1120    function open(url, alt, group) {
1121      if (group) {
1122        const sel = '[data-rb-lightbox][data-rb-lightbox-group="' + CSS.escape(group) + '"]';
1123        const peers = document.querySelectorAll(sel);
1124        set = Array.from(peers).map(el => ({
1125          kind: 'image',
1126          url: el.getAttribute('data-rb-lightbox') || '',
1127          alt: el.getAttribute('data-rb-lightbox-alt') || '',
1128        }));
1129        // Look for an end-card element in the same group and tack it
1130        // onto the end as a non-image slide.
1131        const endEl = document.querySelector(
1132          '[data-rb-lightbox-end-href][data-rb-lightbox-group="' + CSS.escape(group) + '"]'
1133        );
1134        if (endEl) {
1135          const count = parseInt(endEl.getAttribute('data-rb-lightbox-end-count') || '0', 10);
1136          if (count > 0) {
1137            set.push({
1138              kind: 'end',
1139              href: endEl.getAttribute('data-rb-lightbox-end-href') || '#',
1140              count: count,
1141              label: endEl.getAttribute('data-rb-lightbox-end-label') || 'View event →',
1142            });
1143          }
1144        }
1145        idx = Math.max(0, set.findIndex(it => it.kind === 'image' && it.url === url));
1146      } else {
1147        set = [{ kind: 'image', url, alt: alt || '' }];
1148        idx = 0;
1149      }
1150      if (!set.length) return;
1151      root.setAttribute('aria-hidden', 'false');
1152      document.body.style.overflow = 'hidden';
1153      render();
1154    }
1155    function close() {
1156      root.setAttribute('aria-hidden', 'true');
1157      document.body.style.overflow = '';
1158      setTimeout(() => { if (img) img.setAttribute('src', ''); }, 240);
1159    }
1160    function go(delta) {
1161      if (set.length <= 1) return;
1162      idx = (idx + delta + set.length) % set.length;
1163      render();
1164    }
1165
1166    document.addEventListener('click', (e) => {
1167      const trigger = e.target.closest && e.target.closest('[data-rb-lightbox]');
1168      if (!trigger) return;
1169      const url = trigger.getAttribute('data-rb-lightbox');
1170      const alt = trigger.getAttribute('data-rb-lightbox-alt') || '';
1171      const group = trigger.getAttribute('data-rb-lightbox-group') || '';
1172      if (!url) return;
1173      e.preventDefault();
1174      open(url, alt, group);
1175    });
1176    closeBtn && closeBtn.addEventListener('click', close);
1177    backdrop && backdrop.addEventListener('click', close);
1178    prevBtn && prevBtn.addEventListener('click', () => go(-1));
1179    nextBtn && nextBtn.addEventListener('click', () => go(1));
1180
1181    document.addEventListener('keydown', (e) => {
1182      if (root.getAttribute('aria-hidden') === 'true') return;
1183      if (e.key === 'Escape') close();
1184      else if (e.key === 'ArrowLeft') go(-1);
1185      else if (e.key === 'ArrowRight') go(1);
1186    });
1187
1188    // Swipe navigation on the image. The image tracks the finger during a
1189    // horizontal drag (feedback #242793), then snaps back or advances on
1190    // release. touch-action:pan-y (CSS) keeps vertical scroll native, so a
1191    // horizontal drag is ours to animate without blocking the page.
1192    const THRESHOLD = 50;
1193    let startX = 0;
1194    let startY = 0;
1195    let tracking = false;   // finger down, intent not yet decided
1196    let dragging = false;   // committed to a horizontal drag
1197    if (img) {
1198      img.addEventListener('touchstart', (e) => {
1199        if (e.touches.length !== 1) return;
1200        startX = e.touches[0].clientX;
1201        startY = e.touches[0].clientY;
1202        tracking = true;
1203        dragging = false;
1204      }, { passive: true });
1205      img.addEventListener('touchmove', (e) => {
1206        if (!tracking || set.length <= 1) return;
1207        const t = e.touches[0];
1208        const dx = t.clientX - startX;
1209        const dy = t.clientY - startY;
1210        if (!dragging) {
1211          if (Math.abs(dx) < 8 && Math.abs(dy) < 8) return;
1212          // Vertical intent — hand back to native scroll, stop tracking.
1213          if (Math.abs(dx) <= Math.abs(dy)) { tracking = false; return; }
1214          dragging = true;
1215          img.style.transition = 'none';
1216        }
1217        img.style.transform = 'translate(calc(-50% + ' + dx + 'px), -50%) scale(1)';
1218        img.style.opacity = String(Math.max(0.5, 1 - Math.abs(dx) / 700));
1219      }, { passive: true });
1220      img.addEventListener('touchend', (e) => {
1221        if (!tracking && !dragging) return;
1222        tracking = false;
1223        dragging = false;
1224        // Restore the CSS-driven transform/opacity (snap-back animation).
1225        img.style.transition = '';
1226        img.style.transform = '';
1227        img.style.opacity = '';
1228        const t = e.changedTouches[0];
1229        const dx = t.clientX - startX;
1230        const dy = t.clientY - startY;
1231        if (Math.abs(dx) > THRESHOLD && Math.abs(dx) > Math.abs(dy)) {
1232          go(dx > 0 ? -1 : 1);
1233        }
1234      });
1235    }
1236  })();
1237</script>
1237 <div id="rb-flyover" class="rb-flyover" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="rb-flyover-title" data-astro-cid-i6gejit2> <button type="button" class="rb-flyover-backdrop" aria-label="Close" tabindex="-1" data-astro-cid-i6gejit2></button> <div class="rb-flyover-sheet" data-astro-cid-i6gejit2> <div class="rb-flyover-head" data-astro-cid-i6gejit2> <div class="flex-1 min-w-0" data-astro-cid-i6gejit2> <div id="rb-flyover-title" class="font-display" style="font-size:22px; font-weight:700; letter-spacing:-0.5px; line-height:1.1; color:var(--rb-ink);" data-astro-cid-i6gejit2></div> <div class="rb-flyover-subtitle font-mono uppercase text-rb-faint" style="font-size:10px; letter-spacing:0.14em; margin-top:6px;" data-astro-cid-i6gejit2></div> </div> <button type="button" class="rb-flyover-close font-display cursor-pointer" aria-label="Close" style="background:transparent; border:1px solid var(--rb-rule-strong); color:var(--rb-ink); width:44px; height:44px; font-size:24px; line-height:1; padding:0; flex-shrink:0;" data-astro-cid-i6gejit2>×</button> </div> <iframe class="rb-flyover-iframe" title="" loading="lazy" style="flex:1; width:100%; border:0; background:var(--rb-bg);" allow="clipboard-write" data-astro-cid-i6gejit2></iframe> </div> </div>  
1237<script>
1238  (function () {
1239    const root = document.getElementById('rb-flyover');
1240    if (!root || root.dataset.bound === '1') return;
1241    root.dataset.bound = '1';
1242    const sheet = root.querySelector('.rb-flyover-sheet');
1243    const backdrop = root.querySelector('.rb-flyover-backdrop');
1244    const closeBtn = root.querySelector('.rb-flyover-close');
1245    const titleEl = root.querySelector('#rb-flyover-title');
1246    const subtitleEl = root.querySelector('.rb-flyover-subtitle');
1247    const iframe = root.querySelector('.rb-flyover-iframe');
1248
1249    function open(url, title, subtitle) {
1250      if (!url || !iframe) return;
1251      if (titleEl) titleEl.textContent = title || '';
1252      if (subtitleEl) {
1253        subtitleEl.textContent = subtitle || '';
1254        subtitleEl.style.display = subtitle ? '' : 'none';
1255      }
1256      iframe.setAttribute('title', title || '');
1257      iframe.setAttribute('src', url);
1258      root.setAttribute('aria-hidden', 'false');
1259      document.body.style.overflow = 'hidden';
1260    }
1261    function close() {
1262      root.setAttribute('aria-hidden', 'true');
1263      document.body.style.overflow = '';
1264      // Defer clearing the iframe src so the close animation can play
1265      setTimeout(() => { if (iframe) iframe.setAttribute('src', ''); }, 320);
1266    }
1267
1268    document.addEventListener('click', (e) => {
1269      const trigger = e.target.closest && e.target.closest('[data-rb-flyover]');
1270      if (!trigger) return;
1271      const url = trigger.getAttribute('data-rb-flyover');
1272      const title = trigger.getAttribute('data-rb-flyover-title') || '';
1273      const subtitle = trigger.getAttribute('data-rb-flyover-subtitle') || '';
1274      if (!url) return;
1275      e.preventDefault();
1276      open(url, title, subtitle);
1277    });
1278
1279    closeBtn && closeBtn.addEventListener('click', close);
1280    backdrop && backdrop.addEventListener('click', close);
1281    document.addEventListener('keydown', (e) => {
1282      if (e.key === 'Escape' && root.getAttribute('aria-hidden') === 'false') close();
1283    });
1284  })();
1285</script>
1285 <aside id="rb-hive-popup" class="rb-hive-popup" aria-hidden="true" aria-modal="true" role="dialog" aria-labelledby="rb-hive-popup-title" data-rb-config="{&#34;brandId&#34;:&#34;125378&#34;,&#34;widgetUrl&#34;:&#34;https://app.hive.co/l/3orr8k&#34;,&#34;callbackPath&#34;:&#34;/signup/thanks&#34;}" data-astro-cid-luqohwl4> <div class="rb-hive-backdrop" data-rb-hive-close data-astro-cid-luqohwl4></div> <div class="rb-hive-panel" role="document" data-astro-cid-luqohwl4> <button type="button" class="rb-hive-close" aria-label="Close signup form" data-rb-hive-close data-astro-cid-luqohwl4>×</button> <header class="rb-hive-head" data-astro-cid-luqohwl4> <div class="font-mono uppercase text-hot" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-luqohwl4>
1286Get on the list
1287</div> <h2 id="rb-hive-popup-title" class="font-display" style="font-size:30px; font-weight:700; line-height:1.05; letter-spacing:-0.6px; margin-top:8px;" data-astro-cid-luqohwl4>Don't miss a beat<span class="text-live" data-astro-cid-luqohwl4>.</span></h2> <p class="font-serif text-rb-mute" style="font-size:14px; line-height:1.5; margin-top:10px;" data-astro-cid-luqohwl4>
1288Texts and emails when shows go on sale, presales drop, and seats run low. Free, unsubscribe any time.
1289</p> </header> <form class="rb-hive-form" novalidate data-rb-hive-form data-astro-cid-luqohwl4>  <div class="rb-hive-honeypot" aria-hidden="true" data-astro-cid-luqohwl4> <label data-astro-cid-luqohwl4>Leave blank
1290<input type="text" name="company" tabindex="-1" autocomplete="off" data-astro-cid-luqohwl4> </label> </div> <div class="rb-hive-row rb-hive-row-2" data-astro-cid-luqohwl4> <label class="rb-hive-label" data-astro-cid-luqohwl4> <span data-astro-cid-luqohwl4>First name</span> <input type="text" name="fname" autocomplete="given-name" required data-astro-cid-luqohwl4> </label> <label class="rb-hive-label" data-astro-cid-luqohwl4> <span data-astro-cid-luqohwl4>Last name</span> <input type="text" name="lname" autocomplete="family-name" required data-astro-cid-luqohwl4> </label> </div> <label class="rb-hive-label" data-astro-cid-luqohwl4> <span data-astro-cid-luqohwl4>Email <em class="rb-hive-req" data-astro-cid-luqohwl4>required</em></span> <input type="email" name="email" autocomplete="email" placeholder="[email protected]" required data-astro-cid-luqohwl4> </label> <div class="rb-hive-row rb-hive-row-2" data-astro-cid-luqohwl4> <label class="rb-hive-label" data-astro-cid-luqohwl4> <span data-astro-cid-luqohwl4>Phone <em class="rb-hive-opt" data-astro-cid-luqohwl4>optional</em></span> <input type="tel" name="phone" autocomplete="tel" placeholder="(602) 555-0123" inputmode="tel" pattern="[0-9 ()+-]*" data-astro-cid-luqohwl4> </label> <label class="rb-hive-label" data-astro-cid-luqohwl4> <span data-astro-cid-luqohwl4>City <em class="rb-hive-opt" data-astro-cid-luqohwl4>optional</em></span> <input type="text" name="city" autocomplete="address-level2" placeholder="Phoenix, AZ" data-astro-cid-luqohwl4> </label> </div> <label class="rb-hive-sms-label" data-rb-hive-sms-wrap data-astro-cid-luqohwl4> <input type="checkbox" name="sms_opt_in" value="1" data-rb-hive-sms-check data-astro-cid-luqohwl4> <span data-astro-cid-luqohwl4>
1291By providing your phone number, you agree to receive recurring automated marketing text messages from this company. Consent is not a condition to obtain goods or services. Msg &amp; data rates may apply. Msg frequency varies. Reply HELP for help and STOP to cancel. View the <a href="https://www.hive.co/terms-and-conditions" target="_blank" rel="noopener noreferrer" class="rb-hive-legal-link" data-astro-cid-luqohwl4>Terms of Service</a> and <a href="https://www.hive.co/privacy" target="_blank" rel="noopener noreferrer" class="rb-hive-legal-link" data-astro-cid-luqohwl4>Privacy Policy</a>.
1292</span> </label> <div class="rb-hive-actions" data-astro-cid-luqohwl4> <button type="submit" class="rb-hive-submit bg-chrome text-silver-ink" data-rb-hive-submit data-astro-cid-luqohwl4> <span class="rb-hive-submit-label" data-astro-cid-luqohwl4>SIGN ME UP</span> <span class="rb-hive-submit-arrow font-mono" data-astro-cid-luqohwl4>→</span> </button> <a href="https://app.hive.co/l/3orr8k" target="_blank" rel="noopener noreferrer" class="rb-hive-alt-link font-mono text-rb-faint no-underline" data-astro-cid-luqohwl4>Open on Hive ↗</a> </div> <p class="rb-hive-error font-mono" data-rb-hive-error hidden data-astro-cid-luqohwl4></p> </form> <div class="rb-hive-success" data-rb-hive-success hidden data-astro-cid-luqohwl4> <div class="font-mono uppercase text-live" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-luqohwl4>
1293Confirmed
1294</div> <div class="font-display" style="font-size:24px; font-weight:700; line-height:1.1; letter-spacing:-0.4px; margin-top:10px;" data-astro-cid-luqohwl4>You're on the list. See you on the dancefloor.</div> <p class="font-serif text-rb-mute" style="font-size:14px; line-height:1.5; margin-top:10px;" data-astro-cid-luqohwl4>
1295We sent a confirmation to your inbox. SMS subscribers will get a one-tap opt-in text.
1296</p> </div> </div> </aside>  
1296<script>
1297  (function () {
1298    var root = document.getElementById('rb-hive-popup');
1299    if (!root || root.dataset.bound === '1') return;
1300    root.dataset.bound = '1';
1301
1302    var cfgRaw = root.getAttribute('data-rb-config') || '{}';
1303    var cfg;
1304    try { cfg = JSON.parse(cfgRaw); } catch { cfg = {}; }
1305
1306    var form     = root.querySelector('[data-rb-hive-form]');
1307    var success  = root.querySelector('[data-rb-hive-success]');
1308    var errorEl  = root.querySelector('[data-rb-hive-error]');
1309    var submit   = root.querySelector('[data-rb-hive-submit]');
1310    var submitLabel = root.querySelector('.rb-hive-submit-label');
1311    var smsWrap  = root.querySelector('[data-rb-hive-sms-wrap]');
1312    var smsCheck = root.querySelector('[data-rb-hive-sms-check]');
1313    var emailInput = form && form.querySelector('input[name="email"]');
1314    var phoneInput = form && form.querySelector('input[name="phone"]');
1315    var firstField = form && form.querySelector('input[name="fname"]');
1316
1317    // Lightweight email shape check — full RFC validation is overkill;
1318    // we just need "non-empty local part @ host with a dot". Hive does
1319    // the deeper verification server-side.
1320    var EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1321
1322    function isValidEmail(value) {
1323      return EMAIL_RE.test(String(value || '').trim());
1324    }
1325
1326    // Phone is optional; when filled it must normalize to exactly 10
1327    // digits (US/Canada) or an explicit international form with country
1328    // code. We accept whatever the user typed but strip everything that
1329    // isn't a digit for the count, and tolerate a leading "+1" / "1".
1330    function isValidPhone(value) {
1331      var raw = String(value || '').trim();
1332      if (!raw) return true; // empty is fine — phone is optional
1333      var digits = raw.replace(/[^0-9]/g, '');
1334      if (raw.charAt(0) === '+' && digits.length >= 10) return true;
1335      if (digits.length === 11 && digits.charAt(0) === '1') return true;
1336      return digits.length === 10;
1337    }
1338
1339    function setInvalid(input, invalid) {
1340      if (!input) return;
1341      if (invalid) input.setAttribute('aria-invalid', 'true');
1342      else input.removeAttribute('aria-invalid');
1343    }
1344    // Clear the invalid state as soon as the user touches the field.
1345    if (emailInput) emailInput.addEventListener('input', function () { setInvalid(emailInput, false); });
1346    if (phoneInput) phoneInput.addEventListener('input', function () { setInvalid(phoneInput, false); });
1347
1348    function setError(msg) {
1349      if (!errorEl) return;
1350      if (!msg) { errorEl.hidden = true; errorEl.textContent = ''; return; }
1351      errorEl.hidden = false;
1352      errorEl.textContent = msg;
1353    }
1354
1355    // iOS Safari needs more than `overflow: hidden` to actually lock
1356    // the underlying page — focusing an input still scrolls the
1357    // viewport around as the soft keyboard appears, and pinch/touch
1358    // can still pan. The fixed-position trick anchors the body at
1359    // its current scroll offset, freezing the page until we restore
1360    // it on close.
1361    var savedScrollY = 0;
1362    function lockScroll() {
1363      savedScrollY = window.pageYOffset || document.documentElement.scrollTop || 0;
1364      var b = document.body;
1365      b.style.position = 'fixed';
1366      b.style.top = '-' + savedScrollY + 'px';
1367      b.style.left = '0';
1368      b.style.right = '0';
1369      b.style.width = '100%';
1370      b.style.overflow = 'hidden';
1371    }
1372    function unlockScroll() {
1373      var b = document.body;
1374      b.style.position = '';
1375      b.style.top = '';
1376      b.style.left = '';
1377      b.style.right = '';
1378      b.style.width = '';
1379      b.style.overflow = '';
1380      window.scrollTo(0, savedScrollY);
1381    }
1382
1383    function open() {
1384      root.setAttribute('aria-hidden', 'false');
1385      lockScroll();
1386      setError('');
1387      // Brief delay so the focus jump happens after the transition starts
1388      setTimeout(function () {
1389        if (firstField) firstField.focus({ preventScroll: true });
1390      }, 60);
1391    }
1392    function close() {
1393      root.setAttribute('aria-hidden', 'true');
1394      unlockScroll();
1395    }
1396
1397    // Triggers — any element with data-rb-hive-open opens the popup.
1398    // When the SDK can't run, route the click straight to the Hive
1399    // widget URL in a new tab so the user still has a working signup
1400    // path instead of staring at a non-functional form.
1401    function bindTriggers() {
1402      var triggers = document.querySelectorAll('[data-rb-hive-open]');
1403      triggers.forEach(function (t) {
1404        if (t.dataset.rbHiveBound === '1') return;
1405        t.dataset.rbHiveBound = '1';
1406        t.addEventListener('click', function (e) {
1407          e.preventDefault();
1408          if (!sdkPreflightOk() && openHiveWidget()) return;
1409          open();
1410        });
1411      });
1412    }
1413    bindTriggers();
1414    // Re-scan on dom mutations (e.g. flyover injects new triggers).
1415    if (window.MutationObserver) {
1416      new MutationObserver(bindTriggers).observe(document.body, { childList: true, subtree: true });
1417    }
1418
1419    // Use event delegation on document for the close affordances so
1420    // we survive ClientRouter swaps (which can replace the close
1421    // button DOM and leave a per-element handler bound to a detached
1422    // node). closest('[data-rb-hive-close]') matches the panel's ×
1423    // button, the backdrop, and anything else opt-in.
1424    document.addEventListener('click', function (e) {
1425      var t = e.target && e.target.closest && e.target.closest('[data-rb-hive-close]');
1426      if (!t) return;
1427      // Re-resolve the live popup root each time so we always act on
1428      // the element currently in the DOM (not a stale closure ref).
1429      var live = document.getElementById('rb-hive-popup');
1430      if (!live || live.getAttribute('aria-hidden') !== 'false') return;
1431      e.preventDefault();
1432      live.setAttribute('aria-hidden', 'true');
1433      // Run the full scroll-restoration unlock — clearing overflow
1434      // alone leaves the body pinned at position:fixed/top:-Ypx.
1435      unlockScroll();
1436    });
1437    document.addEventListener('keydown', function (e) {
1438      if (e.key === 'Escape' && root.getAttribute('aria-hidden') === 'false') close();
1439    });
1440
1441    // SMS consent dimming — only meaningful when phone is filled.
1442    function syncSmsState() {
1443      if (!smsWrap || !phoneInput) return;
1444      var hasPhone = !!phoneInput.value.replace(/[^0-9]/g, '').length;
1445      smsWrap.setAttribute('data-active', hasPhone ? 'true' : 'false');
1446    }
1447    if (phoneInput) {
1448      phoneInput.addEventListener('input', syncSmsState);
1449      syncSmsState();
1450    }
1451
1452    // Normalize a free-form phone string to E.164. Hive's SDK wants
1453    // "+15198864500" style. We assume US/Canada when 10 digits — the
1454    // form's placeholder primes that expectation. International users
1455    // who type leading "+" or country code are passed through.
1456    function toE164(raw) {
1457      if (!raw) return '';
1458      var trimmed = String(raw).trim();
1459      if (!trimmed) return '';
1460      var hasPlus = trimmed.charAt(0) === '+';
1461      var digits = trimmed.replace(/[^0-9]/g, '');
1462      if (!digits) return '';
1463      if (hasPlus) return '+' + digits;
1464      if (digits.length === 10) return '+1' + digits;
1465      if (digits.length === 11 && digits.charAt(0) === '1') return '+' + digits;
1466      // Fall back: trust the user typed a country code without "+"
1467      return '+' + digits;
1468    }
1469
1470    function isSdkReady() {
1471      return !!(window.HIVE_SDK && cfg.brandId);
1472    }
1473
1474    // We know up-front the SDK won't init if the brand ID is blank.
1475    // Other failure modes (script blocked, domain not whitelisted) only
1476    // surface at submit time — handled in the form handler below.
1477    function sdkPreflightOk() {
1478      return !!cfg.brandId;
1479    }
1480
1481    function openHiveWidget() {
1482      if (!cfg.widgetUrl) return false;
1483      window.open(cfg.widgetUrl, '_blank', 'noopener,noreferrer');
1484      return true;
1485    }
1486
1487    // Convert the submit button into an external link that opens the
1488    // public Hive widget. Used when we know the SDK can't fire so the
1489    // user gets a working signup path instead of a dead button.
1490    function convertSubmitToFallbackLink(reason) {
1491      if (!submit) return;
1492      submit.removeAttribute('disabled');
1493      submit.setAttribute('type', 'button');
1494      submit.setAttribute('title', reason || 'Opens Hive signup in a new tab');
1495      if (submitLabel) submitLabel.textContent = 'SIGN UP ON HIVE';
1496      var arrow = root.querySelector('.rb-hive-submit-arrow');
1497      if (arrow) arrow.textContent = '↗';
1498      // Hide the now-redundant footer link.
1499      var altLink = root.querySelector('.rb-hive-alt-link');
1500      if (altLink) altLink.hidden = true;
1501      // Bind once — this runs again per failed submit (onErr + the 6s
1502      // watchdog), and stacked listeners made one click window.open the
1503      // Hive widget multiple times.
1504      if (submit.dataset.rbFallbackBound === '1') return;
1505      submit.dataset.rbFallbackBound = '1';
1506      submit.addEventListener('click', function (e) {
1507        e.preventDefault();
1508        openHiveWidget();
1509      });
1510    }
1511
1512    if (!sdkPreflightOk()) {
1513      convertSubmitToFallbackLink('Hive SDK not configured — opens the Hive widget instead.');
1514    }
1515
1516    // Submit handler — calls HIVE_SDK("emailSignup", payload, ok, err).
1517    // The loader queues calls before the script downloads, so this
1518    // works on the very first click even on a cold cache.
1519    if (form) {
1520      form.addEventListener('submit', function (e) {
1521        e.preventDefault();
1522        setError('');
1523
1524        // Honeypot — bot filled the hidden "company" field → silently
1525        // "succeed" so the bot moves on.
1526        var hp = form.querySelector('input[name="company"]');
1527        if (hp && hp.value) {
1528          form.hidden = true;
1529          success.hidden = false;
1530          return;
1531        }
1532
1533        if (!isSdkReady()) {
1534          // Hive SDK never finished loading (script blocked, domain not
1535          // whitelisted yet, etc.). Open the Hive widget in a new tab
1536          // so the submit click still leads somewhere usable, and swap
1537          // the button to a link for any subsequent clicks.
1538          convertSubmitToFallbackLink('Hive SDK unavailable — opens the Hive widget instead.');
1539          openHiveWidget();
1540          return;
1541        }
1542
1543        var data = new FormData(form);
1544        data.delete('company');
1545
1546        var fname  = (data.get('fname')  || '').toString().trim();
1547        var lname  = (data.get('lname')  || '').toString().trim();
1548        var email  = (data.get('email')  || '').toString().trim();
1549        var city   = (data.get('city')   || '').toString().trim();
1550        var phone  = (data.get('phone')  || '').toString().trim();
1551        var smsOpt = !!data.get('sms_opt_in');
1552
1553        // Email — required and must look like an actual address.
1554        if (!email || !isValidEmail(email)) {
1555          setError('Please enter a valid email address.');
1556          setInvalid(emailInput, true);
1557          if (emailInput) emailInput.focus({ preventScroll: true });
1558          return;
1559        }
1560
1561        // Phone — optional, but if present it must be a 10-digit US/CA
1562        // number (or an explicit international form with country code).
1563        if (phone && !isValidPhone(phone)) {
1564          setError('Please enter a 10-digit phone number (or leave it blank).');
1565          setInvalid(phoneInput, true);
1566          if (phoneInput) phoneInput.focus({ preventScroll: true });
1567          return;
1568        }
1569
1570        // Build payload. Only include fields the user actually filled
1571        // — Hive treats absent vs empty differently for some optional
1572        // properties.
1573        var payload = {
1574          email: email,
1575          didOptIn: true,
1576        };
1577        if (fname) payload.firstName = fname;
1578        if (lname) payload.lastName  = lname;
1579        if (city)  payload.city      = city;
1580        if (phone) {
1581          payload.phoneNumber = toE164(phone);
1582          payload.didSmsOptIn = smsOpt;
1583        }
1584
1585        submit.setAttribute('disabled', 'true');
1586        if (submitLabel) submitLabel.textContent = 'SUBMITTING…';
1587
1588        // Settled-once guard. The SDK is supposed to call exactly one
1589        // of onOk/onErr, but on non-whitelisted hosts it sometimes
1590        // calls neither (the request is blocked at the network layer
1591        // and the loader never reports back). We use this flag to
1592        // make sure the timeout fallback below and a real callback
1593        // can't double-fire.
1594        var settled = false;
1595
1596        function openHiveFallback(reason) {
1597          // Bubble the user out to Hive's public widget so the click
1598          // still lands somewhere usable. Swaps the button copy in
1599          // place too, so subsequent clicks read truthfully.
1600          convertSubmitToFallbackLink(reason || 'Hive SDK unavailable — opens the Hive widget instead.');
1601          openHiveWidget();
1602        }
1603
1604        function onOk(/* data */) {
1605          if (settled) return;
1606          settled = true;
1607          form.hidden = true;
1608          success.hidden = false;
1609          if (cfg.callbackPath) {
1610            setTimeout(function () { window.location.href = cfg.callbackPath; }, 1800);
1611          }
1612        }
1613        function onErr(data) {
1614          if (settled) return;
1615          settled = true;
1616          // Non-whitelisted host or any other SDK-level failure: fall
1617          // through to the public Hive widget rather than leaving the
1618          // user with a red error pill and no path forward.
1619          var msg = (data && (data.error || data.message)) || '';
1620          openHiveFallback(
1621            typeof msg === 'string' && msg
1622              ? 'Hive SDK returned an error (' + msg + ') — opens the Hive widget instead.'
1623              : 'Hive SDK unavailable — opens the Hive widget instead.'
1624          );
1625        }
1626
1627        // Watchdog. If the SDK swallows the call (which happens when
1628        // the host isn't on the Hive brand's allowlist — the loader
1629        // queues the call but the API rejects the underlying request
1630        // and never invokes the callbacks), we still need to release
1631        // the button. 6s is long enough that a slow successful c
1631all
1632        // doesn't trip it on a typical connection.
1633        setTimeout(function () {
1634          if (settled) return;
1635          settled = true;
1636          openHiveFallback('Hive signup timed out — opening the Hive widget instead.');
1637        }, 6000);
1638
1639        try {
1640          window.HIVE_SDK('emailSignup', payload, onOk, onErr);
1641        } catch (err) {
1642          onErr({ message: (err && err.message) || 'Signup failed.' });
1643        }
1644      });
1645    }
1646  })();
1647</script>
1647 <aside id="rb-table-popup" class="rb-table-popup" aria-hidden="true" aria-modal="true" role="dialog" aria-labelledby="rb-table-popup-title" data-astro-cid-gdhxxhmf> <div class="rb-table-backdrop" data-rb-table-close data-astro-cid-gdhxxhmf></div> <div class="rb-table-panel" role="document" data-astro-cid-gdhxxhmf> <button type="button" class="rb-table-close" aria-label="Close table service form" data-rb-table-close data-astro-cid-gdhxxhmf>×</button> <header data-astro-cid-gdhxxhmf> <div class="font-mono uppercase text-hot" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-gdhxxhmf>
1648Table service
1649</div> <h2 id="rb-table-popup-title" class="font-display" style="font-size:30px; font-weight:700; line-height:1.05; letter-spacing:-0.6px; margin-top:8px;" data-astro-cid-gdhxxhmf>Reserve a table<span class="text-live" data-astro-cid-gdhxxhmf>.</span></h2> <p class="font-serif text-rb-mute" style="font-size:14px; line-height:1.5; margin-top:10px;" data-astro-cid-gdhxxhmf>
1650Tell us the night and your party size — our VIP team follows up to lock in bottle service.
1651</p> </header>  <div class="rb-table-context" data-rb-table-context hidden data-astro-cid-gdhxxhmf> <span class="font-mono uppercase" style="font-size:9.5px; letter-spacing:0.16em; color:var(--rb-ink-faint);" data-astro-cid-gdhxxhmf>For</span> <span class="font-display" data-rb-table-context-text style="font-size:14px; font-weight:600; letter-spacing:-0.2px; color:var(--rb-ink);" data-astro-cid-gdhxxhmf></span> </div> <form class="rb-table-form" novalidate data-rb-table-form data-astro-cid-gdhxxhmf> <div class="rb-table-honeypot" aria-hidden="true" data-astro-cid-gdhxxhmf> <label data-astro-cid-gdhxxhmf>Leave blank
1652<input type="text" name="_rb_hp" tabindex="-1" autocomplete="off" data-astro-cid-gdhxxhmf> </label> </div>  <input type="hidden" name="event" data-rb-table-event-field data-astro-cid-gdhxxhmf> <input type="hidden" name="date" data-rb-table-date-field data-astro-cid-gdhxxhmf> <input type="hidden" name="date_short" data-rb-table-date-short-field data-astro-cid-gdhxxhmf> <input type="hidden" name="venue" data-rb-table-venue-field data-astro-cid-gdhxxhmf> <input type="hidden" name="slug" data-rb-table-slug-field data-astro-cid-gdhxxhmf> <div class="rb-table-row rb-table-row-2" data-astro-cid-gdhxxhmf> <label class="rb-table-label" data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Name</span> <input type="text" name="name" autocomplete="name" required data-astro-cid-gdhxxhmf> </label> <label class="rb-table-label" data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Phone</span> <input type="tel" name="phone" autocomplete="tel" required data-astro-cid-gdhxxhmf> </label> </div> <label class="rb-table-label" data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Email</span> <input type="email" name="email" autocomplete="email" placeholder="[email protected]" required data-astro-cid-gdhxxhmf> </label>  <label class="rb-table-label" data-rb-table-days-field hidden data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Which day(s)?</span> <select name="which_days" data-rb-table-days-select disabled data-astro-cid-gdhxxhmf></select> </label> <div class="rb-table-row rb-table-row-2" data-astro-cid-gdhxxhmf> <label class="rb-table-label" data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Party size</span> <input type="text" name="party_size" inputmode="numeric" placeholder="e.g. 6" data-astro-cid-gdhxxhmf> </label> <label class="rb-table-label" data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Special occasion</span> <select name="special_occasion" data-astro-cid-gdhxxhmf> <option value="None" selected data-astro-cid-gdhxxhmf>None</option>  <option data-rb-table-day-option value="" hidden data-astro-cid-gdhxxhmf></option> <option value="Birthday" data-astro-cid-gdhxxhmf>Birthday</option> <option value="Bachelorette" data-astro-cid-gdhxxhmf>Bachelorette</option> <option value="Bachelor party" data-astro-cid-gdhxxhmf>Bachelor party</option> <option value="Anniversary" data-astro-cid-gdhxxhmf>Anniversary</option> <option value="Corporate / group" data-astro-cid-gdhxxhmf>Corporate / group</option> <option value="Date night" data-astro-cid-gdhxxhmf>Date night</option> <option value="Just celebrating" data-astro-cid-gdhxxhmf>Just celebrating</option> <option value="Other" data-astro-cid-gdhxxhmf>Other</option> </select> </label> </div> <label class="rb-table-label" data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Preferred contact method</span> <select name="contact_method" data-astro-cid-gdhxxhmf> <option value="Phone" selected data-astro-cid-gdhxxhmf>Phone</option> <option value="Email" data-astro-cid-gdhxxhmf>Email</option> <option value="Both" data-astro-cid-gdhxxhmf>Both</option> </select> </label> <label class="rb-table-label" data-astro-cid-gdhxxhmf> <span data-astro-cid-gdhxxhmf>Specific requests</span> <textarea name="message" rows="3" placeholder="Budget, must-have bottles, location…" data-astro-cid-gdhxxhmf></textarea> </label> <div class="cf-turnstile" data-sitekey="0x4AAAAAADf2U2BCofwAr0al" style="margin-top:2px;" data-astro-cid-gdhxxhmf></div> <div class="rb-table-actions" data-astro-cid-gdhxxhmf> <button type="submit" class="rb-table-submit bg-chrome text-silver-ink" data-rb-table-submit data-astro-cid-gdhxxhmf>
1653REQUEST A TABLE
1654<span class="font-mono" style="font-size:11px; letter-spacing:0.14em; color:rgba(10,10,12,0.62);" data-astro-cid-gdhxxhmf>→</span> </button> <div class="rb-table-status" data-rb-table-status aria-live="polite" data-astro-cid-gdhxxhmf></div> </div> </form> <div class="rb-table-thanks" data-rb-table-thanks hidden data-astro-cid-gdhxxhmf> <div class="font-mono uppercase text-live" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-gdhxxhmf>
1655Request received
1656</div> <h2 class="font-display" style="font-size:28px; font-weight:700; line-height:1.05; letter-spacing:-0.5px; margin-top:8px;" data-astro-cid-gdhxxhmf>
1657We're on it<span class="text-live" data-astro-cid-gdhxxhmf>.</span> </h2> <p class="font-serif text-rb-mute" style="font-size:14.5px; line-height:1.5; margin-top:12px;" data-astro-cid-gdhxxhmf>
1658Our VIP team will reach out shortly to confirm availability and pricing.
1659</p> <button type="button" class="rb-table-close-cta" data-rb-table-close data-astro-cid-gdhxxhmf>CLOSE</button> </div> </div> </aside>  
1659<script>
1660  (function () {
1661    var root = document.getElementById('rb-table-popup');
1662    if (!root) return;
1663
1664    var form    = root.querySelector('[data-rb-table-form]');
1665    var submit  = root.querySelector('[data-rb-table-submit]');
1666    var status  = root.querySelector('[data-rb-table-status]');
1667    var thanks  = root.querySelector('[data-rb-table-thanks]');
1668    var eventEl = root.querySelector('[data-rb-table-event-field]');
1669    var dateEl  = root.querySelector('[data-rb-table-date-field]');
1670    var dateShortEl = root.querySelector('[data-rb-table-date-short-field]');
1671    var venueEl = root.querySelector('[data-rb-table-venue-field]');
1672    var slugEl  = root.querySelector('[data-rb-table-slug-field]');
1673    var daysField  = root.querySelector('[data-rb-table-days-field]');
1674    var daysSelect = root.querySelector('[data-rb-table-days-select]');
1675    var contextEl = root.querySelector('[data-rb-table-context]');
1676    var contextTextEl = root.querySelector('[data-rb-table-context-text]');
1677    var dayOptionEl = root.querySelector('[data-rb-table-day-option]');
1678    var closers = root.querySelectorAll('[data-rb-table-close]');
1679    var openers = document.querySelectorAll('[data-rb-table-open]');
1680
1681    // Kitschy occasion label keyed off the event's weekday.
1682    function dayOccasion(weekday) {
1683      if (!weekday) return '';
1684      var wd = String(weekday).trim().toLowerCase();
1685      if (wd === 'friday' || wd === 'saturday' || wd === 'sunday') return "It's the weekend!";
1686      var cap = wd.charAt(0).toUpperCase() + wd.slice(1);
1687      return "It's a " + cap + "!";
1688    }
1689
1690    // Build the multi-day picker from the opener's day labels. Each date
1691    // becomes an option, plus a combined "Both days" (2-day) / "All days"
1692    // (3+) option which we select by default. Single-day shows (or none)
1693    // leave the picker hidden and disabled so it never submits a value.
1694    function buildDayOptions(days) {
1695      if (!daysSelect || !daysField) return;
1696      daysSelect.innerHTML = '';
1697      if (!days || days.length < 2) {
1698        daysField.hidden = true;
1699        daysSelect.disabled = true;
1700        return;
1701      }
1702      days.forEach(function (label) {
1703        var o = document.createElement('option');
1704        o.value = label;
1705        o.textContent = label;
1706        daysSelect.appendChild(o);
1707      });
1708      var combo = document.createElement('option');
1709      combo.value = days.length === 2 ? 'Both days' : 'All days';
1710      combo.textContent = combo.value;
1711      combo.selected = true;
1712      daysSelect.appendChild(combo);
1713      daysField.hidden = false;
1714      daysSelect.disabled = false;
1715    }
1716
1717    function open(ctx) {
1718      ctx = ctx || {};
1719      if (eventEl) eventEl.value = ctx.event || '';
1720      if (dateEl)  dateEl.value  = ctx.date  || '';
1721      if (dateShortEl) dateShortEl.value = ctx.dateShort || '';
1722      if (venueEl) venueEl.value = ctx.venue || '';
1723      if (slugEl)  slugEl.value  = ctx.slug  || '';
1724      buildDayOptions(ctx.days);
1725      // Populate (or hide) the day-aware occasion option.
1726      if (dayOptionEl) {
1727        var label = dayOccasion(ctx.weekday);
1728        if (label) {
1729          dayOptionEl.value = label;
1730          dayOptionEl.textContent = label;
1731          dayOptionEl.hidden = false;
1732        } else {
1733          dayOptionEl.value = '';
1734          dayOptionEl.textContent = '';
1735          dayOptionEl.hidden = true;
1736        }
1737      }
1738      var summary = [ctx.event, ctx.date, ctx.venue].filter(Boolean).join(' · ');
1739      if (contextTextEl) contextTextEl.textContent = summary;
1740      if (contextEl) contextEl.hidden = !summary;
1741      // Reset to a fresh form on every open.
1742      if (form) form.hidden = false;
1743      if (thanks) thanks.hidden = true;
1744      setStatus('', null);
1745      if (submit) submit.disabled = false;
1746      root.setAttribute('aria-hidden', 'false');
1747      document.documentElement.style.overflow = 'hidden';
1748      setTimeout(function () {
1749        var first = root.querySelector('input[name="name"]');
1750        if (first) first.focus();
1751      }, 60);
1752    }
1753    function close() {
1754      root.setAttribute('aria-hidden', 'true');
1755      document.documentElement.style.overflow = '';
1756    }
1757
1758    openers.forEach(function (b) {
1759      b.addEventListener('click', function (e) {
1760        e.preventDefault();
1761        var daysAttr = b.getAttribute('data-rb-table-days') || '';
1762        var days = [];
1763        if (daysAttr) { try { days = JSON.parse(daysAttr); } catch (_e) { days = []; } }
1764        open({
1765          event:     b.getAttribute('data-rb-table-event')      || '',
1766          date:      b.getAttribute('data-rb-table-date')       || '',
1767          dateShort: b.getAttribute('data-rb-table-date-short') || '',
1768          venue:     b.getAttribute('data-rb-table-venue')      || '',
1769          slug:      b.getAttribute('data-rb-table-slug')       || '',
1770          weekday:   b.getAttribute('data-rb-table-weekday')    || '',
1771          days:      days,
1772        });
1773      });
1774    });
1775    closers.forEach(function (b) { b.addEventListener('click', close); });
1776    document.addEventListener('keydown', function (e) {
1777      if (e.key === 'Escape' && root.getAttribute('aria-hidden') === 'false') close();
1778    });
1779
1780    function setStatus(text, state) {
1781      if (!status) return;
1782      status.textContent = text || '';
1783      if (state) status.setAttribute('data-state', state);
1784      else status.removeAttribute('data-state');
1785    }
1786
1787    if (form) {
1788      form.addEventListener('submit', async function (e) {
1789        e.preventDefault();
1790        var fd = new FormData(form);
1791        var payload = {
1792          name: String(fd.get('name') || '').trim(),
1793          email: String(fd.get('email') || '').trim(),
1794          phone: String(fd.get('phone') || '').trim(),
1795          event: fd.get('event') || '',
1796          date: fd.get('date') || '',
1797          date_short: fd.get('date_short') || '',
1798          venue: fd.get('venue') || '',
1799          slug: fd.get('slug') || '',
1800          which_days: fd.get('which_days') || '',
1801          party_size: fd.get('party_size') || '',
1802          special_occasion: fd.get('special_occasion') || '',
1803          contact_method: fd.get('contact_method') || '',
1804          message: fd.get('message') || '',
1805          _rb_hp: fd.get('_rb_hp') || '',
1806          'cf-turnstile-response': String(fd.get('cf-turnstile-response') || ''),
1807        };
1808        // Validate before sending — instant feedback, no round trip.
1809        if (!payload.name) { setStatus('Add your name.', 'error'); return; }
1810        if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(payload.email)) { setStatus('Valid email, please.', 'error'); return; }
1811        if (payload.phone.replace(/\D/g, '').length < 7) { setStatus('Add a valid phone number.', 'error'); return; }
1812
1813        setStatus('Sending…', 'loading');
1814        if (submit) submit.disabled = true;
1815        try {
1816          var res = await fetch('/api/table-service.json', {
1817            method: 'POST',
1818            headers: { 'content-type': 'application/json', 'Accept': 'application/json' },
1819            body: JSON.stringify(payload),
1820          });
1821          if (res.ok) {
1822            form.hidden = true;
1823            if (thanks) thanks.hidden = false;
1824            setStatus('', null);
1825          } else {
1826            var msg = 'Something went wrong — try again.';
1827            try { var b = await res.json(); if (b && b.error) msg = b.error; } catch (_e) {}
1828            setStatus(msg, 'error');
1829            try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
1830            if (submit) submit.disabled = false;
1831          }
1832        } catch (_err) {
1833          setStatus('Network error — try again.', 'error');
1834          try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
1835          if (submit) submit.disabled = false;
1836        }
1837      });
1838    }
1839  })();
1840</script>
1840 <aside id="rb-vs-popup" class="rb-vs-popup" aria-hidden="true" aria-modal="true" role="dialog" aria-labelledby="rb-vs-popup-title" data-rb-vs-kind="vendor" data-astro-cid-r2f2y6od> <div class="rb-vs-backdrop" data-rb-vs-close data-astro-cid-r2f2y6od></div> <div class="rb-vs-panel" role="document" data-astro-cid-r2f2y6od> <button type="button" class="rb-vs-close" aria-label="Close inquiry form" data-rb-vs-close data-astro-cid-r2f2y6od>×</button> <header data-astro-cid-r2f2y6od> <div class="font-mono uppercase text-hot" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-r2f2y6od>
1841Work with us
1842</div> <h2 id="rb-vs-popup-title" class="font-display" style="font-size:30px; font-weight:700; line-height:1.05; letter-spacing:-0.6px; margin-top:8px;" data-astro-cid-r2f2y6od> <span data-rb-vs-title-vendor data-astro-cid-r2f2y6od>Become a vendor</span> <span data-rb-vs-title-sponsor hidden data-astro-cid-r2f2y6od>Sponsor an event</span> <span class="text-live" data-astro-cid-r2f2y6od>.</span> </h2> <p class="font-serif text-rb-mute" style="font-size:14px; line-height:1.5; margin-top:10px;" data-astro-cid-r2f2y6od> <span data-rb-vs-blurb-vendor data-astro-cid-r2f2y6od>Food, retail, activations — tell us what you bring and we'll find the right shows.</span> <span data-rb-vs-blurb-sponsor hidden data-astro-cid-r2f2y6od>Put your brand in front of Arizona's biggest EDM crowds. Let's talk partnership.</span> </p> </header>  <div class="rb-vs-toggle" role="tablist" aria-label="Inquiry type" data-astro-cid-r2f2y6od> <button type="button" class="rb-vs-toggle-chip font-mono uppercase" data-rb-vs-mode="vendor" aria-selected="true" data-astro-cid-r2f2y6od>Vendor</button> <button type="button" class="rb-vs-toggle-chip font-mono uppercase" data-rb-vs-mode="sponsor" aria-selected="false" data-astro-cid-r2f2y6od>Sponsor</button> </div> <form class="rb-vs-form" novalidate data-rb-vs-form data-astro-cid-r2f2y6od> <input type="hidden" name="kind" value="vendor" data-rb-vs-kind-field data-astro-cid-r2f2y6od> <div class="rb-vs-honeypot" aria-hidden="true" data-astro-cid-r2f2y6od> <label data-astro-cid-r2f2y6od>Leave blank
1843<input type="text" name="_rb_hp" tabindex="-1" autocomplete="off" data-astro-cid-r2f2y6od> </label> </div> <div class="rb-vs-row rb-vs-row-2" data-astro-cid-r2f2y6od> <label class="rb-vs-label" data-astro-cid-r2f2y6od> <span data-astro-cid-r2f2y6od>Name</span> <input type="text" name="name" autocomplete="name" required data-astro-cid-r2f2y6od> </label> <label class="rb-vs-label" data-astro-cid-r2f2y6od> <span data-astro-cid-r2f2y6od>Company</span> <input type="text" name="company" autocomplete="organization" data-astro-cid-r2f2y6od> </label> </div> <div class="rb-vs-row rb-vs-row-2" data-astro-cid-r2f2y6od> <label class="rb-vs-label" data-astro-cid-r2f2y6od> <span data-astro-cid-r2f2y6od>Email</span> <input type="email" name="email" autocomplete="email" placeholder="[email protected]" required data-astro-cid-r2f2y6od> </label> <label class="rb-vs-label" data-astro-cid-r2f2y6od> <span data-astro-cid-r2f2y6od>Phone</span> <input type="tel" name="phone" autocomplete="tel" data-astro-cid-r2f2y6od> </label> </div> <label class="rb-vs-label" data-astro-cid-r2f2y6od> <span data-astro-cid-r2f2y6od>Tell us more</span> <textarea name="message" rows="4" required placeholder="What are you proposing?" data-astro-cid-r2f2y6od></textarea> </label> <div class="cf-turnstile" data-sitekey="0x4AAAAAADf2U2BCofwAr0al" style="margin-top:2px;" data-astro-cid-r2f2y6od></div> <div class="rb-vs-actions" data-astro-cid-r2f2y6od> <button type="submit" class="rb-vs-submit bg-chrome text-silver-ink" data-rb-vs-submit data-astro-cid-r2f2y6od>
1844SEND INQUIRY
1845<span class="font-mono" style="font-size:11px; letter-spacing:0.14em; color:rgba(10,10,12,0.62);" data-astro-cid-r2f2y6od>→</span> </button> <div class="rb-vs-status" data-rb-vs-status aria-live="polite" data-astro-cid-r2f2y6od></div> </div> </form> <div class="rb-vs-thanks" data-rb-vs-thanks hidden data-astro-cid-r2f2y6od> <div class="font-mono uppercase text-live" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-r2f2y6od>
1846Inquiry received
1847</div> <h2 class="font-display" style="font-size:28px; font-weight:700; line-height:1.05; letter-spacing:-0.5px; margin-top:8px;" data-astro-cid-r2f2y6od>
1848Thanks — talk soon<span class="text-live" data-astro-cid-r2f2y6od>.</span> </h2> <p class="font-serif text-rb-mute" style="font-size:14.5px; line-height:1.5; margin-top:12px;" data-astro-cid-r2f2y6od>
1849Our partnerships team reviews every inquiry and will be in touch.
1850</p> <button type="button" class="rb-vs-close-cta" data-rb-vs-close data-astro-cid-r2f2y6od>CLOSE</button> </div> </div> </aside>  
1850<script>
1851  (function () {
1852    var root = document.getElementById('rb-vs-popup');
1853    if (!root) return;
1854
1855    var form     = root.querySelector('[data-rb-vs-form]');
1856    var submit   = root.querySelector('[data-rb-vs-submit]');
1857    var status   = root.querySelector('[data-rb-vs-status]');
1858    var thanks   = root.querySelector('[data-rb-vs-thanks]');
1859    var kindField = root.querySelector('[data-rb-vs-kind-field]');
1860    var modeChips = root.querySelectorAll('[data-rb-vs-mode]');
1861    var titleVendor  = root.querySelector('[data-rb-vs-title-vendor]');
1862    var titleSponsor = root.querySelector('[data-rb-vs-title-sponsor]');
1863    var blurbVendor  = root.querySelector('[data-rb-vs-blurb-vendor]');
1864    var blurbSponsor = root.querySelector('[data-rb-vs-blurb-sponsor]');
1865    var closers = root.querySelectorAll('[data-rb-vs-close]');
1866    var openersV = document.querySelectorAll('[data-rb-vendor-open]');
1867    var openersS = document.querySelectorAll('[data-rb-sponsor-open]');
1868
1869    function setMode(kind) {
1870      var sponsor = kind === 'sponsor';
1871      root.setAttribute('data-rb-vs-kind', sponsor ? 'sponsor' : 'vendor');
1872      if (kindField) kindField.value = sponsor ? 'sponsor' : 'vendor';
1873      if (titleVendor) titleVendor.hidden = sponsor;
1874      if (titleSponsor) titleSponsor.hidden = !sponsor;
1875      if (blurbVendor) blurbVendor.hidden = sponsor;
1876      if (blurbSponsor) blurbSponsor.hidden = !sponsor;
1877      modeChips.forEach(function (c) {
1878        c.setAttribute('aria-selected', c.getAttribute('data-rb-vs-mode') === (sponsor ? 'sponsor' : 'vendor') ? 'true' : 'false');
1879      });
1880    }
1881    function open(kind) {
1882      setMode(kind);
1883      root.setAttribute('aria-hidden', 'false');
1884      document.documentElement.style.overflow = 'hidden';
1885      setTimeout(function () {
1886        var first = root.querySelector('input[name="name"]');
1887        if (first) first.focus();
1888      }, 60);
1889    }
1890    function close() {
1891      root.setAttribute('aria-hidden', 'true');
1892      document.documentElement.style.overflow = '';
1893    }
1894
1895    openersV.forEach(function (b) { b.addEventListener('click', function (e) { e.preventDefault(); open('vendor'); }); });
1896    openersS.forEach(function (b) { b.addEventListener('click', function (e) { e.preventDefault(); open('sponsor'); }); });
1897    modeChips.forEach(function (c) { c.addEventListener('click', function () { setMode(c.getAttribute('data-rb-vs-mode')); }); });
1898    closers.forEach(function (b) { b.addEventListener('click', close); });
1899    document.addEventListener('keydown', function (e) {
1900      if (e.key === 'Escape' && root.getAttribute('aria-hidden') === 'false') close();
1901    });
1902
1903    function setStatus(text, state) {
1904      if (!status) return;
1905      status.textContent = text || '';
1906      if (state) status.setAttribute('data-state', state);
1907      else status.removeAttribute('data-state');
1908    }
1909
1910    if (form) {
1911      form.addEventListener('submit', async function (e) {
1912        e.preventDefault();
1913        setStatus('Sending…', 'loading');
1914        if (submit) submit.disabled = true;
1915        var fd = new FormData(form);
1916        var payload = {
1917          kind: fd.get('kind') || 'vendor',
1918          name: fd.get('name') || '',
1919          company: fd.get('company') || '',
1920          email: fd.get('email') || '',
1921          phone: fd.get('phone') || '',
1922          message: fd.get('message') || '',
1923          _rb_hp: fd.get('_rb_hp') || '',
1924          'cf-turnstile-response': String(fd.get('cf-turnstile-response') || ''),
1925        };
1926        try {
1927          var res = await fetch('/api/vendor-sponsor.json', {
1928            method: 'POST',
1929            headers: { 'content-type': 'application/json', 'Accept': 'application/json' },
1930            body: JSON.stringify(payload),
1931          });
1932          if (res.ok) {
1933            form.hidden = true;
1934            if (thanks) thanks.hidden = false;
1935            setStatus('', null);
1936          } else {
1937            var msg = 'Something went wrong — try again.';
1938            try { var b = await res.json(); if (b && b.error) msg = b.error; } catch (_e) {}
1939            setStatus(msg, 'error');
1940            try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
1941            if (submit) submit.disabled = false;
1942          }
1943        } catch (_err) {
1944          setStatus('Network error — try again.', 'error');
1945          try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
1946          if (submit) submit.disabled = false;
1947        }
1948      });
1949    }
1950  })();
1951</script>
1951 <aside id="rb-contact-popup" class="rb-cp-popup" aria-hidden="true" aria-modal="true" role="dialog" aria-labelledby="rb-cp-popup-title" data-astro-cid-mgmks4t3> <div class="rb-cp-backdrop" data-rb-cp-close data-astro-cid-mgmks4t3></div> <div class="rb-cp-panel" role="document" data-astro-cid-mgmks4t3> <button type="button" class="rb-cp-close" aria-label="Close contact form" data-rb-cp-close data-astro-cid-mgmks4t3>×</button> <header data-astro-cid-mgmks4t3> <div class="font-mono uppercase text-hot" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-mgmks4t3>
1952Get in touch
1953</div> <h2 id="rb-cp-popup-title" class="font-display" style="font-size:30px; font-weight:700; line-height:1.05; letter-spacing:-0.6px; margin-top:8px;" data-astro-cid-mgmks4t3> <span data-rb-cp-title data-astro-cid-mgmks4t3>Contact us</span><span class="text-live" data-astro-cid-mgmks4t3>.</span> </h2> <p class="font-serif text-rb-mute" style="font-size:14px; line-height:1.5; margin-top:10px;" data-astro-cid-mgmks4t3>
1954Send us a message and we'll route it to the right person. Replies within one business day.
1955</p> </header> <form class="rb-cp-form" novalidate data-rb-cp-form data-astro-cid-mgmks4t3> <input type="hidden" name="channel" value="" data-rb-cp-channel-field data-astro-cid-mgmks4t3> <input type="hidden" name="channelLabel" value="" data-rb-cp-channel-label-field data-astro-cid-mgmks4t3> <input type="hidden" name="topic" value="General" data-rb-cp-topic-field data-astro-cid-mgmks4t3> <div class="rb-cp-honeypot" aria-hidden="true" data-astro-cid-mgmks4t3> <label data-astro-cid-mgmks4t3>Leave blank
1956<input type="text" name="_rb_hp" tabindex="-1" autocomplete="off" data-astro-cid-mgmks4t3> </label> </div> <div class="rb-cp-row rb-cp-row-2" data-astro-cid-mgmks4t3> <label class="rb-cp-label" data-astro-cid-mgmks4t3> <span data-astro-cid-mgmks4t3>Name</span> <input type="text" name="name" autocomplete="name" required data-astro-cid-mgmks4t3> </label> <label class="rb-cp-label" data-astro-cid-mgmks4t3> <span data-astro-cid-mgmks4t3>Email</span> <input type="email" name="email" autocomplete="email" placeholder="[email protected]" required data-astro-cid-mgmks4t3> </label> </div> <label class="rb-cp-label" data-astro-cid-mgmks4t3> <span data-astro-cid-mgmks4t3>Phone <em data-astro-cid-mgmks4t3>optional</em></span> <input type="tel" name="phone" autocomplete="tel" data-astro-cid-mgmks4t3> </label> <label class="rb-cp-label" data-astro-cid-mgmks4t3> <span data-astro-cid-mgmks4t3>Message</span> <textarea name="message" rows="5" required placeholder="What's up?" data-astro-cid-mgmks4t3></textarea> </label> <div class="cf-turnstile" data-sitekey="0x4AAAAAADf2U2BCofwAr0al" style="margin-top:2px;" data-astro-cid-mgmks4t3></div> <div class="rb-cp-actions" data-astro-cid-mgmks4t3> <button type="submit" class="rb-cp-submit bg-chrome text-silver-ink" data-rb-cp-submit data-astro-cid-mgmks4t3>
1957SEND MESSAGE
1958<span class="font-mono" style="font-size:11px; letter-spacing:0.14em; color:rgba(10,10,12,0.62);" data-astro-cid-mgmks4t3>→</span> </button> <div class="rb-cp-status" data-rb-cp-status aria-live="polite" data-astro-cid-mgmks4t3></div> </div> </form> <div class="rb-cp-thanks" data-rb-cp-thanks hidden data-astro-cid-mgmks4t3> <div class="font-mono uppercase text-live" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-mgmks4t3>
1959Sent
1960</div> <h2 class="font-display" style="font-size:28px; font-weight:700; line-height:1.05; letter-spacing:-0.5px; margin-top:8px;" data-astro-cid-mgmks4t3>
1961Thanks — we'll be in touch<span class="text-live" data-astro-cid-mgmks4t3>.</span> </h2> <p class="font-serif text-rb-mute" style="font-size:14.5px; line-height:1.5; margin-top:12px;" data-astro-cid-mgmks4t3>
1962Replies usually within one business day.
1963</p> <button type="button" class="rb-cp-close-cta" data-rb-cp-close data-astro-cid-mgmks4t3>CLOSE</button> </div> </div> </aside>  
1963<script>
1964  (function () {
1965    var root = document.getElementById('rb-contact-popup');
1966    if (!root) return;
1967
1968    var form        = root.querySelector('[data-rb-cp-form]');
1969    var submit      = root.querySelector('[data-rb-cp-submit]');
1970    var status      = root.querySelector('[data-rb-cp-status]');
1971    var thanks      = root.querySelector('[data-rb-cp-thanks]');
1972    var titleEl     = root.querySelector('[data-rb-cp-title]');
1973    var channelField = root.querySelector('[data-rb-cp-channel-field]');
1974    var channelLabelField = root.querySelector('[data-rb-cp-channel-label-field]');
1975    var topicField  = root.querySelector('[data-rb-cp-topic-field]');
1976    var closers     = root.querySelectorAll('[data-rb-cp-close]');
1977    var openers     = document.querySelectorAll('[data-rb-contact-open]');
1978
1979    function open(opts) {
1980      opts = opts || {};
1981      if (channelField) channelField.value = opts.channel || '';
1982      if (channelLabelField) channelLabelField.value = opts.label || '';
1983      if (topicField) topicField.value = opts.topic || 'General';
1984      if (titleEl) titleEl.textContent = opts.label || 'Contact us';
1985      // Reset to a fresh form each open (in case it was submitted before).
1986      if (form) form.hidden = false;
1987      if (thanks) thanks.hidden = true;
1988      setStatus('', null);
1989      if (submit) submit.disabled = false;
1990      root.setAttribute('aria-hidden', 'false');
1991      document.documentElement.style.overflow = 'hidden';
1992      setTimeout(function () {
1993        var first = root.querySelector('input[name="name"]');
1994        if (first) first.focus();
1995      }, 60);
1996    }
1997    function close() {
1998      root.setAttribute('aria-hidden', 'true');
1999      document.documentElement.style.overflow = '';
2000    }
2001
2002    openers.forEach(function (b) {
2003      b.addEventListener('click', function (e) {
2004        e.preventDefault();
2005        open({
2006          channel: b.getAttribute('data-rb-contact-channel') || '',
2007          label: b.getAttribute('data-rb-contact-channel-label') || '',
2008          topic: b.getAttribute('data-rb-contact-topic') || '',
2009        });
2010      });
2011    });
2012    closers.forEach(function (b) { b.addEventListener('click', close); });
2013    document.addEventListener('keydown', function (e) {
2014      if (e.key === 'Escape' && root.getAttribute('aria-hidden') === 'false') close();
2015    });
2016
2017    function setStatus(text, state) {
2018      if (!status) return;
2019      status.textContent = text || '';
2020      if (state) status.setAttribute('data-state', state);
2021      else status.removeAttribute('data-state');
2022    }
2023
2024    if (form) {
2025      form.addEventListener('submit', async function (e) {
2026        e.preventDefault();
2027        var fd = new FormData(form);
2028        var payload = {
2029          name: String(fd.get('name') || '').trim(),
2030          email: String(fd.get('email') || '').trim(),
2031          phone: String(fd.get('phone') || '').trim(),
2032          message: String(fd.get('message') || '').trim(),
2033          topic: String(fd.get('topic') || 'General').trim(),
2034          channel: String(fd.get('channel') || '').trim(),
2035          channelLabel: String(fd.get('channelLabel') || '').trim(),
2036          _rb_hp: String(fd.get('_rb_hp') || ''),
2037          'cf-turnstile-response': String(fd.get('cf-turnstile-response') || ''),
2038        };
2039        if (!payload.name) { setStatus('Add your name.', 'error'); return; }
2040        if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(payload.email)) { setStatus('Valid email, please.', 'error'); return; }
2041        if (payload.message.length < 8) { setStatus('Tell us a bit more.', 'error'); return; }
2042
2043        setStatus('Sending…', 'loading');
2044        if (submit) submit.disabled = true;
2045        try {
2046          var res = await fetch('/api/contact.json', {
2047            method: 'POST',
2048            headers: { 'content-type': 'application/json', 'Accept': 'application/json' },
2049            body: JSON.stringify(payload),
2050          });
2051          var body = null;
2052          try { body = await res.json(); } catch (_e) {}
2053          if (res.ok && body && body.ok) {
2054            form.hidden = true;
2055            if (thanks) thanks.hidden = false;
2056            setStatus('', null);
2057          } else {
2058            setStatus((body && body.error) || 'Something went wrong — try again.', 'error');
2059            try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
2060            if (submit) submit.disabled = false;
2061          }
2062        } catch (_err) {
2063          setStatus('Network error — try again.', 'error');
2064          try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
2065          if (submit) submit.disabled = false;
2066        }
2067      });
2068    }
2069  })();
2070</script>
2070 <button type="button" class="rb-feedback-fab" data-rb-feedback-open aria-label="Send website feedback" title="Send feedback" data-astro-cid-afk7xxif> <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-astro-cid-afk7xxif> <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" data-astro-cid-afk7xxif></path> </svg> <span class="rb-feedback-fab-label" data-astro-cid-afk7xxif>Feedback</span> </button> <aside id="rb-feedback-popup" class="rb-popup rb-feedback-popup" aria-hidden="true" aria-modal="true" role="dialog" aria-labelledby="rb-feedback-popup-title" data-astro-cid-afk7xxif> <div class="rb-popup-backdrop" data-rb-feedback-close data-astro-cid-afk7xxif></div> <div class="rb-popup-panel" role="document" data-astro-cid-afk7xxif> <button type="button" class="rb-popup-close" aria-label="Close feedback form" data-rb-feedback-close data-astro-cid-afk7xxif>×</button> <header class="rb-feedback-head" data-astro-cid-afk7xxif> <div class="font-mono uppercase text-hot" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-afk7xxif>
2071Send us feedback
2072</div> <h2 id="rb-feedback-popup-title" class="font-display" style="font-size:30px; font-weight:700; line-height:1.05; letter-spacing:-0.6px; margin-top:8px;" data-astro-cid-afk7xxif>Tell us what's on your mind<span class="text-live" data-astro-cid-afk7xxif>.</span></h2> <p class="font-serif text-rb-mute" style="font-size:14px; line-height:1.5; margin-top:10px;" data-astro-cid-afk7xxif>
2073Bug, broken link, wrong info, or just a thought — we read every note.
2074</p> </header> <form class="rb-feedback-form" novalidate data-rb-feedback-form data-astro-cid-afk7xxif>  <div class="rb-feedback-honeypot" aria-hidden="true" data-astro-cid-afk7xxif> <label data-astro-cid-afk7xxif>Leave blank
2075<input type="text" name="website" tabindex="-1" autocomplete="off" data-astro-cid-afk7xxif> </label> </div> <div class="rb-feedback-row rb-feedback-row-2" data-astro-cid-afk7xxif> <label class="rb-feedback-label" data-astro-cid-afk7xxif> <span data-astro-cid-afk7xxif>Name</span> <input type="text" name="name" autocomplete="name" required data-astro-cid-afk7xxif> </label> <label class="rb-feedback-label" data-astro-cid-afk7xxif> <span data-astro-cid-afk7xxif>Email</span> <input type="email" name="email" autocomplete="email" placeholder="[email protected]" required data-astro-cid-afk7xxif> </label> </div> <label class="rb-feedback-label" data-astro-cid-afk7xxif> <span data-astro-cid-afk7xxif>About</span> <select name="type" data-astro-cid-afk7xxif> <option value="general" data-astro-cid-afk7xxif>General</option><option value="bug" data-astro-cid-afk7xxif>Bug / site issue</option><option value="content" data-astro-cid-afk7xxif>Content correction</option><option value="tickets" data-astro-cid-afk7xxif>Ticketing question</option> </select> </label> <label class="rb-feedback-label" data-astro-cid-afk7xxif> <span data-astro-cid-afk7xxif>Feedback</span> <textarea name="message" rows="5" required placeholder="What's working, what's broken, what you'd change…" data-astro-cid-afk7xxif></textarea> </label> <input type="hidden" name="page_url" data-rb-feedback-page data-astro-cid-afk7xxif> <div class="cf-turnstile" data-sitekey="0x4AAAAAADf2U2BCofwAr0al" style="margin-top:2px;" data-astro-cid-afk7xxif></div> <div class="rb-feedback-actions" data-astro-cid-afk7xxif> <button type="submit" class="rb-feedback-submit bg-chrome text-silver-ink" data-rb-feedback-submit data-astro-cid-afk7xxif>
2076SEND FEEDBACK
2077<span class="font-mono" style="font-size:11px; letter-spacing:0.14em; color:rgba(10,10,12,0.62);" data-astro-cid-afk7xxif>→</span> </button> <div class="rb-feedback-status" data-rb-feedback-status aria-live="polite" data-astro-cid-afk7xxif></div> </div> </form>  <div class="rb-feedback-thanks" data-rb-feedback-thanks hidden data-astro-cid-afk7xxif> <div class="font-mono uppercase text-live" style="font-size:10.5px; letter-spacing:0.18em;" data-astro-cid-afk7xxif>
2078Received
2079</div> <h2 class="font-display" style="font-size:28px; font-weight:700; line-height:1.05; letter-spacing:-0.5px; margin-top:8px;" data-astro-cid-afk7xxif>Thanks for the note<span class="text-live" data-astro-cid-afk7xxif>.</span></h2> <p class="font-serif text-rb-mute" style="font-size:14.5px; line-height:1.5; margin-top:12px;" data-astro-cid-afk7xxif>
2080We log every submission. If you asked us to follow up, expect a reply
2081        within one business day.
2082</p> <button type="button" class="rb-feedback-close-cta" data-rb-feedback-close data-astro-cid-afk7xxif>CLOSE</button> </div> </div> </aside>  
2082<script>
2083  (function () {
2084    var root = document.getElementById('rb-feedback-popup');
2085    if (!root) return;
2086    // Always POST to our SSR proxy — it reaches the LAN-only WP store
2087    // and emails a copy. The browser can't hit WP directly.
2088    var endpoint = '/api/feedback.json';
2089
2090    var form    = root.querySelector('[data-rb-feedback-form]');
2091    var submit  = root.querySelector('[data-rb-feedback-submit]');
2092    var status  = root.querySelector('[data-rb-feedback-status]');
2093    var thanks  = root.querySelector('[data-rb-feedback-thanks]');
2094    var pageEl  = root.querySelector('[data-rb-feedback-page]');
2095    var closers = root.querySelectorAll('[data-rb-feedback-close]');
2096    var openers = document.querySelectorAll('[data-rb-feedback-open]');
2097
2098    function open() {
2099      if (pageEl) pageEl.value = location.href;
2100      root.setAttribute('aria-hidden', 'false');
2101      document.documentElement.style.overflow = 'hidden';
2102      // Focus the first field after the transition starts.
2103      setTimeout(function () {
2104        var first = root.querySelector('input[name="name"]');
2105        if (first) first.focus();
2106      }, 60);
2107    }
2108    function close() {
2109      root.setAttribute('aria-hidden', 'true');
2110      document.documentElement.style.overflow = '';
2111    }
2112
2113    openers.forEach(function (b) {
2114      b.addEventListener('click', function (e) { e.preventDefault(); open(); });
2115    });
2116    closers.forEach(function (b) { b.addEventListener('click', close); });
2117    document.addEventListener('keydown', function (e) {
2118      if (e.key === 'Escape' && root.getAttribute('aria-hidden') === 'false') close();
2119    });
2120
2121    function setStatus(text, state) {
2122      if (!status) return;
2123      status.textContent = text || '';
2124      if (state) status.setAttribute('data-state', state);
2125      else status.removeAttribute('data-state');
2126    }
2127
2128    if (form) {
2129      form.addEventListener('submit', async function (e) {
2130        e.preventDefault();
2131        setStatus('Sending…', 'loading');
2132        if (submit) submit.disabled = true;
2133        var fd = new FormData(form);
2134        var payload = {
2135          name: String(fd.get('name') || '').trim(),
2136          email: String(fd.get('email') || '').trim(),
2137          type: String(fd.get('type') || 'general'),
2138          title: String(fd.get('title') || '').trim(),
2139          message: String(fd.get('message') || '').trim(),
2140          page_url: String(fd.get('page_url') || location.href),
2141          website: String(fd.get('website') || ''),
2142          'cf-turnstile-response': String(fd.get('cf-turnstile-response') || ''),
2143        };
2144        try {
2145          var res = await fetch(endpoint, {
2146            method: 'POST',
2147            headers: { 'content-type': 'application/json', 'Accept': 'application/json' },
2148            body: JSON.stringify(payload),
2149          });
2150          if (res.ok) {
2151            // Swap form for thanks block.
2152            form.hidden = true;
2153            if (thanks) thanks.hidden = false;
2154            setStatus('', null);
2155          } else {
2156            var msg = 'Something went wrong — try again.';
2157            try {
2158              var body = await res.json();
2159              if (body && (body.error || body.message)) msg = body.error || body.message;
2160            } catch (_e) {}
2161            setStatus(msg, 'error');
2162            try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
2163            if (submit) submit.disabled = false;
2164          }
2165        } catch (_err) {
2166          setStatus('Network error — try again.', 'error');
2167          try { if (window.turnstile) window.turnstile.reset(form.querySelector('.cf-turnstile')); } catch (_e) {}
2168          if (submit) submit.disabled = false;
2169        }
2170      });
2171    }
2172  })();
2173</script>
2173 <aside id="rb-cookie-consent" class="rb-cookie-consent" data-rb-cookie-consent aria-hidden="true" aria-label="Cookie preferences" role="dialog" style="display:none;" data-astro-cid-garwan2p> <div class="rb-cookie-consent-inner" data-astro-cid-garwan2p> <div class="rb-cookie-consent-head" data-astro-cid-garwan2p> <img src="/assets/rb-mark.png" alt="" class="rb-cookie-consent-mark" data-astro-cid-garwan2p> <div class="rb-cookie-consent-text" data-astro-cid-garwan2p> <div class="rb-cookie-consent-eyebrow font-mono uppercase" data-astro-cid-garwan2p>Cookies</div> <p class="rb-cookie-consent-body font-serif" data-astro-cid-garwan2p>
2174We use cookies to keep your spot in the calendar and remember
2175          your saved events. Analytics help us book the shows you
2176          actually want to see.
2177</p> <a href="/privacy-policy" class="rb-cookie-consent-link font-mono uppercase" data-astro-cid-garwan2p>Privacy Policy →</a> </div> </div>  <div class="rb-cookie-consent-panel" data-rb-cookie-panel data-astro-cid-garwan2p> <ul class="rb-cookie-consent-categories" data-astro-cid-garwan2p> <li data-astro-cid-garwan2p> <label class="rb-cookie-consent-row" data-astro-cid-garwan2p> <span class="rb-cookie-consent-row-text" data-astro-cid-garwan2p> <span class="rb-cookie-consent-row-title font-display" data-astro-cid-garwan2p>Essential</span> <span class="rb-cookie-consent-row-desc font-serif" data-astro-cid-garwan2p>
2178Saved events, market preference, login state. The site
2179                won't work without these.
2180</span> </span> <input type="checkbox" checked disabled data-rb-cookie-cat="essential" data-astro-cid-garwan2p> </label> </li> <li data-astro-cid-garwan2p> <label class="rb-cookie-consent-row" data-astro-cid-garwan2p> <span class="rb-cookie-consent-row-text" data-astro-cid-garwan2p> <span class="rb-cookie-consent-row-title font-display" data-astro-cid-garwan2p>Analytics</span> <span class="rb-cookie-consent-row-desc font-serif" data-astro-cid-garwan2p>
2181Page-view + event-tracking data we use to decide which
2182                shows to book and where to spend marketing.
2183</span> </span> <input type="checkbox" checked data-rb-cookie-cat="analytics" data-astro-cid-garwan2p> </label> </li> <li data-astro-cid-garwan2p> <label class="rb-cookie-consent-row" data-astro-cid-garwan2p> <span class="rb-cookie-consent-row-text" data-astro-cid-garwan2p> <span class="rb-cookie-consent-row-title font-display" data-astro-cid-garwan2p>Marketing</span> <span class="rb-cookie-consent-row-desc font-serif" data-astro-cid-garwan2p>
2184Tags that let us re-target ads on platforms (Meta,
2185                Google) and send better SMS / email recommendations.
2186</span> </span> <input type="checkbox" checked data-rb-cookie-cat="marketing" data-astro-cid-garwan2p> </label> </li> </ul> </div> <div class="rb-cookie-consent-actions" data-astro-cid-garwan2p> <button type="button" class="rb-cookie-consent-btn rb-cookie-consent-decline font-mono uppercase" data-rb-cookie-choice="decline" data-astro-cid-garwan2p>Decline</button> <button type="button" class="rb-cookie-consent-btn rb-cookie-consent-customize font-mono uppercase" data-rb-cookie-customize-toggle aria-expanded="false" data-astro-cid-garwan2p>Customize</button> <button type="button" class="rb-cookie-consent-btn rb-cookie-consent-accept font-mono uppercase" data-rb-cookie-accept data-astro-cid-garwan2p> <span data-rb-cookie-accept-label-default data-astro-cid-garwan2p>Accept all</span> <span data-rb-cookie-accept-label-custom hidden data-astro-cid-garwan2p>Accept</span> </button> </div> </div> </aside>  
2186<script>
2187  (function () {
2188    var root = document.getElementById('rb-cookie-consent');
2189    if (!root || root.dataset.bound === '1') return;
2190    root.dataset.bound = '1';
2191
2192    var customizeBtn = root.querySelector('[data-rb-cookie-customize-toggle]');
2193    var acceptLabelDefault = root.querySelector('[data-rb-cookie-accept-label-default]');
2194    var acceptLabelCustom = root.querySelector('[data-rb-cookie-accept-label-custom]');
2195
2196    function hasConsentCookie() {
2197      return /(?:^|;\s*)rb_cookie_consent=[^;]+/.test(document.cookie || '');
2198    }
2199    function reveal() {
2200      root.style.display = '';
2201      // rAF so the display flip paints before the slide-in transition.
2202      requestAnimationFrame(function () {
2203        root.setAttribute('aria-hidden', 'false');
2204      });
2205    }
2206
2207    function recordChoice(value) {
2208      // 6-month cookie. Periodic re-prompting is common practice;
2209      // six months matches what most consent vendors default to.
2210      var maxAge = 60 * 60 * 24 * 180;
2211      document.cookie =
2212        'rb_cookie_consent=' + encodeURIComponent(value) +
2213        '; max-age=' + maxAge +
2214        '; path=/; samesite=lax';
2215      // Push the choice into Consent Mode v2 so GTM (if loaded)
2216      // unblocks the gated tags immediately, without needing a
2217      // page reload. The hook is a no-op when GTM isn't wired (dev,
2218      // staging, missing env).
2219      if (typeof window.__rbUpdateConsent === 'function') {
2220        try { window.__rbUpdateConsent(value); } catch (_) { /* swallow */ }
2221      }
2222    }
2223    function dismiss() {
2224      root.setAttribute('aria-hidden', 'true');
2225      // Hide (don't remove) after the transform animation completes —
2226      // removal would break __rbOpenCookieConsent re-opening later,
2227      // and display:none equally stops stray clicks.
2228      setTimeout(function () {
2229        if (root) root.style.display = 'none';
2230      }, 260);
2231    }
2232    function isCustomizeOpen() {
2233      return root.getAttribute('data-rb-cookie-customize') === 'true';
2234    }
2235    function syncAcceptLabel() {
2236      var custom = isCustomizeOpen();
2237      if (acceptLabelDefault) acceptLabelDefault.hidden = custom;
2238      if (acceptLabelCustom) acceptLabelCustom.hidden = !custom;
2239      if (customizeBtn) customizeBtn.setAttribute('aria-expanded', custom ? 'true' : 'false');
2240    }
2241    function openCustomize() {
2242      root.setAttribute('data-rb-cookie-customize', 'true');
2243      syncAcceptLabel();
2244    }
2245    function closeCustomize() {
2246      root.removeAttribute('data-rb-cookie-customize');
2247      syncAcceptLabel();
2248    }
2249
2250    // Decline — terminal choice, dismiss.
2251    root.querySelectorAll('[data-rb-cookie-choice]').forEach(function (btn) {
2252      btn.addEventListener('click', function () {
2253        recordChoice(btn.getAttribute('data-rb-cookie-choice') || 'decline');
2254        dismiss();
2255      });
2256    });
2257
2258    // Customize — toggle the panel without recording a choice yet.
2259    if (customizeBtn) {
2260      customizeBtn.addEventListener('click', function () {
2261        if (isCustomizeOpen()) closeCustomize();
2262        else openCustomize();
2263      });
2264    }
2265
2266    // Accept — when customize is closed: accept all categories
2267    // (records 'accept'). When customize is open: respect the
2268    // toggle state (records a comma-separated category list).
2269    var acceptBtn = root.querySelector('[data-rb-cookie-accept]');
2270    if (acceptBtn) {
2271      acceptBtn.addEventListener('click', function () {
2272        if (!isCustomizeOpen()) {
2273          recordChoice('accept');
2274          dismiss();
2275          return;
2276        }
2277        var accepted = [];
2278        root.querySelectorAll('[data-rb-cookie-cat]').forEach(function (input) {
2279          if (input.checked) accepted.push(input.getAttribute('data-rb-cookie-cat'));
2280        });
2281        if (accepted.indexOf('essential') === -1) accepted.unshift('essential');
2282        recordChoice(accepted.join(','));
2283        dismiss();
2284      });
2285    }
2286
2287    // Re-open hook for a future footer "Cookie preferences" link.
2288    // Clears the cookie + slides the banner back in.
2289    window.__rbOpenCookieConsent = function () {
2290      document.cookie = 'rb_cookie_consent=; max-age=0; path=/; samesite=lax';
2291      closeCustomize();
2292      reveal();
2293    };
2294
2295    // First-load decision — purely client-side so the SSR/CDN output
2296    // stays identical for every visitor. Reveal only when no prior
2297    // choice is recorded; otherwise hide the node (not remove — the
2298    // __rbOpenCookieConsent hook must be able to bring it back).
2299    if (hasConsentCookie()) {
2300      root.style.display = 'none';
2301    } else {
2302      reveal();
2303    }
2304  })();
2305</script>
2305   
2305<script>
2306      (function () {
2307        try {
2308          var plat = (navigator.userAgentData && navigator.userAgentData.platform) || navigator.platform || '';
2309          var isWin = /win/i.test(plat);
2310          var finePointer = window.matchMedia && window.matchMedia('(pointer: fine)').matches;
2311          if (!isWin || !finePointer) return;
2312          document.querySelectorAll('[data-hscroll]').forEach(function (rail) {
2313            if (rail.scrollWidth <= rail.clientWidth + 4) return;
2314            var host = rail.parentElement;
2315            if (!host) return;
2316            host.classList.add('rb-hscroll-host');
2317            var grad = document.createElement('div');
2318            grad.className = 'rb-hscroll-grad';
2319            var cue = document.createElement('div');
2320            cue.className = 'rb-hscroll-cue';
2321            cue.textContent = 'Shift ⇧ + Scroll';
2322            host.appendChild(grad);
2323            host.appendChild(cue);
2324            var update = function () {
2325              host.classList.toggle('rb-scroll-end', rail.scrollLeft + rail.clientWidth >= rail.scrollWidth - 4);
2326            };
2327            rail.addEventListener('scroll', update, { passive: true });
2328            update();
2329          });
2330        } catch (e) {}
2331      })();
2332    </script>
2332 
2332<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"7d477e85044d49f78981768d5ae26eb7","r":1,"spa":2}' crossorigin="anonymous"></script>
2332
2333</body> </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.